diff --git a/app/assets/javascripts/my_modules.js b/app/assets/javascripts/my_modules.js
index 16016b3f0..a77645055 100644
--- a/app/assets/javascripts/my_modules.js
+++ b/app/assets/javascripts/my_modules.js
@@ -1,418 +1,419 @@
/* global I18n dropdownSelector HelperModule animateSpinner */
/* eslint-disable no-use-before-define */
+(function() {
+ const STATUS_POLLING_INTERVAL = 5000;
-const STATUS_POLLING_INTERVAL = 5000;
+ function initTaskCollapseState() {
+ let taskView = '.my-modules-protocols-index';
+ let taskSection = '.task-section-caret';
+ let taskId = $(taskView).data('task-id');
-function initTaskCollapseState() {
- let taskView = '.my-modules-protocols-index';
- let taskSection = '.task-section-caret';
- let taskId = $(taskView).data('task-id');
+ function collapseStateSave() {
+ $(taskView).on('click', taskSection, function() {
+ let collapsed = $(this).attr('aria-expanded');
+ let taskSectionType = $(this).attr('aria-controls');
- function collapseStateSave() {
- $(taskView).on('click', taskSection, function() {
- let collapsed = $(this).attr('aria-expanded');
- let taskSectionType = $(this).attr('aria-controls');
-
- if (collapsed === 'true') {
- localStorage.setItem('task_section_collapsed/' + taskId + '/' + taskSectionType, collapsed);
- } else {
- localStorage.removeItem('task_section_collapsed/' + taskId + '/' + taskSectionType);
- }
- });
- }
-
- function collapseStateLoad() {
- $(taskSection).each(function() {
- let taskSectionType = $(this).attr('aria-controls');
- var collapsed = localStorage.getItem('task_section_collapsed/' + taskId + '/' + taskSectionType);
-
- if (JSON.parse(collapsed)) {
- $('#' + taskSectionType).collapse('hide');
- }
- $(this).closest('.task-section').removeClass('hidden');
- });
- }
-
- collapseStateSave();
- collapseStateLoad();
-}
-
-function updateStartDate() {
- let updateUrl = $('#startDateContainer').data('update-url');
- let val = $('#calendarStartDate').val();
- $.ajax({
- url: updateUrl,
- type: 'PATCH',
- dataType: 'json',
- data: { my_module: { started_on: val } },
- success: function(result) {
- $('#startDateLabelContainer').html(result.start_date_label);
- },
- error: function(response) {
- if (response.status === 403) {
- HelperModule.flashAlertMsg(I18n.t('general.no_permissions'), 'danger');
- }
- }
- });
-}
-
-// Bind ajax for editing due dates
-function initStartDatePicker() {
- $('#calendarStartDate').on('dp.change', function() {
- updateStartDate();
- });
-}
-
-function updateDueDate() {
- let updateUrl = $('#dueDateContainer').data('update-url');
- let val = $('#calendarDueDate').val();
- $.ajax({
- url: updateUrl,
- type: 'PATCH',
- dataType: 'json',
- data: { my_module: { due_date: val } },
- success: function(result) {
- $('#dueDateLabelContainer').html(result.due_date_label);
- },
- error: function(response) {
- if (response.status === 403) {
- HelperModule.flashAlertMsg(I18n.t('general.no_permissions'), 'danger');
- }
- }
- });
-}
-
-// Bind ajax for editing due dates
-function initDueDatePicker() {
- $('#calendarDueDate').on('dp.change', function() {
- updateDueDate();
- });
-}
-
-
-// Bind ajax for editing tags
-function bindEditTagsAjax() {
- var manageTagsModal = null;
- var manageTagsModalBody = null;
-
- // Initialize reloading of manage tags modal content after posting new
- // tag.
- function initAddTagForm() {
- manageTagsModalBody.find('.add-tag-form')
- .submit(function() {
- var selectOptions = manageTagsModalBody.find('#new_my_module_tag .dropdown-menu li').length;
- if (selectOptions === 0 && this.id === 'new_my_module_tag') return false;
- return true;
- })
- .on('ajax:success', function(e, data) {
- var newTag;
- initTagsModalBody(data);
- newTag = $('#manage-module-tags-modal .list-group-item').last();
- dropdownSelector.addValue('#module-tags-selector', {
- value: newTag.data('tag-id'),
- label: newTag.data('name'),
- params: {
- color: newTag.data('color')
- }
- }, true);
- });
- }
-
- // Initialize edit tag & remove tag functionality from my_module links.
- function initTagRowLinks() {
- manageTagsModalBody.find('.edit-tag-link')
- .on('click', function() {
- var $this = $(this);
- var li = $this.parents('li.list-group-item');
- var editDiv = $(li.find('div.tag-edit'));
-
- // Revert all rows to their original states
- manageTagsModalBody.find('li.list-group-item').each(function() {
- var li2 = $(this);
- li2.css('background-color', li2.data('color'));
- li2.find('.edit-tag-form').clearFormErrors();
- li2.find('input[type=text]').val(li2.data('name'));
- });
-
- // Hide all other edit divs, show all show divs
- manageTagsModalBody.find('div.tag-edit').hide();
- manageTagsModalBody.find('div.tag-show').show();
-
- editDiv.find('input[type=text]').val(li.data('name'));
- editDiv.find('.edit-tag-color').colorselector('setColor', li.data('color'));
-
- li.find('div.tag-show').hide();
- editDiv.show();
- });
- manageTagsModalBody.find('div.tag-edit .dropdown-colorselector > .dropdown-menu li a')
- .on('click', function() {
- // Change background of the
- var $this = $(this);
- var li = $this.parents('li.list-group-item');
- li.css('background-color', $this.data('value'));
- });
- manageTagsModalBody.find('.remove-tag-link')
- .on('ajax:success', function(e, data) {
- dropdownSelector.removeValue('#module-tags-selector', this.dataset.tagId, '', true);
- initTagsModalBody(data);
- });
- manageTagsModalBody.find('.delete-tag-form')
- .on('ajax:success', function(e, data) {
- dropdownSelector.removeValue('#module-tags-selector', this.dataset.tagId, '', true);
- initTagsModalBody(data);
- });
- manageTagsModalBody.find('.edit-tag-form')
- .on('ajax:success', function(e, data) {
- var newTag;
- initTagsModalBody(data);
- dropdownSelector.removeValue('#module-tags-selector', this.dataset.tagId, '', true);
- newTag = $('#manage-module-tags-modal .list-group-item[data-tag-id=' + this.dataset.tagId + ']');
- dropdownSelector.addValue('#module-tags-selector', {
- value: newTag.data('tag-id'),
- label: newTag.data('name'),
- params: {
- color: newTag.data('color')
- }
- }, true);
- })
- .on('ajax:error', function(e, data) {
- $(this).renderFormErrors('tag', data.responseJSON);
- });
- manageTagsModalBody.find('.cancel-tag-link')
- .on('click', function() {
- var $this = $(this);
- var li = $this.parents('li.list-group-item');
-
- li.css('background-color', li.data('color'));
- li.find('.edit-tag-form').clearFormErrors();
-
- li.find('div.tag-edit').hide();
- li.find('div.tag-show').show();
- });
- }
-
- // Initialize ajax listeners and elements style on modal body. This
- // function must be called when modal body is changed.
- function initTagsModalBody(data) {
- manageTagsModalBody.html(data.html);
- manageTagsModalBody.find('.selectpicker').selectpicker();
- initAddTagForm();
- initTagRowLinks();
- }
-
- manageTagsModal = $('#manage-module-tags-modal');
- manageTagsModalBody = manageTagsModal.find('.modal-body');
-
- // Reload tags HTML element when modal is closed
- manageTagsModal.on('hide.bs.modal', function() {
- var tagsEl = $('#module-tags');
-
- // Load HTML
- $.ajax({
- url: tagsEl.attr('data-module-tags-url'),
- type: 'GET',
- dataType: 'json',
- success: function(data) {
- var newOptions = $(data.html_module_header).find('option');
- $('#module-tags-selector').find('option').remove();
- $(newOptions).appendTo('#module-tags-selector').change();
- },
- error: function() {
- // TODO
- }
- });
- });
-
- // Remove modal content when modal window is closed.
- manageTagsModal.on('hidden.bs.modal', function() {
- manageTagsModalBody.html('');
- });
- // initialize my_module tab remote loading
- $('.edit-tags-link')
- .on('ajax:before', function() {
- manageTagsModal.modal('show');
- })
- .on('ajax:success', function(e, data) {
- $('#manage-module-tags-modal-module').text(data.my_module.name);
- initTagsModalBody(data);
- });
-}
-
-function checkStatusState() {
- $.getJSON($('.status-flow-dropdown').data('status-check-url'), (statusData) => {
- if (statusData.status_changing) {
- setTimeout(() => { checkStatusState(); }, STATUS_POLLING_INTERVAL);
- } else {
- location.reload();
- }
- });
-}
-
-function applyTaskStatusChangeCallBack() {
- if ($('.status-flow-dropdown').data('status-changing')) {
- setTimeout(() => { checkStatusState(); }, STATUS_POLLING_INTERVAL);
- }
- $('.task-flows').on('click', '#dropdownTaskFlowList > li[data-state-id]', function() {
- var list = $('#dropdownTaskFlowList');
- var item = $(this);
- animateSpinner();
- $.ajax({
- url: list.data('link-url'),
- type: 'PATCH',
- data: { my_module: { status_id: item.data('state-id') } },
- error: function(e) {
- animateSpinner(null, false);
- if (e.status === 403) {
- HelperModule.flashAlertMsg(I18n.t('my_module_statuses.update_status.error.no_permission'), 'danger');
- } else if (e.status === 422) {
- HelperModule.flashAlertMsg(e.responseJSON.errors, 'danger');
+ if (collapsed === 'true') {
+ localStorage.setItem('task_section_collapsed/' + taskId + '/' + taskSectionType, collapsed);
} else {
- HelperModule.flashAlertMsg('error', 'danger');
+ localStorage.removeItem('task_section_collapsed/' + taskId + '/' + taskSectionType);
+ }
+ });
+ }
+
+ function collapseStateLoad() {
+ $(taskSection).each(function() {
+ let taskSectionType = $(this).attr('aria-controls');
+ var collapsed = localStorage.getItem('task_section_collapsed/' + taskId + '/' + taskSectionType);
+
+ if (JSON.parse(collapsed)) {
+ $('#' + taskSectionType).collapse('hide');
+ }
+ $(this).closest('.task-section').removeClass('hidden');
+ });
+ }
+
+ collapseStateSave();
+ collapseStateLoad();
+ }
+
+ function updateStartDate() {
+ let updateUrl = $('#startDateContainer').data('update-url');
+ let val = $('#calendarStartDate').val();
+ $.ajax({
+ url: updateUrl,
+ type: 'PATCH',
+ dataType: 'json',
+ data: { my_module: { started_on: val } },
+ success: function(result) {
+ $('#startDateLabelContainer').html(result.start_date_label);
+ },
+ error: function(response) {
+ if (response.status === 403) {
+ HelperModule.flashAlertMsg(I18n.t('general.no_permissions'), 'danger');
}
}
});
- });
-}
+ }
-function initTagsSelector() {
- var myModuleTagsSelector = '#module-tags-selector';
+ // Bind ajax for editing due dates
+ function initStartDatePicker() {
+ $('#calendarStartDate').on('dp.change', function() {
+ updateStartDate();
+ });
+ }
- dropdownSelector.init(myModuleTagsSelector, {
- closeOnSelect: true,
- tagClass: 'my-module-white-tags',
- tagStyle: (data) => {
- return `background: ${data.params.color}`;
- },
- customDropdownIcon: () => {
- return '';
- },
- optionLabel: (data) => {
- if (data.value > 0) {
- return `
- ${data.label}`;
+ function updateDueDate() {
+ let updateUrl = $('#dueDateContainer').data('update-url');
+ let val = $('#calendarDueDate').val();
+ $.ajax({
+ url: updateUrl,
+ type: 'PATCH',
+ dataType: 'json',
+ data: { my_module: { due_date: val } },
+ success: function(result) {
+ $('#dueDateLabelContainer').html(result.due_date_label);
+ },
+ error: function(response) {
+ if (response.status === 403) {
+ HelperModule.flashAlertMsg(I18n.t('general.no_permissions'), 'danger');
+ }
}
- return `
- ${data.label + ' '}
- (${I18n.t('my_modules.details.create_new_tag')})`;
- },
- onOpen: function() {
- $('.select-container .edit-button-container').removeClass('hidden');
- },
- onClose: function() {
- $('.select-container .edit-button-container').addClass('hidden');
- },
- onSelect: function() {
- var selectElement = $(myModuleTagsSelector);
- var lastTag = selectElement.next().find('.ds-tags').last();
- var lastTagId = lastTag.find('.tag-label').data('ds-tag-id');
- var newTag;
+ });
+ }
- if (lastTagId > 0) {
- newTag = { my_module_tag: { tag_id: lastTagId } };
- $.post(selectElement.data('update-module-tags-url'), newTag)
- .fail(function(response) {
+ // Bind ajax for editing due dates
+ function initDueDatePicker() {
+ $('#calendarDueDate').on('dp.change', function() {
+ updateDueDate();
+ });
+ }
+
+
+ // Bind ajax for editing tags
+ function bindEditTagsAjax() {
+ var manageTagsModal = null;
+ var manageTagsModalBody = null;
+
+ // Initialize reloading of manage tags modal content after posting new
+ // tag.
+ function initAddTagForm() {
+ manageTagsModalBody.find('.add-tag-form')
+ .submit(function() {
+ var selectOptions = manageTagsModalBody.find('#new_my_module_tag .dropdown-menu li').length;
+ if (selectOptions === 0 && this.id === 'new_my_module_tag') return false;
+ return true;
+ })
+ .on('ajax:success', function(e, data) {
+ var newTag;
+ initTagsModalBody(data);
+ newTag = $('#manage-module-tags-modal .list-group-item').last();
+ dropdownSelector.addValue('#module-tags-selector', {
+ value: newTag.data('tag-id'),
+ label: newTag.data('name'),
+ params: {
+ color: newTag.data('color')
+ }
+ }, true);
+ });
+ }
+
+ // Initialize edit tag & remove tag functionality from my_module links.
+ function initTagRowLinks() {
+ manageTagsModalBody.find('.edit-tag-link')
+ .on('click', function() {
+ var $this = $(this);
+ var li = $this.parents('li.list-group-item');
+ var editDiv = $(li.find('div.tag-edit'));
+
+ // Revert all rows to their original states
+ manageTagsModalBody.find('li.list-group-item').each(function() {
+ var li2 = $(this);
+ li2.css('background-color', li2.data('color'));
+ li2.find('.edit-tag-form').clearFormErrors();
+ li2.find('input[type=text]').val(li2.data('name'));
+ });
+
+ // Hide all other edit divs, show all show divs
+ manageTagsModalBody.find('div.tag-edit').hide();
+ manageTagsModalBody.find('div.tag-show').show();
+
+ editDiv.find('input[type=text]').val(li.data('name'));
+ editDiv.find('.edit-tag-color').colorselector('setColor', li.data('color'));
+
+ li.find('div.tag-show').hide();
+ editDiv.show();
+ });
+ manageTagsModalBody.find('div.tag-edit .dropdown-colorselector > .dropdown-menu li a')
+ .on('click', function() {
+ // Change background of the
+ var $this = $(this);
+ var li = $this.parents('li.list-group-item');
+ li.css('background-color', $this.data('value'));
+ });
+ manageTagsModalBody.find('.remove-tag-link')
+ .on('ajax:success', function(e, data) {
+ dropdownSelector.removeValue('#module-tags-selector', this.dataset.tagId, '', true);
+ initTagsModalBody(data);
+ });
+ manageTagsModalBody.find('.delete-tag-form')
+ .on('ajax:success', function(e, data) {
+ dropdownSelector.removeValue('#module-tags-selector', this.dataset.tagId, '', true);
+ initTagsModalBody(data);
+ });
+ manageTagsModalBody.find('.edit-tag-form')
+ .on('ajax:success', function(e, data) {
+ var newTag;
+ initTagsModalBody(data);
+ dropdownSelector.removeValue('#module-tags-selector', this.dataset.tagId, '', true);
+ newTag = $('#manage-module-tags-modal .list-group-item[data-tag-id=' + this.dataset.tagId + ']');
+ dropdownSelector.addValue('#module-tags-selector', {
+ value: newTag.data('tag-id'),
+ label: newTag.data('name'),
+ params: {
+ color: newTag.data('color')
+ }
+ }, true);
+ })
+ .on('ajax:error', function(e, data) {
+ $(this).renderFormErrors('tag', data.responseJSON);
+ });
+ manageTagsModalBody.find('.cancel-tag-link')
+ .on('click', function() {
+ var $this = $(this);
+ var li = $this.parents('li.list-group-item');
+
+ li.css('background-color', li.data('color'));
+ li.find('.edit-tag-form').clearFormErrors();
+
+ li.find('div.tag-edit').hide();
+ li.find('div.tag-show').show();
+ });
+ }
+
+ // Initialize ajax listeners and elements style on modal body. This
+ // function must be called when modal body is changed.
+ function initTagsModalBody(data) {
+ manageTagsModalBody.html(data.html);
+ manageTagsModalBody.find('.selectpicker').selectpicker();
+ initAddTagForm();
+ initTagRowLinks();
+ }
+
+ manageTagsModal = $('#manage-module-tags-modal');
+ manageTagsModalBody = manageTagsModal.find('.modal-body');
+
+ // Reload tags HTML element when modal is closed
+ manageTagsModal.on('hide.bs.modal', function() {
+ var tagsEl = $('#module-tags');
+
+ // Load HTML
+ $.ajax({
+ url: tagsEl.attr('data-module-tags-url'),
+ type: 'GET',
+ dataType: 'json',
+ success: function(data) {
+ var newOptions = $(data.html_module_header).find('option');
+ $('#module-tags-selector').find('option').remove();
+ $(newOptions).appendTo('#module-tags-selector').change();
+ },
+ error: function() {
+ // TODO
+ }
+ });
+ });
+
+ // Remove modal content when modal window is closed.
+ manageTagsModal.on('hidden.bs.modal', function() {
+ manageTagsModalBody.html('');
+ });
+ // initialize my_module tab remote loading
+ $('.edit-tags-link')
+ .on('ajax:before', function() {
+ manageTagsModal.modal('show');
+ })
+ .on('ajax:success', function(e, data) {
+ $('#manage-module-tags-modal-module').text(data.my_module.name);
+ initTagsModalBody(data);
+ });
+ }
+
+ function checkStatusState() {
+ $.getJSON($('.status-flow-dropdown').data('status-check-url'), (statusData) => {
+ if (statusData.status_changing) {
+ setTimeout(() => { checkStatusState(); }, STATUS_POLLING_INTERVAL);
+ } else {
+ location.reload();
+ }
+ });
+ }
+
+ function applyTaskStatusChangeCallBack() {
+ if ($('.status-flow-dropdown').data('status-changing')) {
+ setTimeout(() => { checkStatusState(); }, STATUS_POLLING_INTERVAL);
+ }
+ $('.task-flows').on('click', '#dropdownTaskFlowList > li[data-state-id]', function() {
+ var list = $('#dropdownTaskFlowList');
+ var item = $(this);
+ animateSpinner();
+ $.ajax({
+ url: list.data('link-url'),
+ type: 'PATCH',
+ data: { my_module: { status_id: item.data('state-id') } },
+ error: function(e) {
+ animateSpinner(null, false);
+ if (e.status === 403) {
+ HelperModule.flashAlertMsg(I18n.t('my_module_statuses.update_status.error.no_permission'), 'danger');
+ } else if (e.status === 422) {
+ HelperModule.flashAlertMsg(e.responseJSON.errors, 'danger');
+ } else {
+ HelperModule.flashAlertMsg('error', 'danger');
+ }
+ }
+ });
+ });
+ }
+
+ function initTagsSelector() {
+ var myModuleTagsSelector = '#module-tags-selector';
+
+ dropdownSelector.init(myModuleTagsSelector, {
+ closeOnSelect: true,
+ tagClass: 'my-module-white-tags',
+ tagStyle: (data) => {
+ return `background: ${data.params.color}`;
+ },
+ customDropdownIcon: () => {
+ return '';
+ },
+ optionLabel: (data) => {
+ if (data.value > 0) {
+ return `
+ ${data.label}`;
+ }
+ return `
+ ${data.label + ' '}
+ (${I18n.t('my_modules.details.create_new_tag')})`;
+ },
+ onOpen: function() {
+ $('.select-container .edit-button-container').removeClass('hidden');
+ },
+ onClose: function() {
+ $('.select-container .edit-button-container').addClass('hidden');
+ },
+ onSelect: function() {
+ var selectElement = $(myModuleTagsSelector);
+ var lastTag = selectElement.next().find('.ds-tags').last();
+ var lastTagId = lastTag.find('.tag-label').data('ds-tag-id');
+ var newTag;
+
+ if (lastTagId > 0) {
+ newTag = { my_module_tag: { tag_id: lastTagId } };
+ $.post(selectElement.data('update-module-tags-url'), newTag)
+ .fail(function(response) {
+ dropdownSelector.removeValue(myModuleTagsSelector, lastTagId, '', true);
+ if (response.status === 403) {
+ HelperModule.flashAlertMsg(I18n.t('general.no_permissions'), 'danger');
+ }
+ });
+ } else {
+ newTag = {
+ tag: {
+ name: lastTag.find('.tag-label').html(),
+ project_id: selectElement.data('project-id'),
+ color: null
+ },
+ my_module_id: selectElement.data('module-id'),
+ simple_creation: true
+ };
+ $.post(selectElement.data('tags-create-url'), newTag, function(result) {
+ dropdownSelector.removeValue(myModuleTagsSelector, 0, '', true);
+ dropdownSelector.addValue(myModuleTagsSelector, {
+ value: result.tag.id,
+ label: result.tag.name,
+ params: {
+ color: result.tag.color
+ }
+ }, true);
+ }).fail(function() {
dropdownSelector.removeValue(myModuleTagsSelector, lastTagId, '', true);
- if (response.status === 403) {
+ });
+ }
+ },
+ onUnSelect: (id) => {
+ $.post(`${$(myModuleTagsSelector).data('update-module-tags-url')}/${id}/destroy_by_tag_id`)
+ .success(function() {
+ dropdownSelector.closeDropdown(myModuleTagsSelector);
+ })
+ .fail(function(r) {
+ if (r.status === 403) {
HelperModule.flashAlertMsg(I18n.t('general.no_permissions'), 'danger');
}
});
- } else {
- newTag = {
- tag: {
- name: lastTag.find('.tag-label').html(),
- project_id: selectElement.data('project-id'),
- color: null
- },
- my_module_id: selectElement.data('module-id'),
- simple_creation: true
- };
- $.post(selectElement.data('tags-create-url'), newTag, function(result) {
- dropdownSelector.removeValue(myModuleTagsSelector, 0, '', true);
- dropdownSelector.addValue(myModuleTagsSelector, {
- value: result.tag.id,
- label: result.tag.name,
- params: {
- color: result.tag.color
- }
- }, true);
- }).fail(function() {
- dropdownSelector.removeValue(myModuleTagsSelector, lastTagId, '', true);
- });
}
- },
- onUnSelect: (id) => {
- $.post(`${$(myModuleTagsSelector).data('update-module-tags-url')}/${id}/destroy_by_tag_id`)
- .success(function() {
- dropdownSelector.closeDropdown(myModuleTagsSelector);
- })
- .fail(function(r) {
- if (r.status === 403) {
- HelperModule.flashAlertMsg(I18n.t('general.no_permissions'), 'danger');
- }
- });
+ }).getContainer(myModuleTagsSelector).addClass('my-module-tags-container');
+ }
+
+ function initAssignedUsersSelector() {
+ var manageUsersModal = $('#manage-module-users-modal');
+ var manageUsersModalBody = manageUsersModal.find('.modal-body');
+
+ // Initialize users editing modal remote loading
+ function initUsersEditLink() {
+ $('.task-details').on('ajax:success', '.manage-users-link', function(e, data) {
+ manageUsersModal.modal('show');
+ manageUsersModal.find('#manage-module-users-modal-module').text(data.my_module.name);
+ initUsersModalBody(data);
+ });
}
- }).getContainer(myModuleTagsSelector).addClass('my-module-tags-container');
-}
-function initAssignedUsersSelector() {
- var manageUsersModal = $('#manage-module-users-modal');
- var manageUsersModalBody = manageUsersModal.find('.modal-body');
+ // Initialize ajax listeners and elements style on modal body.
+ // This function must be called when modal body is changed.
+ function initUsersModalBody(data) {
+ manageUsersModalBody.html(data.html);
+ manageUsersModalBody.find('.selectpicker').selectpicker();
+ }
- // Initialize users editing modal remote loading
- function initUsersEditLink() {
- $('.task-details').on('ajax:success', '.manage-users-link', function(e, data) {
- manageUsersModal.modal('show');
- manageUsersModal.find('#manage-module-users-modal-module').text(data.my_module.name);
+ // Initialize reloading manage user modal content after posting new user
+ manageUsersModalBody.on('ajax:success', '.add-user-form', function(e, data) {
initUsersModalBody(data);
});
- }
- // Initialize ajax listeners and elements style on modal body.
- // This function must be called when modal body is changed.
- function initUsersModalBody(data) {
- manageUsersModalBody.html(data.html);
- manageUsersModalBody.find('.selectpicker').selectpicker();
- }
-
- // Initialize reloading manage user modal content after posting new user
- manageUsersModalBody.on('ajax:success', '.add-user-form', function(e, data) {
- initUsersModalBody(data);
- });
-
- // Initialize remove user from my_module links
- manageUsersModalBody.on('ajax:success', '.remove-user-link', function(e, data) {
- initUsersModalBody(data);
- });
-
- // Reload users HTML element when modal is closed
- manageUsersModal.on('hide.bs.modal', function() {
- var usersEl = $('.task-assigned-users');
- // Load HTML to refresh users
- $.ajax({
- url: usersEl.attr('data-module-users-url'),
- type: 'GET',
- dataType: 'json',
- success: function(data) {
- $('.task-assigned-users').replaceWith(data.html);
- },
- error: function() {
- // TODO
- }
+ // Initialize remove user from my_module links
+ manageUsersModalBody.on('ajax:success', '.remove-user-link', function(e, data) {
+ initUsersModalBody(data);
});
- });
- // Remove users modal content when modal window is closed.
- manageUsersModal.on('hidden.bs.modal', function() {
- manageUsersModalBody.html('');
- });
+ // Reload users HTML element when modal is closed
+ manageUsersModal.on('hide.bs.modal', function() {
+ var usersEl = $('.task-assigned-users');
+ // Load HTML to refresh users
+ $.ajax({
+ url: usersEl.attr('data-module-users-url'),
+ type: 'GET',
+ dataType: 'json',
+ success: function(data) {
+ $('.task-assigned-users').replaceWith(data.html);
+ },
+ error: function() {
+ // TODO
+ }
+ });
+ });
- initUsersEditLink();
-}
+ // Remove users modal content when modal window is closed.
+ manageUsersModal.on('hidden.bs.modal', function() {
+ manageUsersModalBody.html('');
+ });
-initTaskCollapseState();
-applyTaskStatusChangeCallBack();
-initTagsSelector();
-bindEditTagsAjax();
-initStartDatePicker();
-initDueDatePicker();
-initAssignedUsersSelector();
+ initUsersEditLink();
+ }
+
+ initTaskCollapseState();
+ applyTaskStatusChangeCallBack();
+ initTagsSelector();
+ bindEditTagsAjax();
+ initStartDatePicker();
+ initDueDatePicker();
+ initAssignedUsersSelector();
+}());