Closed Bug 1273477 Opened 4 years ago Closed 4 years ago

Cannot import address book from Becky!2

Categories

(MailNews Core :: Import, defect)

x86
Windows 7
defect
Not set

Tracking

(Not tracked)

VERIFIED FIXED
Thunderbird 50.0

People

(Reporter: baffclan, Assigned: aceman)

References

(Blocks 1 open bug)

Details

Attachments

(4 files, 1 obsolete file)

Attached image b2 address book folder (obsolete) —
Steps to Reproduce:
1. Start Daily
2. Tools -> Import
3. Appear Import dialog
4. Select Address Books and click [Next>]
5. Select Becky! Internet Mail and click [Next>]
6. Appear explorer, and goto address book folder

Becky!'s address book is not LDIF(*.ldi; *.ldif) file.
(In reply to baffclan from comment #0)
> 6. Appear explorer, and goto address book folder
> 
> Becky!'s address book is not LDIF(*.ldi; *.ldif) file.

I do not understand. Are you not able to select the addressbook file of Becky?
In the screenshot you have all files shown (*.*). So what exactly is the problem?
(In reply to :aceman from comment #1) 
> I do not understand. Are you not able to select the addressbook file of Becky?
> In the screenshot you have all files shown (*.*). So what exactly is the problem?
sorry for less information.

Steps to Reproduce:
6. Appear explorer, file type default is LDIF type.
7. no file found in address book folder.
8. pull down a file type
9. take a screenshot
10. Change a file type to all file tyep(*.*).
11. few files found. (xxxxxxxx.bab, Group.idx, Group.ini)
12. .bab is B2's address book file.
13. select a xxxxxxxx.bab and Open.
14. Appear Import dialog

15. dialog says:
> Addresses successfully imported from Becky! Internet Mail.
> No address books were found to import.

OS: Windows 7 Pro(x86)
User Agent: Mozilla/5.0 (Windows NT 6.1; rv:49.0) Gecko/20100101 Thunderbird/49.0a1
Application Build ID: 20160517030214
Attachment #8753338 - Attachment is obsolete: true
Blocks: 684455
Here is a try build that at least predefines *.bab files to be shown by default if you choose Becky:
http://mzl.la/1s6Etbq
Should fix steps 6.-11.
But you do not need to try it yet, as it reportedly still does not import anything ("No address books were found to import."). I have yet to find the cause of that.
Thanks for make a try-builds.

Step 6:
Open a explorer, file type default is Becky! AB(*.bab) type.
Thanks!

However cannot imports AB.
See Attached example Becky! Address Books.
Attached patch patchSplinter Review
So I have found out that Becky import expects to be passed a directory/folder that contains the addressbook files, not the file itself. This can be seen also in the existing test. In attachment 8753778 [details], you need to select the "AddrBook" folder, so that all *.bab files in it are imported and the resulting addressbook in TB will be called AddrBook. But this was not enforced in the file picker. Setting the supportsMultiple property seems to be the way to ask for that.
See the documentation:
http://hg.mozilla.org/comm-central/file/tip/mailnews/import/content/importDialog.js#l815
http://hg.mozilla.org/comm-central/file/tip/mailnews/import/public/nsIImportAddressBooks.idl#l47
Assignee: nobody → acelists
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Attachment #8762262 - Flags: ui-review?(richard.marti)
Attachment #8762262 - Flags: review?(rkent)
When I go to the correct folder with only the AB in it, the picker shows "no search entry found", and this is not so helpful for the user. Would it be possible to still show the addressbook file in this folder? Then the user knows he's in the right folder. Could it also be possible the user selects directly the file but TB uses the folder?

I downloaded the example AB from this bug to desktop and choose then this folder. The AB was then named "Desktop" - not so ideal. Would it be possible to hardcode a name like BeckyAB or something similar?
(In reply to Richard Marti (:Paenglab) from comment #6)
> When I go to the correct folder with only the AB in it, the picker shows "no
> search entry found", and this is not so helpful for the user.
> Would it be possible to still show the addressbook file in this folder?
> Then the user knows he's in the right folder.

That seems to be a property of the platform file picker. The filter is set to *.* .
For me on Linux it shows the .bab file in the directory, but does not allow selecting any normal file.
So I can select the parent directory and import works.

> Could it also be possible the user selects
> directly the file but TB uses the folder?

If we do this in the UI code then yes. But I'd like to preserve the possibility to choose a folder too.
Choose from the options:
1. show a picker that only allows picking folder. If user cancels it, another picker is shown to select *.bab files.
2. show a picker that allows picking anything.

In both options, if a file is chosen, send the parent folder to the backend. BUT this has the risk, that if the folder contains any more .bab files, they will be imported too.

> I downloaded the example AB from this bug to desktop and choose then this
> folder. The AB was then named "Desktop" - not so ideal. Would it be possible
> to hardcode a name like BeckyAB or something similar?

It intentionally takes the name of the parent folder (the one that is choosen) and uses that for the AB name in TB, then pushes all contacts in .bab files found in that folder into that new AB.
If we could use a different name for the AB, we could use the filename directly. But I don't know if that filename is useful (e.g. if it contains some useful AB name, when we see in the screenshot the folder name contains that). This one would need comment from the reporter baffclan on how the file is really named in Becky (it is not visible in the screenshot).
Flags: needinfo?(baffclan)
(In reply to :aceman from comment #7)
> (In reply to Richard Marti (:Paenglab) from comment #6)
> > When I go to the correct folder with only the AB in it, the picker shows "no
> > search entry found", and this is not so helpful for the user.
> > Would it be possible to still show the addressbook file in this folder?
> > Then the user knows he's in the right folder.
> 
> That seems to be a property of the platform file picker. The filter is set
> to *.* .
> For me on Linux it shows the .bab file in the directory, but does not allow
> selecting any normal file.
> So I can select the parent directory and import works.

On Windows only folders are shown in the picker. This is a limitation of Windows.

> > Could it also be possible the user selects
> > directly the file but TB uses the folder?
> 
> If we do this in the UI code then yes. But I'd like to preserve the
> possibility to choose a folder too.
> Choose from the options:
> 1. show a picker that only allows picking folder. If user cancels it,
> another picker is shown to select *.bab files.
> 2. show a picker that allows picking anything.

1. is not optimal with showing two pickers
2. should only allow picking *.bab files

> In both options, if a file is chosen, send the parent folder to the backend.
> BUT this has the risk, that if the folder contains any more .bab files, they
> will be imported too.

Yes in mailnews/test there are already two .bab files and both are imported in one AB. The question is, is it common to have multiple ABs in Becky! ?

> > I downloaded the example AB from this bug to desktop and choose then this
> > folder. The AB was then named "Desktop" - not so ideal. Would it be possible
> > to hardcode a name like BeckyAB or something similar?
> 
> It intentionally takes the name of the parent folder (the one that is
> choosen) and uses that for the AB name in TB, then pushes all contacts in
> .bab files found in that folder into that new AB.
> If we could use a different name for the AB, we could use the filename
> directly. But I don't know if that filename is useful (e.g. if it contains
> some useful AB name, when we see in the screenshot the folder name contains
> that). This one would need comment from the reporter baffclan on how the
> file is really named in Becky (it is not visible in the screenshot).
Structure is as follows in the directory/folders.

Becky!/
  AddrBook/
    @Personal/
      + Family/
      |   + (random).bab
      |   + Group.idx
      |   + Group.ini
      + Friends/
      |   + (random).bab
      |   + Group.idx
      |   + Group.ini
      + Group.ini
    @Bugzilla/
      + Bug-jp/
      |   + (random).bab
      |   + Group.idx
      |   + Group.ini
      + Bug-org/
      |   + (random).bab
      |   + Group.idx
      |   + Group.ini
      + Address.ini
Flags: needinfo?(baffclan)
(In reply to Richard Marti (:Paenglab) from comment #8)
> > Choose from the options:
> > 1. show a picker that only allows picking folder. If user cancels it,
> > another picker is shown to select *.bab files.
> > 2. show a picker that allows picking anything.
> 1. is not optimal with showing two pickers
> 2. should only allow picking *.bab files

I'll see if that can be done.

> > In both options, if a file is chosen, send the parent folder to the backend.
> > BUT this has the risk, that if the folder contains any more .bab files, they
> > will be imported too.
> 
> Yes in mailnews/test there are already two .bab files and both are imported
> in one AB. The question is, is it common to have multiple ABs in Becky! ?

I think so from the screenshot. But they seem to be in different folders. But they are all in the AddrBook folder. TB picks AddrBook as the name for the final TB. I don't know if "@mozilla" or "bugzilla" (from the screenshot) would be a better name.
(In reply to baffclan from comment #9)
> Structure is as follows in the directory/folders.
> 
> Becky!/
>   AddrBook/
>     @Personal/
>       + Family/
>       + Friends/
>     @Bugzilla/
>       + Bug-jp/
>       + Bug-org/


Great, thanks!

1.So what would you except to happen if choosing Addrbook folder for import? Currently TB imports all the 4 found .bab files into a new addressbok in TB named "AddrBook". Would you prefer creating 4 addressbooks in TB? Does Becky also show this as 4 addressbooks in its UI?
2.What would you expect if choosing the file Friends/<random>.bab ? Should the addressbook in TB be named Friends?
Flags: needinfo?(baffclan)
Also, what are those @Personal and @Bugzilla folders? How are those used inside Becky? Does it allow to somehow group the Addressbooks in its interface?
(In reply to :aceman from comment #10)
> I think so from the screenshot. But they seem to be in different folders.
> But they are all in the AddrBook folder. TB picks AddrBook as the name for
> the final TB. I don't know if "@mozilla" or "bugzilla" (from the screenshot)
> would be a better name.

Does the importer recursively import the addressbooks from AddrBook down?
(In reply to Richard Marti (:Paenglab) from comment #13)
> Does the importer recursively import the addressbooks from AddrBook down?
Yes.

But I think I was wrong. I no longer think it picks the AddrBook name. For each .bab file it creates and AB with the parent folder's name. So it would create those Friends, Bug-jp, etc. addressbooks.
(In reply to Richard Marti (:Paenglab) from comment #8)
> > Choose from the options:
> > 1. show a picker that only allows picking folder. If user cancels it,
> > another picker is shown to select *.bab files.
> > 2. show a picker that allows picking anything.
> 
> 1. is not optimal with showing two pickers
> 2. should only allow picking *.bab files

So this does not seem possible to me (at least on Linux). I played with various combinations on filters on the picker. But if you want to allow picking files, you can't pick folders.
If you want to show only *.bab, you can't descend into folders (they are shown but not clickable, unless that is a bug). Maybe on Windows it would work differently.

So what would you propose?
Comment on attachment 8762262 [details] [diff] [review]
patch

With the recursive search it's not needed to point to the correct *.bab file. With the folder file picker it's only needed to point to the Becky! files and it finds the addresses. I was so nasty and gave only the c-c folder (with full /mozilla in it) and the addresses where found from test.

Like this I think it's okay with the folder picker.

PS: Maybe the test folder is wrong with it's two *.bab files in it. Like comment 9 shows there is always only one *.bab file in one folder.
Attachment #8762262 - Flags: ui-review?(richard.marti) → ui-review+
(In reply to Richard Marti (:Paenglab) from comment #16)
> With the recursive search it's not needed to point to the correct *.bab
> file. With the folder file picker it's only needed to point to the Becky!
> files and it finds the addresses.
You can also point to Becky/Addrbook/@mozilla/Bug-jp and it imports the one .bab in it.

> PS: Maybe the test folder is wrong with it's two *.bab files in it. Like
> comment 9 shows there is always only one *.bab file in one folder.

Yes, but it demonstrates that all .bab files in a folder are merged into one AB (with the name of the parent folder), and other files (like the .nobab) are ignored. It may be a superset of what Becky needs (or allows), but limiting to 1 .bab would need some additional code with is not needed unless not limiting causes any problems.
Attached image addressbook
(In reply to :aceman from comment #11)
> Would you prefer creating 4 addressbooks in TB?
Yes.

> Does Becky also show this as 4 addressbooks in its UI?
See screen shot.

> What would you expect if choosing the file Friends/<random>.bab ?
> Should the addressbook in TB be named Friends?
Yes, I think.


honestly, I do not use Thunderbird as mailer.
use lightning on Thunderbird.
My mailer is Becky.
However, I am interested in that Thunderbird can import from Becky.
Flags: needinfo?(baffclan)
No problem with that. Thanks for your testing and interest.

OK, so the current code will produce the 4 addressbooks if they are in the folder tree as in comment 9.
(In reply to :aceman from comment #19)
> OK, so the current code will produce the 4 addressbooks if they are in the
> folder tree as in comment 9.

There is a specification that needs to be another thought.
AB of Tb is look like a flat, but AB of B2 further can make even a lower layer.

For example,
    @Work/
      + Company name1/
         + Business Dep./
         + Design Dep./
         + Engineering Dep./
      + Company name2/
         + Business Dep./
         + Design Dep./
         + Engineering Dep./
            + ...
            + ...
               + ...
               + ...

In this case, how can I to how the name, does not have a good idea to me.
> Company name1 - Business Dep.
> Company name1 - Design Dep.
> Company name1 - Engineering Dep.

> Company name1 - 1
> Company name1 - 2
> Company name1 - 3
Comment on attachment 8762262 [details] [diff] [review]
patch

Review of attachment 8762262 [details] [diff] [review]:
-----------------------------------------------------------------

Hard for me to review this, but the description makes sense. I think the best path forward is to review, land on c-c, and ask for comments for Becky! users. So r+ but I did not really test it.
Attachment #8762262 - Flags: review?(rkent) → review+
(In reply to Kent James (:rkent) from comment #21)
> Hard for me to review this, but the description makes sense. I think the
> best path forward is to review, land on c-c, and ask for comments for Becky!
> users. So r+ but I did not really test it.
Yes, fortunately we have the luxury here, thanks to baffclan.

Pushed:
https://hg.mozilla.org/comm-central/rev/4484cd5998c91cfab43a6b68ee3efdc303333e16
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 50.0
Blocks: 1279975
Confirm with Newest Daily.

Name : Thunderbird
Version : 50.0a1
User Agent : Mozilla/5.0 (Windows NT 6.1; rv:50.0) Gecko/20100101 Thunderbird/50.0a1
Application Build ID : 20160615030206

Thanks for fixing this!

-> v.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.