azkaban.schedule.panel.view.js

89 lines | 2.763 kB Blame History Raw Download
/*
 * Copyright 2012 LinkedIn, Inc
 * 
 * Licensed 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.
 */

$.namespace('azkaban');

var schedulePanelView;
azkaban.SchedulePanelView= Backbone.View.extend({
  events : {
  	"click .closeSchedule": "hideSchedulePanel",
  	"click #schedule-button": "scheduleFlow"
  },
  initialize : function(settings) {
 	$("#datepicker").css("backgroundColor", "transparent");
	$( "#datepicker" ).datepicker();
	$( "#datepicker" ).datepicker('setDate', new Date());
	$( "#datepicker" ).datepicker("hide");
  },
  render: function() {
  },
  showSchedulePanel: function() {
  	$('#scheduleModalBackground').show();
  	$('#schedule-panel').show();
  },
  hideSchedulePanel: function() {
  	$('#scheduleModalBackground').hide();
  	$('#schedule-panel').hide();
  },
  scheduleFlow: function() {
	var hourVal = $('#hour').val();
	var minutesVal = $('#minutes').val();
	var ampmVal = $('#am_pm').val();
	var timezoneVal = $('#timezone').val();
	var dateVal = $('#datepicker').val();
	var is_recurringVal = $('#is_recurring').val();
	var periodVal = $('#period').val();
	var periodUnits = $('#period_units').val();
  
  	var scheduleURL = contextURL + "/schedule"
  	
  	var scheduleData = flowExecuteDialogView.getExecutionOptionData();
  	 console.log("Creating schedule for "+projectName+"."+scheduleData.flow);
	var scheduleTime = $('#hour').val() + "," + $('#minutes').val() + "," + $('#am_pm').val() + "," + $('#timezone').val();
	var scheduleDate = $('#datepicker').val();
	var is_recurring = document.getElementById('is_recurring').checked ? 'on' : 'off'; 
	var period = $('#period').val() + $('#period_units').val();
	
	scheduleData.ajax = "scheduleFlow";
	scheduleData.projectName = projectName;
	scheduleData.scheduleTime = scheduleTime;
	scheduleData.scheduleDate = scheduleDate;
	scheduleData.is_recurring = is_recurring;
	scheduleData.period = period;

	$.post(
			scheduleURL,
			scheduleData,
			function(data) {
				if (data.error) {
					messageDialogView.show("Error Scheduling Flow", data.message);
				}
				else {
					messageDialogView.show("Flow Scheduled", data.message,
					function() {
						window.location.href = scheduleURL;
					}
					);
				}
			},
			"json"
	);
  }
});

$(function() {
	schedulePanelView =  new azkaban.SchedulePanelView({el:$('#scheduleModalBackground')});
});