Putting the hold suspension/resumption controls in the table of holds creates quite a bit of clutter, especially with AutoResumeSuspendedHolds enabled. I propose to make some styling changes to the way the controls are displayed. If AutoResumeSuspendedHolds is enabled (and so is JavaScript) the suspend control will trigger a modal dialog which will contain the "suspend until" options.
Created attachment 25104 [details] [review] Bug 11694 - Improve handling of individual hold suspension in Bootstrap OPAC This patch changes the way the controls to suspend and resume holds are displayed on the OPAC for a logged-in user when using the Bootstrap theme. Instead of showing all the suspend options in the table cell a link will trigger a modal with the controls. This makes the table more compact and readable. The patch adds a span and class to the dateformat include so that the dateformat hint can be hidden if JavaScript is enabled (and thus the datepicker will use the correct format automatically). A new class has been added to the CSS, ".js-show" to be used for elements which should be hidden if JavaScript is disabled and made visible by JavaScript if it is enabled. To test you must have RequestOnOpac, SuspendHoldsOpac, and the bootstrap theme enabled. Apply the patch for Bug 11702 if necessary in order for suspend-until dates to be saved correctly. Apply the patch and test with AutoResumeSuspendedHolds enabled: 1. Log in to the OPAC and place a hold. 2. View the list of your holds in the OPAC. 3. Click the "Suspend" link for your new hold. A modal window should appear allowing you to specify a suspend-until date. 4. Specify a suspend-until date. Test the "clear" link and confirm that it clears the date. 5. Specify a suspend-until date and submit. 6. Confirm that the hold has been suspended with the specified resumption date. 7. Click the "Resume" link on the suspended hold to resume. 8. Click the "Suspend" link again and submit without specifying a date. 9. Confirm that the hold has been suspended indefinitely. Follow the same steps above with JavaScript disabled. The "suspend until" options will appear inside the table as before and everything should work correctly. Test with AutoResumeSuspendedHolds disabled. No modal dialog should appear when the "Suspend" link is clicked. The hold should simply be suspended indefinitely. Test again with JavaScript disabled. There should be no change in functionality.
Created attachment 25697 [details] [review] Bug 11694 - Improve handling of individual hold suspension in Bootstrap OPAC This patch changes the way the controls to suspend and resume holds are displayed on the OPAC for a logged-in user when using the Bootstrap theme. Instead of showing all the suspend options in the table cell a link will trigger a modal with the controls. This makes the table more compact and readable. The patch adds a span and class to the dateformat include so that the dateformat hint can be hidden if JavaScript is enabled (and thus the datepicker will use the correct format automatically). A new class has been added to the CSS, ".js-show" to be used for elements which should be hidden if JavaScript is disabled and made visible by JavaScript if it is enabled. To test you must have RequestOnOpac, SuspendHoldsOpac, and the bootstrap theme enabled. Apply the patch for Bug 11702 if necessary in order for suspend-until dates to be saved correctly. Apply the patch and test with AutoResumeSuspendedHolds enabled: 1. Log in to the OPAC and place a hold. 2. View the list of your holds in the OPAC. 3. Click the "Suspend" link for your new hold. A modal window should appear allowing you to specify a suspend-until date. 4. Specify a suspend-until date. Test the "clear" link and confirm that it clears the date. 5. Specify a suspend-until date and submit. 6. Confirm that the hold has been suspended with the specified resumption date. 7. Click the "Resume" link on the suspended hold to resume. 8. Click the "Suspend" link again and submit without specifying a date. 9. Confirm that the hold has been suspended indefinitely. Follow the same steps above with JavaScript disabled. The "suspend until" options will appear inside the table as before and everything should work correctly. Test with AutoResumeSuspendedHolds disabled. No modal dialog should appear when the "Suspend" link is clicked. The hold should simply be suspended indefinitely. Test again with JavaScript disabled. There should be no change in functionality. Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Created attachment 25698 [details] [review] Bug 11694 [QA Followup] - Don't include time when converting date string to DateTime
I should note there was a merge conflict in right-to-left.css when I applied this patch. I retained the new right-to-left.css code. I just want to note this in case this introduces a regression.
*** Bug 11702 has been marked as a duplicate of this bug. ***
This would be a little bit nicer, if the read-only on the date entry field could be removed for better accessibility.
Created attachment 26385 [details] [review] [PASSED QA] Bug 11694 - Improve handling of individual hold suspension in Bootstrap OPAC This patch changes the way the controls to suspend and resume holds are displayed on the OPAC for a logged-in user when using the Bootstrap theme. Instead of showing all the suspend options in the table cell a link will trigger a modal with the controls. This makes the table more compact and readable. The patch adds a span and class to the dateformat include so that the dateformat hint can be hidden if JavaScript is enabled (and thus the datepicker will use the correct format automatically). A new class has been added to the CSS, ".js-show" to be used for elements which should be hidden if JavaScript is disabled and made visible by JavaScript if it is enabled. To test you must have RequestOnOpac, SuspendHoldsOpac, and the bootstrap theme enabled. Apply the patch for Bug 11702 if necessary in order for suspend-until dates to be saved correctly. Apply the patch and test with AutoResumeSuspendedHolds enabled: 1. Log in to the OPAC and place a hold. 2. View the list of your holds in the OPAC. 3. Click the "Suspend" link for your new hold. A modal window should appear allowing you to specify a suspend-until date. 4. Specify a suspend-until date. Test the "clear" link and confirm that it clears the date. 5. Specify a suspend-until date and submit. 6. Confirm that the hold has been suspended with the specified resumption date. 7. Click the "Resume" link on the suspended hold to resume. 8. Click the "Suspend" link again and submit without specifying a date. 9. Confirm that the hold has been suspended indefinitely. Follow the same steps above with JavaScript disabled. The "suspend until" options will appear inside the table as before and everything should work correctly. Test with AutoResumeSuspendedHolds disabled. No modal dialog should appear when the "Suspend" link is clicked. The hold should simply be suspended indefinitely. Test again with JavaScript disabled. There should be no change in functionality. Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Passes all tests and QA script, works as described. Happy about the fallback for users without Javascript.
Created attachment 26386 [details] [review] [PASSED QA] Bug 11694 [QA Followup] - Don't include time when converting date string to DateTime Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Pushed to master. Thanks, Owen! I've pushed the QA follow-up, although I would have preferred that the issue had stayed on bug 11702, as problems saving the suspension date in the database aren't dependent on the shape of the form. I also note that I've been completely unable to reproduce the issue reported in bug 11702, and I strongly suspect that there is some kind of MySQL configuration issue or DateTime version issue is at play that really ought to be completely characterized.