diff --git a/css/WMS_bootstrap_PATCH.css b/css/WMS_bootstrap_PATCH.css
index 519bed0..67b1682 100644
--- a/css/WMS_bootstrap_PATCH.css
+++ b/css/WMS_bootstrap_PATCH.css
@@ -82,13 +82,14 @@ Purpose: CSS that's not an extension / modification of the bootstrap framework
}
.rendered-object > .render-hover-info {
- position: fixed;
+ position: relative;
border: 1px solid #000000;
background-color: #ddd;
max-width: 300px;
margin: 0;
padding: 8px;
visibility: hidden;
+ float: right;
}
.rendered-object:hover > .render-hover-info {
@@ -108,7 +109,7 @@ input[type="checkbox"].comm_pref-checkbox {
padding-bottom: 5px;
}
-#reservationSchedules > li {
+#reservationSchedules > li .item-listing ul {
padding-bottom: 7px;
}
@@ -157,6 +158,10 @@ ul.subgroup-ul {
line-height: 36px;
}
+.mgt-reservation-legend-item-strikethrough {
+ text-decoration: line-through;
+}
+
/*-------------------------
transient alert*/
.transient_alert
diff --git a/equipment_group_schedules_of_reservations.frag.php b/equipment_group_schedules_of_reservations.frag.php
index c89d513..fd689ab 100755
--- a/equipment_group_schedules_of_reservations.frag.php
+++ b/equipment_group_schedules_of_reservations.frag.php
@@ -4,16 +4,19 @@
List View
Monthly Calendar View
+ Report
- legend: manager reservation user reservation
+ legend: manager reservation user reservation
flag_is_system_admin || $is_group_manager);
if (count($Requested_EqGroup->schedules) > 0) {
$allCount = count($Requested_EqGroup->schedules);
@@ -21,6 +24,14 @@
foreach ($Requested_EqGroup->schedules as $sched) {
$li = Db_Linked::listItemTag('list-of-schedule-' . $sched->schedule_id);
+
+ // add metadata about schedule type
+ $li = substr($li,0,-1); // remove trailing '>'
+ if ($sched->type == 'manager') {
+ $li .= ' class="list-items-mgr">';
+ } else {
+ $li .= ' class="list-items-user">';
+ }
//If want to show the delete button
if ($show_del_control) {
@@ -31,9 +42,15 @@
$month = substr($sched->start_on_date, 5, 2);
$thisSched = $sched->schedule_id;
+ // NOTE: this structure currently has a lot of unnecessary code duplication (or, in some cases, insufficient duplication - the first section has stuff that really should be repeated in the second section). However, time crunch means that's not getting refactored right now.
+
//Default: only list the reservations in the current year and month
if ($year == util_getCurrentYearNum() && $month == util_getCurrentMonthNum()) {
$li .= "";
+ } else {
+ $li .= "";
+ $thisMonthCount++;
+ }
if ($sched->type == 'manager') {
$li .= '(MANAGEMENT) ';
@@ -47,6 +64,7 @@
}
//if this reservation is by the signed in user then schedule is reserved "by you" else show username of the reserver
+ $user_label = 'you';
if ($sched->user_id == $USER->user_id) {
$li .= ' ' . $output . ' by you
';
} else {
@@ -56,14 +74,17 @@
if (!$sched->user->matchesDb) {
$del_user = User::getOneFromDb(['user_id' => $sched->user_id, 'flag_delete' => true], $DB);
if (!$del_user->matchesDb) {
- $li .= 'could not determine the user ';
+ $user_label = 'could not determine the user ';
+ $li .= $user_label;
} else {
- $li .= 'user removed from system: ' . $del_user->fname . ' ' . $del_user->lname . ' ';
+ $user_label = 'user removed from system: ' . $del_user->fname . ' ' . $del_user->lname . ' ';
+ $li .= $user_label;
}
} else {
// $li .= $sched->user->fname . ' ' . $sched->user->lname . '(TODO: add link/hover stuff)
';
//Allows hover
- $li .= $sched->user->renderRich();
+ $user_label = $sched->user->renderRich();
+ $li .= $user_label;
}
}
$li .= "\n";
@@ -71,48 +92,67 @@
//Print out the corresponding reservations
foreach ($sched->reservations as $r) {
if ($r->eq_item->name) {
- $li .= '- ' . $r->eq_item->eq_subgroup->name . ': ' . $r->eq_item->name . "
\n";
+ $item_label = $r->eq_item->eq_subgroup->name . ': ' . $r->eq_item->name;
+ $li .= '- ' . $item_label . "
\n";
+ if (! array_key_exists($item_label,$schedule_transpose)) {
+ $schedule_transpose[$item_label] = [];
+ }
+ array_push($schedule_transpose[$item_label],"$output - $user_label");
}
}
$li .= "
\n";
echo $li;
- }else{
- $li .= "";
- if ($sched->type == 'manager') {
- $li .= '(MANAGEMENT) ';
- }
- if ($sched->user_id == $USER->user_id) {
- $li .= ' ' . $sched->toString() . ' by you
';
- } else {
- $sched->loadUser();
- $li .= '' . $sched->toString() . ' by ';
- if (!$sched->user->matchesDb) {
- $del_user = User::getOneFromDb(['user_id' => $sched->user_id, 'flag_delete' => true], $DB);
- if (!$del_user->matchesDb) {
- $li .= 'could not determine the user ';
- } else {
- $li .= 'user removed from system: ' . $del_user->fname . ' ' . $del_user->lname . ' ';
- }
- } else {
- // $li .= $sched->user->fname . ' ' . $sched->user->lname . '(TODO: add link/hover stuff)
';
- $li .= $sched->user->renderRich();
- }
- }
- $li .= "\n";
- foreach ($sched->reservations as $r) {
- // util_prePrintR($sched);
- if ($r->eq_item->name) {
- $li .= '- ' . $r->eq_item->eq_subgroup->name . ': ' . $r->eq_item->name . "
\n";
- }
- }
- $li .= "
\n";
- echo $li;
-
- $thisMonthCount++;
- }
+ # }else{
+ # $li .= "";
+ # if ($sched->type == 'manager') {
+ # $li .= '(MANAGEMENT) ';
+ # }
+
+ # //shorten the shown reservation if it is a repeated schedule
+ # if ($sched->frequency_type == 'monthly' || $sched->frequency_type == 'weekly') {
+ # $output = $sched->summary;
+ # } else {
+ # $output = $sched->toString();
+ # }
+
+ # if ($sched->user_id == $USER->user_id) {
+ # $li .= ' ' . $output . ' by you
';
+ # } else {
+ # $sched->loadUser();
+ # $li .= '' . $output . ' by ';
+
+ # if (!$sched->user->matchesDb) {
+ # $del_user = User::getOneFromDb(['user_id' => $sched->user_id, 'flag_delete' => true], $DB);
+ # if (!$del_user->matchesDb) {
+ # $li .= 'could not determine the user ';
+ # } else {
+ # $li .= 'user removed from system: ' . $del_user->fname . ' ' . $del_user->lname . ' ';
+ # }
+ # } else {
+ # // $li .= $sched->user->fname . ' ' . $sched->user->lname . '(TODO: add link/hover stuff)
';
+ # $li .= $sched->user->renderRich();
+ # }
+ # }
+ # $li .= "\n";
+ # foreach ($sched->reservations as $r) {
+ # // util_prePrintR($sched);
+ # if ($r->eq_item->name) {
+ # $li .= '- ' . $r->eq_item->eq_subgroup->name . ': ' . $r->eq_item->name . "
\n";
+ # }
+ # }
+ # $li .= "
\n";
+ # echo $li;
+
+ # $thisMonthCount++;
+ # }
}
+ echo "";
+
+
if ($thisMonthCount == $allCount) {
echo "- Nothing reserved for this month
";
}
@@ -139,6 +179,26 @@
?>
+
+No reservations for any equipment in this group\n";
+} else {
+ ksort($schedule_transpose);
+ foreach ($schedule_transpose as $item_label => $res_ar) {
+ echo " - $item_label";
+ echo "
\n";
+ $recent_first_res = array_reverse($res_ar);
+ foreach ($recent_first_res as $res_elt) {
+ echo " - $res_elt
\n";
+ }
+ echo "
\n";
+ echo " \n";
+ }
+}
+?>
+
+
diff --git a/js/equipment_group.js b/js/equipment_group.js
index 65ba47d..b60dc1b 100755
--- a/js/equipment_group.js
+++ b/js/equipment_group.js
@@ -52,6 +52,15 @@ $(document).ready(function () {
}
}
+ $(document).on("click", "#mgt-reservation-legend-item", function(){
+ $("#mgt-reservation-legend-item").toggleClass("mgt-reservation-legend-item-strikethrough");
+ if ($("#mgt-reservation-legend-item").hasClass("mgt-reservation-legend-item-strikethrough")) {
+ $(".list-items-mgr").addClass("hide");
+ } else {
+ $(".list-items-mgr").removeClass("hide");
+ }
+ });
+
//****** related to showing reservations list
$(document).on("click", "#show-reservations-buttons .show-this-month", function(){
var show_which = $('.show-this-month').attr('data-show-month');
@@ -1365,6 +1374,23 @@ var durationsJSON = '{
//**********************************
// Calendar related
+ $(document).on("click", "#reservations_view .show_reservation_report", function () {
+ //Successfully gets the calendar day
+ if($('.report').hasClass("hide")){
+ if($('.calendar').hasClass('hide')){
+ $('.calendar_day').addClass('hide');
+ }else{
+ $('.calendar').addClass("hide");
+ }
+ if($('.schedule').hasClass('hide')){
+ $('.calendar_day').addClass('hide');
+ }else{
+ $('.schedule').addClass("hide");
+ }
+ $('.report').removeClass("hide");
+ }
+ });
+
$(document).on("click", "#reservations_view .show_reservation_list", function () {
//Successfully gets the calendar day
if($('.schedule').hasClass("hide")){
@@ -1373,6 +1399,11 @@ var durationsJSON = '{
}else{
$('.calendar').addClass("hide");
}
+ if($('.report').hasClass('hide')){
+ $('.calendar_day').addClass('hide');
+ }else{
+ $('.report').addClass("hide");
+ }
$('.schedule').removeClass("hide");
}
});
@@ -1384,6 +1415,11 @@ var durationsJSON = '{
}else{
$('.schedule').addClass("hide");
}
+ if($('.report').hasClass('hide')){
+ $('.calendar_day').addClass('hide');
+ }else{
+ $('.report').addClass("hide");
+ }
$('.calendar').removeClass("hide");
}
});