aboutsummaryrefslogtreecommitdiffhomepage
path: root/main/app/sprinkles/admin/assets/userfrosting/js/widgets/users.js
diff options
context:
space:
mode:
Diffstat (limited to 'main/app/sprinkles/admin/assets/userfrosting/js/widgets/users.js')
-rw-r--r--main/app/sprinkles/admin/assets/userfrosting/js/widgets/users.js276
1 files changed, 0 insertions, 276 deletions
diff --git a/main/app/sprinkles/admin/assets/userfrosting/js/widgets/users.js b/main/app/sprinkles/admin/assets/userfrosting/js/widgets/users.js
deleted file mode 100644
index 7951807..0000000
--- a/main/app/sprinkles/admin/assets/userfrosting/js/widgets/users.js
+++ /dev/null
@@ -1,276 +0,0 @@
-/**
- * Users widget. Sets up dropdowns, modals, etc for a table of users.
- */
-
-/**
- * Set up the form in a modal after being successfully attached to the body.
- */
-function attachUserForm() {
- $("body").on('renderSuccess.ufModal', function (data) {
- var modal = $(this).ufModal('getModal');
- var form = modal.find('.js-form');
-
- // Set up any widgets inside the modal
- form.find(".js-select2").select2({
- width: '100%'
- });
-
- // Set up the form for submission
- form.ufForm({
- validators: page.validators
- }).on("submitSuccess.ufForm", function () {
- // Reload page on success
- window.location.reload();
- });
- });
-}
-
-/**
- * Enable/disable password fields when switch is toggled
- */
-function toggleChangePasswordMode(el, userName, changePasswordMode) {
- var form = el.find("form");
- if (changePasswordMode == 'link') {
- $(".controls-password").find("input[type='password']").prop('disabled', true);
- // Form submits password reset request
- form.attr({
- method: 'POST',
- action: site.uri.public + '/api/users/u/' + userName + '/password-reset'
- });
-
- var validator = form.validate();
- if (validator) {
- //Iterate through named elements inside of the form, and mark them as error free
- el.find("input[type='password']").each(function () {
- validator.successList.push(this); //mark as error free
- });
- validator.resetForm();//remove error class on name elements and clear history
- validator.reset();//remove all error and success data
- }
- el.find("input[type='password']").closest('.form-group')
- .removeClass('has-error has-success');
- el.find('.form-control-feedback').each(function () {
- $(this).remove();
- });
- } else {
- $(".controls-password").find("input[type='password']").prop('disabled', false);
- // Form submits direct password update
- form.attr({
- method: 'PUT',
- action: site.uri.public + '/api/users/u/' + userName + '/password'
- });
- }
-}
-
-/**
- * Update user field(s)
- */
-function updateUser(userName, fieldName, fieldValue) {
- var data = {
- 'value': fieldValue
- };
-
- data[site.csrf.keys.name] = site.csrf.name;
- data[site.csrf.keys.value] = site.csrf.value;
-
- var url = site.uri.public + '/api/users/u/' + userName + '/' + fieldName;
- var debugAjax = (typeof site !== "undefined") && site.debug.ajax;
-
- return $.ajax({
- type: "PUT",
- url: url,
- data: data,
- dataType: debugAjax ? 'html' : 'json',
- converters: {
- // Override jQuery's strict JSON parsing
- 'text json': function (result) {
- try {
- // First try to use native browser parsing
- if (typeof JSON === 'object' && typeof JSON.parse === 'function') {
- return JSON.parse(result);
- } else {
- return $.parseJSON(result);
- }
- } catch (e) {
- // statements to handle any exceptions
- console.log("Warning: Could not parse expected JSON response.");
- return {};
- }
- }
- }
- }).fail(function (jqXHR) {
- // Error messages
- if (debugAjax && jqXHR.responseText) {
- document.write(jqXHR.responseText);
- document.close();
- } else {
- console.log("Error (" + jqXHR.status + "): " + jqXHR.responseText);
-
- // Display errors on failure
- // ufAlerts widget should have a 'destroy' method
- if (!$("#alerts-page").data('ufAlerts')) {
- $("#alerts-page").ufAlerts();
- } else {
- $("#alerts-page").ufAlerts('clear');
- }
-
- $("#alerts-page").ufAlerts('fetch').ufAlerts('render');
- }
-
- return jqXHR;
- }).done(function (response) {
- window.location.reload();
- });
-}
-
-/**
- * Link user action buttons, for example in a table or on a specific user's page.
- */
-function bindUserButtons(el) {
-
- /**
- * Buttons that launch a modal dialog
- */
- // Edit general user details button
- el.find('.js-user-edit').click(function () {
- $("body").ufModal({
- sourceUrl: site.uri.public + "/modals/users/edit",
- ajaxParams: {
- user_name: $(this).data('user_name')
- },
- msgTarget: $("#alerts-page")
- });
-
- attachUserForm();
- });
-
- // Manage user roles button
- el.find('.js-user-roles').click(function () {
- var userName = $(this).data('user_name');
- $("body").ufModal({
- sourceUrl: site.uri.public + "/modals/users/roles",
- ajaxParams: {
- user_name: userName
- },
- msgTarget: $("#alerts-page")
- });
-
- $("body").on('renderSuccess.ufModal', function (data) {
- var modal = $(this).ufModal('getModal');
- var form = modal.find('.js-form');
-
- // Set up collection widget
- var roleWidget = modal.find('.js-form-roles');
- roleWidget.ufCollection({
- dropdown: {
- ajax: {
- url: site.uri.public + '/api/roles'
- },
- placeholder: "Select a role"
- },
- dropdownTemplate: modal.find('#user-roles-select-option').html(),
- rowTemplate: modal.find('#user-roles-row').html()
- });
-
- // Get current roles and add to widget
- $.getJSON(site.uri.public + '/api/users/u/' + userName + '/roles')
- .done(function (data) {
- $.each(data.rows, function (idx, role) {
- role.text = role.name;
- roleWidget.ufCollection('addRow', role);
- });
- });
-
- // Set up form for submission
- form.ufForm({}).on("submitSuccess.ufForm", function () {
- // Reload page on success
- window.location.reload();
- });
- });
- });
-
- // Change user password button
- el.find('.js-user-password').click(function () {
- var userName = $(this).data('user_name');
- $("body").ufModal({
- sourceUrl: site.uri.public + "/modals/users/password",
- ajaxParams: {
- user_name: userName
- },
- msgTarget: $("#alerts-page")
- });
-
- $("body").on('renderSuccess.ufModal', function (data) {
- var modal = $(this).ufModal('getModal');
- var form = modal.find('.js-form');
-
- // Set up form for submission
- form.ufForm({
- validators: page.validators
- }).on("submitSuccess.ufForm", function () {
- // Reload page on success
- window.location.reload();
- });
-
- toggleChangePasswordMode(modal, userName, 'link');
-
- // On submission, submit either the PUT request, or POST for a password reset, depending on the toggle state
- modal.find("input[name='change_password_mode']").click(function () {
- var changePasswordMode = $(this).val();
- toggleChangePasswordMode(modal, userName, changePasswordMode);
- });
- });
- });
-
- // Delete user button
- el.find('.js-user-delete').click(function () {
- $("body").ufModal({
- sourceUrl: site.uri.public + "/modals/users/confirm-delete",
- ajaxParams: {
- user_name: $(this).data('user_name')
- },
- msgTarget: $("#alerts-page")
- });
-
- $("body").on('renderSuccess.ufModal', function (data) {
- var modal = $(this).ufModal('getModal');
- var form = modal.find('.js-form');
-
- form.ufForm()
- .on("submitSuccess.ufForm", function () {
- // Reload page on success
- window.location.reload();
- });
- });
- });
-
- /**
- * Direct action buttons
- */
- el.find('.js-user-activate').click(function () {
- var btn = $(this);
- updateUser(btn.data('user_name'), 'flag_verified', '1');
- });
-
- el.find('.js-user-enable').click(function () {
- var btn = $(this);
- updateUser(btn.data('user_name'), 'flag_enabled', '1');
- });
-
- el.find('.js-user-disable').click(function () {
- var btn = $(this);
- updateUser(btn.data('user_name'), 'flag_enabled', '0');
- });
-}
-
-function bindUserCreationButton(el) {
- // Link create button
- el.find('.js-user-create').click(function () {
- $("body").ufModal({
- sourceUrl: site.uri.public + "/modals/users/create",
- msgTarget: $("#alerts-page")
- });
-
- attachUserForm();
- });
-};