quick_view_link_view.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. var App = require('app');
  19. App.QuickViewLinks = Em.View.extend({
  20. /**
  21. * Updated quick links. Here we put correct hostname to url
  22. */
  23. quickLinks: function () {
  24. var serviceName = this.get('content.serviceName');
  25. var components = this.get('content.hostComponents');
  26. var host;
  27. if (serviceName === 'HDFS') {
  28. host = components.findProperty('componentName', 'NAMENODE').get('host.publicHostName');
  29. } else if (serviceName === 'MAPREDUCE') {
  30. host = components.findProperty('componentName', 'JOBTRACKER').get('host.publicHostName');
  31. } else if (serviceName === 'HBASE') {
  32. var component = components.filterProperty('componentName', 'HBASE_MASTER').findProperty('haStatus', 'active');
  33. if(component){
  34. host = component.get('host.publicHostName');
  35. }
  36. }
  37. if (!host) {
  38. return [
  39. {
  40. label: this.t('quick.links.error.label'),
  41. url: 'javascript:alert("' + this.t('contact.administrator') + '");return false;'
  42. }
  43. ];
  44. }
  45. return this.get('content.quickLinks').map(function (item) {
  46. if (item.get('url')) {
  47. item.set('url', item.get('url').fmt(host));
  48. }
  49. return item;
  50. });
  51. }.property('content.quickLinks.@each.label'),
  52. linkTarget: function () {
  53. switch (this.get('content.serviceName').toLowerCase()) {
  54. case "hdfs":
  55. case "mapreduce":
  56. case "hbase":
  57. return "_blank";
  58. break;
  59. default:
  60. return "";
  61. break;
  62. }
  63. }.property('service')
  64. });