/** * userLinksManage * * release 1.0.0 */ function userLinksManage (opt, keys, token) { var options = { ajaxUrl:'plugins/AMenuManager/amm_ajax.php' }, translatedKeys= { g002_ok:'g002_ok', g002_cancel:'g002_cancel', g002_loading: 'g002_loading', g002_editoflink : 'g002_editoflink', g002_createoflink : 'g002_createoflink' }, properties = { id:'', token:token }, /** * load links list */ load = function () { $("#iList table.littlefont").sortable('destroy'); $('#iList').html("
"+translatedKeys.g002_loading+"
"); $.ajax( { type: "POST", url: options.ajaxUrl, async: true, data: { ajaxfct:"admin.links.list" }, success: function(msg) { $("#iList").html(msg); $('#iListOrderButtons').css("display", 'none'); $("#iList").sortable( { connectWith: '.connectedSortable', axis: "y", cursor: 'move', opacity:0.6, items: 'li', tolerance:'pointer', update: function () { $('#iListOrderButtons').css("display", 'block'); } } ); } } ); }, /** * edit or create a new link * * @param String linkId : if empty, assume to create a new link */ edit = function (linkId) { properties.id=linkId; $('#iDialogEdit') .dialog('option', 'title', (linkId=='')?translatedKeys.g002_createoflink:translatedKeys.g002_editoflink) .dialog("open"); }, /** * remove a link * * @param String linkId : link to remove */ remove = function (linkId) { properties.id=linkId; $.ajax( { type: "POST", url: options.ajaxUrl, async: true, data: { ajaxfct:"admin.links.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_label').inputText('value', ''); $('#iamm_url').inputText('value', ''); $('#iamm_icon').inputList('value', ':first'); $('#iamm_mode').inputList('value', ':first'); $('#iamm_visible').inputRadio('value', 'y'); $('#iamm_access_users').inputCheckbox('value', ':all'); $('#iamm_access_groups').inputCheckbox('value', ':all'); } else { tmp=$.parseJSON(items); $('#iamm_label').inputText('value', tmp.label); $('#iamm_url').inputText('value', tmp.url); $('#iamm_icon').inputList('value', tmp.icon); $('#iamm_mode').inputList('value', tmp.mode); $('#iamm_visible').inputRadio('value', tmp.visible); $('#iamm_access_users').inputCheckbox('value', '', tmp.accessUsers); $('#iamm_access_users').inputCheckbox('value', ':invert'); $('#iamm_access_groups').inputCheckbox('value', '', tmp.accessGroups); $('#iamm_access_groups').inputCheckbox('value', ':invert'); } }, /** * update order on server */ doUpdateOrder = function () { var datas={ links:[] }, order=0; $('#iList li.connectedSortable').each( function () { datas.links.push( { id:$(this).attr('linkId'), order:order } ); order++; } ); $.ajax( { type: "POST", url: options.ajaxUrl, async: true, data: { ajaxfct:"admin.links.order", token:properties.token, datas:datas }, success: function(msg) { displayProcessing(false); returned=msg.split('!'); if(returned[0]=='OK') { $('#iListOrderButtons').css("display", 'none'); } else { $('#'+returned[0]).addClass('error'); alert(returned[1]); } } } ); }, /** * update values on server */ doUpdate = function () { displayProcessing(true); // build datas var datas = { label:$('#iamm_label').inputText('value'), url:$('#iamm_url').inputText('value'), icon:$('#iamm_icon').inputList('value'), mode:$('#iamm_mode').inputList('value'), visible:$('#iamm_visible').inputRadio('value'), accessUsers:$('#iamm_access_users').inputCheckbox('value'), accessGroups:$('#iamm_access_groups').inputCheckbox('value') }; $.ajax( { type: "POST", url: options.ajaxUrl, async: true, data: { ajaxfct:"admin.links.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 () { var buttons={}; buttons[translatedKeys.g002_ok]=function() { if(checkValidity()) doUpdate(); }; buttons[translatedKeys.g002_cancel]=function() { $('#iDialogEdit').dialog("close"); }; $('#iDialogEdit') .dialog( { autoOpen:false, width:600, height:400, 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.links.get", id:properties.id }, success: function(msg) { updateDialog(msg); displayProcessing(false); } } ); } else { updateDialog(''); } } ); $('#iamm_label').inputText( { displayChar:50, maxChar:50 } ); $('#iamm_url').inputText( { displayChar:50, maxChar:255 } ); $('#iamm_icon').inputList( { listMaxWidth:250, colsWidth:[22,200], colsCss:['iconColImg','iconColText'], popupMode:'mouseout' } ); $('#iamm_mode').inputList({popupMode:'mouseout'}); $('#iamm_visible').inputRadio(); $('#iamm_access_users').inputCheckbox({returnMode:'notSelected'}); $('#iamm_access_groups').inputCheckbox({returnMode:'notSelected'}); load(); }; $.extend(options, opt); $.extend(translatedKeys, keys); this.load = function () { load(); }; this.edit = function (linkId) { edit(linkId); }; this.remove = function (linkId) { remove(linkId); }; this.doUpdateOrder = function () { doUpdateOrder(); }; init(); }