diff --git a/admin/tools/users.tool b/admin/tools/users.tool index 43ad79511ba68e22db04f5d27e0ea74addefd30c..809a9939188615e8505df6a1e273875b88ab812c 100644 --- a/admin/tools/users.tool +++ b/admin/tools/users.tool @@ -17,40 +17,98 @@ } </style> <script type="text/javascript"> + var users = { + showInTable: ['firstname', 'lastname', 'email', 'membership'], + curUserData: null, + }; + tools.ui.menu({ - 'Add User': { - callback: function() { - console.log('noice'); - } + '<span class="glyphicon glyphicon-user" aria-hidden="true"></span>': { + callback: function() {} + }, + '<span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span>': { + callback: function() {} + }, + '<span class="users-cur-page" aria-hidden="true">0</span>': { + callback: function() {} + }, + '<span class="glyphicon glyphicon-arrow-right" aria-hidden="true"></span>': { + callback: function() {} + }, + '<span class="glyphicon glyphicon-search" aria-hidden="true"></span>': { + callback: function() {} } }); + function inspectUser() { + var newUserData = {}; + $('.users-user-edit-table tr').each(function() { + newUserData[$(this).children('td:nth-child(1)').html()] = $(this).children('td:nth-child(2)').html(); + }); + var changed = false, + curUserDataChanged = {}; + for (var i in newUserData) { + if (newUserData[i] != String(curUserData[i])) { + changed = true; + curUserDataChanged[i] = newUserData[i]; + } + } + if (changed) { + amivcore.users.PATCH({ + id: curUserData.id, + header: { + 'If-Match': $('.users-user-edit-table').attr('data-etag') + }, + data: curUserDataChanged + }, function(){ + tools.log('User Updated', 's'); + tools.getTool('users'); + }); + } + } + function showDetails() { - console.log($(this).attr('data-id')); + amivcore.users.GET({ + id: $(this).attr('data-id') + }, function(ret) { + curUserData = ret; + var tmp = '<table class="table table-hover users-user-edit-table" data-etag="' + ret['_etag'] + '"><tbody>'; + for (var cur in ret) + if (cur.charAt(0) != '_') + tmp += '<tr><td>' + cur + '</td><td contenteditable>' + ret[cur] + '</td></tr>' + tmp += '</tbody></table>'; + + tools.modal({ + head: ret.firstname + ' ' + ret.lastname, + body: tmp, + button: 'OK', + success: inspectUser, + cancel: function() { + console.log('Canceled'); + } + }); + + });; } - var showInTable = ['firstname', 'lastname', 'email', 'membership'], - curData = null; amivcore.users.GET({ data: { - 'max_results': '50' + //'max_results': '50' } }, function(ret) { - if (!ret || ret['_items'].length == 0) { + if (ret === undefined || ret['_items'].length == 0) { tools.log('No Data', 'w'); return; } - curData = ret['_items']; - - showInTable.forEach(function(i) { + users.showInTable.forEach(function(i) { $('.users-table thead tr').append('<th>' + i + '</th>'); }); for (var n in ret['_items']) { var tmp = ''; - showInTable.forEach(function(i) { + users.showInTable.forEach(function(i) { tmp += '<td>' + ret['_items'][n][i] + '</td>'; }); $('.users-table tbody').append('<tr data-id="' + ret['_items'][n]['id'] + '">' + tmp + '</tr>');