Skip to content
Snippets Groups Projects
Commit b057fbb1 authored by Moritz Strohm's avatar Moritz Strohm
Browse files

imported patch for Trac TIC 11427

parent 165caf7c
Branches
Tags
No related merge requests found
...@@ -31,6 +31,12 @@ class Settings_GeneralController extends Settings_SettingsController ...@@ -31,6 +31,12 @@ class Settings_GeneralController extends Settings_SettingsController
PageLayout::setTitle(_('Allgemeine Einstellungen anpassen')); PageLayout::setTitle(_('Allgemeine Einstellungen anpassen'));
Navigation::activateItem('/profile/settings/general'); Navigation::activateItem('/profile/settings/general');
SkipLinks::addIndex(_('Allgemeine Einstellungen anpassen'), 'layout_content', 100); SkipLinks::addIndex(_('Allgemeine Einstellungen anpassen'), 'layout_content', 100);
$this->show_room_management_autor_config = Config::get()->RESOURCES_ENABLE
&& (
ResourceManager::userHasGlobalPermission($this->user, 'autor')
||
RoomManager::userHasRooms($this->user, 'autor')
);
} }
/** /**
...@@ -63,6 +69,9 @@ class Settings_GeneralController extends Settings_SettingsController ...@@ -63,6 +69,9 @@ class Settings_GeneralController extends Settings_SettingsController
$this->config->store('SKIPLINKS_ENABLE', Request::int('skiplinks_enable')); $this->config->store('SKIPLINKS_ENABLE', Request::int('skiplinks_enable'));
$this->config->store('TOUR_AUTOSTART_DISABLE', Request::int('tour_autostart_disable')); $this->config->store('TOUR_AUTOSTART_DISABLE', Request::int('tour_autostart_disable'));
$this->config->store('WIKI_COMMENTS_ENABLE', Request::int('wiki_comments_enable')); $this->config->store('WIKI_COMMENTS_ENABLE', Request::int('wiki_comments_enable'));
if ($this->show_room_management_autor_config) {
$this->config->store('RESOURCES_CONFIRM_PLAN_DRAG_AND_DROP', Request::int('resources_confirm_plan_drag_and_drop'));
}
if (Config::get()->WYSIWYG) { if (Config::get()->WYSIWYG) {
$this->config->store('WYSIWYG_DISABLED', !Request::int('wysiwyg_enabled')); $this->config->store('WYSIWYG_DISABLED', !Request::int('wysiwyg_enabled'));
......
...@@ -88,7 +88,14 @@ ...@@ -88,7 +88,14 @@
'display_all_requests' => $display_all_requests ? 1 : 0 'display_all_requests' => $display_all_requests ? 1 : 0
] ]
] ]
],
'confirm' => (
UserConfig::get($GLOBALS['user']->id)->RESOURCES_CONFIRM_PLAN_DRAG_AND_DROP
? [
'drop' => _('Wollen Sie die Buchung wirklich ändern?')
] ]
: []
)
], ],
['class' => 'resource-plan'], ['class' => 'resource-plan'],
'resources-fullcalendar' 'resources-fullcalendar'
......
...@@ -70,7 +70,14 @@ ...@@ -70,7 +70,14 @@
'display_all_requests' => $display_all_requests ? 1 : 0 'display_all_requests' => $display_all_requests ? 1 : 0
] ]
] ]
],
'confirm' => (
UserConfig::get($GLOBALS['user']->id)->RESOURCES_CONFIRM_PLAN_DRAG_AND_DROP
? [
'drop' => _('Wollen Sie die Buchung wirklich ändern?')
] ]
: []
)
], ],
['class' => 'resource-plan room-group-booking-plan'], ['class' => 'resource-plan room-group-booking-plan'],
'resources-fullcalendar' 'resources-fullcalendar'
......
...@@ -142,6 +142,21 @@ $start_pages = [ ...@@ -142,6 +142,21 @@ $start_pages = [
</fieldset> </fieldset>
<? endif; ?> <? endif; ?>
<? if ($show_room_management_autor_config) : ?>
<fieldset>
<legend><?= _('Raumverwaltung') ?></legend>
<label>
<input type="checkbox" name="resources_confirm_plan_drag_and_drop"
value="1"
<?= $config->RESOURCES_CONFIRM_PLAN_DRAG_AND_DROP ? 'checked' : '' ?>>
<?= _('Nach dem Verschieben einer Buchung per Drag & Drop im Belegungsplan eine Sicherheitsabfrage anzeigen') ?>
<?= tooltipIcon(
_('Wenn diese Einstellung aktiviert ist, wird die Buchung erst dann verschoben, wenn die Sicherheitsabfrage mit „Ja“ beantwortet wurde.')
) ?>
</label>
</fieldset>
<? endif ?>
<footer> <footer>
<?= \Studip\Button::create(_("Speichern")) ?> <?= \Studip\Button::create(_("Speichern")) ?>
</footer> </footer>
......
<?php
class AddConfigResourcesConfirmPlanDragAndDrop extends Migration
{
public function description()
{
return 'Add configuration RESOURCES_CONFIRM_PLAN_DRAG_AND_DROP';
}
public function up()
{
$db = DBManager::get();
$db->exec(
"INSERT INTO `config`
(`field`, `value`, `type`, `range`,
`section`,
`mkdate`, `chdate`,
`description`)
VALUES
('RESOURCES_CONFIRM_PLAN_DRAG_AND_DROP', '0', 'boolean', 'user',
'resources', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(),
'Soll beim Verschieben von Buchungen im Belegungsplan eine Sicherheitsabfrage erscheinen?')"
);
}
public function down()
{
$db = DBManager::get();
$db->exec(
"DELETE FROM `config_values`
WHERE `field` = 'RESOURCES_CONFIRM_PLAN_DRAG_AND_DROP'"
);
$db->exec(
"DELETE FROM `config`
WHERE `field` = 'RESOURCES_CONFIRM_PLAN_DRAG_AND_DROP'"
);
}
}
...@@ -443,6 +443,7 @@ class Fullcalendar ...@@ -443,6 +443,7 @@ class Fullcalendar
info.event.source.refetch(); info.event.source.refetch();
}, },
eventDrop (info) { eventDrop (info) {
let handle_drop = function() {
if ($(info.view.context.calendar.el).hasClass('institute-plan')) { if ($(info.view.context.calendar.el).hasClass('institute-plan')) {
var start = info.event.start; var start = info.event.start;
var cal_start = info.view.activeStart; var cal_start = info.view.activeStart;
...@@ -458,6 +459,23 @@ class Fullcalendar ...@@ -458,6 +459,23 @@ class Fullcalendar
} }
info.event.source.refetch(); info.event.source.refetch();
} }
};
let calendar_config = JSON.parse(info.view.context.calendar.el.dataset.config);
if (calendar_config.confirm) {
if (calendar_config.confirm.drop) {
STUDIP.Dialog.confirm(calendar_config.confirm.drop)
.done(handle_drop)
.fail(function() {
//Revert the dropped element:
info.revert();
});
} else {
handle_drop();
}
} else {
handle_drop();
}
}, },
eventRender (info) { eventRender (info) {
var event = info.event; var event = info.event;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment