return confirm(aStr.delitem);
}
+function confirmBlock() {
+ return confirm(aStr.blockAuthor);
+}
+
/**
* Hide and removes an item element from the DOM after the deletion url is
* successful, restore it else.
* @returns {undefined}
*/
function dropItem(url, elementId) {
- var confirm = confirmDelete();
+ if (confirmDelete()) {
+ $("body").css("cursor", "wait");
+
+ var $el = $(document.getElementById(elementId));
+
+ $el.fadeTo('fast', 0.33, function () {
+ $.get(url).then(function() {
+ $el.remove();
+ }).fail(function() {
+ // @todo Show related error message
+ $el.show();
+ }).always(function() {
+ $("body").css('cursor', 'auto');
+ });
+ });
+ }
+}
- if (confirm) {
+/**
+ * Blocks an author and hide and removes an item element from the DOM after the block 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 blockAuthor(url, elementId) {
+ if (confirmBlock()) {
$("body").css("cursor", "wait");
var $el = $(document.getElementById(elementId));
var localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
var aStr = {
- 'delitem' : "{{$delitem}}",
+ 'delitem' : "{{$delitem|escape:'javascript' nofilter}}",
+ 'blockAuthor' : "{{$blockAuthor|escape:'javascript' nofilter}}",
};
</script>
<a class="btn-link navicon delete" href="javascript:dropItem('item/drop/{{$item.id}}/{{$item.return}}', 'item-{{$item.guid}}');" title="{{$item.drop.delete}}"><i class="fa fa-trash" aria-hidden="true"></i> {{$item.drop.delete}}</a>
</li>
{{/if}}
+
+ {{if $item.block}}
+ <li role="menuitem">
+ <a class="btn-link navicon block" href="javascript:blockAuthor('item/block/{{$item.id}}/{{$item.return}}', 'item-{{$item.guid}}');" title="{{$item.block.block}}"><i class="fa fa-ban" aria-hidden="true"></i> {{$item.block.block}}</a>
+ </li>
+ {{/if}}
</ul>
<img id="like-rotator-{{$item.id}}" class="like-rotator" src="images/rotator.gif" alt="{{$item.wait}}" title="{{$item.wait}}" style="display: none;" />
</span>