196 lines
7.5 KiB
JavaScript
Executable File
196 lines
7.5 KiB
JavaScript
Executable File
/**
|
|
* @name Init Module
|
|
* @author Tobias Reich
|
|
* @copyright 2014 by Tobias Reich
|
|
*/
|
|
|
|
$(document).ready(function(){
|
|
|
|
/* Event Name */
|
|
var event_name = (mobileBrowser()) ? "touchend" : "click";
|
|
|
|
/* Disable ContextMenu */
|
|
$(document).bind("contextmenu", function(e) { e.preventDefault() });
|
|
|
|
/* Tooltips */
|
|
if (!mobileBrowser()) $(".tools").tipsy({gravity: 'n', fade: false, delayIn: 0, opacity: 1});
|
|
|
|
/* Multiselect */
|
|
$("#content").on("mousedown", multiselect.show);
|
|
$(document).on("mouseup", multiselect.getSelection);
|
|
|
|
/* Header */
|
|
$("#hostedwith").on(event_name, function() { window.open(lychee.website) });
|
|
$("#button_signin").on(event_name, lychee.loginDialog);
|
|
$("#button_settings").on("click", contextMenu.settings);
|
|
$("#button_share").on(event_name, function(e) {
|
|
if (photo.json.public==1||photo.json.public==2) contextMenu.sharePhoto(photo.getID(), e);
|
|
else photo.setPublic(photo.getID(), e);
|
|
});
|
|
$("#button_share_album").on(event_name, function(e) {
|
|
if (album.json.public==1) contextMenu.shareAlbum(album.getID(), e);
|
|
else album.setPublic(album.getID(), e);
|
|
});
|
|
$("#button_more").on(event_name, function(e) { contextMenu.photoMore(photo.getID(), e) });
|
|
$("#button_trash_album").on(event_name, function() { album.delete([album.getID()]) });
|
|
$("#button_move").on(event_name, function(e) { contextMenu.move([photo.getID()], e) });
|
|
$("#button_trash").on(event_name, function() { photo.delete([photo.getID()]) });
|
|
$("#button_info_album").on(event_name, function() { view.infobox.show() });
|
|
$("#button_info").on(event_name, function() { view.infobox.show() });
|
|
$("#button_archive").on(event_name, function() { album.getArchive(album.getID()) });
|
|
$("#button_star").on(event_name, function() { photo.setStar([photo.getID()]) });
|
|
|
|
/* Search */
|
|
$("#search").on("keyup click", function() { search.find($(this).val()) });
|
|
|
|
/* Clear Search */
|
|
$("#clearSearch").on(event_name, function () {
|
|
$("#search").focus();
|
|
search.reset();
|
|
});
|
|
|
|
/* Back Buttons */
|
|
$("#button_back_home").on(event_name, function() { lychee.goto("") });
|
|
$("#button_back").on(event_name, function() { lychee.goto(album.getID()) });
|
|
|
|
/* Image View */
|
|
lychee.imageview
|
|
.on(event_name, ".arrow_wrapper.previous", photo.previous)
|
|
.on(event_name, ".arrow_wrapper.next", photo.next);
|
|
|
|
/* Infobox */
|
|
$("#infobox")
|
|
.on(event_name, ".header a", function() { view.infobox.hide() })
|
|
.on(event_name, "#edit_title_album", function() { album.setTitle([album.getID()]) })
|
|
.on(event_name, "#edit_description_album", function() { album.setDescription(album.getID()) })
|
|
.on(event_name, "#edit_title", function() { photo.setTitle([photo.getID()]) })
|
|
.on(event_name, "#edit_description", function() { photo.setDescription(photo.getID()) })
|
|
.on(event_name, "#edit_tags", function() { photo.editTags([photo.getID()]) })
|
|
.on(event_name, "#tags .tag span", function() { photo.deleteTag(photo.getID(), $(this).data('index')) });
|
|
|
|
/* Keyboard */
|
|
Mousetrap
|
|
.bind('left', function() { if (visible.photo()) $("#imageview a#previous").click() })
|
|
.bind('right', function() { if (visible.photo()) $("#imageview a#next").click() })
|
|
.bind(['u', 'ctrl+u'], function() { $("#upload_files").click() })
|
|
.bind(['s', 'ctrl+s', 'f', 'ctrl+f'], function(e) {
|
|
if (visible.photo()) {
|
|
$("#button_star").click();
|
|
} else if (visible.albums()) {
|
|
e.preventDefault();
|
|
$("#search").focus();
|
|
}
|
|
})
|
|
.bind(['r', 'ctrl+r'], function(e) {
|
|
e.preventDefault();
|
|
if (visible.album()) album.setTitle(album.getID());
|
|
else if (visible.photo()) photo.setTitle([photo.getID()]);
|
|
})
|
|
.bind(['d', 'ctrl+d'], function(e) {
|
|
e.preventDefault();
|
|
if (visible.photo()) photo.setDescription(photo.getID());
|
|
else if (visible.album()) album.setDescription(album.getID());
|
|
})
|
|
.bind(['t', 'ctrl+t'], function(e) {
|
|
if (visible.photo()) {
|
|
e.preventDefault();
|
|
photo.editTags([photo.getID()]);
|
|
}
|
|
})
|
|
.bind(['i', 'ctrl+i'], function() {
|
|
if (visible.infobox()) view.infobox.hide();
|
|
else if (visible.multiselect()) return false;
|
|
else if (visible.infoboxbutton()) view.infobox.show();
|
|
})
|
|
.bind(['command+backspace', 'ctrl+backspace'], function() {
|
|
if (visible.photo()&&!visible.message()) photo.delete([photo.getID()]);
|
|
else if (visible.album()&&!visible.message()) album.delete([album.getID()]);
|
|
})
|
|
.bind(['command+a', 'ctrl+a'], function() {
|
|
if (visible.album()&&!visible.message()) multiselect.selectAll();
|
|
else if (visible.albums()&&!visible.message()) multiselect.selectAll();
|
|
});
|
|
|
|
Mousetrap.bindGlobal('enter', function() {
|
|
if ($(".message .button.active").length) $(".message .button.active").addClass("pressed").click()
|
|
});
|
|
|
|
Mousetrap.bindGlobal(['esc', 'command+up'], function(e) {
|
|
e.preventDefault();
|
|
if (visible.message()&&$(".message .close").length>0) modal.close();
|
|
else if (visible.contextMenu()) contextMenu.close();
|
|
else if (visible.infobox()) view.infobox.hide();
|
|
else if (visible.photo()) lychee.goto(album.getID());
|
|
else if (visible.album()) lychee.goto("");
|
|
else if (visible.albums()&&$("#search").val().length!==0) search.reset();
|
|
});
|
|
|
|
|
|
if (mobileBrowser()) {
|
|
|
|
$(document)
|
|
|
|
/* Fullscreen on mobile */
|
|
.on('touchend', '#image', function(e) {
|
|
if (swipe.obj===null||(swipe.offset>=-5&&swipe.offset<=5)) {
|
|
if (visible.controls()) view.header.hide(e, 0);
|
|
else view.header.show();
|
|
}
|
|
})
|
|
|
|
/* Swipe on mobile */
|
|
.swipe().on('swipeStart', function() { if (visible.photo()) swipe.start($("#image")) })
|
|
.swipe().on('swipeMove', function(e) { if (visible.photo()) swipe.move(e.swipe) })
|
|
.swipe().on('swipeEnd', function(e) { if (visible.photo()) swipe.stop(e.swipe, photo.previous, photo.next) });
|
|
|
|
}
|
|
|
|
/* Document */
|
|
$(document)
|
|
|
|
/* Login */
|
|
.on("keyup", "#password", function() { if ($(this).val().length>0) $(this).removeClass("error") })
|
|
|
|
/* Header */
|
|
.on(event_name, "#title.editable", function() {
|
|
if (visible.photo()) photo.setTitle([photo.getID()]);
|
|
else album.setTitle([album.getID()]);
|
|
})
|
|
|
|
/* Navigation */
|
|
.on("click", ".album", function() { lychee.goto($(this).attr("data-id")) })
|
|
.on("click", ".photo", function() { lychee.goto(album.getID() + "/" + $(this).attr("data-id")) })
|
|
|
|
/* Modal */
|
|
.on(event_name, ".message .close", modal.close)
|
|
.on(event_name, ".message .button:first", function() { if (modal.fns!==null) modal.fns[0](); if (!visible.signin()) modal.close() })
|
|
.on(event_name, ".message .button:last", function() { if (modal.fns!==null) modal.fns[1](); if (!visible.signin()) modal.close() })
|
|
|
|
/* Add Dialog */
|
|
.on(event_name, ".button_add", function(e) { contextMenu.add(e) })
|
|
|
|
/* Context Menu */
|
|
.on("contextmenu", ".photo", function(e) { contextMenu.photo(photo.getID(), e) })
|
|
.on("contextmenu", ".album", function(e) { contextMenu.album(album.getID(), e) })
|
|
.on(event_name, ".contextmenu_bg", contextMenu.close)
|
|
.on("contextmenu", ".contextmenu_bg", contextMenu.close)
|
|
|
|
/* Infobox */
|
|
.on(event_name, "#infobox_overlay", view.infobox.hide)
|
|
|
|
/* Upload */
|
|
.on("change", "#upload_files", function() { modal.close(); upload.start.local(this.files) })
|
|
.on(event_name, ".upload_message a.close", upload.close)
|
|
.on("dragover", function(e) { e.preventDefault(); }, false)
|
|
.on("drop", function(e) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
if (e.originalEvent.dataTransfer.files.length>0) upload.start.local(e.originalEvent.dataTransfer.files);
|
|
else if (e.originalEvent.dataTransfer.getData('Text').length>3) upload.start.url(e.originalEvent.dataTransfer.getData('Text'));
|
|
return true;
|
|
});
|
|
|
|
/* Init */
|
|
lychee.init();
|
|
|
|
}); |