X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=js%2Ffilebrowser.js;h=78cee0e77ed8f7349d4ca434ea60a338cc4e859e;hb=f3901b99a27055e3ae4e4fd6c68afd4435d41ac5;hp=c203151e143c4d2ffd6cc796e29d6084c39a5bbc;hpb=cd8be48ca703b8931d7dc85a0aea1837a21e56aa;p=friendica.git diff --git a/js/filebrowser.js b/js/filebrowser.js index c203151e14..78cee0e77e 100644 --- a/js/filebrowser.js +++ b/js/filebrowser.js @@ -1,7 +1,7 @@ /** * Filebrowser - Friendica Communications Server - * - * Copyright (c) 2010-2013 the Friendica Project + * + * Copyright (c) 2010-2015 the Friendica Project * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -13,33 +13,34 @@ * * To load filebrowser in colorbox, call * - * $.colorbox({href: ulr, iframe:true,innerWidth:'500px',innerHeight:'400px'}) + * Dialog.doImageBrowser(eventname, id); + * + * or * - * where url is: + * Dialog.doFileBrowser(eventname, id); * - * /fbrowser//?mode=minimal[#-] + * where: * - * baseurl: baseurl from friendica - * type: one of "image", "file" * eventname: event name to catch return value * id: id returned to event handler * - * When user select an item, an event in fired in parent page, on body element - * The event is named + * When user select an item, an event in fired in parent page, on body element + * The event is named * * fbrowser..[] - * - * with params: + * + * will be one of "image" or "file", and the event handler will + * get the following params: * * filemane: filename of item choosed by user * embed: bbcode to embed element into posts - * id: id from url + * id: id from caller code * - * example: + * example: * - * // open dialog for select an image for a textarea with id "myeditor" - * var id="myeditor"; - * $.colorbox({href: baseurl + "/fbrowser/image/?mode=minimal#example-"+id, iframe:true,innerWidth:'500px',innerHeight:'400px'}) + * // open dialog for select an image for a textarea with id "myeditor" + * var id="myeditor"; + * Dialog.doImageBrowser("example", id); * * // setup event handler to get user selection * $("body").on("fbrowser.image.example", function(event, filename, bbcode, id) { @@ -49,13 +50,13 @@ * $(id).value = bbcode; * }); **/ - + var FileBrowser = { nickname : "", type : "", event: "", id : null, - + init: function(nickname, type) { FileBrowser.nickname = nickname; FileBrowser.type = type; @@ -65,18 +66,23 @@ var FileBrowser = { FileBrowser.event = FileBrowser.event + "." + h.split("-")[0]; FileBrowser.id = h.split("-")[1]; } - + console.log("FileBrowser:", nickname, type,FileBrowser.event, FileBrowser.id ); - + + $(".error a.close").on("click", function(e) { + e.preventDefault(); + $(".error").addClass("hidden"); + }); + $(".folders a, .path a").on("click", function(e){ e.preventDefault(); var url = baseurl + "/fbrowser/" + FileBrowser.type + "/" + this.dataset.folder + "?mode=minimal" + location['hash']; location.href = url; }); - + $(".photo-album-photo-link").on('click', function(e){ e.preventDefault(); - + var embed = ""; if (FileBrowser.type == "image") { embed = "[url="+this.dataset.link+"][img]"+this.dataset.img+"[/img][/url]"; @@ -91,31 +97,45 @@ var FileBrowser = { embed, FileBrowser.id ]); - + }); - + if ($("#upload-image").length) var image_uploader = new window.AjaxUpload( 'upload-image', - { action: 'wall_upload/'+FileBrowser.nickname, + { action: 'wall_upload/'+FileBrowser.nickname+'?response=json', name: 'userfile', - onSubmit: function(file,ext) { $('#profile-rotator').show(); }, + responseType: 'json', + onSubmit: function(file,ext) { $('#profile-rotator').show(); $(".error").addClass('hidden'); }, onComplete: function(file,response) { + if (response['error']!= undefined) { + $(".error span").html(response['error']); + $(".error").removeClass('hidden'); + $('#profile-rotator').hide(); + return; + } location = baseurl + "/fbrowser/image/?mode=minimal"+location['hash']; location.reload(true); - } + } } ); if ($("#upload-file").length) var file_uploader = new window.AjaxUpload( 'upload-file', - { action: 'wall_attach/'+FileBrowser.nickname, + { action: 'wall_attach/'+FileBrowser.nickname+'?response=json', name: 'userfile', - onSubmit: function(file,ext) { $('#profile-rotator').show(); }, + onSubmit: function(file,ext) { $('#profile-rotator').show(); $(".error").addClass('hidden'); }, onComplete: function(file,response) { + if (response['error']!= undefined) { + $(".error span").html(response['error']); + $(".error").removeClass('hidden'); + $('#profile-rotator').hide(); + return; + } location = baseurl + "/fbrowser/file/?mode=minimal"+location['hash']; - location.reload(true); } + location.reload(true); + } } ); }