-1 This is still an unnecessary work-round.
IMO it's worse, because any null database entries will still affect other code that uses the preferences API. There may not be any (yet) but the API is public. As I already wrote, the proper solution is to: 1) fix the bug that creates the null entries 2) run a once-off job to tidy up the database On 15 August 2017 at 06:56, <[email protected]> wrote: > Ensure that a list isn't null when adding to favorites. > > This is a workaround for #392. It checks whether a list is non-null > before attempting to add it to the favorites list in the UI. > > > Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo > Commit: > http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/be430c66 > Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/be430c66 > Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/be430c66 > > Branch: refs/heads/master > Commit: be430c666bc220a52ffdcaa69e5a005836e22590 > Parents: 915b6f5 > Author: Daniel Gruno <[email protected]> > Authored: Tue Aug 15 07:56:08 2017 +0200 > Committer: Daniel Gruno <[email protected]> > Committed: Tue Aug 15 07:56:08 2017 +0200 > > ---------------------------------------------------------------------- > site/js/dev/ponymail_phonebook.js | 4 +++- > site/js/dev/ponymail_user_preferences.js | 18 ++++++++++-------- > site/js/ponymail.js | 22 +++++++++++++--------- > 3 files changed, 26 insertions(+), 18 deletions(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/be430c66/site/js/dev/ponymail_phonebook.js > ---------------------------------------------------------------------- > diff --git a/site/js/dev/ponymail_phonebook.js > b/site/js/dev/ponymail_phonebook.js > index 9fc8365..754c49f 100644 > --- a/site/js/dev/ponymail_phonebook.js > +++ b/site/js/dev/ponymail_phonebook.js > @@ -111,7 +111,9 @@ function seedDomains(json) { > if (login && login.favorites && login.favorites.length > 0) { > domlist['★'] = [] > for (mli in login.favorites) { > - domlist['★'].push(login.favorites[mli]) > + if (mli != null) { // #392: ensure the list exists > + domlist['★'].push(login.favorites[mli]) > + } > } > } > var po = document.createElement("div") > > http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/be430c66/site/js/dev/ponymail_user_preferences.js > ---------------------------------------------------------------------- > diff --git a/site/js/dev/ponymail_user_preferences.js > b/site/js/dev/ponymail_user_preferences.js > index 7d0e2f8..2f1ff46 100644 > --- a/site/js/dev/ponymail_user_preferences.js > +++ b/site/js/dev/ponymail_user_preferences.js > @@ -218,14 +218,16 @@ function setupUser() { > li.appendChild(ul) > for (var i in login.favorites) { > var l = login.favorites[i] > - var sli = document.createElement('li') > - sli.setAttribute("class", "pull-left") > - var st = document.createTextNode(l) > - var sa = document.createElement('a') > - sa.setAttribute("href", "list.html?" + l) > - sa.appendChild(st) > - sli.appendChild(sa) > - ul.appendChild(sli) > + if (l != null) { > + var sli = document.createElement('li') > + sli.setAttribute("class", "pull-left") > + var st = document.createTextNode(l) > + var sa = document.createElement('a') > + sa.setAttribute("href", "list.html?" + l) > + sa.appendChild(st) > + sli.appendChild(sa) > + ul.appendChild(sli) > + } > } > > pd.appendChild(li) > > http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/be430c66/site/js/ponymail.js > ---------------------------------------------------------------------- > diff --git a/site/js/ponymail.js b/site/js/ponymail.js > index 9aa2310..689bc8e 100644 > --- a/site/js/ponymail.js > +++ b/site/js/ponymail.js > @@ -4310,7 +4310,9 @@ function seedDomains(json) { > if (login && login.favorites && login.favorites.length > 0) { > domlist['★'] = [] > for (mli in login.favorites) { > - domlist['★'].push(login.favorites[mli]) > + if (mli != null) { // #392: ensure the list exists > + domlist['★'].push(login.favorites[mli]) > + } > } > } > var po = document.createElement("div") > @@ -5313,14 +5315,16 @@ function setupUser() { > li.appendChild(ul) > for (var i in login.favorites) { > var l = login.favorites[i] > - var sli = document.createElement('li') > - sli.setAttribute("class", "pull-left") > - var st = document.createTextNode(l) > - var sa = document.createElement('a') > - sa.setAttribute("href", "list.html?" + l) > - sa.appendChild(st) > - sli.appendChild(sa) > - ul.appendChild(sli) > + if (l != null) { > + var sli = document.createElement('li') > + sli.setAttribute("class", "pull-left") > + var st = document.createTextNode(l) > + var sa = document.createElement('a') > + sa.setAttribute("href", "list.html?" + l) > + sa.appendChild(st) > + sli.appendChild(sa) > + ul.appendChild(sli) > + } > } > > pd.appendChild(li) >
