CINXE.COM
Space Availability - - Maxwell Library Reservations - Maxwell Library
<!DOCTYPE html> <html lang="en"> <head> <!-- iid: 4049 --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://static-assets-us.libcal.com/bootstrap_13/bootstrap3.min.css" rel="stylesheet"> <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <link href="https://static-assets-us.libcal.com/css_741/LibCal_public.min.css" rel="stylesheet"> <link href="https://static-assets-us.libcal.com/css_741/print.min.css" rel="stylesheet" media="print"> <script src="https://static-assets-us.libcal.com/jquery_16/jquery.min.js"></script> <script src="https://static-assets-us.libcal.com/bootstrap_13/bootstrap3.min.js"></script> <script src="https://static-assets-us.libcal.com/js_741/LibCal_public.min.js"></script> <script> springSpace.dateFormat = "dddd, MMMM D, YYYY"; springSpace.dateShortFormat = "dddd, MMMM D, YYYY"; springSpace.timeFormat = "h:mma"; springSpace.timezone = 'America/New_York'; springSpace.currency = "USD"; springSpace.currencySymbol = "$"; springSpace.language = 'en'; // en springSpace.locale = 'en-US'; // en-US springSpace.phpTimeFormat = 'g:ia'; springSpace.bootstrapAsset = 'https://static-assets-us.libcal.com/bootstrap_13/bootstrap3_16.min.css'; springSpace.publicCssAsset = 'https://static-assets-us.libcal.com/css_741/LibCal_public.min.css'; springSpace.adminCssAsset = 'https://static-assets-us.libcal.com/css_741/LibCal_admin.min.css'; </script> <meta name="robots" content="noindex, nofollow, noarchive"> <title> Space Availability - - Maxwell Library Reservations - Maxwell Library </title> <style> #s-lc-public-banner { padding: 0; margin: 0; } .s-lc-public-footer { margin: 0; } </style> <link rel="stylesheet" href="https://static-assets-us.libcal.com/fullcalendar_14/fullcalendar.min.css"/> <style> .s-lc-eq-avail, .label-eq-avail, .s-lc-eq-period-available { background: #14951f none !important; border-color: #14951f !important; } .s-lc-eq-avail:hover, .s-lc-eq-period-available:hover { background: #095212 none !important; border-color: #095212 !important; } .s-lc-eq-pending, .label-eq-pending, .s-lc-eq-period-pending { background: #F59F16 none !important; border-color: #F59F16 !important; } .s-lc-eq-checkout, .s-lc-eq-r-unavailable, .s-lc-eq-r-padding, .label-eq-unavailable, .s-lc-eq-period-booked { background: #c91908 none !important; border-color: #c91908 !important; } </style> <style> @media (max-width: 768px) { .fc-timeline .fc-cell-text { font-size: 12px !important; } } </style> <style> .s-lc-location-name { font-size: 32px; } </style> <link href="https://fonts.googleapis.com/css?family=Cardo" rel="stylesheet"> <link rel="shortcut icon" href="https://libapps.s3.amazonaws.com/customers/3020/images/favicon.ico" type="image/vnd.microsoft.icon"> <script language="javascript" type="text/javascript">var dateObject=new Date();</script> <style> body { font-size: 11pt; } a { color: #007BBC; } #s-lc-public-cust-header { font-size: 12pt; } #s-lc-public-bc { display: none; } /* color of navbar (dropdown) menu */ .navbar-default { background-color: #345975; border: 1px solid #345975; font-size: 12pt; padding: 0 15px; } .navbar-default .navbar-nav > li > a { color: #FFF; } .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:focus, .navbar-default .navbar-nav > .open > a:hover { color: #FFF; background-color: #99bccb; } .nav > li > a:hover, .nav > li > a:focus { outline: 0; } .dropdown-menu { background-color: #99bccb; opacity: .95; font-size: 14px; } .dropdown-menu > li > a { color: #000; font-weight: 600; } .navbar-default .navbar-nav > li > a:hover { color: #FFF; } /* get rid of curved corners for navbar */ .navbar { border-radius: 0; } .caret { margin-left: 4px; border-top: 8px dashed; border-right: 8px solid transparent; border-left: 8px solid transparent; } /* style library logo in header */ #lib-logo { padding: 5px 0; } #lib-name { padding-top: 5px; padding-left: 0; } #lib-name p.header-Maxwell { padding-top: 50px; } #lib-name p.header-Maxwell { color: #222; font-size: 18px; } #lib-name p.header-Maxwell a { font-size: 30px; color: #345975; text-decoration: none; } #lib-name p.header-Maxwell .bsu a { font-family: 'Cardo', serif; font-size: 18px; color: #222; text-decoration: none; } #s-lg-embedded-search-widget-1503669347210 { padding-top: 20px; } /* FOOTER */ #s-lc-public-cust-footer { font-size: 12pt; } /*aligns social media icons in footer to right*/ .social-media { text-align: right; } /*sets background color for custom footer adds top padding*/ #custom-footer { /* background-color: #85a198; */ background-color: #345975; border: 1px solid #AAA; padding-top: 10px; /* color: #222;*/ color: #FFF; } #custom-footer a { /* color: #eee; */ color: #CCC; } #library-address address { margin-bottom: 0; } p.social-media-icons { padding-top: 25px; } /* Style "public footer" -- Suppress most of LibCal public footer, leave Staff login */ #s-lc-public-footer { background-color: #fff; border: none; padding-top: 30px; } #s-lc-public-footer-brand, #s-lc-public-footer-rights, #s-lc-footer-support-link { display: none; } #s-lc-public-footer-admin-links { float: right; } /* styles LibCal Booking Details page that displays before user sees submit page */ /* hides "Terms and Conditions header */ #bform-terms-container h3 { display: none; } #api_hours_today_iid4049_lid0 .hours-col-loc { display: none; } .header-hours-widget { font-size: 18px; margin-top: 10px; } </style> </head> <body id="equip_" class="s-lc-public s-lc-public-page-5"> <a id="s-lc-public-skiplink" class="s-lc-skiplink alert-info" href="#s-lc-public-title-area">Skip to Main Content</a> <div id="s-lc-public-cust-header" role="banner"><div id="header-banner" class=container> <div class="row"> <div id="brand-col" class="col-sm-8"> <div class="row"> <div id="lib-logo" class="col-sm-3 col-md-2"> <a href="https://library.bridgew.edu/"><img src="https://libapps.s3.amazonaws.com/customers/3020/images/MaxLogo4HomePage.jpg" alt="Maxwell Library home" width="110" /></a> </div> <!-- lib-logo --> <div id="lib-name" class="col-sm-9 col-md-10"> <p class="header-Maxwell"><a href="https://library.bridgew.edu/home"><strong>Maxwell</strong> Library |</a> <span class="bsu"><em><a href="https://www.bridgew.edu" target="_blank">Bridgewater State University</a></em></span></p> </div> <!-- lib-name --> </div> </div> <div id="search-col" class="col-sm-4"> <div id="search_lg_widget"> <script> springshare_widget_config_1503669347210 = { }; </script> <div id="s-lg-widget-1503669347210"></div> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://lgapi-us.libapps.com/widgets.php?site_id=4998&widget_type=7&widget_embed_type=1&output_format=1&search_box_type=1&group_id=13775&placeholder_text=Search+Library+Website+%26+MaxGuides&button_text=Submit&widget_height=&widget_width=250&config_id=1503669347210";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","s-lg-widget-script-1503669347210");</script> </div> <!-- closes search widget --> <div> <table class="header-hours-widget"> <tbody> <tr> <td>Today's Hours: </td> <td> <div id="api_hours_today_iid4049_lid0"></div> <script src="https://api3.libcal.com/api_hours_today.php?iid=4049&lid=0&format=js&systemTime=0&context=object"> </script> </td> </tr> </tbody> </table> </div> </div> </div> </div> <!-- closes header-banner --> <div id="header-nav"> <nav class="navbar navbar-default"> <div class="container"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <!-- <a class="navbar-brand" href="#">Brand</a> --> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav"> <!-- <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li> --> <!-- <li><a href="#">HOME</a></li> --> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">FIND<span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://library.bridgew.edu/find/articles">Articles</a></li> <li><a href="https://library.bridgew.edu/find/books">Books/eBooks</a></li> <li><a href="https://bridgew.bywatersolutions.com/cgi-bin/koha/opac-course-reserves.pl" target="_blank" title="Find material placed on course reserves" aria-label="Find material placed on course reserves">Course Reserves <i class="fa fa-fw fa-external-link" aria-hidden="true" title="This link opens in a new window"></i></a></li> <li><a href="https://library.bridgew.edu/az.php" target="_blank">Databases <i class="fa fa-fw fa-external-link" aria-hidden="true" title="This link opens in a new window"></i></a></li> <li><a href="https://login.libserv-prd.bridgew.edu/login?url=http://search.ebscohost.com/login.aspx?authtype=ip,uid&profile=pfi&Group=main" target="_blank">Journals by Title <i class="fa fa-fw fa-external-link" aria-hidden="true" title="This link opens in a new window"></i></a></li> <li><a href="https://library.bridgew.edu/find/newspapers">Newspapers</a></li> <li><a href="https://library.bridgew.edu/find/videos">Videos/Films</a></li> <li><a href="https://library.bridgew.edu/find/ill-dds" title="Borrow Material from another library" aria-label="Borrow Material from another library">Material from other Libraries</a></li> <li><a href="https://bridgew.libcal.com/allspaces" target="_blank" aria-label="Study Rooms available to reserve">Study Rooms <i class="fa fa-fw fa-external-link" aria-hidden="true" title="This link opens in a new window"></i></a></li> <li><a href="https://library.bridgew.edu/find" aria-label="More library resources">More ...</a></li> <!--<li role="separator" class="divider"></li> --> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">COLLECTIONS<span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://library.bridgew.edu/erc">Educational Resources Center</a></li> <li><a href="https://library.bridgew.edu/sca/">Archives & Special Collections</a></li> <li><a href="https://vc.bridgew.edu/" target="_blank">Virtual Commons <i class="fa fa-fw fa-external-link" aria-hidden="true" title="This link opens in a new window"></i></a></li> <li><a href="https://library.bridgew.edu/collections" aria-label="More library collections">More ...</a></li> <!--<li role="separator" class="divider"></li> --> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">RESEARCH & ASSIGNMENTS<span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://library.bridgew.edu/forms/ask">Ask A Librarian</a></li> <li><a href="https://library.bridgew.edu/research/citations">Citing Sources</a></li> <li><a href="https://library.bridgew.edu/research/course-reserves" aria-label="Course reserves information for students and faculty">Course Reserves</a></li> <li><a href="https://library.bridgew.edu/research/erc">Educational Resources Center</a></li> <li><a href="https://library.bridgew.edu/research/ill-dds" title="Borrow Material from another library" aria-label="Borrow Material from another library">Interlibrary Loan</a></li> <li><a href="https://library.bridgew.edu/guides" target="_blank">MaxGuides (Subject Resource Guides) <i class="fa fa-fw fa-external-link" aria-hidden="true" title="This link opens in a new window"></i></a></li> <li><a href="https://library.bridgew.edu/forms/research-consult">Research Consultation</a></li> <li><a href="https://library.bridgew.edu/research" aria-label="More research and assignment resources">More ...</a></li> <!--<li role="separator" class="divider"></li> --> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">SERVICES<span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://library.bridgew.edu/guides/disability" target="_blank">Accessibility Resources <i class="fa fa-fw fa-external-link" aria-hidden="true" title="This link opens in a new window"></i></a></li> <li><a href="https://library.bridgew.edu/forms/ask">Ask A Librarian</a></li> <li><a href="https://library.bridgew.edu/services/borrow">Borrow/Renew Items</a></li> <li><a href="https://library.bridgew.edu/services/instruction">Class Instruction</a></li> <li><a href="https://library.bridgew.edu/research/course-reserves" aria-label="Course reserves information for students and faculty">Course Reserves</a></li> <li><a href="https://library.bridgew.edu/services/ill-dds" title="Borrow Material from another library" aria-label="Borrow Material from another library">Interlibrary Loan</a></li> <li><a href="https://library.bridgew.edu/forms">Library Forms</a></li> <li><a href="https://library.bridgew.edu/services/mvs">Max Video Streaming</a></li> <li><a href="https://library.bridgew.edu/services/onebutton">One Button Studio</a></li> <li><a href="https://library.bridgew.edu/services/commons">Print/Copy/Scan</a></li> <li><a href="https://library.bridgew.edu/forms/materials">Request Items for Purchase</a></li> <li><a href="https://bridgew.libcal.com/allspaces" target="_blank" aria-label="Study rooms available to reserve">Study Rooms <i class="fa fa-fw fa-external-link" aria-hidden="true" title="This link opens in a new window"></i></a></li> <li><a href="https://library.bridgew.edu/services" aria-label="More library services">More ...</a></li> <!--<li role="separator" class="divider"></li> --> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">ABOUT US<span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://bridgew.libanswers.com/" target="_blank">FAQs <i class="fa fa-fw fa-external-link" aria-hidden="true" title="This link opens in a new window"></i></a></li> <li><a href="https://library.bridgew.edu/about/hours">Hours & Events</a></li> <li><a href="https://library.bridgew.edu/about/liaisons">Liaisons</a></li> <li><a href="https://library.bridgew.edu/about/lib-floors">Library Floor Plans</a></li> <li><a href="https://library.bridgew.edu/about/staff">Library Staff</a></li> <li><a href="https://library.bridgew.edu/about/newsletters">Newsletters</a></li> <li><a href="https://library.bridgew.edu/about/policies">Policies</a></li> <li><a href="https://library.bridgew.edu/about" aria-label="More about the library">More ...</a></li> <!--<li role="separator" class="divider"></li> --> </ul> </li> </ul> <!-- search form deleted from default Bootstrap navbar code --> <script src="https://bridgew.libanswers.com/load_chat.php?hash=41bcb567c981a6104c37fc5d250d94db"></script> <div id="libchat_41bcb567c981a6104c37fc5d250d94db"></div> <ul class="nav navbar-nav navbar-right"> <li><a href="https://bridgew.bywatersolutions.com/cgi-bin/koha/opac-user.pl">MY ACCOUNT</a></li> <li><a href="https://library.bridgew.edu/forms/ask">ASK US <i aria-hidden="true" class="fa fa-question-circle" style="font-size:1.15em;"></i></a></li> </ul> </div><!-- /.navbar-collapse --> </div><!-- /.container-fluid --> </nav> </div> <!-- closes header-nav> --> </div> <div class="container"> <div id="s-lc-public-bc" class="row"> <div class="col-md-12"> <nav aria-label="Breadcrumb"> <ol class="breadcrumb"> <li><a href="http://library.bridgew.edu">Maxwell Library</a></li> <li class="s-lc-desktop-only"><a href="https://bridgew.libcal.com">Maxwell Library Reservations</a></li> <li class="active s-lc-desktop-only"> Space Availability - </li> </ol> </nav> </div> </div> <noscript> <div class="alert alert-danger" id="noscript">Your browser has javascript disabled. Without javascript some functions will not work.</div> </noscript> <div id="s-lc-public-title-area"> </div> <main> <div id="s-lc-public-main" class="s-lc-public-main"> <div id="s-lc-public-page-content" class="row"> <div id="col1" class="col-md-12 center" > <div id="s-lc-eq-navform" class="s-lc-spaces-setup-info"> <h1 class="sr-only"> Space Availability - </h1> <form class="form-inline" role="search" autocomplete="off"> <input type="hidden" name="page" id="page" value="1"> <input type="hidden" name="type" id="type" value="2"> <div class="form-group form-group-sm"> <label class="hidden-sm" for="lid">Location</label> <select class="form-control" name="lid" id="lid"> <option value="1727" >Group Study</option> <option value="0" selected="selected"> View All Locations </option> </select> </div> <div class="form-group form-group-sm"> <label class="hidden-sm" for="capacity"> Capacity </label> <select class="form-control" name="capacity" id="capacity"> <option value="0"> All Spaces (not seats) </option> <option value="1"> Space For 1-4 people </option> <option value="2"> Space For 5-8 people </option> <option value="3"> Space For 9-12 people </option> </select> </div> <div class="form-group pull-right s-lc-eq-s-confirmedBtn"> <i class="fa fa-calendar-check-o" aria-hidden="true"></i> <a href="/spaces/bookings?lid=&gid=" class="s-lc-eq-s-conf-link"> View Confirmed Bookings</a> </div> </form> </div> <div id="s-lc-window-limit-warning" class="alert alert-info margin-top-med margin-bottom-none" role="alert" style="display: none;"> You have reached the end of the bookable window. No availability will be shown past this point. </div> <div id="time_grid_cont" role="grid" class="s-lc-spaces-time-grid s-lc-spaces-setup-info"> <div class="alert alert-warning"> Please note, due to the amount of data being loaded, this page can be slow to load. For a faster view, limit your search to a specific Location. </div> <div id="s-lc-1727" class="s-lc-time-grid-location margin-bottom-lg" data-lid="1727" style="display: none;"> <h1 class="s-lc-location-name">Group Study Spaces</h1> <div id="s-lc-time-grid-1727"> </div> <div class="s-lc-time-grid-legend"> <span class="label-eq-cont" data-toggle="tooltip" data-placement="top" title="Slot is available, click to book!"><span class="label label-eq-avail"> </span> Available</span> <span class="label-eq-cont" data-toggle="tooltip" data-placement="top" title="Your pending booking."><span class="label label-eq-pending"> </span> Your Booking</span> <span class="label-eq-cont" data-toggle="tooltip" data-placement="top" title="This slot is unavailable for starting a new booking. Bookings may occasionally extend into this slot."><span class="label label-eq-unavailable"> </span> Unavailable</span> </div> </div> </div> <div id="s-lc-eq-form-box" class="s-lc-spaces-setup-info" style="display: none;" role="region" aria-label="booking form" aria-live="polite"> <form id="s-lc-eq-form-times" class="form-horizontal" method="post"> <fieldset> <div id="s-lc-eq-bwell" class="well" tabindex="0"> </div> <div id="s-lc-eq-bform-inner" class="col-sm-offset-5"> <button class="btn btn-primary" name="submit_times" id="submit_times">Submit Times</button> <button class="btn btn-default" name="eq_cart" id="eq_cart"><i class="fa fa-shopping-cart fa-lg" aria-hidden="true"></i> Add Equipment</button> </div> </fieldset> </form> </div> <div id="s-lc-eq-form" style="clear:both; display: none;" role="region" aria-live="polite" aria-label="Booking details"></div> <div id="s-lc-eq-errors" class="alert alert-danger" style="display: none;" role="region" aria-live="polite" aria-label="Error encountered"></div> <div id="s-lc-eq-success" style="display: none;" role="region" aria-live="polite" aria-labelledby="s-lc-eq-success-title"> </div> </div> </div> </div> </main> <footer id="s-lc-public-footer" class="row s-lc-public-footer"> <div id="s-lc-public-footer-brand"> <span title="libcal-us-2">Powered by</span> <a href="https://www.springshare.com">Springshare</a>. </div> <div id="s-lc-public-footer-rights"> All rights reserved. </div> <div id="s-lc-footer-support-link"> <a href="http://bridgew.libanswers.com/form.php?queue_id=1854">Report a tech support issue.</a> </div> <div id="s-lc-public-footer-admin-links" role="navigation" aria-label="Admin Footer"> <a id="s-lc-sign-in" href="https://bridgew.libapps.com/libapps/login.php?site_id=12605&target=">Library Services Login</a> </div> <div class="s-lc-public-footer-actions"> <div id="s-lc-language"> <select id="s-lc-language-selector" aria-label="Select Language"> <option value="ca" >català</option> <option value="cy" >Cymraeg</option> <option value="en" selected>English</option> <option value="es" >español</option> <option value="fr" >français</option> <option value="ga" >Irish</option> <option value="ja" >日本語 Nihongo</option> <option value="nl" >Nederlands</option> <option value="sl" >slovenski jezik</option> <option value="vi" >Tiếng Việt</option> <option value="zh" >中文 Zhōngwén</option> </select> </div> </div> </footer> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11245198-14', 'auto'); ga('send', 'pageview'); </script> </div> <div id="s-lc-public-cust-footer"><div id="custom-footer"> <div class="container"> <div class="row"> <div class="container" id="content-container1"> <div class="col-md-5" id="library-address"> <address> <strong>Maxwell Library</strong><br> Bridgewater State University<br /> 10 Shaw Road<br> Bridgewater MA 02325 </address> </div><!-- /library-address--> <div class="col-md-4" id="library-contact"> <p>Phone: <a href="tel:508-531-1392" role="link">508.531.1392</a><br /> Text: <a href="tel:508-425-4096" role="link">508.425.4096</a><br /> Email: <a href="mailto:answers@bridgew.libanswers.com" aria-label="answers@bridgew.libanswers.com">answers@bridgew.libanswers.com</a></p> </div><!-- /library-contact--> <div class="col-md-3 social-media"> <p><a href="http://library.bridgew.edu/forms/comments" aria-label="Submit your Feedback or Comments">Feedback/Comments</a></p> <p><a href="http://library.bridgew.edu/ld.php?content_id=34808901">Privacy Policy <i class="fa fa-fw fa-external-link" aria-hidden="true" title="This link opens in a new window"></i></a></p> </div> </div><!--/content-container--> </div> <div class="row"> <div class="container" id="content-container2"> <div class="col-md-9" id="copyright"> <p class="social-media-icons">©<script type="text/javascript"> document.write(dateObject.getFullYear()); </script> <a href="http://www.bridgew.edu/" target="_blank" role="link">Bridgewater State University</a>. All Rights Reserved</p> </div> <div class="col-md-3 social-media"> <p> <a href="http://www.facebook.com/MaxwellLibrary" target="_blank"><i class="fa fa-facebook-official fa-3x"></i><span class="sr-only">Follow us on Facebook</span></a> <a href="https://twitter.com/MaxwellLibrary" target="_blank"><i class="fa fa-twitter fa-3x"></i><span class="sr-only">Follow us on Twitter</span></a> </p> </div><!-- /social-media--> </div><!--/content-container--> </div><!-- /row --> </div><!-- /container --> </div><!--/custom-footer--></div> <script defer src="https://static-assets-us.libcal.com/fullcalendar_14/fullcalendar.min.js"></script> <script defer src="https://static-assets-us.libcal.com/js_741/datepicker.min.js"></script> <link rel="stylesheet" href="https://static-assets-us.libcal.com/css_741/datepicker.min.css"/> <script> var springyFullCalendar = { commonOptions: { schedulerLicenseKey: '0391239527-fcs-1659132663', now: '2025\u002D04\u002D11\u002005\u003A19', nowIndicator: true, scrollTime: '04\u003A00\u003A00', lazyFetching: false, locale: springSpace.language, themeSystem: 'bootstrap', eventTextColor: '#222', eventDisplay: 'block', moreLinkClick: 'day', bootstrapFontAwesome: { goToDate: 'fa-calendar', goToNextAvailable: 'fa-fast-forward', refresh: 'fa-refresh', }, navLinks: true, // https://fullcalendar.io/docs/navLinks resourceOrder: false, // https://fullcalendar.io/docs/resourceOrder stickyHeaderDates: false, // https://fullcalendar.io/docs/stickyHeaderDates && https://github.com/springshare/LibCal/issues/11801 dayCellContent: function (info) { // regardless of language, show the day as a number with no extra characters return info.date.getDate(); }, }, timelineOptions: { height: 'auto', refetchResourcesOnNavigate: false, eventOverlap: false, displayEventTime: false, slotDuration: '00\u003A15', titleFormat: springSpace.dateFormat, views: { timelineSingleDay: { type: 'resourceTimeline', buttonText: 'Day\u0020View', duration: {days: 1}, slotLabelFormat: springSpace.timeFormat, }, timelineHourlyShort: { type: 'resourceTimeline', duration: {days: 3}, slotLabelFormat: [springSpace.dateFormat, springSpace.timeFormat], }, timelineHourlyLong: { type: 'resourceTimeline', duration: {days: 7}, slotLabelFormat: [springSpace.dateFormat, springSpace.timeFormat], }, timelineDailyLong: { type: 'resourceTimeline', slotDuration: '24:00', duration: {days: 28}, slotLabelFormat: ['dd D'], nowIndicator: false }, resourceTimeGridWeek: { buttonText: 'Week\u0020View', slotLabelFormat: springSpace.timeFormat, } }, }, publicTexts: { allDay: 'All\u0020Day', available: 'Available', dayGridMonth: 'Month', dayGridWeek: 'Agenda', goToDate: 'Go\u0020To\u0020Date', goToNextAvailable: 'Next\u0020Available', next: 'Next', prev: 'Previous', timeGridDay: 'Day', timeGridWeek: 'Week', today: 'Today', unavailable: 'Unavailable', yourBooking: 'Your\u0020Booking', listWeek: 'Week\u0020List', }, adminTexts: { goToDate: 'Go\u0020To\u0020Date', refresh: 'Refresh', prev: 'Previous', next: 'Next', today: 'Today', week: 'Week', month: 'Month', day: 'Day', dayGridWeek: 'Agenda', allDay: 'All\u0020Day', atLocation: '\u0025title\u0025\u0020at\u0020\u0025location\u0025', }, dateTimeFormats: { monthViewTitle: 'MMMM YYYY', }, }; // placeholder for dynamic content boxes with a full calendar var calendarList = {}; function reRenderCalendarList() { for (var calId in calendarList) { calendarList[calId].render(); } } </script> <script defer src="https://static-assets-us.libcal.com/js_741/direct/full-calendar-common.min.js"></script> <script> var springLang = { eq_js_until_det: 'until...', eq_js_rem_pending: 'Remove\u0020Pending\u0020Booking', eq_js_cart_tt: 'Create\u0020a\u0020shopping\u0020cart\u0020with\u0020these\u0020space\u0020bookings,\u0020and\u0020go\u0020to\u0020equipment\u0020booking\u0020page\u0020to\u0020add\u0020more\u0020items\u0020to\u0020the\u0020cart.', eq_js_isRequired: 'is\u0020required\u0021', }; </script> <script defer src="https://static-assets-us.libcal.com/js_741/direct/public/equipment/common.min.js"></script> <script defer src="https://static-assets-us.libcal.com/js_741/direct/public/equipment/spaces.min.js"></script> <script defer src="https://static-assets-us.libcal.com/js_741/direct/public/equipment/session.min.js"></script> <script> var pendingRoomBookings = []; var pendingBookingNextId = 1; var pendingBookingsBlowAwayCart = false; function addError(msg, id) { jQuery(".s-lc-eq-" + id).addClass("has-error").find(".form-control").attr("aria-invalid", true); jQuery(".s-lc-eq-" + id).find(".s-lc-eq-flab").append('<div class="error-message">' + msg + "</div>"); jQuery("#" + id).focus(); return false; } function removeErrors() { jQuery(".s-lc-eq-q").removeClass("has-error").find(".error-message").remove(); } function agreeToTermsAndConditions() { jQuery("#bform-terms-container").hide(); jQuery("#bform-form-container").show(); scrollAndFocusOnElement('#s-lc-bform-help'); return false; } function toggleSubmitButton() { var isTermsAgreedTo = jQuery(this).is(':checked'); jQuery('#btn-form-submit').prop('disabled', !isTermsAgreedTo); } function customFormValidation() { // exists to be overwritten by the specific group validation function } function preFormValidationAndPayload() { removeErrors(); jQuery("#s-lc-eq-errors").hide(); if (!isVisibleFieldsValid()) { return false; } if (!customFormValidation()) { return false; } pageBusyBegin("#btn-form-submit"); var formElement = '#s-lc-eq-bform'; var bookings = preparePendingBookingsPayload(); var bookingsPayload = JSON.stringify(bookings); springyCommon.appendHiddenInput('bookings', bookingsPayload, formElement); springyCommon.appendHiddenInput('returnUrl', springySpaces.getReturnUrl(), formElement); springyCommon.appendHiddenInput('pickupHolds', jQuery('#s-lc-pickup-holds').val(), formElement); springyCommon.appendHiddenInput('method', springyPage.bookingMethod, formElement); return true; } function bookingSuccessCallback(data) { pageBusyEnd("#btn-form-submit"); if (data.error) { jQuery("#s-lc-eq-errors").html(data.error).show(); return; } jQuery('#s-lc-eq-form, .s-lc-spaces-setup-info').hide(); jQuery('#s-lc-eq-success').html(data.html).show().focus(); springySession.clear(); return; } function bookingErrorCallback(xhr) { pageBusyEnd("#btn-form-submit"); var errorMessage = ajaxErrorGetText(xhr); jQuery('#s-lc-eq-errors').html(errorMessage).show().focus(); } function submitPendingTimes() { var payload = { patron: springySpaces.patron, patronHash: springySpaces.patronHash, returnUrl: springySpaces.getReturnUrl(), bookings: preparePendingBookingsPayload(), method: springyPage.bookingMethod, }; pageBusyBegin("#submit_times"); jQuery.ajax({ type: 'post', url: '/ajax/space/times', data: payload, dataType: 'json', }) .always(function () { pageBusyEnd("#submit_times"); }) .done(function(data) { if (data.redirect) { // redirect to libauth checkout page window.location = data.redirect; return; } // hide a bunch of stuff jQuery('.s-lc-spaces-setup-info').hide(); // setup booking form + terms html jQuery("#s-lc-eq-form").html(data.html).show(); // scroll to the top of the page window.scrollTo(0, 0); }) .fail(ajaxErrorHandler); return false; } function makeCartAndGoToEquipPage() { // we only allow user to do this if all the room bookings start at the same time if (pendingRoomBookings.length > 1) { var startTime = pendingRoomBookings[0].start; for (var i = 1; i < pendingRoomBookings.length; i++) { var bookingInfo = pendingRoomBookings[i]; if (!bookingInfo.start.isSame(startTime)) { errorAlert('You can only create an Equipment Cart if all your room bookings begin at the same time.'); return false; } } } var payload = { blowAwayCart: pendingBookingsBlowAwayCart, returnUrl: springySpaces.getReturnUrl(), bookings: preparePendingBookingsPayload(), method: springyPage.bookingMethod, }; workingAlert(); jQuery.ajax({ type: 'post', url: "/ajax/space/createcart", data: payload, dataType: 'json', }) .always(function (data) { stopAlert(); }) .done(function(data) { if (data.success) { // redirect to new page window.location = data.redirect; } else if (data.hasItems) { errorAlert("Cart already has items in it. If you click the shopping cart again, the existing items in the cart will be replaced by the selected rooms."); pendingBookingsBlowAwayCart = true; } else { errorAlert(data.error); } }) .fail(ajaxErrorHandler); return false; } function changeBookingTimes() { // show the old form box + availability grid jQuery('.s-lc-spaces-setup-info').show(); // hide the terms + booking form jQuery('#s-lc-eq-form, #s-lc-eq-errors').hide(); return false; } function getSpaceResourceContent(info) { var html = ''; var resourceData = info.resource.extendedProps; var resourceId = springyPage.isSeatBooking ? resourceData.seatId : resourceData.eid; var title = escapeHtml(info.fieldValue); if (resourceData.hasInfo) { html += '<a href="#" class="s-lc-item-more-info" data-eid="' + resourceId + '"' + ' aria-label="Click\u0020for\u0020more\u0020info\u0020about ' + title + '">' + '<span class="s-lc-info-label">Info</span>' + '</a>'; } var additionalClasses = ''; var additionalIcons = ''; var filterIds = resourceData.filterIds || []; for (var i = 0; i < filterIds.length; i++) { var filterId = filterIds[i]; if (filterId in springyPage.searchFilters) { var filter = springyPage.searchFilters[filterId]; additionalClasses += ' s-lc-filter-' + filterId; additionalIcons += ' <i class="fa ' + filter.icon + ' fa-lg" aria-hidden="true"></i>'; } } var resourceLabel = '<span class="fc-cell-text' + additionalClasses + '">' + title + additionalIcons + '</span>'; if (resourceData.url !== undefined) { html += '<a href="' + resourceData.url + '">' + resourceLabel + '</a>'; } else { html += resourceLabel; } return { html: html, }; } jQuery(function () { springyPublic.registerClearBackForwardCache(); jQuery('#lid').on('change', goToPageForLocation); jQuery('#gid').on('change', goToPageForGroup); jQuery('#eq_cart').on('click', makeCartAndGoToEquipPage); jQuery('#s-lc-eq-form-times').on('submit', submitPendingTimes); }); </script> <script defer src="https://static-assets-us.libcal.com/js_741/direct/public/equipment/spaces-all-locations.min.js"></script> <script> var springyPage = { wantAlternatingBackground: true, timelineOptions: { resourceAreaWidth: '30%', initialView: "timelineHourlyShort", }, itemNotSetValue: -1, isSeatBooking: false, seatId: 0, zoneId: 0, filterIds: [], isDailyBookings: false, availabilityNotSetValue: -1, locationHasEquipment: true, locationIdsWithEquipment: [18447], locationIds: [1727], language: { resourceColumnLabel: 'Space', infoLabel: 'Info', clickMoreInfoLabel: 'Click\u0020for\u0020more\u0020info\u0020about', }, returnUrl: '', pageIndex: 0, pageSize: 18, bookingMethod: 17, }; var resourcesLocationIdMap = []; var resourceNameIdMap = []; var resources = []; resources.push({ id: "eid_141476", title: "Room\u0020106 (Capacity 2)", url: "/space/141476", eid: 141476, gid: 2936, lid: 1727, grouping: "Group\u0020Study\u0020Spaces", gtype: 2, gBookingSelectableTime: false, capacity: 2, hasInfo: true, thumbnail: "https://libapps.s3.amazonaws.com/customers/3020/images/L-106.jpg", filterIds: [], }); resourceNameIdMap["eid_141476"] = "Room\u0020106"; resources.push({ id: "eid_187726", title: "Room\u0020110 (Capacity 4)", url: "/space/187726", eid: 187726, gid: 2936, lid: 1727, grouping: "Group\u0020Study\u0020Spaces", gtype: 2, gBookingSelectableTime: false, capacity: 4, hasInfo: false, thumbnail: "", filterIds: [], }); resourceNameIdMap["eid_187726"] = "Room\u0020110"; resources.push({ id: "eid_141477", title: "Room\u0020113 (Capacity 4)", url: "/space/141477", eid: 141477, gid: 2936, lid: 1727, grouping: "Group\u0020Study\u0020Spaces", gtype: 2, gBookingSelectableTime: false, capacity: 4, hasInfo: true, thumbnail: "https://libapps.s3.amazonaws.com/customers/3020/images/L-113.jpg", filterIds: [], }); resourceNameIdMap["eid_141477"] = "Room\u0020113"; resources.push({ id: "eid_128716", title: "Room\u0020123 (Capacity 10)", url: "/space/128716", eid: 128716, gid: 2936, lid: 1727, grouping: "Group\u0020Study\u0020Spaces", gtype: 2, gBookingSelectableTime: false, capacity: 10, hasInfo: true, thumbnail: "https://libapps.s3.amazonaws.com/customers/3020/images/L-123.jpg", filterIds: [], }); resourceNameIdMap["eid_128716"] = "Room\u0020123"; resources.push({ id: "eid_159588", title: "Room\u0020124 (Capacity 6)", url: "/space/159588", eid: 159588, gid: 2936, lid: 1727, grouping: "Group\u0020Study\u0020Spaces", gtype: 2, gBookingSelectableTime: false, capacity: 6, hasInfo: true, thumbnail: "https://libapps.s3.amazonaws.com/customers/3020/images/L-124.jpg", filterIds: [], }); resourceNameIdMap["eid_159588"] = "Room\u0020124"; resources.push({ id: "eid_11334", title: "Room\u0020222 (Capacity 4)", url: "/space/11334", eid: 11334, gid: 2936, lid: 1727, grouping: "Group\u0020Study\u0020Spaces", gtype: 2, gBookingSelectableTime: false, capacity: 4, hasInfo: true, thumbnail: "https://libapps.s3.amazonaws.com/customers/3020/images/L-222.jpg", filterIds: [], }); resourceNameIdMap["eid_11334"] = "Room\u0020222"; resources.push({ id: "eid_11335", title: "Room\u0020223 (Capacity 4)", url: "/space/11335", eid: 11335, gid: 2936, lid: 1727, grouping: "Group\u0020Study\u0020Spaces", gtype: 2, gBookingSelectableTime: false, capacity: 4, hasInfo: true, thumbnail: "https://libapps.s3.amazonaws.com/customers/3020/images/L-223.jpg", filterIds: [], }); resourceNameIdMap["eid_11335"] = "Room\u0020223"; resources.push({ id: "eid_11336", title: "Room\u0020303 (Capacity 6)", url: "/space/11336", eid: 11336, gid: 2936, lid: 1727, grouping: "Group\u0020Study\u0020Spaces", gtype: 2, gBookingSelectableTime: false, capacity: 6, hasInfo: true, thumbnail: "https://libapps.s3.amazonaws.com/customers/3020/images/L-303.jpg", filterIds: [], }); resourceNameIdMap["eid_11336"] = "Room\u0020303"; resourcesLocationIdMap[1727] = resources; var capacityRangesMap = {}; capacityRangesMap[0] = { min: 0, max: 9223372036854775807 }; capacityRangesMap[1] = { min: 0, max: 4 }; capacityRangesMap[2] = { min: 5, max: 8 }; capacityRangesMap[3] = { min: 9, max: 12 }; capacityRangesMap[4] = { min: 13, max: 9223372036854775807 }; </script> <script> var pendingBookingsLimitIssues = null; var dateFormatStartTimeDict = "MMDDHHmm"; var dateFormatDayOfYear = "YYYY-MM-DD"; var issueTypeAdditionalText = { "duration": " minutes", "frequency": " bookings", }; var frequencyDisplayStrings = { "d": " per\u0020day", "w": " per\u0020week", "m": " per\u0020month", "y": " per\u0020year", "t": " at\u0020a\u0020time", }; function pendingRoomBookingsAreNowEmpty() { jQuery("#s-lc-eq-form-box").hide(); } function renderPendingRoomBookings() { // ensure all tooltips are hidden jQuery(".tooltip").hide(); if (pendingRoomBookings.length == 0) { pendingRoomBookingsAreNowEmpty(); return; } // refresh the shown cart items // format the room data as html var html = '<div>'; var startDateTimeFormat = springyPage.isDailyBookings ? springSpace.dateFormat : springSpace.getDateTimeFormat(); var endDateTimeFormat = springyPage.isDailyBookings ? springSpace.dateFormat : springSpace.getShortDateTimeFormat(); var totalCost = 0; for (var i = 0; i < pendingRoomBookings.length; i++) { var bookingInfo = pendingRoomBookings[i]; var bookingCost = bookingInfo.cost; var resourceId = bookingInfo.seat_id > 0 ? bookingInfo.seat_id : bookingInfo.eid; var resourceName = resourceNameIdMap['eid_' + resourceId]; html += '<div class="form-group s-lc-pending-booking" id="pending_booking_' + bookingInfo.id + '">'; html += ' <label class="col-md-5 control-label" for="bookingend_' + bookingInfo.id + '"><strong>' + resourceName + '</strong>: ' + bookingInfo.start.format(startDateTimeFormat) + ' ' + springLang.eq_js_until_det + '</label>'; html += ' <div class="col-md-3">'; html += ' <div class="input-group">'; html += ' <select id="bookingend_' + bookingInfo.id + '" name="bookingend_' + bookingInfo.id + '" data-booking="' + bookingInfo.id + '" class="form-control input-sm b-end-date">'; for (var selectionIndex = 0; selectionIndex < bookingInfo.options.length; selectionIndex++) { var selected = bookingInfo.optionSelected == selectionIndex ? 'selected="selected"' : ''; var value = bookingInfo.options[selectionIndex]; var name = moment(value).format(endDateTimeFormat); var checksum = bookingInfo.optionChecksums[selectionIndex]; html += '<option value="' + value + '" ' + selected + ' data-crc="' + checksum + '">' + name + '</option>'; } html += ' </select>'; html += ' <div class="input-group-btn">'; html += ' <button type="button" class="btn btn-default btn-sm" onclick="return removePendingBooking(' + bookingInfo.id + ',' + bookingInfo.lid + ');"><i class="fa fa-trash-o" aria-hidden="true"></i><span class="sr-only">' + springLang.eq_js_rem_pending + '</span></button>'; html += ' </div>'; html += ' </div>'; html += ' </div>'; if (bookingCost > 0) { var costDisplay = springSpace.formatCurrency(bookingCost); var costPreview = "\u007Bamount\u007D".replace("\u007Bamount\u007D", costDisplay).replace("\u007Brate\u007D", ""); html += '<label class="col-md-3 control-label s-lc-billing-cost-single">' + costPreview + '</label>'; } html += ' </div>'; html += ' </div>'; html += '</div>'; totalCost += bookingCost; } var bookingDurationOkay = true; if (pendingBookingsLimitIssues) { bookingDurationOkay = false; pendingBookingsLimitIssues.forEach(function(issueDetails) { var limitDisplay = issueDetails.allowed + issueTypeAdditionalText[issueDetails.type] + frequencyDisplayStrings[issueDetails.frequency]; var usedDisplay = issueDetails.used + issueTypeAdditionalText[issueDetails.type]; var issueDisplay = 'Sorry,\u0020you\u0020can\u0020only\u0020reserve\u0020\u007BlimitAmount\u007D,\u0020and\u0020you\u0020currently\u0020have\u0020\u007BusedAmount\u007D.\u0020Please\u0020adjust\u0020your\u0020booking.'.replace('{limitAmount}', limitDisplay).replace('{usedAmount}', usedDisplay); var issueHtml = '<strong>' + issueDetails.group + '</strong>: ' + issueDisplay; html += '\ <div class="form-group">\ <div class="col-md-offset-1 col-md-10">\ <div class="alert alert-warning">' + issueHtml + '</div>\ </div>\ </div>'; }); } if (totalCost > 0) { html += '\ <div class="form-group s-lc-pending-booking">\ <label class="col-md-5 control-label">Total\u0020cost\u0020for\u0020this\u0020reservation\u003A</label>\ <label class="col-md-5 control-label s-lc-billing-cost-total">' + springSpace.formatCurrency(totalCost) + '</label>\ </div>'; } html += '</div>'; // show the booking form box which contains the booking well, the terms + conditions and the booking form jQuery("#s-lc-eq-form-box").show(); // put the item in the displayed cart + set the window focus to the cart var roomCart = jQuery("#s-lc-eq-bwell"); roomCart.empty(); roomCart.html(html); roomCart.focus(); // disable the add equipment and form submission buttons until the times are okay jQuery("#submit_times, #eq_cart").prop('disabled', !bookingDurationOkay); // setup delete icon tooltips accessibleIcons(); // make the tooltip for the cart icon jQuery("#eq_cart").tooltip({ title: springLang.eq_js_cart_tt, html: true, container: "body" }); jQuery('.b-end-date').on('change', function() { var changedBooking = jQuery(this); updatePendingBookingDuration(changedBooking); }); } function preparePendingBookingsPayload() { var payload = []; for (var i = 0; i < pendingRoomBookings.length; i++) { var bookingInfo = pendingRoomBookings[i]; payload.push({ id: bookingInfo.id, eid: bookingInfo.eid, seat_id: bookingInfo.seat_id, gid: bookingInfo.gid, lid: bookingInfo.lid, start: bookingInfo.start.format(springSpace.phpDateTimeFormat), end: bookingInfo.end.format(springSpace.phpDateTimeFormat), checksum: bookingInfo.checksum, }); } return payload; } function updatePendingBookingsFromData(bookings) { pendingRoomBookings = []; for (var i = 0; i < bookings.length; i++) { var booking = bookings[i]; pendingRoomBookings.push({ id: booking.id, eid: booking.eid, seat_id: booking.seat_id, gid: booking.gid, lid: booking.lid, cost: booking.cost, checksum: booking.checksum, name: booking.name, start: moment(booking.start), end: moment(booking.end), options: booking.options, optionSelected: booking.optionSelected, optionChecksums: booking.optionChecksums, }); } } function pendingRoomBookingsUpdateListAndAvailability(payload, fcInstance) { // if we are adding rooms, we might need to hide the previous booking success message jQuery("#s-lc-eq-success").hide(); workingAlert(); // find out booking information jQuery.ajax({ type: "post", url: "/spaces/availability/booking/add", data: payload, dataType: "json", }) .always(stopAlert) .done(function(data) { if (data.error) { if (data.isRefreshRequired) { fcInstance.refetchEvents(); } return errorAlert(data.error); } // success! the entire pending bookings array can be re-created now pendingBookingsLimitIssues = data.limitIssues; updatePendingBookingsFromData(data.bookings); // this request might have came back with updated grid data // if it did not - refresh the whole grid if (data.gridUpdateData) { updateGridEventsForItem(data.gridUpdateData, fcInstance); } else if (fcInstance) { fcInstance.refetchEvents(); } renderPendingRoomBookings(); }) .fail(ajaxErrorHandler); return false; } function createStartTimeToClassMap(gridData) { var startTimeToClassMap = {}; gridData.forEach(function(gridElement) { var startMoment = moment(gridElement.start); startTimeToClassMap[startMoment.format(dateFormatStartTimeDict)] = [gridElement.className]; }); return startTimeToClassMap; } function updateGridEventsForItem(gridUpdateData, fcInstance) { var changedItemId = gridUpdateData.itemId; var changedRangeStart = moment(gridUpdateData.dateStart, springSpace.phpDateTimeFormat); var changedRangeEnd = moment(gridUpdateData.dateEnd, springSpace.phpDateTimeFormat); var startTimeToClassMap = createStartTimeToClassMap(gridUpdateData.gridData); fcInstance.batchRendering(function() { fcInstance.getEvents().forEach(function (clientEvent) { if (clientEvent.extendedProps.itemId !== changedItemId) { return; } var clientEventStart = moment(clientEvent.start); // if this event is before the day of events that was changed - forget it // and we only want to process events that start before the changed range "end" if (clientEventStart.isBefore(changedRangeStart) || !clientEventStart.isBefore(changedRangeEnd)) { return; } var startKey = clientEventStart.format(dateFormatStartTimeDict); if (startKey in startTimeToClassMap) { // this slot is unavailable clientEvent.setProp('classNames', startTimeToClassMap[startKey]); clientEvent.setExtendedProp('status', 1); } else { // this slot is available clientEvent.setProp('classNames', ["s-lc-eq-avail"]); clientEvent.setExtendedProp('status', 0); } }); }); } function timeGridClickedOnAvailableRoom(calEvent, fcInstance) { var resource = calEvent.getResources()[0]; var resourceData = resource.extendedProps; var timeslotData = calEvent.extendedProps; var view = fcInstance.view; var payload = { add: { eid: resourceData.eid, seat_id: resourceData.seatId, gid: resourceData.gid, lid: resourceData.lid, start: moment(calEvent.start).format(springSpace.phpDateTimeFormat), checksum: timeslotData.checksum, }, lid: resourceData.lid, start: moment(view.activeStart).format(dateFormatDayOfYear), end: moment(view.activeEnd).format(dateFormatDayOfYear), bookings: preparePendingBookingsPayload(), } return pendingRoomBookingsUpdateListAndAvailability(payload, fcInstance); } function updatePendingBookingDuration(changedBooking) { var fcInstance = getCurrentTimelineInstance(locationIdInFocus); var view = fcInstance.view; var selectedElement = changedBooking.find(':selected'); var payload = { update: { id: changedBooking.data('booking'), checksum: selectedElement.data('crc'), end: changedBooking.val() }, lid: locationIdInFocus, start: moment(view.activeStart).format(dateFormatDayOfYear), end: moment(view.activeEnd).format(dateFormatDayOfYear), bookings: preparePendingBookingsPayload(), } return pendingRoomBookingsUpdateListAndAvailability(payload, fcInstance); } function removePendingBooking(pendingId, locationId) { var timeline = getCurrentTimelineInstance(locationId); var view = timeline.view; var payload = { removeId: pendingId, lid: locationIdInFocus, start: moment(view.activeStart).format(dateFormatDayOfYear), end: moment(view.activeEnd).format(dateFormatDayOfYear), bookings: preparePendingBookingsPayload(), } return pendingRoomBookingsUpdateListAndAvailability(payload, timeline); } function formatEventsForFullCalendar(events) { events.forEach(function(eventData) { eventData.resourceId = "eid_" + eventData.itemId; if (eventData.className) { // this slot is unavailable eventData.status = 1; eventData.classNames = [eventData.className]; } else { // this slot is available eventData.classNames = ["s-lc-eq-avail"]; eventData.status = 0; } }); return events; } function timeGridRoomFetchEventsForTimePeriod(start, end, callback, lid, gid, eid) { var data = { lid: lid, gid: gid, eid: eid, seat: springyPage.isSeatBooking, seatId: springyPage.seatId, zone: springyPage.zoneId, filters: springyPage.filterIds, start: moment(start).format(dateFormatDayOfYear), end: moment(end).format(dateFormatDayOfYear), bookings: preparePendingBookingsPayload(), pageIndex: springyPage.pageIndex, pageSize: springyPage.pageSize, }; var url = '/spaces/availability/grid'; if (typeof springyPage.autoCreateBookingDate === 'string') { url = '/spaces/availability/grid/pre-create' data.autoCreateBookingDate = springyPage.autoCreateBookingDate; springyPage.autoCreateBookingDate = null; } springyCommon.closeAllPopups(); jQuery.ajax({ type: 'post', url: url, data: data, dataType: 'json', }) .done(function(data) { callback(formatEventsForFullCalendar(data.slots)); // sometimes on an initial view of the availability grid we auto-create a booking // (currently this is only possible via maps) if (data.isPreCreatedBooking) { updatePendingBookingsFromData(data.bookings); renderPendingRoomBookings(); } var isAtEndOfWindowLimit = data.windowEnd === true; jQuery('#s-lc-window-limit-warning').toggle(isAtEndOfWindowLimit); jQuery('.fc-next-button').prop('disabled', isAtEndOfWindowLimit); var selectorPrefix = '#s-lc-time-grid-' + lid + ' '; var isNextAvailableButtonWanted = (document.querySelector(selectorPrefix + '.s-lc-eq-avail') === null); jQuery(selectorPrefix + '.fc-goToNextAvailable-button').toggle(isNextAvailableButtonWanted); }) .fail(function(xhr) { // let fullcalendar know that the request has completed with no results callback([]); // and display the error to the user ajaxErrorHandler(xhr); }); } </script> <div id="s-lc-privacy-statement" class="modal fade" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">×</button> <h4 class="modal-title">Privacy Statement</h4> </div> <div class="modal-body"> <p>To use this platform, the system writes one or more cookies in your browser. These cookies are not shared with any third parties. In addition, your IP address and browser information is stored in server logs and used to generate anonymized usage statistics. Maxwell Library uses these statistics to gauge the use of library content, and the information is not shared with any third parties.</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div> <script> springSpace.cookieConsent.alert({ okay: "OK", placement: "bottom", consent_message: "This site uses cookies and stores your IP address for usage statistics. <a href='#' id='s-ui-cc-read-more-link'>Read\u0020More</a>", read_more_callback: function () { jQuery("#s-lc-privacy-statement").modal("show"); } }); </script> </body> </html>