From 88001efb9042bbe8b1b0c7e9c46ad0f7a0919af5 Mon Sep 17 00:00:00 2001 From: plegall Date: Fri, 8 Nov 2013 21:50:52 +0000 Subject: [PATCH] feature 1668: first draft, add a complete form to edit user properties inside the DataTable. git-svn-id: http://piwigo.org/svn/trunk@25405 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/themes/default/icon/details_close.png | Bin 0 -> 841 bytes admin/themes/default/icon/details_open.png | Bin 0 -> 881 bytes admin/themes/default/template/user_list.tpl | 208 +++++++++++++++++++- 3 files changed, 207 insertions(+), 1 deletion(-) create mode 100644 admin/themes/default/icon/details_close.png create mode 100644 admin/themes/default/icon/details_open.png diff --git a/admin/themes/default/icon/details_close.png b/admin/themes/default/icon/details_close.png new file mode 100644 index 0000000000000000000000000000000000000000..fcc23c63e22f9883bef72c9e3adae3d5ddfb35cc GIT binary patch literal 841 zcmV-P1GfB$P)DA_on|3pY;aiIaw_AzX~% z0wEzG!5U~A62!y<6#_3!Y0@BA($@0c+jVBUFF+~kfo;CbzTKH`cV=g%b|^n=hzi67 zM5UV3FcF6cUCnu^p}pjrsWm6Ug}98UR-~ZFvWN`g0Fg%+2vP1rl3*$mmwr5rOIH=?}WDABr;u?U4@YDw`9eOu1C&^?L7Z zY;1fZBc9KT-2A-Q9Uc}tJv}1T-7R)sycF4)8NstzNldzAgSOWc2V?31C|17Z<>j$J zAke}0_aQSe0l9^R;<1c^#DEC_0!d$>Do3Jo15TlYl9m;-_3M7y&8+fGbP>p=udnZ^^3rY*Ry8&@-XZS}=H{ef zDUJ>}0_oCdYHA|eDvG0BC2ghK?XIQGd^|3d(Ko2a8%4c^+ z2RQuxqA|Bf6p=-Yhg81x*8ObQBJv5%iB0 zU9{XrXRDi=!8bAj&V~kvL?Uy+VDJ@gXo|Fa=^duiBKhvUSnKK%G5>85_4~!w&Q6gS z9~Xt4ozl{)vr6y0nuGJKj&rJgrBbPcMMU#|wJ-Lc4fdkiFZ`>)vh)56_#?mow%h=n ThIkt{00000NkvXXu0mjfW_^Rc literal 0 HcmV?d00001 diff --git a/admin/themes/default/icon/details_open.png b/admin/themes/default/icon/details_open.png new file mode 100644 index 0000000000000000000000000000000000000000..6f034d0f2d5c7902dce190355b12defdc07d6c9a GIT binary patch literal 881 zcmV-%1CIQOP)P5xVIgh(4gM3Zjdy!n~2N zjD^FnHQ1(tR(9cJl^-l~RyvtO-;dMt9M4;+6T9$?ALpFs)Rcr6nirw3t>UzAPx#r5M&8N9I=W>B2)xRbt)puL>xs_c64-H@%#Or zXf!&j>$*muHOWXvHo`VD#lg6MPE~+#^!N8aRTO1|?J`J5He@S&wvbBVO8K%ZpNm8y zAIT}HC7Cxi$gY3tW-XzMtU1`kx+go?tM3CWp(Z#n*^&?X9upjrBoaWeDh>vNcO4E# z)3UM*kH0>GH%mi2IAp}6%}CKyd$~2W6jvjYwyv(OhW7UM zP7O5aPWUzq$A-}#e>#Hw16_xihIJroxfm&IbSiP6!~SxS;g5FTo6ZM`H( zlIh)&4}38nXc|&$DyX^!-nt?1)(-JKW(QQ%jr|ydxA>>z)7I8@S=`cW5N4N`m!G77 zdZMpERgp|rK~d3JRsUp;HJ6lA@hNmr@UjvF zT!Ag6;H&rZ+37vY=g+HO_-wIQtVRQvx7QEFj83+*vi=TLQ+cY^m5t3Z!D|~jv(ZlR zc>I^mX3LW^WSCo>=P5lkaGKBKE#utS*o(YFK~4deqwi1AMVd+US~dit;|^yb25sIpdZA`Wys(O1dAvo2(I ziyc~u+*C?>Z*T8&(cem%afeVS6nDGb_L8EKvNL%#5MBx6)#tXj`d$yLwBMhA-vSH(T>k(8(cOU?00000NkvXX Hu0mjf8E%'; + userDetails += '
{/literal}{'Properties'|translate}{literal}'; + userDetails += '
{/literal}{'Username'|translate}{literal}'; + userDetails += '
'+user.username+'
'; + + userDetails += '
{/literal}{'Email address'|translate}{literal}'; + userDetails += '
'; + + userDetails += '
{/literal}{'Status'|translate}{literal}'; + userDetails += '
'; + +/* + userDetails += '
{/literal}{'Groups'|translate}{literal}'; + userDetails += '
'; + // userDetails += '
'+user.groups.join(",")+''; +*/ + + userDetails += '
{/literal}{'Privacy level'|translate}{literal}'; + userDetails += '
'; + + userDetails += '
{/literal}{'High definition enabled'|translate}{literal}'; + userDetails += '
'; + jQuery.each(truefalse, function(value, label) { + var checked = ''; + if (user.enabled_high == value) { + checked = ' checked="checked"'; + } + userDetails += ''; + }); + userDetails += '
'; + + userDetails += '
{/literal}{'Preferences'|translate}{literal}'; + + userDetails += '
{/literal}{'Number of photos per page'|translate}{literal}'; + userDetails += '
'+user.nb_image_page+'
'; + + userDetails += '
{/literal}{'Theme'|translate}{literal}'; + userDetails += '
'; + + userDetails += '
{/literal}{'Language'|translate}{literal}'; + userDetails += '
'; + + userDetails += '
{/literal}{'Recent period'|translate}{literal}'; + userDetails += '
'+user.recent_period+'
'; + + userDetails += '
{/literal}{'Expand all albums'|translate}{literal}'; + userDetails += '
'; + jQuery.each(truefalse, function(value, label) { + var checked = ''; + if (user.expand == value) { + checked = ' checked="checked"'; + } + userDetails += ''; + }); + userDetails += '
'; + + userDetails += '
{/literal}{'Show number of comments'|translate}{literal}'; + userDetails += '
'; + jQuery.each(truefalse, function(value, label) { + var checked = ''; + if (user.show_nb_comments == value) { + checked = ' checked="checked"'; + } + userDetails += ''; + }); + userDetails += '
'; + + userDetails += '
{/literal}{'Show number of hits'|translate}{literal}'; + userDetails += '
'; + jQuery.each(truefalse, function(value, label) { + var checked = ''; + if (user.show_nb_hits == value) { + checked = ' checked="checked"'; + } + userDetails += ''; + }); + userDetails += '
'; + userDetails += '
'; + + userDetails += ''; + userDetails += '' + + jQuery("#user"+userId).append(userDetails); + } + else { + console.log('error loading user details'); + } + }, + error:function(XMLHttpRequest, textStatus, errorThrows) { + console.log('technical error loading user details'); + } + }); + + return '
'; + } + + jQuery(document).on('click', '.userProperties input[type=submit]', function() { + var userId = jQuery(this).data('user_id'); + + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.users.setInfo", + type:"POST", + data: jQuery('#user'+userId).find('select, input').serialize(), + beforeSend: function() { + jQuery('#user'+userId+' .submitWait').show(); + }, + success:function(data) { + jQuery('#user'+userId+' .submitWait').hide(); + }, + error:function(XMLHttpRequest, textStatus, errorThrows) { + jQuery('#user'+userId+' .submitWait').hide(); + } + }); + + return false; + }); + + /* Add event listener for opening and closing details + * Note that the indicator for showing which row is open is not controlled by DataTables, + * rather it is done here + */ + jQuery(document).on('click', '#userList tbody td img', function() { + var nTr = this.parentNode.parentNode; + if ( this.src.match('details_close') ) { + /* This row is already open - close it */ + this.src = "admin/themes/default/icon/details_open.png"; + oTable.fnClose( nTr ); + } + else { + /* Open this row */ + this.src = "admin/themes/default/icon/details_close.png"; + oTable.fnOpen( nTr, fnFormatDetails(oTable, nTr), 'details' ); + } + }); + /* first column must be prefixed with the open/close icon */ var aoColumns = [ @@ -87,7 +287,7 @@ jQuery(document).ready(function() { }, { "mRender": function(data, type, full) { - return ''; + return ' '; } } ]; @@ -328,10 +528,16 @@ jQuery(document).ready(function() { {/literal}