project-modals.js
Home
/
azkaban-webserver /
src /
web /
js /
azkaban /
view /
project-modals.js
/*
* Copyright 2012 LinkedIn Corp.
*
* 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 projectView;
azkaban.ProjectView = Backbone.View.extend({
events: {
"click #project-upload-btn": "handleUploadProjectJob",
"click #project-delete-btn": "handleDeleteProject"
},
initialize: function(settings) {
},
handleUploadProjectJob: function(evt) {
console.log("click upload project");
$('#upload-project-modal').modal();
},
handleDeleteProject: function(evt) {
console.log("click delete project");
$('#delete-project-modal').modal();
},
render: function() {
}
});
var uploadProjectView;
azkaban.UploadProjectView = Backbone.View.extend({
events: {
"click #upload-project-btn": "handleCreateProject"
},
initialize: function(settings) {
console.log("Hide upload project modal error msg");
$("#upload-project-modal-error-msg").hide();
},
handleCreateProject: function(evt) {
console.log("Upload project button.");
$("#upload-project-form").submit();
},
render: function() {
}
});
var deleteProjectView;
azkaban.DeleteProjectView = Backbone.View.extend({
events: {
"click #delete-btn": "handleDeleteProject"
},
initialize: function(settings) {
},
handleDeleteProject: function(evt) {
$("#delete-form").submit();
},
render: function() {
}
});
var projectDescription;
azkaban.ProjectDescriptionView = Backbone.View.extend({
events: {
"click #project-description": "handleDescriptionEdit",
"click #project-description-btn": "handleDescriptionSave"
},
initialize: function(settings) {
console.log("project description initialize");
},
handleDescriptionEdit: function(evt) {
console.log("Edit description");
var description = null;
if ($('#project-description').hasClass('editable-placeholder')) {
description = '';
$('#project-description').removeClass('editable-placeholder');
}
else {
description = $('#project-description').text();
}
$('#project-description-edit').attr("value", description);
$('#project-description').hide();
$('#project-description-form').show();
},
handleDescriptionSave: function(evt) {
var newText = $('#project-description-edit').val();
if ($('#project-description-edit').hasClass('has-error')) {
$('#project-description-edit').removeClass('has-error');
}
var requestURL = contextURL + "/manager";
var requestData = {
"project": projectName,
"ajax":"changeDescription",
"description": newText
};
var successHandler = function(data) {
if (data.error) {
$('#project-description-edit').addClass('has-error');
alert(data.error);
return;
}
$('#project-description-form').hide();
if (newText != '') {
$('#project-description').text(newText);
}
else {
$('#project-description').text('Add project description.');
$('#project-description').addClass('editable-placeholder');
}
$('#project-description').show();
};
$.get(requestURL, requestData, successHandler, "json");
},
render: function() {
}
});
$(function() {
projectView = new azkaban.ProjectView({
el: $('#project-options')
});
uploadView = new azkaban.UploadProjectView({
el: $('#upload-project-modal')
});
deleteProjectView = new azkaban.DeleteProjectView({
el: $('#delete-project-modal')
});
projectDescription = new azkaban.ProjectDescriptionView({
el: $('#project-sidebar')
});
});