Changeset 25475 for trunk/admin/themes/default/template/user_list.tpl
- Timestamp:
- Nov 13, 2013, 3:40:00 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/admin/themes/default/template/user_list.tpl
r25457 r25475 3 3 {combine_script id='jquery.dataTables' load='footer' path='themes/default/js/plugins/jquery.dataTables.js'} 4 4 {combine_css path="themes/default/js/plugins/datatables/css/jquery.dataTables.css"} 5 6 {combine_script id='jquery.chosen' load='footer' path='themes/default/js/plugins/chosen.jquery.min.js'} 7 {combine_css path="themes/default/js/plugins/chosen.css"} 5 8 6 9 {footer_script} … … 10 13 var applyOnDetails_pattern = "{'on the %d selected users'|@translate}"; 11 14 var newUser_pattern = "✔ {'User %s added'|translate}"; 15 var registeredOn_pattern = "{'Registered on %s, %s.'|translate}"; 16 var lastVisit_pattern = "{'Last visit on %s, %s.'|translate}"; 12 17 var missingConfirm = "{'You need to confirm deletion'|translate}"; 13 18 var missingUsername = "{'Please, enter a login'|translate}"; … … 106 111 107 112 var userDetails = '<form>'; 113 userDetails += '<div class="userActions">'; 114 userDetails += '<a class="icon-key" href="#">Change password</a>'; 115 userDetails += '<br><a href="#" class="icon-lock">Permissions</a>'; 116 userDetails += '<br><a href="#" class="icon-trash">Delete</a>'; 117 userDetails += '</div>'; 118 userDetails += '<strong>'+user.username+'</strong> <span class="icon-pencil"></span>'; 119 userDetails += '<br><br>'; 120 userDetails += sprintf(registeredOn_pattern, user.registration_date_string, user.registration_date_since); 121 122 if (typeof user.last_visit != 'undefined') { 123 userDetails += '<br>'+sprintf(lastVisit_pattern, user.last_visit_string, user.last_visit_since); 124 } 125 126 userDetails += '<div class="userPropertiesContainer">'; 108 127 userDetails += '<input type="hidden" name="user_id" value="'+user.id+'">'; 109 userDetails += '<fieldset><legend>{/literal}{'Properties'|translate}{literal}</legend>'; 110 userDetails += '<div class="userProperty"><strong>{/literal}{'Username'|translate}{literal}</strong>'; 111 userDetails += '<br>'+user.username+'</div>'; 128 userDetails += '<div class="userPropertiesSet">'; 129 userDetails += '<div class="userPropertiesSetTitle">{/literal}{'Properties'|translate}{literal}</div>'; 112 130 113 131 userDetails += '<div class="userProperty"><strong>{/literal}{'Email address'|translate}{literal}</strong>'; … … 125 143 userDetails += '</select></div>'; 126 144 127 /*128 userDetails += '<div class="userProperty"><strong>{/literal}{'Groups'|translate}{literal}</strong>';129 userDetails += '<br><select multiple class="chzn-select" style="width:200px;">';130 jQuery("#action select[name=associate] option").each(function() {131 var selected = '';132 if (user.groups.indexOf(jQuery(this).val()) != -1) {133 selected = ' selected="selected"';134 }135 userDetails += '<option value="'+jQuery(this).val()+'"'+selected+'>'+jQuery(this).html()+'</option>';136 });137 userDetails += '</select></div>';138 // userDetails += '<br>'+user.groups.join(",")+'</div>';139 */140 141 145 userDetails += '<div class="userProperty"><strong>{/literal}{'Privacy level'|translate}{literal}</strong>'; 142 146 userDetails += '<br><select name="level">'; … … 150 154 userDetails += '</select></div>'; 151 155 152 userDetails += '<div class="userProperty"><strong>{/literal}{'High definition enabled'|translate}{literal}</strong>'; 153 userDetails += '<br>'; 154 jQuery.each(truefalse, function(value, label) { 155 var checked = ''; 156 if (user.enabled_high == value) { 157 checked = ' checked="checked"'; 156 var checked = ''; 157 if (user.enabled_high == 'true') { 158 checked = ' checked="checked"'; 159 } 160 userDetails += '<div class="userProperty"><label><input type="checkbox" name="enabled_high"'+checked+'> <strong>{/literal}{'High definition enabled'|translate}{literal}</strong></label>'; 161 userDetails += '</div>'; 162 163 userDetails += '<div class="userProperty"><strong>{/literal}{'Groups'|translate}{literal}</strong>'; 164 userDetails += '<br><select multiple class="chzn-select" style="width:340px;" name="group_id[]">'; 165 jQuery("#action select[name=associate] option").each(function() { 166 var selected = ''; 167 if (user.groups.indexOf(jQuery(this).val()) != -1) { 168 selected = ' selected="selected"'; 158 169 } 159 userDetails += '< label><input type="radio" name="enabled_high" value="'+value+'"'+checked+'>'+label+'</label>';170 userDetails += '<option value="'+jQuery(this).val()+'"'+selected+'>'+jQuery(this).html()+'</option>'; 160 171 }); 161 userDetails += '</div>'; 162 163 userDetails += '</fieldset><fieldset><legend>{/literal}{'Preferences'|translate}{literal}</legend>'; 172 userDetails += '</select></div>'; 173 // userDetails += '<br>'+user.groups.join(",")+'</div>'; 174 175 userDetails += '</div><div class="userPropertiesSet userPrefs">'; 176 userDetails += '<div class="userPropertiesSetTitle">{/literal}{'Preferences'|translate}{literal}</div>'; 164 177 165 178 userDetails += '<div class="userProperty"><strong>{/literal}{'Number of photos per page'|translate}{literal}</strong>'; … … 191 204 userDetails += '<br>'+user.recent_period+'</div>'; 192 205 193 userDetails += '<div class="userProperty"><strong>{/literal}{'Expand all albums'|translate}{literal}</strong>'; 194 userDetails += '<br>'; 195 jQuery.each(truefalse, function(value, label) { 196 var checked = ''; 197 if (user.expand == value) { 198 checked = ' checked="checked"'; 199 } 200 userDetails += '<label><input type="radio" name="expand" value="'+value+'"'+checked+'>'+label+'</label>'; 201 }); 206 var checked = ''; 207 if (user.expand == 'true') { 208 checked = ' checked="checked"'; 209 } 210 userDetails += '<div class="userProperty"><label><input type="checkbox" name="expand"'+checked+'> <strong>{/literal}{'Expand all albums'|translate}{literal}</strong></label>'; 202 211 userDetails += '</div>'; 203 212 204 userDetails += '<div class="userProperty"><strong>{/literal}{'Show number of comments'|translate}{literal}</strong>'; 205 userDetails += '<br>'; 206 jQuery.each(truefalse, function(value, label) { 207 var checked = ''; 208 if (user.show_nb_comments == value) { 209 checked = ' checked="checked"'; 210 } 211 userDetails += '<label><input type="radio" name="show_nb_comments" value="'+value+'"'+checked+'>'+label+'</label>'; 212 }); 213 var checked = ''; 214 if (user.show_nb_comments == 'true') { 215 checked = ' checked="checked"'; 216 } 217 userDetails += '<div class="userProperty"><label><input type="checkbox" name="show_nb_comments"'+checked+'> <strong>{/literal}{'Show number of comments'|translate}{literal}</strong></label>'; 213 218 userDetails += '</div>'; 214 219 215 userDetails += '<div class="userProperty"><strong>{/literal}{'Show number of hits'|translate}{literal}</strong>'; 216 userDetails += '<br>'; 217 jQuery.each(truefalse, function(value, label) { 218 var checked = ''; 219 if (user.show_nb_hits == value) { 220 checked = ' checked="checked"'; 221 } 222 userDetails += '<label><input type="radio" name="show_nb_hits" value="'+value+'"'+checked+'>'+label+'</label>'; 223 }); 220 var checked = ''; 221 if (user.show_nb_hits == 'true') { 222 checked = ' checked="checked"'; 223 } 224 userDetails += '<div class="userProperty"><label><input type="checkbox" name="show_nb_hits"'+checked+'> <strong>{/literal}{'Show number of hits'|translate}{literal}</strong></label>'; 224 225 userDetails += '</div>'; 225 userDetails += '</fieldset>'; 226 227 userDetails += '<input type="submit" value="{/literal}{'Submit'|translate}{literal}" data-user_id="'+userId+'">'; 226 userDetails += '</div>'; 227 userDetails += '<div style="clear:both"></div></div>'; 228 229 userDetails += '<span class="infos" style="display:none">✔ User updated</span>'; 230 userDetails += '<input type="submit" value="{/literal}{'Save Settings'|translate}{literal}" style="display:none;" data-user_id="'+userId+'">'; 228 231 userDetails += '<img class="submitWait" src="themes/default/images/ajax-loader-small.gif" style="display:none">' 229 232 userDetails += '</form>'; 230 233 231 234 jQuery("#user"+userId).append(userDetails); 235 jQuery(".chzn-select").chosen(); 232 236 } 233 237 else { … … 243 247 } 244 248 249 jQuery(document).on('change', '.userProperties input, .userProperties select', function() { 250 var userId = jQuery(this).parentsUntil('form').parent().find('input[name=user_id]').val(); 251 252 jQuery('#user'+userId+' input[type=submit]').show(); 253 jQuery('#user'+userId+' .infos').hide(); 254 }); 255 245 256 jQuery(document).on('click', '.userProperties input[type=submit]', function() { 246 257 var userId = jQuery(this).data('user_id'); 258 259 var formData = jQuery('#user'+userId+' form').serialize(); 260 261 if (jQuery('#user'+userId+' form select[name="group_id[]"] option:selected').length == 0) { 262 formData += '&group_id=-1'; 263 } 264 265 if (!jQuery('#user'+userId+' form input[name=enabled_high]').is(':checked')) { 266 formData += '&enabled_high=false'; 267 } 268 269 if (!jQuery('#user'+userId+' form input[name=expand]').is(':checked')) { 270 formData += '&expand=false'; 271 } 272 273 if (!jQuery('#user'+userId+' form input[name=show_nb_hits]').is(':checked')) { 274 formData += '&show_nb_hits=false'; 275 } 276 277 if (!jQuery('#user'+userId+' form input[name=show_nb_comments]').is(':checked')) { 278 formData += '&show_nb_comments=false'; 279 } 247 280 248 281 jQuery.ajax({ 249 282 url: "ws.php?format=json&method=pwg.users.setInfo", 250 283 type:"POST", 251 data: jQuery('#user'+userId+' form').serialize(),284 data: formData, 252 285 beforeSend: function() { 253 286 jQuery('#user'+userId+' .submitWait').show(); … … 255 288 success:function(data) { 256 289 jQuery('#user'+userId+' .submitWait').hide(); 290 jQuery('#user'+userId+' input[type=submit]').hide(); 291 jQuery('#user'+userId+' .infos').show(); 257 292 }, 258 293 error:function(XMLHttpRequest, textStatus, errorThrows) { … … 305 340 "bServerSide": true, 306 341 "sAjaxSource": "admin/user_list_backend.php", 342 "oLanguage": { 343 "sProcessing": "Traitement en cours...", 344 "sLengthMenu": "Afficher _MENU_ éléments", 345 "sZeroRecords": "Aucun élément à afficher", 346 "sInfo": "Affichage des élements _START_ à _END_ sur _TOTAL_", 347 "sInfoEmpty": "Affichage de l'élement 0 à 0 sur 0 éléments", 348 "sInfoFiltered": "<br>(filtré de _MAX_ éléments au total{/literal}{if $is_a_guest} <span class='limitedVersionWarning'>dans la version complète</span>{/if}{literal})", 349 "sInfoPostFix": "", 350 "sSearch": "Rechercher", 351 "sLoadingRecords": "Téléchargement...", 352 "sUrl": "", 353 "oPaginate": { 354 "sFirst": "Premier", 355 "sPrevious": "← Précédent", 356 "sNext": "Suivant →", 357 "sLast": "Dernier" 358 } 359 }, 307 360 "fnDrawCallback": function( oSettings ) { 308 361 jQuery("#userList input[type=checkbox]").each(function() { … … 532 585 table.dataTable {clear:right;padding-top:10px;} 533 586 .dataTable td img {margin-bottom: -6px;margin-left: -6px;} 587 .paginate_enabled_previous, .paginate_enabled_previous:hover, .paginate_disabled_previous, .paginate_enabled_next, .paginate_enabled_next:hover, .paginate_disabled_next {background:none;} 588 .paginate_enabled_previous, .paginate_enabled_next {color:#005E89 !important;} 589 .paginate_enabled_previous:hover, .paginate_enabled_next:hover {color:#D54E21 !important; text-decoration:underline !important;} 590 591 .paginate_disabled_next, .paginate_enabled_next {padding-right:3px;} 534 592 .bulkAction {margin-top:10px;} 535 593 #addUserForm p {margin-left:0;} … … 537 595 span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border-radius:5px;} 538 596 539 .userProperties {max-width:850px;} 540 .userProperties fieldset {border-width:0; border-top-width:1px;} 541 .userProperties fieldset legend {margin-left:-20px;padding-left:0;} 597 .userProperties {max-width:730px;} 598 .userPropertiesContainer {border-top:1px solid #ddd;margin-top:1em;} 599 .userPropertiesSet {width:350px;float:left;padding-top:5px} 600 .userPropertiesSetTitle {font-weight:bold;margin-bottom:1em;} 601 .userPrefs {border-left:1px solid #ddd;padding-left:10px;} 542 602 .userProperty {width:220px;float:left;margin-bottom:15px;} 603 604 .userActions {float:right;text-align:right;} 543 605 </style> 544 606 {/literal} … … 601 663 <th>{'Status'|@translate}</th> 602 664 <th>{'Email address'|@translate}</th> 665 <th>{'registration date'|@translate}</th> 603 666 </tr> 604 667 </thead>
Note: See TracChangeset
for help on using the changeset viewer.