diff options
| -rw-r--r-- | program/js/app.js | 28 | 
1 files changed, 28 insertions, 0 deletions
diff --git a/program/js/app.js b/program/js/app.js index 0a1afe8af..34fa68572 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -2585,6 +2585,7 @@ function rcube_webmail()          form.elements['_folder_name'].value = '';         } +    this.sort_subscription_list();      }; @@ -2733,6 +2734,33 @@ function rcube_webmail()      return new_row;      }; +  // sort subscription folder list +  this.sort_subscription_list = function() +    { +    var tbody = this.gui_objects.subscriptionlist.tBodies[0]; +    for (var i = 0; i<(tbody.childNodes.length-1); i++) +      { +      if (this.env.subscriptionrows[tbody.childNodes[i].id]!=null) +        { +        var swapped = false; +        for (var j = i+1; j<(tbody.childNodes.length); j++) +          { +          if ((this.env.subscriptionrows[tbody.childNodes[j].id]!=null) && +              (this.env.subscriptionrows[tbody.childNodes[i].id][0]> +               this.env.subscriptionrows[tbody.childNodes[j].id][0])) +            { +            var swap = tbody.replaceChild(tbody.childNodes[i], tbody.childNodes[j]); +            if (typeof(tbody.childNodes[i]) != 'undefined') +              tbody.insertBefore(swap, tbody.childNodes[i]) +            else +              tbody.appendChild(swap); +            swapped = true; +            } +          } +        } +      } +    }; +    /*********************************************************/    /*********           GUI functionality           *********/  | 
