/** * userPersonnalisedBlockManage * * release 1.0.2 */ function userPersonnalisedBlockManage(opt, keys, token, initValues) { var options = { ajaxUrl:'plugins/AMenuManager/amm_ajax.php' }, translatedKeys= { g002_ok:'g002_ok', g002_cancel:'g002_cancel', g002_loading: 'g002_loading', g002_editofpersonalised : 'g002_editofpersonalised', g002_createofpersonalised : 'g002_createofpersonalised' }, properties = { id:'', token:token }, /** * load blocks list */ load = function () { $('#iList').html("
"+translatedKeys.g002_loading+"
"); $.ajax( { type: "POST", url: options.ajaxUrl, async: true, data: { ajaxfct:"admin.blocks.list", token:properties.token }, success: function(msg) { $("#iList").html(msg); } } ); }, /** * edit or create a new block * * @param String blockId : if empty, assume to create a new block */ edit = function (blockId) { properties.id=blockId; $('#iDialogEdit') .dialog('option', 'title', (blockId=='')?translatedKeys.g002_createofpersonalised:translatedKeys.g002_editofpersonalised) .dialog("open"); }, /** * remove a block * * @param String blockId : block to remove */ remove = function (blockId) { properties.id=blockId; $.ajax( { type: "POST", url: options.ajaxUrl, async: true, data: { ajaxfct:"admin.blocks.delete", id:properties.id, token:properties.token }, success: function(msg) { load(); } } ); }, /** * check validity of form */ checkValidity = function () { $('.error').removeClass('error'); ok=true; /* if($('#iamm_label').inputText('value')=='') { $('#iamm_label').inputText('isValid', false); ok=false; } if($('#iamm_url').inputText('value')=='') { $('#iamm_url').inputText('isValid', false); ok=false; } */ return(ok); }, /** * update values of the dialog box * * @param String items : json string ; if empty assume to reset all fields * with default values */ updateDialog = function (items) { if(items=='') { $('#iamm_personalised_nfo').inputText('value', ''); $('#iamm_personalised_title') .inputText('value', '') .inputText('languagesValues', ':clear'); $('#iamm_personalised_content') .inputText('value', '') .inputText('languagesValues', ':clear'); $('#iamm_personalised_visible').inputRadio('value', 'y'); } else { var tmp=$.parseJSON(items), titles={}, contents={}; for(var lang in tmp.langs) { titles[lang]=tmp.langs[lang].title; contents[lang]=tmp.langs[lang].content; } $('#iamm_personalised_nfo').inputText('value', tmp.nfo); $('#iamm_personalised_title').inputText('languagesValues', ':clear').inputText('languagesValues', titles); $('#iamm_personalised_content').inputText('languagesValues', ':clear').inputText('languagesValues', contents); $('#iamm_personalised_visible').inputRadio('value', tmp.visible); } }, /** * update values on server */ doUpdate = function () { displayProcessing(true); // build datas var langs=[], titles=$('#iamm_personalised_title').inputText('languagesValues'), contents=$('#iamm_personalised_content').inputText('languagesValues'); for(var lang in titles) { langs.push( { lang:lang, title:titles[lang], content:contents[lang] } ); } var datas = { nfo:$('#iamm_personalised_nfo').inputText('value'), visible:$('#iamm_personalised_visible').inputRadio('value'), langs:langs }; $.ajax( { type: "POST", url: options.ajaxUrl, async: true, data: { ajaxfct:"admin.blocks.set", id:properties.id, token:properties.token, datas:datas }, success: function(msg) { displayProcessing(false); if(msg.match(/^[0-9]+$/i)!=null) { // result Ok ! => close the dialog box and reload the list $('#iDialogEdit').dialog("close"); load(); } else { returned=msg.split('!'); $('#'+returned[0]).addClass('error'); alert(returned[1]); } } } ); }, /** * display or hide the processing flower */ displayProcessing = function (visible) { if(visible) { $('#iBDProcessing').css("display", "block"); } else { $('#iBDProcessing').css("display", "none"); } }, /** * initialize the object */ init = function (initValues) { var buttons={}; buttons[translatedKeys.g002_ok]=function() { if(checkValidity()) doUpdate(); }; buttons[translatedKeys.g002_cancel]=function() { $('#iDialogEdit').dialog("close"); }; $('#iDialogEdit') .dialog( { autoOpen:false, width:800, height:480, modal: true, dialogClass: 'gcBgTabSheet gcBorder', title: '', buttons:buttons } ) .bind('dialogopen', function () { if(properties.id!='') { displayProcessing(true); $.ajax( { type: "POST", url: options.ajaxUrl, async: true, data: { ajaxfct:"admin.blocks.get", token:properties.token, id:properties.id }, success: function(msg) { updateDialog(msg); displayProcessing(false); } } ); } else { updateDialog(''); } } ); $('#islang').inputList({popupMode:'mouseout', listMaxHeight:250}); $('#iamm_personalised_nfo').inputText( { displayChar:75, maxChar:255 } ); $('#iamm_personalised_title').inputText( { displayChar:75, maxChar:255, languages:initValues.langs, currentLanguage:initValues.userLang, languageSelector:'islang' } ); $('#iamm_personalised_content').inputText( { multilines:true, displayChar:70, numRows:13, languages:initValues.langs, currentLanguage:initValues.userLang, languageSelector:'islang' } ); $('#islang').inputList('value', initValues.userLang); $('#iamm_personalised_visible').inputRadio(); load(); }; $.extend(options, opt); $.extend(translatedKeys, keys); this.load = function () { load(); }; this.edit = function (linkId) { edit(linkId); }; this.remove = function (linkId) { remove(linkId); }; init(initValues); }