X-Git-Url: https://scm.cri.minesparis.psl.eu/git/Portfolio.git/blobdiff_plain/2da869b2b46179d64c05eaac4081226fdbbbc9ff..e73353500c67453ef9663d67eaeee7dd46c358ee:/skins/photo_lightbox_viewer.js?ds=inline diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js deleted file mode 100644 index ba3ecf1..0000000 --- a/skins/photo_lightbox_viewer.js +++ /dev/null @@ -1,595 +0,0 @@ -/* -* 2008-2014 Benoit Pin - MINES ParisTech -* http://plinn.org -* Licence Creative Commons http://creativecommons.org/licenses/by-nc/2.0/ -*/ - - -var Lightbox; - -(function(){ - -var reSelected = /.*selected.*/; - -Lightbox = function(grid, toolbar, complete, container_type, orderable) { - var self = this; - this.grid = grid; - this._buildSlidesIndex(); // set this.slides and this.lastSlide; - this.fetchingDisabled = false; - this.complete = complete; - this.container_type = container_type; - this.toolbar = toolbar; - if (toolbar) { - this.toolbarFixed = false; - addListener(window, 'scroll', function(evt){self.windowScrollToolbarlHandler(evt);}); - } - addListener(window, 'scroll', function(evt){self.windowScrollGridHandler(evt);}); - registerStartupFunction(function(){ self.windowScrollGridHandler();}); - this.lastCBChecked = undefined; - this.form = undefined; - var parent = this.grid.parentNode; - while(parent) { - parent = parent.parentNode; - if (parent.tagName === 'FORM') { - this.form = parent; - break; - } - else if (parent.tagName === 'BODY') { - break; - } - } - addListener(this.grid, 'click', function(evt){self.mouseClickHandler(evt);}); - if (this.form) { - var fm = this.fm = new FormManager(this.form); - addListener(this.form, 'change', function(evt){self.onChangeHandler(evt);}); - fm.onBeforeSubmit = function(fm_, evt) {return self.onBeforeSubmit(fm_, evt);}; - fm.onResponseLoad = function(req) {return self.onResponseLoad(req);}; - } - - // drag and drop - this.disableDefaultDragging(); - this._DDOrderingListeners = {'dragstart' : function(evt){self.onDragStart(evt);}, - 'dragover' : function(evt){self.onDragOver(evt);}, - 'dragend' : function(evt){self.onDragEnd(evt);} - }; - if(orderable) {this.enableDDOrdering();} -}; - -Lightbox.prototype._buildSlidesIndex = function() { - this.slides = []; - var node, i; - for (i=0 ; i - (this.lastSlide.firstElementChild || this.lastSlide.children[0]).offsetTop - - getWindowHeight()) { - this.fetchingDisabled = true; - this.fetchTail(); - } -}; - -Lightbox.prototype.mouseClickHandler = function(evt) { - var target = getTargetedObject(evt); - if (target.tagName === 'IMG') { - var img = target; - var link = target.parentNode; - var button = link.parentNode; - var slide = button.parentNode; - var req, url; - if (link.tagName === 'A') { - switch(link.getAttribute('name')) { - case 'add_to_selection': - disableDefault(evt); - link.blur(); - req = new XMLHttpRequest(); - url = link.href; - req.open("POST", url, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - req.send("ajax=1"); - - slide.className = 'selected'; - - link.setAttribute('name', 'remove_to_selection'); - link.href = url.replace(/(.*\/)add_to_selection$/, '$1remove_to_selection'); - link.title = img.alt = 'Retirer de la sélection'; - button.className = "button slide-deselect"; - break; - - case 'remove_to_selection': - disableDefault(evt); - link.blur(); - req = new XMLHttpRequest(); - url = link.href; - req.open("POST", url, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - req.send("ajax=1"); - slide.className = null; - link.setAttribute('name', 'add_to_selection'); - link.href = url.replace(/(.*\/)remove_to_selection$/, '$1add_to_selection'); - link.title = img.alt = 'Ajouter à la sélection'; - button.className = "button slide-select"; - break; - - case 'add_to_cart' : - disableDefault(evt); - slide.widget = new CartWidget(slide, link.href); - break; - - case 'hide_for_anonymous': - disableDefault(evt); - link.blur(); - req = new XMLHttpRequest(); - url = link.href; - req.open("POST", url, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - req.send(null); - slide.className = 'hidden-slide'; - link.setAttribute('name', 'show_for_anonymous'); - link.href = url.replace(/(.*\/)hideForAnonymous$/, '$1resetHide'); - link.title = img.alt = 'Montrer au anonymes'; - button.className = "button slide-show"; - break; - - case 'show_for_anonymous': - disableDefault(evt); - link.blur(); - req = new XMLHttpRequest(); - url = link.href; - req.open("POST", url, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - req.send(null); - slide.className = null; - link.setAttribute('name', 'hide_for_anonymous'); - link.href = url.replace(/(.*\/)resetHide$/, '$1hideForAnonymous'); - link.title = img.alt = 'Masquer pour les anonymes'; - button.className = "button slide-hide"; - break; - } - } - } else if(target.tagName === 'INPUT' && target.type === 'checkbox') { - var cb = target; - if (cb.checked) { - cb.setAttribute('checked', 'checked'); - } - else { - cb.removeAttribute('checked'); - } - this.selectCBRange(evt); - } -}; - -Lightbox.prototype.onChangeHandler = function(evt) { - var target = getTargetedObject(evt); - if (target.name === 'sort_on') { - if (target.value === 'position') {this.enableDDOrdering();} - else {this.disableDDOrdering();} - this.fm.submitButton = {'name' : 'set_sorting', 'value' : 'ok'}; - this.fm.submit(evt); - } -}; - -Lightbox.prototype.onBeforeSubmit = function(fm, evt) { - switch(fm.submitButton.name) { - case 'delete' : - this.hideSelection(); - break; - } -}; - -Lightbox.prototype.onResponseLoad = function(req) { - switch(req.responseXML.documentElement.nodeName) { - case 'deleted' : - this.deleteSelection(); - break; - case 'error' : - this.showSelection(); - break; - case 'sorted' : - this.fm.submitButton = undefined; - this.refreshGrid(); - break; - default : - this.fm.loadResponse(req); - break; - } -}; - -Lightbox.prototype.switchToolBarPositioning = function(fixed) { - var tbs = this.toolbar.style; - if (fixed) { - this.toolbar.defaultCssText = this.toolbar.style.cssText; - tbs.width = String(this.toolbar.offsetWidth) + 'px'; - tbs.height = String(this.toolbar.offsetHeight) + 'px'; - tbs.position = 'fixed'; - tbs.top = '0'; - this.toolbarPlaceholder = document.createElement('div'); - var phs = this.toolbarPlaceholder.style; - phs.cssText = tbs.cssText; - phs.position = 'relative'; - this.toolbar.parentNode.insertBefore(this.toolbarPlaceholder, this.toolbar); - } - else { - this.toolbarPlaceholder.parentNode.removeChild(this.toolbarPlaceholder); - tbs.cssText = this.toolbar.defaultCssText; - } -}; - - -Lightbox.prototype.hideSelection = function() { - var i, e, slide; - for (i=0 ; i=0 ; i--) { - slide = this.draggedSelection[i].cloneNode(true); - this.pendingMovedSlides.push(slide); - this.grid.insertBefore(slide, this.lastDropTarget.nextSibling); - slide.style.opacity = 1; - slide.style.width = ''; - } - this.moveSelectedPhotos(); - } - // this.draggedSelection = this.lastDropTarget - this.dragged = undefined; -}; - -Lightbox.prototype.moveSelectedPhotos = function() { - var req = new XMLHttpRequest(); - self = this; - req.onreadystatechange = function() { - switch (req.readyState) { - case 1 : - showProgressImage(); - break; - case 4 : - hideProgressImage(); - self._moveSelectedPhotos(req); - break; - } - }; - - var url = absolute_url() + '/portfolio_move_photos'; - req.open("POST", url, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - var query = 'container_type=' + this.container_type; - var i; - for (i=0 ; i