mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-01-17 06:52:27 +01:00
disallow locking availabilities if it has any non-cancelled reservations
This commit is contained in:
parent
57228f4eec
commit
273ec5317d
@ -136,22 +136,33 @@ Application.Controllers.controller "AdminCalendarController", ["$scope", "$state
|
||||
# Mark the selected slot as unavailable for new reservations or allow reservations again on it
|
||||
##
|
||||
$scope.toggleLockReservations = ->
|
||||
# first, define a shortcut to the lock property
|
||||
locked = $scope.availability.lock
|
||||
# open a confirmation dialog
|
||||
dialogs.confirm
|
||||
resolve:
|
||||
object: ->
|
||||
title: _t('admin_calendar.confirmation_required')
|
||||
msg: if locked then _t("admin_calendar.do_you_really_want_to_allow_reservations") else _t("admin_calendar.do_you_really_want_to_block_this_slot_html")
|
||||
, ->
|
||||
# the admin has confirmed, lock/unlock the slot
|
||||
Availability.lock {id: $scope.availability.id}, {lock: !locked}
|
||||
, (data) -> # success
|
||||
$scope.availability = data
|
||||
growl.success(if locked then _t('admin_calendar.unlocking_success') else _t('admin_calendar.locking_success') )
|
||||
uiCalendarConfig.calendars.calendar.fullCalendar 'refetchEvents'
|
||||
, (error) -> # failed
|
||||
growl.error(if locked then _t('admin_calendar.unlocking_failed') else _t('admin_calendar.locking_failed'))
|
||||
# then check if we'll allow reservations locking
|
||||
prevent = !locked # if currently locked, allow unlock anyway
|
||||
if (!locked)
|
||||
prevent = false
|
||||
angular.forEach $scope.reservations, (r) ->
|
||||
if r.canceled_at == null
|
||||
prevent = true # if currently unlocked and has any non-cancelled reservation, disallow locking
|
||||
if (!prevent)
|
||||
# open a confirmation dialog
|
||||
dialogs.confirm
|
||||
resolve:
|
||||
object: ->
|
||||
title: _t('admin_calendar.confirmation_required')
|
||||
msg: if locked then _t("admin_calendar.do_you_really_want_to_allow_reservations") else _t("admin_calendar.do_you_really_want_to_block_this_slot_html")
|
||||
, ->
|
||||
# the admin has confirmed, lock/unlock the slot
|
||||
Availability.lock {id: $scope.availability.id}, {lock: !locked}
|
||||
, (data) -> # success
|
||||
$scope.availability = data
|
||||
growl.success(if locked then _t('admin_calendar.unlocking_success') else _t('admin_calendar.locking_success') )
|
||||
uiCalendarConfig.calendars.calendar.fullCalendar 'refetchEvents'
|
||||
, (error) -> # failed
|
||||
growl.error(if locked then _t('admin_calendar.unlocking_failed') else _t('admin_calendar.locking_failed'))
|
||||
else
|
||||
growl.error(_t('admin_calendar.unlockable_because_reservations'))
|
||||
|
||||
|
||||
|
||||
|
@ -256,6 +256,9 @@ Application.Controllers.controller "ShowMachineController", ['$scope', '$state',
|
||||
$state.go('app.public.machines_list')
|
||||
, (error)->
|
||||
growl.warning(_t('the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users'))
|
||||
|
||||
|
||||
|
||||
##
|
||||
# Callback to book a reservation for the current machine
|
||||
##
|
||||
@ -412,6 +415,7 @@ Application.Controllers.controller "ReserveMachineController", ["$scope", '$stat
|
||||
updateCalendar()
|
||||
|
||||
|
||||
|
||||
##
|
||||
# When modifying an already booked reservation, callback when the modification was successfully done.
|
||||
##
|
||||
|
@ -58,6 +58,7 @@ fr:
|
||||
unlocking_success: "Le créneau a bien été déverrouillé, il apparaîtra de nouveau dans le calendrier utilisateur"
|
||||
unlocking_failed: "Une erreur est survenue. Le déverrouillage du créneau a échoué"
|
||||
reservations_locked: "Réservations bloquées"
|
||||
unlockable_because_reservations: "Impossible de bloquer les réservations sur ce créneau car il existe des réservations non annulées sur celui-ci."
|
||||
|
||||
project_elements:
|
||||
# gestion des éléments constituant les projets
|
||||
|
Loading…
x
Reference in New Issue
Block a user