]> git.mxchange.org Git - friendica.git/commitdiff
Improve dropItem() functionality
authorHypolite Petovan <mrpetovan@gmail.com>
Mon, 13 Mar 2017 16:12:13 +0000 (12:12 -0400)
committerHypolite Petovan <mrpetovan@gmail.com>
Mon, 13 Mar 2017 16:12:13 +0000 (12:12 -0400)
- Drop the obsolete `#` char
- Add error case when deleting item
- Add item drop support to search items
- Add doc

view/theme/frio/js/textedit.js
view/theme/frio/templates/search_item.tpl
view/theme/frio/templates/wall_thread.tpl

index 9226646b7be1d50c2f7cfb7c572e7627cbb8a56f..02191f33dee6ba2a71639553f3e74bcfc39249ef 100644 (file)
@@ -162,21 +162,29 @@ function qCommentInsert(obj,id) {
 
 function confirmDelete() { return confirm(aStr.delitem); }
 
-function dropItem(url, object) {
+/**
+ * Hide and removes an item element from the DOM after the deletion url is
+ * successful, restore it else.
+ *
+ * @param {string} url The item removal URL
+ * @param {string} elementId The DOM id of the item element
+ * @returns {undefined}
+ */
+function dropItem(url, elementId) {
        var confirm = confirmDelete();
 
-       //if the first character of the object is #, remove it because
-       // we use getElementById which don't need the #
-       // getElementByID selects elements even if there are special characters
-       // in the ID (like %) which won't work with jQuery
-       /// @todo ceck if we can solve this in the template
-       object = object.indexOf('#') == 0 ? object.substring(1) : object;
-
-       if(confirm) {
+       if (confirm) {
                $('body').css('cursor', 'wait');
-               $(document.getElementById(object)).fadeTo('fast', 0.33, function () {
-                       $.get(url).done(function() {
-                               $(document.getElementById(object)).remove();
+
+               var $el = $(document.getElementById(elementId));
+
+               $el.fadeTo('fast', 0.33, function () {
+                       $.get(url).then(function() {
+                               $el.remove();
+                       }).error(function() {
+                               // @todo Show related error message
+                               $el.show();
+                       }).always(function() {
                                $('body').css('cursor', 'auto');
                        });
                });
index 90fbe03bbcac66305d366835959099455377272b..0a6eca0c2700fc182b0db5a9f3a8fa7fc20f46bc 100644 (file)
@@ -7,7 +7,7 @@
 <!-- ./TODO => Unknow block -->
 
 
-<div class="panel">
+<div class="panel" id="item-{{$item.guid}}">
        <div class="wall-item-container panel-body{{$item.indent}} {{$item.shiny}} {{$item.previewing}}" >
                <div class="media">
                        {{* Put additional actions in a top-right dropdown menu *}}
@@ -54,7 +54,7 @@
                                                {{if $item.drop.dropping}}
                                                <li role="separator" class="divider"></li>
                                                <li role="menuitem">
-                                                       <a class="navicon delete" onclick="dropItem('item/drop/{{$item.id}}', '#item-{{$item.guid}}'); return false;" title="{{$item.drop.delete}}"><i class="fa fa-trash"></i> {{$item.drop.delete}}</a>
+                                                       <a class="navicon delete" onclick="dropItem('item/drop/{{$item.id}}', 'item-{{$item.guid}}'); return false;" title="{{$item.drop.delete}}"><i class="fa fa-trash"></i> {{$item.drop.delete}}</a>
                                                </li>
                                                {{/if}}
                                        </ul>
index e71dc7b84c336fb3b2d3dcb7ee1216614449f40e..85091cf1c69aa3858130e66c2802ae636c41b2fd 100644 (file)
@@ -129,7 +129,7 @@ as the value of $top_child_total (this is done at the end of this file)
 
                                        {{if $item.drop.dropping}}
                                        <li role="menuitem">
-                                               <a class="navicon delete" onclick="dropItem('item/drop/{{$item.id}}', '#item-{{$item.guid}}'); return false;" title="{{$item.drop.delete}}"><i class="fa fa-trash"></i> {{$item.drop.delete}}</a>
+                                               <a class="navicon delete" onclick="dropItem('item/drop/{{$item.id}}', 'item-{{$item.guid}}'); return false;" title="{{$item.drop.delete}}"><i class="fa fa-trash"></i> {{$item.drop.delete}}</a>
                                        </li>
                                        {{/if}}
                                </ul>