Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.1
* ("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.Class('Settings_Module_Manager_Js', {
}, {
/*
* function to update the module status for the module
* @params: currentTarget - checkbox related to module.
*/
updateModuleStatus: function (currentTarget) {
var aDeferred = jQuery.Deferred();
var forModule = currentTarget.data('module');
var status = currentTarget.is(':checked');
app.helper.showProgress();
var params = {};
params['module'] = app.getModuleName();
params['parent'] = app.getParentModuleName();
params['updateStatus'] = status;
params['forModule'] = forModule;
params['action'] = 'Basic';
params['mode'] = 'updateModuleStatus';
app.request.post({'data': params}).then(
function (err, data) {
if (err === null) {
app.helper.hideProgress();
aDeferred.resolve(data);
}
},
function (error) {
app.helper.hideProgress();
//TODO : Handle error
aDeferred.reject(error);
}
);
return aDeferred.promise();
},
registerEventsForImportFromZip: function (container) {
container.on('change', '[name="acceptDisclaimer"]', function (e) {
var element = jQuery(e.currentTarget);
var importFromZip = container.find('[name="importFromZip"]');
var uploadedFile = jQuery('#moduleZip').val();
if (uploadedFile) {
jQuery('#moduleFileDetails').attr('title', uploadedFile).html(uploadedFile);
}
var disabledStatus = importFromZip.attr('disabled');
if ((element.is(':checked')) && (uploadedFile != '')) {
if (typeof disabledStatus != "undefined") {
importFromZip.removeAttr('disabled');
}
} else {
if (typeof disabledStatus == "undefined") {
importFromZip.attr('disabled', "disabled");
}
}
});
container.on('change', '[name="moduleZip"]', function (e) {
var acceptDisclaimer = container.find('[name="acceptDisclaimer"]');
if (!acceptDisclaimer.is(':checked')) {
acceptDisclaimer.trigger('click');
}
});
container.on('click', '.finishButton', function() {
window.location.href = jQuery('[data-name="VTLIB_LBL_MODULE_MANAGER"]').attr('href');
});
container.on('click', '.importModule, .updateModule', function (e) {
var element = jQuery(e.currentTarget);
var params = {};
if (element.hasClass('updateModule')) {
params = {
'module': app.getModuleName(),
'parent': app.getParentModuleName(),
'action': 'Basic',
'mode': 'updateUserModuleStep3'
};
} else if (element.hasClass('importModule')) {
params = {
'module': app.getModuleName(),
'parent': app.getParentModuleName(),
'action': 'Basic',
'mode': 'importUserModuleStep3'
};
}
params['module_import_file'] = container.find('[name="module_import_file"]').val();
params['module_import_type'] = container.find('[name="module_import_type"]').val();
params['module_import_name'] = container.find('[name="module_import_name"]').val();
app.helper.showProgress();
AppConnector.request(params).then(
function (data) {
app.helper.hideProgress();
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
element.addClass('hide');
var headerMessage, containerMessage;
if (element.hasClass('updateModule')) {
headerMessage = app.vtranslate('JS_UPDATE_SUCCESSFULL');
containerMessage = app.vtranslate('JS_UPDATED_MODULE');
} else if (element.hasClass('importModule')) {
headerMessage = app.vtranslate('JS_IMPORT_SUCCESSFULL');
containerMessage = app.vtranslate('JS_IMPORTED_MODULE');
}
app.helper.showSuccessNotification({'title': headerMessage, 'message': data.result.importModuleName+' '+containerMessage});
setTimeout(function() {
window.location.href = jQuery('[data-name="VTLIB_LBL_MODULE_MANAGER"]').attr('href');
}, 3000);
}
);
});
container.on('click', '.acceptLicense', function (e) {
var element = jQuery(e.currentTarget);
var saveButton = container.find('[name="saveButton"]')
if (element.is(':checked')) {
saveButton.removeAttr("disabled");
} else {
if (typeof saveButton.attr('disabled') == 'undefined') {
saveButton.attr('disabled', "disabled");
}
}
});
},
registerEvents: function (e) {
var thisInstance = this;
var container = jQuery('#moduleManagerContents');
var importFromZipContainer = jQuery('#importModules');
if (importFromZipContainer.length > 0) {
thisInstance.registerEventsForImportFromZip(importFromZipContainer);
}
//register click event for check box to update the module status
container.on('click', '[name="moduleStatus"]', function (e) {
var currentTarget = jQuery(e.currentTarget);
var moduleBlock = currentTarget.closest('.moduleManagerBlock');
var actionButtons = moduleBlock.find('.actions');
var forModule = currentTarget.data('moduleTranslation');
var moduleDetails = moduleBlock.find('.moduleImage, .moduleName');
if (currentTarget.is(':checked')) {
//show the settings button for the module.
actionButtons.removeClass('hide');
//changing opacity of the block if the module is enabled
moduleDetails.removeClass('dull');
//update the module status as enabled
thisInstance.updateModuleStatus(currentTarget).then(function (data) {
var message = forModule+' '+app.vtranslate('JS_MODULE_ENABLED');
app.helper.showSuccessNotification({'message': message});
});
} else {
//hide the settings button for the module.
actionButtons.addClass('hide');
//changing opacity of the block if the module is disabled
moduleDetails.addClass('dull');
//update the module status as disabled
thisInstance.updateModuleStatus(currentTarget).then(function (data) {
var message = forModule+' '+app.vtranslate('JS_MODULE_DISABLED');
app.helper.showSuccessNotification({'message': message});
});
var moduleManagerInstance = new Settings_Module_Manager_Js();
moduleManagerInstance.registerEvents();