On 15 August 2017 at 16:52, sebb <[email protected]> wrote:
> On 15 August 2017 at 11:15, Daniel Gruno <[email protected]> wrote:
>> On 08/15/2017 10:17 AM, sebb wrote:
>>> -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.
>>
>> Until such a point where a different fix is in place, I don't see this
>> as unnecessary. It's not the _perfect solution_, but it's what we have
>> at the moment. No-one else has written anything to replace it.
>
> The problem I have with it is that it is much worse than the previous
> work-round, as it forces all users of the API to allow for possible
> nulls.
> This can be seen from the fact that two JS files have had to be changed.
>
> IMO, any 'solution' which does not fix the underlying database is at
> best a hack.
>
> How long will it really take to write a script to fix the database?

The nullfav.py script has been committed (mainly based on missing.py)
so I have reverted the unnecessary changes.

>> If at one point something gets written that can clean the database, I
>> will gladly remove this again from the code. But we are not there now.
>>
>> With regards,
>> Daniel.
>>
>>>
>>> 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)
>>>>
>>

Reply via email to