]> git.mxchange.org Git - friendica.git/commitdiff
Improve contactgroupChangeMember() javascript function
authorHypolite Petovan <hypolite@mrpetovan.com>
Sat, 23 Feb 2019 20:36:06 +0000 (15:36 -0500)
committerHypolite Petovan <hypolite@mrpetovan.com>
Sat, 23 Feb 2019 22:32:41 +0000 (17:32 -0500)
- Add usage of new /group/123/add|remove/123 URL
- Add checkbox revert in case of error

view/js/main.js
view/templates/group_side.tpl
view/theme/frio/templates/group_side.tpl
view/theme/quattro/templates/group_side.tpl

index 3370d7ccd3a20515e2b1dbed10459756b4fcb103..cd09de014376e36a946c1c790ad867abcab50082 100644 (file)
@@ -793,11 +793,25 @@ function profChangeMember(gid,cid) {
        });
 }
 
-function contactgroupChangeMember(gid,cid) {
+function contactgroupChangeMember(checkbox, gid, cid) {
+       let url;
+       // checkbox.checked is the checkbox state after the click
+       if (checkbox.checked) {
+               url = 'group/' + gid + '/add/' + cid;
+       } else {
+               url = 'group/' + gid + '/remove/' + cid;
+       }
        $('body').css('cursor', 'wait');
-       $.get('contactgroup/' + gid + '/' + cid, function(data) {
-                       $('body').css('cursor', 'auto');
+       $.post(url)
+       .error(function () {
+               // Restores previous state in case of error
+               checkbox.checked = !checkbox.checked;
+       })
+       .always(function() {
+               $('body').css('cursor', 'auto');
        });
+
+       return true;
 }
 
 function checkboxhighlight(box) {
index 5796bb735cdfbba5349e18c1199bcee87a2a4d84..31b9287ba826d2ff2c93bdcf93571e3e08c677ba 100644 (file)
@@ -9,7 +9,7 @@
                                        {{if $group.cid}}
                                                <input type="checkbox"
                                                        class="{{if $group.selected}}ticked{{else}}unticked {{/if}} action"
-                                                       onclick="contactgroupChangeMember('{{$group.id}}','{{$group.cid}}');return true;"
+                                                       onclick="return contactgroupChangeMember(this, '{{$group.id}}','{{$group.cid}}');"
                                                        {{if $group.ismember}}checked="checked"{{/if}}
                                                />
                                        {{/if}}
index 947ae974e8aec1b4d1eb442d60bd2a746a346ed7..75983b36eea365b6e269a587b44c14047574c6eb 100644 (file)
@@ -28,7 +28,7 @@
                                                        <input type="checkbox"
                                                                id="sidebar-group-checkbox-{{$group.id}}"
                                                                class="{{if $group.selected}}ticked{{else}}unticked {{/if}} action"
-                                                               onclick="contactgroupChangeMember('{{$group.id}}','{{$group.cid}}');return true;"
+                                                               onclick="return contactgroupChangeMember(this, '{{$group.id}}','{{$group.cid}}');"
                                                                {{if $group.ismember}}checked="checked"{{/if}}
                                                                aria-checked="{{if $group.ismember}}true{{else}}false{{/if}}"
                                                        />
index 620d2de75aae7db2f29982176b8dc7088ce57e50..18a6105a6e17af76c34b4964ec13a3edeeaffd46 100644 (file)
@@ -17,7 +17,7 @@
                                {{if $group.cid}}
                                        <input type="checkbox"
                                                class="{{if $group.selected}}ticked{{else}}unticked {{/if}} action"
-                                               onclick="contactgroupChangeMember('{{$group.id}}','{{$group.cid}}');return true;"
+                                               onclick="return contactgroupChangeMember(this, '{{$group.id}}','{{$group.cid}}');"
                                                {{if $group.ismember}}checked="checked"{{/if}}
                                        />
                                {{/if}}