123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- var ScheduledTaskPage = {
- onPageShow: function () {
- ScheduledTaskPage.refreshScheduledTask();
- },
- refreshScheduledTask: function () {
- Dashboard.showLoadingMsg();
- var id = getParameterByName('id');
- ApiClient.getScheduledTask(id).done(ScheduledTaskPage.loadScheduledTask);
- },
- loadScheduledTask: function (task) {
- Dashboard.setPageTitle(task.Name);
- $('#pTaskDescription', $.mobile.activePage).html(task.Description);
- ScheduledTaskPage.loadTaskTriggers(task);
- Dashboard.hideLoadingMsg();
- },
- loadTaskTriggers: function (task) {
- var html = '';
- html += '<li data-role="list-divider"><h3>Task Triggers</h3></li>';
- for (var i = 0, length = task.Triggers.length; i < length; i++) {
- var trigger = task.Triggers[i];
- html += '<li>';
- html += '<a href="#">';
- html += ScheduledTaskPage.getTriggerFriendlyName(trigger);
- html += '</a>';
- html += '<a href="#" onclick="ScheduledTaskPage.confirmDeleteTrigger(' + i + ');">Delete</a>';
- html += '</li>';
- }
- $('#ulTaskTriggers', $.mobile.activePage).html(html).listview('refresh');
- },
- getTriggerFriendlyName: function (trigger) {
- if (trigger.Type == 'DailyTrigger') {
- return 'Daily at ' + ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks);
- }
- if (trigger.Type == 'WeeklyTrigger') {
- return trigger.DayOfWeek + 's at ' + ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks);
- }
- if (trigger.Type == 'SystemEventTrigger') {
- if (trigger.SystemEvent == 'WakeFromSleep') {
- return 'On wake from sleep';
- }
- }
- if (trigger.Type == 'IntervalTrigger') {
- var hours = trigger.IntervalTicks / 36000000000;
- if (hours == .25) {
- return "Every 15 minutes";
- }
- if (hours == .5) {
- return "Every 30 minutes";
- }
- if (hours == .75) {
- return "Every 45 minutes";
- }
- if (hours == 1) {
- return "Every hour";
- }
- return 'Every ' + hours + ' hours';
- }
- if (trigger.Type == 'StartupTrigger') {
- return 'On application startup';
- }
- return trigger.Type;
- },
- getDisplayTime: function (ticks) {
- var hours = ticks / 36000000000;
- if (hours < 1) {
- hours = 0;
- }
- hours = parseInt(hours);
- ticks -= (hours * 36000000000);
- var minutes = parseInt(ticks / 600000000);
- var suffix = "am";
- if (hours > 11) {
- suffix = "pm";
- }
- hours = hours % 12;
- if (hours == 0) {
- hours = 12;
- }
- if (minutes < 10) {
- minutes = '0' + minutes;
- }
- return hours + ':' + minutes + ' ' + suffix;
- },
- showAddTriggerPopup: function () {
- var page = $.mobile.activePage;
- $('#selectTriggerType', page).val('DailyTrigger').trigger('change').selectmenu('refresh');
- $('#popupAddTrigger', page).popup("open").on("popupafterclose", function () {
- $('#addTriggerForm', page).off("submit");
- $(this).off("popupafterclose");
- });
- $('#addTriggerForm', page).on('submit', function () {
- ScheduledTaskPage.addTrigger();
- return false;
- });
- },
- addTrigger: function () {
- Dashboard.showLoadingMsg();
- var id = getParameterByName('id');
- ApiClient.getScheduledTask(id).done(function (task) {
- task.Triggers.push(ScheduledTaskPage.getTriggerToAdd());
- ApiClient.updateScheduledTaskTriggers(task.Id, task.Triggers).done(function () {
- $('#popupAddTrigger').popup('close');
- ScheduledTaskPage.refreshScheduledTask();
- });
- });
- },
- confirmDeleteTrigger: function (index) {
- Dashboard.confirm("Are you sure you wish to delete this task trigger?", "Delete Task Trigger", function (result) {
- if (result) {
- ScheduledTaskPage.deleteTrigger(index);
- }
- });
- },
- deleteTrigger: function (index) {
- Dashboard.showLoadingMsg();
- var id = getParameterByName('id');
- ApiClient.getScheduledTask(id).done(function (task) {
- task.Triggers.remove(index);
- ApiClient.updateScheduledTaskTriggers(task.Id, task.Triggers).done(function () {
- ScheduledTaskPage.refreshScheduledTask();
- });
- });
- },
- refreshTriggerFields: function (triggerType) {
- var page = $.mobile.activePage;
- if (triggerType == 'DailyTrigger') {
- $('#fldTimeOfDay', page).show();
- $('#fldDayOfWeek', page).hide();
- $('#fldSelectSystemEvent', page).hide();
- $('#fldSelectInterval', page).hide();
- $('#txtTimeOfDay', page).attr('required', 'required');
- }
- else if (triggerType == 'WeeklyTrigger') {
- $('#fldTimeOfDay', page).show();
- $('#fldDayOfWeek', page).show();
- $('#fldSelectSystemEvent', page).hide();
- $('#fldSelectInterval', page).hide();
- $('#txtTimeOfDay', page).attr('required', 'required');
- }
- else if (triggerType == 'SystemEventTrigger') {
- $('#fldTimeOfDay', page).hide();
- $('#fldDayOfWeek', page).hide();
- $('#fldSelectSystemEvent', page).show();
- $('#fldSelectInterval', page).hide();
- $('#txtTimeOfDay', page).removeAttr('required');
- }
- else if (triggerType == 'IntervalTrigger') {
- $('#fldTimeOfDay', page).hide();
- $('#fldDayOfWeek', page).hide();
- $('#fldSelectSystemEvent', page).hide();
- $('#fldSelectInterval', page).show();
- $('#txtTimeOfDay', page).removeAttr('required');
- }
- else if (triggerType == 'StartupTrigger') {
- $('#fldTimeOfDay', page).hide();
- $('#fldDayOfWeek', page).hide();
- $('#fldSelectSystemEvent', page).hide();
- $('#fldSelectInterval', page).hide();
- $('#txtTimeOfDay', page).removeAttr('required');
- }
- },
- getTriggerToAdd: function () {
- var page = $.mobile.activePage;
- var trigger = {
- Type: $('#selectTriggerType', page).val()
- };
- if (trigger.Type == 'DailyTrigger') {
- trigger.TimeOfDayTicks = ScheduledTaskPage.getTimeOfDayTicks($('#txtTimeOfDay', page).val());
- }
- else if (trigger.Type == 'WeeklyTrigger') {
- trigger.DayOfWeek = $('#selectDayOfWeek', page).val();
- trigger.TimeOfDayTicks = ScheduledTaskPage.getTimeOfDayTicks($('#txtTimeOfDay', page).val());
- }
- else if (trigger.Type == 'SystemEventTrigger') {
- trigger.SystemEvent = $('#selectSystemEvent', page).val();
- }
- else if (trigger.Type == 'IntervalTrigger') {
- trigger.IntervalTicks = $('#selectInterval', page).val();
- }
- return trigger;
- },
- getTimeOfDayTicks: function (val) {
- var vals = val.split(':');
- var hours = vals[0];
- var minutes = vals[1];
- // Add hours
- var ticks = hours * 60 * 60 * 1000 * 10000;
- ticks += minutes * 60 * 1000 * 10000;
- return ticks;
- }
- };
- $(document).on('pageshow', "#scheduledTaskPage", ScheduledTaskPage.onPageShow);
|