summaryrefslogtreecommitdiff
path: root/src/Plugins
diff options
context:
space:
mode:
authorVictor Häggqvist <[email protected]>2016-01-14 22:54:43 +0100
committerVictor Häggqvist <[email protected]>2016-01-14 22:54:43 +0100
commit382401d527314b270e1c67b4f88cd3bfbca81d46 (patch)
tree77c4831118fc9fd2d19e044ce5ffb60b8533163f /src/Plugins
parentdd52fd3f463c254cf54309db848aa88899caeaa0 (diff)
create plugin architecture
Diffstat (limited to 'src/Plugins')
-rw-r--r--src/Plugins/ActivityIndicator.js36
-rw-r--r--src/Plugins/CloseButton.js40
-rw-r--r--src/Plugins/Overlay.js28
3 files changed, 104 insertions, 0 deletions
diff --git a/src/Plugins/ActivityIndicator.js b/src/Plugins/ActivityIndicator.js
new file mode 100644
index 0000000..8a1e83b
--- /dev/null
+++ b/src/Plugins/ActivityIndicator.js
@@ -0,0 +1,36 @@
+/**
+ *
+ * @author Victor Häggqvist
+ * @since 2016-01-14
+ */
+
+export class ActivityIndicator {
+
+ constructor() {
+ this.element = document.createElement('div');
+ this.element.id = 'imagelightbox-loading';
+ this.element.appendChild(document.createElement('div'))
+ }
+
+ /**
+ *
+ * @param {LightBox} lightbox
+ */
+ register(lightbox) {
+ lightbox.addOnLoadStartListener(this.activityIndicatorOn.bind(this));
+ lightbox.addOnLoadEndListener(this.activityIndicatorOff.bind(this));
+ lightbox.addOnEndListener(this.activityIndicatorOff.bind(this));
+ }
+
+ activityIndicatorOn() {
+ document.body.appendChild(this.element);
+ //$('<div id="imagelightbox-loading"><div></div></div>' ).appendTo('body');
+ }
+
+ activityIndicatorOff() {
+ try {
+ document.body.removeChild(this.element);
+ } catch (e) {}
+ }
+
+}
diff --git a/src/Plugins/CloseButton.js b/src/Plugins/CloseButton.js
new file mode 100644
index 0000000..ca12e61
--- /dev/null
+++ b/src/Plugins/CloseButton.js
@@ -0,0 +1,40 @@
+/**
+ * @author Victor Häggqvist
+ * @since 2016-01-14
+ */
+
+
+export class CloseButton {
+
+ constructor() {
+ this.element = document.createElement('a');
+ this.element.id = 'imagelightbox-close';
+ this.element.innerHTML = 'Close';
+ }
+
+ register(lightbox) {
+ this.lightbox = lightbox;
+ lightbox.addOnStartListener(this.showButton.bind(this));
+ lightbox.addOnEndListener(this.hideButton.bind(this));
+ }
+
+ showButton() {
+ ['click', 'touchend'].forEach(name => {
+ this.element.addEventListener(name, this.exitLightbox.bind(this));
+ });
+
+ document.body.appendChild(this.element);
+
+ //$('<a href="#" id="imagelightbox-close">Close</a>').appendTo('body')
+ // .on('click touchend', function(){ $(this).remove(); instance.quitImageLightbox(); return false; });
+ }
+
+ hideButton() {
+ document.body.removeChild(this.element);
+ }
+
+ exitLightbox() {
+ this.lightbox.quitImageLightbox();
+ }
+
+}
diff --git a/src/Plugins/Overlay.js b/src/Plugins/Overlay.js
new file mode 100644
index 0000000..8571dd4
--- /dev/null
+++ b/src/Plugins/Overlay.js
@@ -0,0 +1,28 @@
+/**
+ * @author Victor Häggqvist
+ * @since 2016-01-14
+ */
+
+export class Overlay {
+
+ constructor() {
+ this.element = document.createElement('div');
+ this.element.id = 'imagelightbox-overlay';
+ }
+
+ register(lightbox) {
+ lightbox.addOnStartListener(this.overlayOn.bind(this));
+ lightbox.addOnEndListener(this.overlayOff.bind(this));
+ }
+
+ overlayOn() {
+ document.body.appendChild(this.element);
+ }
+
+ overlayOff() {
+ document.body.removeChild(this.element);
+ }
+
+}
+
+