quick_view_link_view.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 = App.singleNodeInstall ? App.singleNodeAlias : components.findProperty('componentName', 'NAMENODE').get('host.publicHostName');
  29. } else if (serviceName === 'MAPREDUCE') {
  30. host = App.singleNodeInstall ? App.singleNodeAlias : 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. if(App.singleNodeInstall){
  35. host = App.singleNodeAlias;
  36. }else{
  37. host = component.get('host.publicHostName');
  38. }
  39. }
  40. }
  41. if (!host) {
  42. return [
  43. {
  44. label: this.t('quick.links.error.label'),
  45. url: 'javascript:alert("' + this.t('contact.administrator') + '");return false;'
  46. }
  47. ];
  48. }
  49. return this.get('content.quickLinks').map(function (item) {
  50. if (item.get('url')) {
  51. item.set('url', item.get('url').fmt(host));
  52. }
  53. return item;
  54. });
  55. }.property('content.quickLinks.@each.label'),
  56. linkTarget: function () {
  57. switch (this.get('content.serviceName').toLowerCase()) {
  58. case "hdfs":
  59. case "mapreduce":
  60. case "hbase":
  61. return "_blank";
  62. break;
  63. default:
  64. return "";
  65. break;
  66. }
  67. }.property('service')
  68. });