1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-02-19 13:54:25 +01:00

manager can change existing reservations

This commit is contained in:
Sylvain 2020-04-27 12:58:44 +02:00
parent 5312c13d3f
commit 69c8d7c678
10 changed files with 27 additions and 16 deletions

View File

@ -524,12 +524,13 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
* When modifying an already booked reservation, callback when the modification was successfully done.
*/
$scope.modifyMachineSlot = function () {
$scope.events.placable.title = $scope.currentUser.role !== 'admin' ? _t('app.logged.machines_reserve.i_ve_reserved') : _t('app.logged.machines_reserve.not_available');
$scope.events.placable.title = $scope.currentUser.id === $scope.events.modifiable.user.id ? _t('app.logged.machines_reserve.i_ve_reserved') : _t('app.logged.machines_reserve.not_available');
$scope.events.placable.backgroundColor = 'white';
$scope.events.placable.borderColor = $scope.events.modifiable.borderColor;
$scope.events.placable.id = $scope.events.modifiable.id;
$scope.events.placable.is_reserved = true;
$scope.events.placable.can_modify = true;
$scope.events.placable.user = angular.copy($scope.events.modifiable.user);
$scope.events.modifiable.backgroundColor = 'white';
$scope.events.modifiable.title = '';
@ -549,7 +550,7 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
$scope.events.placable.backgroundColor = 'white';
$scope.events.placable.title = '';
}
$scope.events.modifiable.title = $scope.currentUser.role !== 'admin' ? _t('app.logged.machines_reserve.i_ve_reserved') : _t('app.logged.machines_reserve.not_available');
$scope.events.modifiable.title = $scope.currentUser.id === $scope.events.modifiable.user.id ? _t('app.logged.machines_reserve.i_ve_reserved') : _t('app.logged.machines_reserve.not_available');
$scope.events.modifiable.backgroundColor = 'white';
return updateCalendar();

View File

@ -37,7 +37,7 @@
</select>
</div>
</div>
<div class="col-md-3 col-md-offset-6 m-t-n row-centered" ng-if="isAuthorized('admin')">
<div class="col-md-3 col-md-offset-6 m-t-n row-centered" ng-if="isAuthorized(['admin', 'manager'])">
<a role="button" ui-sref="app.admin.calendar" class="btn btn-lg btn-default rounded m-t-sm text-sm">
<i class="fa fa-calendar-check-o m-r" aria-hidden="true"></i><span translate>{{ 'app.public.machines_list.new_availability' }}</span>
</a>

View File

@ -10,7 +10,7 @@
<span>{{::r.reservable.name}}{{::r.reservable.title}}</span>
<div class="font-sbold text-u-c">{{ 'app.shared.cart.datetime_to_time' | translate:{START_DATETIME:(r.start_at | amDateFormat:'LLLL'), END_TIME:(r.end_at | amDateFormat:'LT') } }}</div>
</li>
</div>
</ul>
</div>
<div class="modal-footer">
<button ng-if="bookSlotAtSameTime || currentUser.role === 'admin'" class="btn btn-info" ng-click="ok()" translate>{{ 'app.shared.buttons.confirm' }}</button>

View File

@ -3,8 +3,8 @@
<h1 translate>{{ 'app.shared.confirm_modify_slot_modal.change_the_slot' }}</h1>
</div>
<div class="modal-body">
<p ng-show="currentUser.role != 'admin'" translate>{{ 'app.shared.confirm_modify_slot_modal.do_you_want_to_change_your_booking_slot_initially_planned_at' }} </p>
<p ng-show="currentUser.role == 'admin'" translate translate-values="{NAME: object.user.name}">{{ 'app.shared.confirm_modify_slot_modal.do_you_want_to_change_NAME_s_booking_slot_initially_planned_at' }}</p>
<p ng-show="currentUser.id === object.user.id" translate>{{ 'app.shared.confirm_modify_slot_modal.do_you_want_to_change_your_booking_slot_initially_planned_at' }} </p>
<p ng-show="currentUser.id !== object.user.id" translate translate-values="{NAME: object.user.name}">{{ 'app.shared.confirm_modify_slot_modal.do_you_want_to_change_NAME_s_booking_slot_initially_planned_at' }}</p>
<p><strong>{{object.start | amDateFormat: 'LL'}} : {{object.start | amDateFormat:'LT'}} - {{object.end | amDateFormat:'LT'}}</strong></p>
</div>
<div class="modal-footer">

View File

@ -37,7 +37,7 @@
</select>
</div>
</div>
<div class="col-md-3 col-md-offset-6 m-t-n row-centered" ng-if="isAuthorized('admin')">
<div class="col-md-3 col-md-offset-6 m-t-n row-centered" ng-if="isAuthorized(['admin', 'manager'])">
<a role="button" ui-sref="app.admin.calendar" class="btn btn-lg btn-default rounded m-t-sm text-sm">
<i class="fa fa-calendar-check-o m-r" aria-hidden="true"></i><span translate>{{ 'app.public.spaces_list.new_availability' }}</span>
</a>

View File

@ -23,7 +23,7 @@
<div class="col-sm-12 col-md-12 col-lg-3">
<div ng-if="currentUser.role === 'admin'">
<div ng-if="isAuthorized(['admin', 'manager'])">
<select-member></select-member>
</div>

View File

@ -80,7 +80,7 @@ class API::AvailabilitiesController < API::ApiController
end
def machine
@current_user_role = current_user.admin? ? 'admin' : 'user'
@current_user_role = current_user.role
service = Availabilities::AvailabilitiesService.new(current_user, other: @visi_max_other, year: @visi_max_year)
@slots = service.machines(params[:machine_id], user)
@ -92,7 +92,7 @@ class API::AvailabilitiesController < API::ApiController
end
def spaces
@current_user_role = current_user.admin? ? 'admin' : 'user'
@current_user_role = current_user.role
service = Availabilities::AvailabilitiesService.new(current_user, other: @visi_max_other, year: @visi_max_year)
@slots = service.spaces(params[:space_id], user)

View File

@ -147,6 +147,16 @@ class User < ApplicationRecord
has_role? :partner
end
def role
if admin?
'admin'
elsif manager?
'manager'
else
'other'
end
end
def all_projects
my_projects.to_a.concat projects
end

View File

@ -15,13 +15,13 @@ json.array!(@slots) do |slot|
json.id slot.machine.id
json.name slot.machine.name
end
# the user who booked the slot ...
if (@current_user_role == 'admin') && slot.reservation
# the user who booked the slot, if the slot was reserved
if (%w[admin manager].include? @current_user_role) && slot.reservation
json.user do
json.id slot.reservation.user.id
json.name slot.reservation.user.profile.full_name
end
end # ... if the slot was reserved
end
json.tag_ids slot.availability.tag_ids
json.tags slot.availability.tags do |t|
json.id t.id

View File

@ -16,13 +16,13 @@ json.array!(@slots) do |slot|
json.id slot.space.id
json.name slot.space.name
end
# the user who booked the slot ...
if (@current_user_role == 'admin') && slot.reservation
# the user who booked the slot, if the slot was reserved
if (%w[admin manager].include? @current_user_role) && slot.reservation
json.user do
json.id slot.reservation.user.id
json.name slot.reservation.user.profile.full_name
end
end # ... if the slot was reserved
end
json.tag_ids slot.availability.tag_ids
json.tags slot.availability.tags do |t|
json.id t.id