Repository: ambari Updated Branches: refs/heads/branch-2.5 ae3719754 -> bffd2644c
AMBARI-20166. Workflow Manager. Nominal time should accept variables.(Padma Priya N via gauravn7) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/bffd2644 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/bffd2644 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/bffd2644 Branch: refs/heads/branch-2.5 Commit: bffd2644cc7647564cbe3bdbb8a2831b37c6bfb5 Parents: ae37197 Author: Gaurav Nagar <grv...@gmail.com> Authored: Fri Feb 24 22:39:13 2017 +0530 Committer: Gaurav Nagar <grv...@gmail.com> Committed: Fri Feb 24 22:39:51 2017 +0530 ---------------------------------------------------------------------- .../resources/ui/app/components/sla-info.js | 37 -------------------- .../resources/ui/app/domain/mapping-utils.js | 20 +++++++++-- .../main/resources/ui/app/domain/sla-info.js | 12 +++++-- .../ui/app/templates/components/sla-info.hbs | 12 ++----- 4 files changed, 30 insertions(+), 51 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/bffd2644/contrib/views/wfmanager/src/main/resources/ui/app/components/sla-info.js ---------------------------------------------------------------------- diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/components/sla-info.js b/contrib/views/wfmanager/src/main/resources/ui/app/components/sla-info.js index bcc209b..be5d6f9 100644 --- a/contrib/views/wfmanager/src/main/resources/ui/app/components/sla-info.js +++ b/contrib/views/wfmanager/src/main/resources/ui/app/components/sla-info.js @@ -19,24 +19,6 @@ import { validator, buildValidations } from 'ember-cp-validations'; import { v1, v4 } from "ember-uuid"; const Validations = buildValidations({ - 'nominalTime': { - validators: [ - validator('presence', { - presence : true, - disabled(model, attribute) { - return !model.get('slaEnabled'); - }, - dependentKeys : ['slaEnabled'] - }), - validator('date', { - disabled(model, attribute) { - return !model.get('slaEnabled'); - }, - format: 'MM/DD/YYYY hh:mm A', - dependentKeys : ['slaEnabled'] - }), - ] - }, 'slaInfo.shouldEnd.time': { validators: [ validator('presence', { @@ -125,14 +107,6 @@ export default Ember.Component.extend(Validations, { this.set('slaEnabled', false); } Ember.addObserver(this, 'slaEnabled', this, this.slaObserver); - if(this.get('slaInfo.nominalTime')){ - var date = new Date(this.get('slaInfo.nominalTime')); - if(date && !isNaN(date.getTime())){ - var utcDate = new Date(date.getTime() + date.getTimezoneOffset()*60*1000); - this.set('nominalTime', moment(utcDate).format("MM/DD/YYYY hh:mm A")); - } - } - Ember.addObserver(this, 'nominalTime', this, this.nominalTimeObserver); this.set('collapseId', v1()); }.on('init'), alertEventsObserver : function(){ @@ -142,24 +116,13 @@ export default Ember.Component.extend(Validations, { onDestroy : function(){ Ember.removeObserver(this, 'alertEvents.@each.alertEnabled', this, this.alertEventsObserver); Ember.removeObserver(this, 'slaEnabled', this, this.slaObserver); - Ember.removeObserver(this, 'nominalTime', this, this.nominalTimeObserver); }.on('willDestroyElement'), elementsInserted : function() { - this.$('input[name="nominalTime"]').datetimepicker({ - useCurrent: false, - showClose : true, - format: 'MM/DD/YYYY hh:mm A', - defaultDate : this.get('slaInfo.nominalTime') - }); this.sendAction('register','slaInfo', this); if(this.get('slaEnabled')){ this.$('#slaCollapse').collapse('show'); } }.on('didInsertElement'), - nominalTimeObserver : function(){ - var date = new Date(this.get('nominalTime')); - this.set('slaInfo.nominalTime',moment(date).format("YYYY-MM-DDTHH:mm")+'Z'); - }, slaObserver : function(){ if(this.get('slaEnabled')){ this.$('#slaCollapse').collapse('show'); http://git-wip-us.apache.org/repos/asf/ambari/blob/bffd2644/contrib/views/wfmanager/src/main/resources/ui/app/domain/mapping-utils.js ---------------------------------------------------------------------- diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/domain/mapping-utils.js b/contrib/views/wfmanager/src/main/resources/ui/app/domain/mapping-utils.js index 153b538..2b45c9e 100644 --- a/contrib/views/wfmanager/src/main/resources/ui/app/domain/mapping-utils.js +++ b/contrib/views/wfmanager/src/main/resources/ui/app/domain/mapping-utils.js @@ -216,7 +216,7 @@ var SLAMapper= Ember.Object.extend({ var slaPrefix="sla"; slaInfo["__prefix"]=slaPrefix; if (sla.nominalTime){ - slaInfo[slaPrefix+":"+"nominal-time"]=sla.nominalTime; + slaInfo[slaPrefix+":"+"nominal-time"]=sla.nominalTime.value; } if (sla.shouldStart && sla.shouldStart.time){ slaInfo[slaPrefix+":"+"should-start"]="${"+sla.shouldStart.time+ "*"+sla.shouldStart.unit+"}"; @@ -245,7 +245,7 @@ var SLAMapper= Ember.Object.extend({ handleImport(domain,infoJson,key){ var sla=domain[key]=SlaInfo.create({}); if (infoJson["nominal-time"] && infoJson["nominal-time"].__text){ - sla.nominalTime=infoJson["nominal-time"].__text; + sla.nominalTime= this.extractDateField(infoJson["nominal-time"].__text); } if (infoJson["alert-contact"]&& infoJson["alert-contact"].__text){ sla.alertContact=infoJson["alert-contact"].__text; @@ -273,6 +273,20 @@ var SLAMapper= Ember.Object.extend({ parseSlaTime(str,key){ var timePeriod= str.substring(str.indexOf("{")+1,str.indexOf("}")); return timePeriod.split("*"); - } + }, + extractDateField(value){ + var dateField = {}; + var date = new Date(value); + dateField.value = value; + if(isNaN(date.getTime())){ + dateField.displayValue = value; + dateField.type = 'expr'; + }else{ + dateField.type = 'date'; + var utcDate = new Date(date.getTime() + date.getTimezoneOffset()*60*1000); + dateField.displayValue = moment(utcDate).format("MM/DD/YYYY hh:mm A"); + } + return dateField; + }, }); export {MappingMixin,ConfigurationMapper,PrepareMapper,SLAMapper}; http://git-wip-us.apache.org/repos/asf/ambari/blob/bffd2644/contrib/views/wfmanager/src/main/resources/ui/app/domain/sla-info.js ---------------------------------------------------------------------- diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/domain/sla-info.js b/contrib/views/wfmanager/src/main/resources/ui/app/domain/sla-info.js index 9d90280..ceb0d27 100644 --- a/contrib/views/wfmanager/src/main/resources/ui/app/domain/sla-info.js +++ b/contrib/views/wfmanager/src/main/resources/ui/app/domain/sla-info.js @@ -24,7 +24,11 @@ var SlaInfo = Ember.Object.extend(Ember.Copyable,{ return slaInfo; }, init (){ - this.nominalTime=undefined; + this.nominalTime={ + value : undefined, + displayValue : undefined, + type : 'date' + }; this.shouldStart = { time : undefined, unit : undefined @@ -40,7 +44,11 @@ var SlaInfo = Ember.Object.extend(Ember.Copyable,{ this.alertEvents = undefined; this.alertContacts = undefined; }, - nominalTime:undefined, + nominalTime:{ + value : undefined, + displayValue : undefined, + type : 'date' + }, shouldStart : { time : undefined, unit : undefined http://git-wip-us.apache.org/repos/asf/ambari/blob/bffd2644/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/sla-info.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/sla-info.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/sla-info.hbs index 2ebc259..b9ba143 100644 --- a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/sla-info.hbs +++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/sla-info.hbs @@ -22,16 +22,10 @@ </div> <div id="{{collapseId}}" class="panel-collapse collapse panel-body"> <div class="form-group"> - <label class="control-label col-xs-2">Enabled</label> - <span class="col-xs-2 paddingtop7">{{input type="checkbox" checked=slaEnabled}}</span> - </div> - <div class="form-group"> - <label class="control-label col-xs-2 padding10">Nominal Time<span class="requiredField"> *</span></label> - <div class="col-xs-3 padding10"> - {{input type="text" name="nominalTime" title="Date in UTC Format" class="form-control" value=nominalTime placeholder="Nominal Time"}} - {{field-error model=this field='nominalTime' showErrorMessage=showErrorMessage}} - </div> + <label class="control-label col-xs-2">Enabled</label> + <span class="col-xs-2 paddingtop7">{{input type="checkbox" checked=slaEnabled}}</span> </div> + {{#date-with-expr required=true inputName="nominalTime" label="Nominal Time" inputPlaceholder="Nominal Time" dateField=slaInfo.nominalTime}}{{/date-with-expr}} <div class="form-group"> <label class="control-label col-xs-2">Should Start</label> <div class="col-xs-3">