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