| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| App.MainMirroringTargetClusterController = Ember.Controller.extend({ |
| name: 'mainMirroringTargetClusterController', |
| model: Ember.Object.create({ |
| targetCluster: null, |
| originalRecord: null, |
| isPopupForEdit: false, // set the default to add scenario |
| isNameNodeWebUrlError: function (key, value) { |
| if (value) { |
| return value; |
| } |
| var controller = App.router.get('mainMirroringTargetClusterController'); |
| var isNameNodeWebUrlError = controller.checkNameNodeWebUrlErrors(); |
| return isNameNodeWebUrlError; |
| }.property('targetCluster.nameNodeWebUrl', 'model.targetCluster.nameNodeWebUrl'), |
| isNameNodeRpcUrlError: function (key, value) { |
| if (value) { |
| return value; |
| } |
| var controller = App.router.get('mainMirroringTargetClusterController'); |
| var isNameNodeRpcUrlError = controller.checkNameNodeRpcUrlErrors(); |
| return isNameNodeRpcUrlError; |
| }.property('targetCluster.nameNodeRpcUrl', 'model.targetCluster.nameNodeRpcUrl'), |
| |
| isOozieServerUrlError: function (key, value) { |
| if (value) { |
| return value; |
| } |
| var controller = App.router.get('mainMirroringTargetClusterController'); |
| var isOozieServerUrlError = controller.checkOozieServerUrlErrors(); |
| return isOozieServerUrlError; |
| }.property('targetCluster.oozieServerUrl', 'model.targetCluster.oozieServerUrl'), |
| |
| isClusterNameError: function (key, value) { |
| if (value) { |
| return value; |
| } |
| var controller = App.router.get('mainMirroringTargetClusterController'); |
| var isClusterNameError = controller.checkClusterNameErrors(); |
| return isClusterNameError; |
| }.property('targetCluster.clusterName', 'model.targetCluster.clusterName'), |
| |
| nameNodeWebUrlErrorMessage: null, |
| nameNodeRpcUrlErrorMessage: null, |
| oozieServerUrlErrorMessage: null, |
| clusterNameErrorMessage: null |
| }), |
| |
| isSubmitted1: null, |
| isSubmitted2: null, |
| |
| validate1: function () { |
| var isNameNodeWebUrlError = this.checkNameNodeWebUrlErrors(); |
| var isNameNodeRpcUrlError = this.checkNameNodeRpcUrlErrors(); |
| var isOozieServerUrlError = this.checkOozieServerUrlErrors(); |
| |
| if (isNameNodeWebUrlError || isNameNodeRpcUrlError || isOozieServerUrlError) { |
| return false; |
| } |
| return true; |
| }, |
| |
| validate2: function () { |
| var isClusterNameError = this.checkClusterNameErrors(); |
| |
| if (isClusterNameError) { |
| return false; |
| } |
| return true; |
| }, |
| |
| checkNameNodeWebUrlErrors: function () { |
| if (!this.get('isSubmitted1')){ |
| this.set('model.nameNodeWebUrlErrorMessage', ""); |
| return false; |
| } |
| var nameNodeWebUrl = this.get('model.targetCluster.nameNodeWebUrl'); |
| if (!nameNodeWebUrl || nameNodeWebUrl.trim() === "") { |
| this.set('model.isNameNodeWebUrlError', true); |
| this.set('model.nameNodeWebUrlErrorMessage', Em.I18n.t('mirroring.required.error')); |
| return true; |
| } |
| else { |
| this.set('model.nameNodeWebUrlErrorMessage', ""); |
| return false; |
| } |
| |
| }, |
| |
| checkNameNodeRpcUrlErrors: function () { |
| if (!this.get('isSubmitted1')){ |
| this.set('model.nameNodeRpcUrlErrorMessage', ""); |
| return false; |
| } |
| var nameNodeRpcUrl = this.get('model.targetCluster.nameNodeRpcUrl'); |
| if (!nameNodeRpcUrl || nameNodeRpcUrl.trim() === "") { |
| this.set('model.isNameNodeRpcUrlError', true); |
| this.set('model.nameNodeRpcUrlErrorMessage', Em.I18n.t('mirroring.required.error')); |
| return true; |
| } |
| else { |
| this.set('model.nameNodeRpcUrlErrorMessage', ""); |
| return false; |
| } |
| |
| }, |
| |
| checkOozieServerUrlErrors: function () { |
| if (!this.get('isSubmitted1')){ |
| this.set('model.oozieServerUrlErrorMessage', ""); |
| return false; |
| } |
| var oozieServerUrl = this.get('model.targetCluster.oozieServerUrl'); |
| if (!oozieServerUrl || oozieServerUrl.trim() === "") { |
| this.set('model.isOozieServerUrlError', true); |
| this.set('model.oozieServerUrlErrorMessage', Em.I18n.t('mirroring.required.error')); |
| return true; |
| } |
| else { |
| this.set('model.oozieServerUrlErrorMessage', ""); |
| return false; |
| } |
| |
| }, |
| |
| checkClusterNameErrors: function () { |
| if (!this.get('isSubmitted1')){ |
| this.set('model.clusterNameErrorMessage', ""); |
| return false; |
| } |
| var clusterName = this.get('model.targetCluster.clusterName'); |
| if (!clusterName || clusterName.trim() === "") { |
| this.set('model.isClusterNameError', true); |
| this.set('model.clusterNameErrorMessage', Em.I18n.t('mirroring.required.error')); |
| return true; |
| } |
| else { |
| this.set('model.clusterNameErrorMessage', ""); |
| return false; |
| } |
| |
| }, |
| |
| setOriginalRecord: function (targetClusterRecord) { |
| this.set('model.originalRecord', targetClusterRecord); |
| }, |
| |
| setTargetCluster: function (targetClusterRecord) { |
| var targetCluster = Ember.Object.create({ |
| id: targetClusterRecord.get('id'), |
| clusterName: targetClusterRecord.get('clusterName'), |
| nameNodeWebUrl: targetClusterRecord.get('nameNodeWebUrl'), |
| nameNodeRpcUrl: targetClusterRecord.get('nameNodeRpcUrl'), |
| oozieServerUrl: targetClusterRecord.get('oozieServerUrl') |
| }); |
| |
| this.set('model.targetCluster', targetCluster); |
| }, |
| |
| |
| createTargetCluster: function () { |
| var targetCluster = Ember.Object.create({ |
| clusterName: null, |
| nameNodeWebUrl: null, |
| nameNodeRpcUrl: null, |
| oozieServerUrl: null |
| }); |
| this.set('model.targetCluster', targetCluster); |
| return targetCluster; |
| |
| /* For future (but on record objects , not on pojos): |
| targetCluster.on('didUpdate', function() { |
| console.log("------Updated!"); |
| }); |
| targetCluster.on('didDelete', function() { |
| console.log("------Deleted!"); |
| }); |
| targetCluster.on('didCreate', function() { |
| console.log("------Created!"); |
| }); |
| */ |
| |
| }, |
| getTargetCluster: function () { |
| return this.get('content.targetCluster'); |
| }, |
| |
| popup: null, |
| |
| /** |
| * "Delete" button handler. |
| * A DataSet |
| */ |
| deleteTargetCluster: function () { |
| var self = this; |
| App.showConfirmationPopup(function () { |
| var originalRecord = self.get('model.originalRecord'); |
| originalRecord.deleteRecord(); |
| originalRecord.get("transaction").commit(); |
| self.get('popup').hide(); |
| App.router.transitionTo('main.mirroring.index'); |
| }); |
| } |
| |
| |
| |
| }); |