summaryrefslogtreecommitdiff
path: root/static/website/js
diff options
context:
space:
mode:
authorprashantsinalkar2018-08-06 16:06:03 +0530
committerprashantsinalkar2018-08-06 16:06:03 +0530
commited93409f9a01717c612c3d03ff95966d547f4cc7 (patch)
tree8bf6dbfeea446c492ebcc193788d7d1b3f07a0fa /static/website/js
parent8f19376ea5c5cf438a9357bac7243532734e3e6f (diff)
downloadSciPy2018-ed93409f9a01717c612c3d03ff95966d547f4cc7.tar.gz
SciPy2018-ed93409f9a01717c612c3d03ff95966d547f4cc7.tar.bz2
SciPy2018-ed93409f9a01717c612c3d03ff95966d547f4cc7.zip
added image gallary
Diffstat (limited to 'static/website/js')
-rw-r--r--static/website/js/custom.js93
1 files changed, 93 insertions, 0 deletions
diff --git a/static/website/js/custom.js b/static/website/js/custom.js
new file mode 100644
index 0000000..2573428
--- /dev/null
+++ b/static/website/js/custom.js
@@ -0,0 +1,93 @@
+let modalId = $('#image-gallery');
+
+$(document)
+ .ready(function () {
+
+ loadGallery(true, 'a.thumbnail');
+
+ //This function disables buttons when needed
+ function disableButtons(counter_max, counter_current) {
+ $('#show-previous-image, #show-next-image')
+ .show();
+ if (counter_max === counter_current) {
+ $('#show-next-image')
+ .hide();
+ } else if (counter_current === 1) {
+ $('#show-previous-image')
+ .hide();
+ }
+ }
+
+ /**
+ *
+ * @param setIDs Sets IDs when DOM is loaded. If using a PHP counter, set to false.
+ * @param setClickAttr Sets the attribute for the click handler.
+ */
+
+ function loadGallery(setIDs, setClickAttr) {
+ let current_image,
+ selector,
+ counter = 0;
+
+ $('#show-next-image, #show-previous-image')
+ .click(function () {
+ if ($(this)
+ .attr('id') === 'show-previous-image') {
+ current_image--;
+ } else {
+ current_image++;
+ }
+
+ selector = $('[data-image-id="' + current_image + '"]');
+ updateGallery(selector);
+ });
+
+ function updateGallery(selector) {
+ let $sel = selector;
+ current_image = $sel.data('image-id');
+ $('#image-gallery-title')
+ .text($sel.data('title'));
+ $('#image-gallery-image')
+ .attr('src', $sel.data('image'));
+ disableButtons(counter, $sel.data('image-id'));
+ }
+
+ if (setIDs == true) {
+ $('[data-image-id]')
+ .each(function () {
+ counter++;
+ $(this)
+ .attr('data-image-id', counter);
+ });
+ }
+ $(setClickAttr)
+ .on('click', function () {
+ updateGallery($(this));
+ });
+ }
+ });
+
+// build key actions
+$(document)
+ .keydown(function (e) {
+ switch (e.which) {
+ case 37: // left
+ if ((modalId.data('bs.modal') || {})._isShown && $('#show-previous-image').is(":visible")) {
+ $('#show-previous-image')
+ .click();
+ }
+ break;
+
+ case 39: // right
+ if ((modalId.data('bs.modal') || {})._isShown && $('#show-next-image').is(":visible")) {
+ $('#show-next-image')
+ .click();
+ }
+ break;
+
+ default:
+ return; // exit this handler for other keys
+ }
+ e.preventDefault(); // prevent the default action (scroll / move caret)
+ });
+