From 4c4fb7d9d9b5eaf1632de203202c28b4c9013860 Mon Sep 17 00:00:00 2001 From: plegall Date: Fri, 27 Dec 2013 20:50:51 +0000 Subject: feature 1668: use underscore.js to template the userDetails instead of generating HTML directly in javascript. Will make work easier for plugins modifying the user profile. git-svn-id: http://piwigo.org/svn/trunk@26270 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/themes/default/template/user_list.tpl | 353 ++++++++++++++++------------ 1 file changed, 201 insertions(+), 152 deletions(-) (limited to 'admin/themes') diff --git a/admin/themes/default/template/user_list.tpl b/admin/themes/default/template/user_list.tpl index 36e2daa16..a491cae17 100644 --- a/admin/themes/default/template/user_list.tpl +++ b/admin/themes/default/template/user_list.tpl @@ -6,6 +6,8 @@ {combine_script id='jquery.chosen' load='footer' path='themes/default/js/plugins/chosen.jquery.min.js'} {combine_css path="themes/default/js/plugins/chosen.css"} +{combine_script id='jquery.underscore' load='footer' path='themes/default/js/plugins/underscore.js'} + {combine_script id='jquery.ui.slider' require='jquery.ui' load='footer' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'} {combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"} @@ -180,176 +182,98 @@ jQuery(document).ready(function() { if (data.stat == 'ok') { var user = data.result.users[0]; - var userDetails = '
'; - userDetails += '
'; - - if (parseInt(userId) != guestUser) { - userDetails += ''; - userDetails += ''; - userDetails += '{/literal}{'Change password'|translate|escape:javascript}{literal}'; - userDetails += '
'; - } - - userDetails += '{/literal}{'Permissions'|translate|escape:javascript}{literal}'; - - if (protectedUsers.indexOf(parseInt(userId)) == -1) { - userDetails += '
{/literal}{'Delete'|translate|escape:javascript}{literal}'; - } - - userDetails += '
'; - - userDetails += ''+user.username+''; - - if (parseInt(userId) != guestUser) { - userDetails += ' {/literal}{'Change username'|translate|escape:javascript}{literal}'; - userDetails += ''; - - userDetails += '
'; - userDetails += sprintf(registeredOn_pattern, user.registration_date_string, user.registration_date_since); - - if (typeof user.last_visit != 'undefined') { - userDetails += '
'+sprintf(lastVisit_pattern, user.last_visit_string, user.last_visit_since); - } - - userDetails += '
'; - userDetails += '
'; - userDetails += ''; - userDetails += '
'; - userDetails += '
{/literal}{'Properties'|translate}{literal}
'; - - userDetails += '
{/literal}{'Email address'|translate}{literal}'; - userDetails += '
'; - if (parseInt(userId) != guestUser) { - userDetails += ''; - } - else { - userDetails += '{/literal}{'N/A'|translate}{literal}'; - } - userDetails += '
'; - - userDetails += '
{/literal}{'Status'|translate}{literal}'; - userDetails += '
'; - - if (protectedUsers.indexOf(parseInt(userId)) == -1) { - userDetails += ''; - } - else { - jQuery("#action select[name=status] option").each(function() { - if (user.status == jQuery(this).val()) { - userDetails += jQuery(this).html(); - } - }); - } - userDetails += '
'; - - userDetails += '
{/literal}{'Privacy level'|translate}{literal}'; - userDetails += '
'; - - var checked = ''; - if (user.enabled_high == 'true') { - checked = ' checked="checked"'; - } - userDetails += '
'; - userDetails += '
'; - - userDetails += '
{/literal}{'Groups'|translate}{literal}'; - userDetails += '
'; - // userDetails += '
'+user.groups.join(",")+'
'; - - userDetails += '
'; - userDetails += '
{/literal}{'Preferences'|translate}{literal}
'; - - userDetails += '
'; - userDetails += '
'; - userDetails += ''; - userDetails += '
'; - - userDetails += '
{/literal}{'Theme'|translate|escape:javascript}{literal}'; - userDetails += '
'; - - userDetails += '
{/literal}{'Language'|translate}{literal}'; - userDetails += '
'; - - userDetails += '
{/literal}{'Recent period'|translate}{literal} '; - userDetails += '
'; - userDetails += ''; - userDetails += '
'; - - var checked = ''; - if (user.expand == 'true') { - checked = ' checked="checked"'; - } - userDetails += '
'; - userDetails += '
'; - - var checked = ''; - if (user.show_nb_comments == 'true') { - checked = ' checked="checked"'; + + user.isGuest = (parseInt(userId) == guestUser); + user.isProtected = (protectedUsers.indexOf(parseInt(userId)) != -1); + + user.registeredOn_string = sprintf( + registeredOn_pattern, + user.registration_date_string, + user.registration_date_since + ); + + user.lastVisit_string = ""; + if (typeof user.last_visit != 'undefined') { + user.lastVisit_string = sprintf(lastVisit_pattern, user.last_visit_string, user.last_visit_since); } - userDetails += '
'; - userDetails += '
'; + + user.updateString = sprintf( + "{/literal}{'User %s updated'|translate|escape:javascript}{literal}", + user.username + ); + + user.email = user.email || ''; + + jQuery("#action select[name=status] option").each(function() { + if (user.status == jQuery(this).val()) { + user.statusLabel = jQuery(this).html(); + } + }); + + /* Render the underscore template */ + _.templateSettings.variable = "user"; + + var template = _.template( + jQuery("script.userDetails").html() + ); + + jQuery("#user"+userId).append(template(user)); - var checked = ''; - if (user.show_nb_hits == 'true') { - checked = ' checked="checked"'; - } - userDetails += '
'; - userDetails += '
'; - userDetails += '
'; - userDetails += '
'; - - userDetails += ''; - userDetails += ''; - userDetails += '' - userDetails += '
'; - - jQuery("#user"+userId).append(userDetails); jQuery(".chzn-select").chosen(); /* nb_image_page slider */ @@ -1086,3 +1010,128 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border + +{* Underscore Template Definition *} + -- cgit v1.2.3