%PDF- %PDF-
Direktori : /home2/vacivi36/intranet.vacivitta.com.br/assets/c06fb3e9/ |
Current File : //home2/vacivi36/intranet.vacivitta.com.br/assets/c06fb3e9/humhub.calendar.participation.Form.js |
/** * @link https://www.humhub.org/ * @copyright Copyright (c) 2022 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ humhub.module('calendar.participation.Form', function (module, require, $) { var Widget = require('ui.widget').Widget; var loader = require('ui.loader'); var client = require('client'); var status = require('ui.status'); var calendar = require('calendar'); var Form = Widget.extend(); Form.prototype.init = function () { var that = this; this.saveButton = $('#calendar-entry-participation-button-save'); this.nextButton = $('#calendar-entry-participation-button-next'); this.backButton = $('#calendar-entry-participation-button-back'); this.tabSettings = $('#calendar-entry-participation-tabs li:first'); this.tabParticipants = $('#calendar-entry-participation-tabs li:last'); this.isNewRecord = this.backButton.length; if (this.isNewRecord) { $('#calendar-entry-participation-tabs li a').click(function () { if ($('#calendar-entry-participation-tabs li:visible').length > 1) { var isTabSettingsActive = $(this).closest('li').index() === 0; that.saveButton.toggle(!isTabSettingsActive); that.nextButton.toggle(isTabSettingsActive); } }); } } Form.prototype.update = function (evt) { var updater = evt.$trigger.parent(); var updaterHtml = evt.$trigger.parent().html(); var data = { entryId: this.data('entry-id'), userId: evt.$trigger.closest('li').data('user-id'), status: evt.$trigger.val(), }; loader.set(updater, {size: '10px', css: {padding: '0px'}}); client.post(this.data('update-url'), {data: data}).then(function(response) { if (response.success) { status.success(response.message); loader.remove(updater); updater.html(updaterHtml).find('select').val(data.status); } }).catch(function(e) { module.log.error(e, true); }).finally(function () { evt.finish(); }); }; Form.prototype.remove = function (evt) { var participation = evt.$trigger.closest('li'); var data = { entryId: this.data('entry-id'), userId: participation.data('user-id'), }; client.post(this.data('remove-url'), {data: data}).then(function(response) { if (response.success) { status.success(response.message); if (participation.closest('ul').find('li[data-user-id]').length === 1) { participation.closest('ul').prev('p').show(); } participation.remove(); updateParticipantsCount(-1); } else { status.error(response.message); } }).catch(function(e) { module.log.error(e, true); }).finally(function () { evt.finish(); }); }; Form.prototype.add = function (evt) { var form = evt.$trigger.closest('.calendar-entry-new-participants-form'); var data = { entryId: this.data('entry-id'), guids: form.find('select[name="CalendarEntryParticipationForm[newParticipants][]"]').val(), }; var entryStatus = form.find('select[name="CalendarEntryParticipationForm[newParticipantStatus]"]'); if (entryStatus.length) { data.status = entryStatus.val(); } client.post(evt, {data: data}).then(function(response) { if (response.success) { status.success(response.success); var list = form.closest('.calendar-entry-participants').find('#calendar-entry-participants-list ul.media-list'); var count = list.find('li').length; list.append(response.html); updateParticipantsCount(list.find('li').length - count); } else if (response.warning) { status.warn(response.warning); } else if (response.error) { status.error(response.error); } }).catch(function(e) { module.log.error(e, true); }).finally(function () { evt.finish(); }); } Form.prototype.filterState = function (evt) { var filter = evt.$trigger; var filters = filter.parent(); var modal = $('#globalModal'); var data = { id: this.data('entry-id'), state: filter.data('state'), }; filter.attr('data-active', ''); loader.set(filters, {size: '10px', css: {padding: '0px'}}); client.get(this.data('filter-url'), {data: data}).then(function(response) { modal.find('#calendar-entry-participants-list').after(response.html).remove(); updateParticipantsCount(modal.find('[name=calendar-entry-participants-count]').val(), false); loader.reset(filters); filters.find('.btn.active').removeClass('active'); filters.find('[data-active]').addClass('active').removeAttr('data-active'); }).catch(function(e) { module.log.error(e, true); }).finally(function () { evt.finish(); }); }; Form.prototype.changeParticipationMode = function (evt) { var noParticipants = evt.$trigger.val() == 0; if (noParticipants) { this.$.find('.participationOnly').fadeOut('fast') } else { this.$.find('.participationOnly').fadeIn('fast'); } this.tabParticipants.toggle(!noParticipants); if (this.isNewRecord) { this.saveButton.toggle(noParticipants); this.nextButton.toggle(!noParticipants); } }; var updateParticipantsCount = function(value, shift) { var counter = $('#globalModal').find('.calendar-entry-participants-count span'); counter.html(shift || typeof(shift) === 'undefined' ? parseInt(counter.html()) + value : value); } Form.prototype.next = function (evt) { this.tabParticipants.find('a').click(); this.nextButton.hide(); this.saveButton.show(); evt.finish(); } Form.prototype.back = function (evt) { if (this.tabParticipants.hasClass('active')) { this.tabSettings.find('a').click(); this.saveButton.hide(); this.nextButton.show(); } else { loader.set(evt.$trigger, {size: '10px', css: {padding: '0px'}}); calendar.editModal(evt); } evt.finish(); } module.export = Form; });