quick_view_link_view.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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.components');
  26. var host;
  27. if (serviceName === 'HDFS') {
  28. host = components.filterProperty('id', 'NAMENODE').objectAt(0).get('host.hostName');
  29. } else if (serviceName === 'MAPREDUCE') {
  30. host = components.filterProperty('id', 'JOBTRACKER').objectAt(0).get('host.hostName');
  31. } else if (serviceName === 'HBASE') {
  32. host = components.filterProperty('id', 'HBASE_MASTER').objectAt(0).get('host.hostName');
  33. }
  34. if (!host) {
  35. return [];
  36. }
  37. return this.get('content.quickLinks').map(function (item) {
  38. if (item.get('url')) {
  39. item.set('url', item.get('url').fmt(host));
  40. }
  41. return item;
  42. });
  43. }.property('content.quickLinks.@each.label'),
  44. linkTarget:function () {
  45. switch (this.get('content.serviceName').toLowerCase()) {
  46. case "hdfs":
  47. case "mapreduce":
  48. return "_blank";
  49. break;
  50. default:
  51. return "";
  52. break;
  53. }
  54. }.property('service')
  55. });