]> git.mxchange.org Git - friendica.git/blobdiff - js/filebrowser.js
Merge pull request #2144 from fabrixxm/quattro
[friendica.git] / js / filebrowser.js
index c203151e143c4d2ffd6cc796e29d6084c39a5bbc..78cee0e77ed8f7349d4ca434ea60a338cc4e859e 100644 (file)
@@ -1,7 +1,7 @@
 /**\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
@@ -65,18 +66,23 @@ var FileBrowser = {
                        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
+\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
+\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
@@ -91,31 +97,45 @@ var FileBrowser = {
                                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