190 lines
9.4 KiB
JavaScript
190 lines
9.4 KiB
JavaScript
/*+***********************************************************************************
|
|
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
|
* ("License"); You may not use this file except in compliance with the License
|
|
* The Original Code is: vtiger CRM Open Source
|
|
* The Initial Developer of the Original Code is vtiger.
|
|
* Portions created by vtiger are Copyright (C) vtiger.
|
|
* All Rights Reserved.
|
|
*************************************************************************************/
|
|
|
|
|
|
Vtiger_List_Js("Calendar_List_Js",{
|
|
|
|
triggerMassEdit : function(massEditUrl) {
|
|
Vtiger_List_Js.triggerMassAction(massEditUrl, function(container){
|
|
var massEditForm = container.find('#massEdit');
|
|
massEditForm.validationEngine(app.validationEngineOptions);
|
|
var listInstance = Vtiger_List_Js.getInstance();
|
|
var editInstance = Vtiger_Edit_Js.getInstance();
|
|
listInstance.registerRecordAccessCheckEvent(massEditForm);
|
|
editInstance.registerBasicEvents(jQuery(container));
|
|
listInstance.postMassEdit(container);
|
|
});
|
|
},
|
|
|
|
triggerImportAction : function (importUrl) {
|
|
var progressIndicatorElement = jQuery.progressIndicator();
|
|
AppConnector.request(importUrl).then(
|
|
function(data) {
|
|
progressIndicatorElement.progressIndicator({'mode' : 'hide'});
|
|
if(data) {
|
|
app.showModalWindow(data, function(data){
|
|
jQuery('#ical_import').validationEngine(app.validationEngineOptions);
|
|
});
|
|
}
|
|
}
|
|
);
|
|
},
|
|
|
|
triggerExportAction : function (importUrl) {
|
|
var progressIndicatorElement = jQuery.progressIndicator();
|
|
AppConnector.request(importUrl).then(
|
|
function(data) {
|
|
progressIndicatorElement.progressIndicator({'mode' : 'hide'});
|
|
if(data) {
|
|
app.showModalWindow(data, function(data){
|
|
});
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
},{
|
|
|
|
registerHoldFollowupOnEvent : function(){
|
|
var thisInstance = this;
|
|
var listViewContentDiv = this.getListViewContentContainer();
|
|
listViewContentDiv.on('click','.holdFollowupOn',function(e){
|
|
var elem = jQuery(e.currentTarget);
|
|
var recordId = elem.closest('tr').data('id');
|
|
|
|
var url = 'index.php?module=Calendar&view=QuickCreateFollowupAjax&record='+recordId;
|
|
var progressIndicatorInstance = jQuery.progressIndicator({});
|
|
AppConnector.request(url).then(
|
|
function(data){
|
|
if(data){
|
|
progressIndicatorInstance.hide();
|
|
app.showModalWindow(data, function(data){
|
|
var createFollowupForm = data.find('form.followupCreateView');
|
|
createFollowupForm.validationEngine(app.validationEngineOptions);
|
|
app.registerEventForTimeFields(createFollowupForm);
|
|
//Form submit
|
|
createFollowupForm.submit(function(event){
|
|
var createButton = jQuery(this).find('button.btn-success');
|
|
createButton.attr('disabled','disabled');
|
|
progressIndicatorInstance = jQuery.progressIndicator({});
|
|
event.preventDefault();
|
|
var result = createFollowupForm.validationEngine('validate');
|
|
if(!result){
|
|
createButton.removeAttr('disabled');
|
|
progressIndicatorInstance.hide();
|
|
return false;
|
|
}
|
|
var moduleName = jQuery(this).find("[name='module']").val();
|
|
var recordId = jQuery(this).find("[name='record']").val();
|
|
var followupStartDate = jQuery(this).find("[name='followup_date_start']").val();
|
|
var followupStartTime = jQuery(this).find("[name='followup_time_start']").val();
|
|
var action = jQuery(this).find("[name='action']").val();
|
|
var mode = jQuery(this).find("[name='mode']").val();
|
|
var defaultCallDuration = jQuery(this).find("[name='defaultCallDuration']").val();
|
|
var defaultOtherEventDuration = jQuery(this).find("[name='defaultOtherEventDuration']").val();
|
|
var params = {
|
|
module : moduleName,
|
|
action : action,
|
|
mode : mode,
|
|
record : recordId,
|
|
followup_date_start : followupStartDate,
|
|
followup_time_start : followupStartTime,
|
|
defaultOtherEventDuration : defaultOtherEventDuration,
|
|
defaultCallDuration : defaultCallDuration
|
|
}
|
|
AppConnector.request(params).then(function(data){
|
|
app.hideModalWindow();
|
|
progressIndicatorInstance.hide();
|
|
if(data['result'] && data['result'].created){
|
|
//Update listview and pagination
|
|
var orderBy = jQuery('#orderBy').val();
|
|
var sortOrder = jQuery("#sortOrder").val();
|
|
var urlParams = {
|
|
"orderby": orderBy,
|
|
"sortorder": sortOrder
|
|
}
|
|
jQuery('#recordsCount').val('');
|
|
jQuery('#totalPageCount').text('');
|
|
thisInstance.getListViewRecords(urlParams).then(function(){
|
|
thisInstance.updatePagination();
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
}
|
|
else{
|
|
progressIndicatorInstance.hide();
|
|
Vtiger_Helper_Js.showPnotify(app.vtranslate('JS_NO_EDIT_PERMISSION'));
|
|
}
|
|
});
|
|
e.stopPropagation();
|
|
});
|
|
},
|
|
|
|
registerMarkAsHeldEvent : function(){
|
|
var thisInstance = this;
|
|
var listViewContentDiv = this.getListViewContentContainer();
|
|
listViewContentDiv.on('click','.markAsHeld',function(e){
|
|
var elem = jQuery(e.currentTarget);
|
|
var recordId = elem.closest('tr').data('id');
|
|
var message = app.vtranslate('JS_CONFIRM_MARK_AS_HELD');
|
|
Vtiger_Helper_Js.showConfirmationBox({'message' : message}).then(
|
|
function(e) {
|
|
var params = {
|
|
module : "Calendar",
|
|
action : "SaveFollowupAjax",
|
|
mode : "markAsHeldCompleted",
|
|
record : recordId
|
|
}
|
|
AppConnector.request(params).then(function(data){
|
|
if(data['error']){
|
|
var param = {text:app.vtranslate('JS_PERMISSION_DENIED')};
|
|
Vtiger_Helper_Js.showPnotify(param);
|
|
}
|
|
else if(data['result'].valid && data['result'].markedascompleted){
|
|
//Update listview and pagination
|
|
var orderBy = jQuery('#orderBy').val();
|
|
var sortOrder = jQuery("#sortOrder").val();
|
|
var urlParams = {
|
|
"orderby": orderBy,
|
|
"sortorder": sortOrder
|
|
}
|
|
jQuery('#recordsCount').val('');
|
|
jQuery('#totalPageCount').text('');
|
|
thisInstance.getListViewRecords(urlParams).then(function(){
|
|
thisInstance.updatePagination();
|
|
});
|
|
if(data['result'].activitytype == 'Task')
|
|
var param = {text:app.vtranslate('JS_TODO_MARKED_AS_COMPLETED')};
|
|
else
|
|
var param = {text:app.vtranslate('JS_EVENT_MARKED_AS_HELD')};
|
|
Vtiger_Helper_Js.showMessage(param);
|
|
}
|
|
else{
|
|
var param = {text:app.vtranslate('JS_FUTURE_EVENT_CANNOT_BE_MARKED_AS_HELD')};
|
|
Vtiger_Helper_Js.showPnotify(param);
|
|
}
|
|
});
|
|
},
|
|
function(error, err){
|
|
return false;
|
|
});
|
|
e.stopPropagation();
|
|
});
|
|
},
|
|
|
|
registerEvents : function(){
|
|
this._super();
|
|
this.registerHoldFollowupOnEvent();
|
|
this.registerMarkAsHeldEvent();
|
|
}
|
|
|
|
});
|