User table:
Added button for single user edit Added delete-trash-icon (not working) Roles are displayed correct per user Guest user is not visible if anonymous browsing is disabled
This commit is contained in:
parent
f45ea1a31c
commit
eeb7974e05
33
cps/admin.py
33
cps/admin.py
|
@ -217,25 +217,34 @@ def view_configuration():
|
|||
@admin_required
|
||||
def edit_user_table():
|
||||
visibility = current_user.view_settings.get('useredit', {})
|
||||
allUser = ub.session.query(ub.User).all()
|
||||
return render_title_template("user_table.html", users=allUser, visiblility=visibility,
|
||||
title=_(u"Edit Users"), page="usertable")
|
||||
allUser = ub.session.query(ub.User)
|
||||
if not config.config_anonbrowse:
|
||||
allUser = allUser.filter(ub.User.role.op('&')(constants.ROLE_ANONYMOUS) != constants.ROLE_ANONYMOUS)
|
||||
|
||||
return render_title_template("user_table.html",
|
||||
users=allUser.all(),
|
||||
visiblility=visibility,
|
||||
all_roles = constants.ALL_ROLES,
|
||||
title=_(u"Edit Users"),
|
||||
page="usertable")
|
||||
|
||||
@admi.route("/axjax/listusers")
|
||||
@login_required
|
||||
@admin_required
|
||||
def list_users():
|
||||
off = request.args.get("offset") or 0
|
||||
limit = request.args.get("limit") or 10
|
||||
|
||||
total_count = ub.session.query(ub.User).count()
|
||||
limit = request.args.get("limit") or 40
|
||||
search = request.args.get("search")
|
||||
|
||||
all_user = ub.session.query(ub.User)
|
||||
if not config.config_anonbrowse:
|
||||
all_user = all_user.filter(ub.User.role.op('&')(constants.ROLE_ANONYMOUS) != constants.ROLE_ANONYMOUS)
|
||||
total_count = all_user.count()
|
||||
if search:
|
||||
users = ub.session.query(ub.User).filter().offset(off).limit(limit).all()
|
||||
users = all_user.filter().offset(off).limit(limit).all()
|
||||
filtered_count = users.length()
|
||||
# entries, filtered_count, pagination = calibre_db.get_search_results(search, off, order, limit)
|
||||
else:
|
||||
users = ub.session.query(ub.User).offset(off).limit(limit).all()
|
||||
users = all_user.offset(off).limit(limit).all()
|
||||
filtered_count = total_count
|
||||
|
||||
table_entries = {'totalNotFiltered': total_count, 'total': filtered_count, "rows": users}
|
||||
|
@ -251,7 +260,11 @@ def list_users():
|
|||
@admin_required
|
||||
def edit_list_user(param):
|
||||
vals = request.form.to_dict()
|
||||
user = ub.session.query(ub.User).filter(ub.User.id == vals['pk']).one_or_none() # ub.User.query calibre_db.get_book(vals['pk'])
|
||||
all_user = ub.session.query(ub.User)
|
||||
if not config.config_anonbrowse:
|
||||
all_user = all_user.filter(ub.User.role.op('&')(constants.ROLE_ANONYMOUS) != constants.ROLE_ANONYMOUS)
|
||||
|
||||
user = all_user.filter(ub.User.id == vals['pk']).one_or_none()
|
||||
if param =='nickname':
|
||||
if not ub.session.query(ub.User).filter(ub.User.nickname == vals['value']).scalar():
|
||||
user.nickname = vals['value']
|
||||
|
|
|
@ -51,10 +51,12 @@ body h2 {
|
|||
color:#444;
|
||||
}
|
||||
|
||||
a, .danger,.book-remove, .editable-empty, .editable-empty:hover { color: #45b29d; }
|
||||
a, .danger, .book-remove, .user-remove, .editable-empty, .editable-empty:hover { color: #45b29d; }
|
||||
|
||||
.book-remove:hover { color: #23527c; }
|
||||
|
||||
.user-remove:hover { color: #23527c; }
|
||||
|
||||
.btn-default a { color: #444; }
|
||||
|
||||
.btn-default a:hover {
|
||||
|
|
|
@ -429,7 +429,8 @@ $(function() {
|
|||
},
|
||||
});
|
||||
|
||||
$("#user-table").on("check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table",
|
||||
|
||||
/*$("#user-table").on("check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table",
|
||||
function (e, rowsAfter, rowsBefore) {
|
||||
var rows = rowsAfter;
|
||||
|
||||
|
@ -440,7 +441,7 @@ $(function() {
|
|||
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
|
||||
return row.id;
|
||||
});
|
||||
});
|
||||
});*/
|
||||
});
|
||||
|
||||
/* Function for deleting domain restrictions */
|
||||
|
@ -472,6 +473,15 @@ function EbookActions (value, row) {
|
|||
].join("");
|
||||
}
|
||||
|
||||
/* Function for deleting books */
|
||||
function UserActions (value, row) {
|
||||
return [
|
||||
"<div class=\"user-remove\" data-toggle=\"modal\" data-target=\"#GeneralDeleteModal\" data-ajax=\"1\" data-delete-id=\"" + row.id + "\" title=\"Remove\">",
|
||||
"<i class=\"glyphicon glyphicon-trash\"></i>",
|
||||
"</div>"
|
||||
].join("");
|
||||
}
|
||||
|
||||
/* Function for keeping checked rows */
|
||||
function responseHandler(res) {
|
||||
$.each(res.rows, function (i, row) {
|
||||
|
@ -479,3 +489,23 @@ function responseHandler(res) {
|
|||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
function singleUserFormatter(value, row) {
|
||||
return '<button type="button" className="btn btn-default"><a href="/admin/user/' + row.id + '">' + this.buttontext + '</a></button>'
|
||||
}
|
||||
|
||||
function checkboxFormatter(value, row, index){
|
||||
if(value & this.column)
|
||||
return '<input type="checkbox" class="chk" checked onchange="checkboxChange(this, '+index+')">';
|
||||
else
|
||||
return '<input type="checkbox" class="chk" onchange="checkboxChange(this, '+index+')">';
|
||||
}
|
||||
|
||||
function checkboxChange(checkbox, index){
|
||||
$('#user-table').bootstrapTable('updateCell', {
|
||||
index: index,
|
||||
field: 'role',
|
||||
value: checkbox.checked,
|
||||
reinit: false
|
||||
});
|
||||
}
|
||||
|
|
|
@ -20,22 +20,32 @@
|
|||
data-url="{{url_for('admin.list_users')}}">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-buttontext="{{_('Edit User')}}" data-formatter="singleUserFormatter"></th>
|
||||
<th data-field="state" data-checkbox="true" data-sortable="true"></th>
|
||||
<th data-field="id" id="id" data-visible="false" data-switchable="false"></th>
|
||||
{{ user_table_row('nickname', _('Enter Username'),_('Username'), true) }}
|
||||
{{ user_table_row('email', _('Enter E-mail Address'),_('E-mail Address'), true) }}
|
||||
{{ user_table_row('kindle_mail', _('Enter Kindle E-mail Address'),_('Kindle E-mail'), true) }}
|
||||
<th data-field="admin" data-checkbox="true" data-sortable="true"></th>
|
||||
<th data-field="upload" data-checkbox="true" data-sortable="true"></th>
|
||||
<th data-field="download" data-checkbox="true" data-sortable="true"></th>
|
||||
<th data-field="view_books" data-checkbox="true" data-sortable="true"></th>
|
||||
<th data-field="edit" data-checkbox="true" data-sortable="true"></th>
|
||||
<th data-field="delete" data-checkbox="true" data-sortable="true"></th>
|
||||
<th data-field="public_shelf" data-checkbox="true" data-sortable="true"></th>
|
||||
{{ user_table_row('nickname', _('Enter Username'), _('Username'), true) }}
|
||||
{{ user_table_row('email', _('Enter E-mail Address'), _('E-mail Address'), true) }}
|
||||
{{ user_table_row('kindle_mail', _('Enter Kindle E-mail Address'), _('Kindle E-mail'), true) }}
|
||||
<th data-field="role" data-column="{{all_roles.admin_role}}" data-formatter="checkboxFormatter">{{_('Admin')}}</th>
|
||||
<th data-field="role" data-column="{{all_roles.download_role}}" data-formatter="checkboxFormatter">{{_('Upload')}}</th>
|
||||
<th data-field="role" data-column="{{all_roles.upload_role}}" data-formatter="checkboxFormatter">{{_('Download')}}</th>
|
||||
<th data-field="role" data-column="{{all_roles.edit_role}}" data-formatter="checkboxFormatter">{{_('Edit')}}</th>
|
||||
<th data-field="role" data-column="{{all_roles.passwd_role}}" data-formatter="checkboxFormatter">{{_('Change Password')}}</th>
|
||||
<th data-field="role" data-column="{{all_roles.edit_shelf_role}}" data-formatter="checkboxFormatter">{{_('Edit Public Shelfs')}}</th>
|
||||
<th data-field="role" data-column="{{all_roles.delete_role}}" data-formatter="checkboxFormatter">{{_('Delete')}}</th>
|
||||
<th data-field="role" data-column="{{all_roles.viewer_role}}" data-formatter="checkboxFormatter">{{_('View')}}</th>
|
||||
{{ user_table_row('denied_tags', _("Enter Users's Locale"), _("Users's Locale"), true) }}
|
||||
{{ user_table_row('allowed_tags', _("Enter Users's Locale"), _("Users's Locale"), true) }}
|
||||
{{ user_table_row('allowed_column_value', _("Enter Users's Locale"), _("Users's Locale"), true) }}
|
||||
{{ user_table_row('denied_column_value', _("Enter Users's Locale"), _("Users's Locale"), true) }}
|
||||
<th data-align="right" data-formatter="UserActions" data-switchable="false">{{_('Delete User')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
{% endblock %}
|
||||
{% block modal %}
|
||||
{{ delete_confirm_modal() }}
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
<script src="{{ url_for('static', filename='js/libs/bootstrap-table/bootstrap-table.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/libs/bootstrap-table/bootstrap-table-editable.min.js') }}"></script>
|
||||
|
|
Loading…
Reference in New Issue
Block a user