dashboard-ui/scheduledtasks/scheduledtasktriggereditor.js
2023-08-31 15:30:17 +02:00

1 line
5.9 KiB
JavaScript

define(["exports","./../modules/dialoghelper/dialoghelper.js","./../modules/layoutmanager.js","./../modules/common/globalize.js","./../modules/common/datetime.js","./../modules/focusmanager.js"],function(_exports,_dialoghelper,_layoutmanager,_globalize,_datetime,_focusmanager){function onSubmit(e){e.preventDefault();var instance=this,options=instance.options,trigger=options.trigger,apiClient=(!function(form,trigger){Object.assign(trigger,function(form){var triggerType=form.querySelector(".selectTriggerType").value,trigger={TriggerType:triggerType};"DailyTrigger"===triggerType?trigger.TimeOfDayTicks=form.querySelector(".selectTimeOfDay").value:"WeeklyTrigger"===triggerType?(trigger.DayOfWeek=form.querySelector(".selectDayOfWeek").value,trigger.TimeOfDayTicks=form.querySelector(".selectTimeOfDay").value):"SystemEventTrigger"===triggerType?trigger.SystemEvent=form.querySelector(".selectSystemEvent").value:"IntervalTrigger"===triggerType&&(trigger.IntervalTicks=form.querySelector(".selectInterval").value);triggerType=form.querySelector(".txtTimeLimit").value||"0";return triggerType=36e9*parseFloat(triggerType),trigger.MaxRuntimeTicks=triggerType||null,trigger}(form))}(instance.context,trigger),options.apiClient),scheduledTaskId=trigger.ScheduledTaskId;apiClient.getScheduledTask(scheduledTaskId).then(function(item){options.isNewTrigger&&item.Triggers.push(trigger),apiClient.updateScheduledTaskTriggers(scheduledTaskId,item.Triggers).then(function(){instance.closeDialog()})})}function ScheduledTaskTriggerEditor(){}function fillTimeOfDay(select){for(var ticks,now,options=[],i=0;i<864e5;i+=9e5)options.push({name:(ticks=1e4*i,now=void 0,ticks/=1e4,(now=new Date).setHours(0,0,0,0),now.setTime(now.getTime()+ticks),_datetime.default.getDisplayTime(now)),value:1e4*i});select.innerHTML=options.map(function(o){return'<option value="'+o.value+'">'+o.name+"</option>"}).join("")}function onOpened(){_focusmanager.default.autoFocus(this,{skipIfNotEnabled:!0})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles","formDialogStyle","material-icons"]),ScheduledTaskTriggerEditor.prototype.show=function(options){this.options=options;var instance=this;return require(["text!./scheduledtasks/scheduledtasktriggereditor.template.html"]).then(function(responses){var responses=responses[0],dialogOptions=(instance.hasChanges=!1,{removeOnClose:!(instance.newStreamIndex=null),scrollY:!1,autoFocus:!1}),dlg=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="medium-tall",_dialoghelper.default.createDialog(dialogOptions)),form=((instance.context=dlg).classList.add("formDialog"),dlg.innerHTML=_globalize.default.translateDocument(responses,"sharedcomponents"),dlg.querySelector("form")),dialogOptions=(form.addEventListener("submit",onSubmit.bind(instance)),options.trigger);dialogOptions.TriggerType||(dialogOptions.TriggerType="DailyTrigger",options.isNewTrigger=!0),fillTimeOfDay(form.querySelector(".selectTimeOfDay"));for(var elems=form.querySelectorAll(".selectDayOfWeek option"),date=new Date;0<date.getDay();)date.setDate(date.getDate()-1);for(var i=0,length=elems.length;i<length;i++)elems[i].innerHTML=_datetime.default.toLocaleDateString(date,{weekday:"long"}),date.setDate(date.getDate()+1);return form.querySelector(".selectTriggerType").addEventListener("change",function(){var context,triggerType;context=form,"DailyTrigger"===(triggerType=this.value)?(context.querySelector(".fldTimeOfDay").classList.remove("hide"),context.querySelector(".fldDayOfWeek").classList.add("hide"),context.querySelector(".fldSelectSystemEvent").classList.add("hide"),context.querySelector(".fldSelectInterval").classList.add("hide"),context.querySelector(".selectTimeOfDay").setAttribute("required","required")):"WeeklyTrigger"===triggerType?(context.querySelector(".fldTimeOfDay").classList.remove("hide"),context.querySelector(".fldDayOfWeek").classList.remove("hide"),context.querySelector(".fldSelectSystemEvent").classList.add("hide"),context.querySelector(".fldSelectInterval").classList.add("hide"),context.querySelector(".selectTimeOfDay").setAttribute("required","required")):"SystemEventTrigger"===triggerType?(context.querySelector(".fldTimeOfDay").classList.add("hide"),context.querySelector(".fldDayOfWeek").classList.add("hide"),context.querySelector(".fldSelectSystemEvent").classList.remove("hide"),context.querySelector(".fldSelectInterval").classList.add("hide"),context.querySelector(".selectTimeOfDay").removeAttribute("required")):"IntervalTrigger"===triggerType?(context.querySelector(".fldTimeOfDay").classList.add("hide"),context.querySelector(".fldDayOfWeek").classList.add("hide"),context.querySelector(".fldSelectSystemEvent").classList.add("hide"),context.querySelector(".fldSelectInterval").classList.remove("hide"),context.querySelector(".selectTimeOfDay").removeAttribute("required")):"StartupTrigger"===triggerType&&(context.querySelector(".fldTimeOfDay").classList.add("hide"),context.querySelector(".fldDayOfWeek").classList.add("hide"),context.querySelector(".fldSelectSystemEvent").classList.add("hide"),context.querySelector(".fldSelectInterval").classList.add("hide"),context.querySelector(".selectTimeOfDay").removeAttribute("required"))}),function(form,trigger){form.querySelector(".selectTriggerType").value=trigger.TriggerType,form.querySelector(".selectTriggerType").dispatchEvent(new CustomEvent("change",{bubbles:!0}))}(form,dialogOptions),dlg.querySelector(".btnCancel").addEventListener("click",function(){_dialoghelper.default.close(dlg)}),dlg.addEventListener("opened",onOpened),_dialoghelper.default.open(dlg)})},ScheduledTaskTriggerEditor.prototype.closeDialog=function(){_dialoghelper.default.close(this.context)},ScheduledTaskTriggerEditor.prototype.pause=function(){},ScheduledTaskTriggerEditor.prototype.destroy=function(){this.pause(),this.options=null,this.context=null},_exports.default={show:function(options){var editor=new ScheduledTaskTriggerEditor;return editor.show(options).then(function(result){return editor.destroy(),Promise.resolve(result)})}}});