Skip to content

Commit

Permalink
improved indication why cards match, minor layout and language improv…
Browse files Browse the repository at this point in the history
…ements
  • Loading branch information
DDvO committed Jun 3, 2018
1 parent ce53992 commit 39860bc
Show file tree
Hide file tree
Showing 14 changed files with 295 additions and 269 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ When pairs of candidate duplicates are presented, the reason why they are consid

* The '≡' symbol is shown between fields with identical values.
All other relations are determined after abstraction of values (see the definitions below).
* The '≃' symbol is used for indicating matching names, email addresses, or phone numbers.
* The '≅' symbol is used for indicating equivalent fields and equivalent cards.
* The '⋦' and '⋧' symbols indicate that a field or a whole card contains less/more information than the other.
* The '⊆' and '⊇' symbols indicate the subset/superset relation on email addresses or phone numbers.
Expand All @@ -38,6 +39,8 @@ Two cards are considered _matching_ if any of the following conditions hold, whe

Yet cards with non-equivalent `AIMScreenName` are never considered matching, which is convenient for preventing cards from being repeatedly presented for manual treatment.

The matching relation is designed to be rather weak, such that it tends to yield more pairs of candidate duplicates.

_Matching_ of names, email addresses, and phone numbers is based upon equivalence of fields modulo abstraction, described below.
As a result, for example, names differing only in letter case are considered to match.
For the matching process, names are completed and their order is normalized —
Expand Down
408 changes: 214 additions & 194 deletions chrome/content/duplicateEntriesWindow.js

Large diffs are not rendered by default.

66 changes: 35 additions & 31 deletions chrome/content/duplicateEntriesWindow.xul
Original file line number Diff line number Diff line change
Expand Up @@ -8,38 +8,14 @@
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
onload="DuplicateEntriesWindow.init()"
onunload="DuplicateEntriesWindow.OnUnloadWindow()">
onunload="DuplicateEntriesWindow.OnUnloadWindow()">
<script type="application/x-javascript" src="chrome://duplicatecontactsmanager/content/duplicateEntriesWindow.js"/>
<stringbundleset id="duplicateContactsManagerStringbundleset">
<stringbundle id="bundle_duplicateContactsManager" src="chrome://duplicatecontactsmanager/locale/duplicateContactsManager.properties" />
</stringbundleset>

<vbox id="mainbox">
<!--image src="chrome://duplicatecontactsmanager/content/kate.png" height="40" alt="DCM logo" /-->
<statusbar id="duplicates-status-bar">
<statusbarpanel id="statusAddressBook1" flex="1">
<label id="statusAddressBook1_label" value="AddressBook1" class="addressbookname" />
<label id="statusAddressBook1_size" value="" />
<spacer flex="1"/>
</statusbarpanel>
<statusbarpanel id="progressText" flex="1">
<spacer flex="4"/>
<label id="progressText_label" value="" />
</statusbarpanel>
<statusbarpanel flex="0">
<progressmeter id="progressMeter" mode="determined" value="0%" style="display: none" />
<spacer flex="1"/>
</statusbarpanel>
<statusbarpanel id="statusText" flex="1">
<label id="statusText_label" value="&handleDuplicates.status_default;" />
<spacer flex="4"/>
</statusbarpanel>
<statusbarpanel id="statusAddressBook2" flex="1">
<label id="statusAddressBook2_label" value="AddressBook2" class="addressbookname" />
<label id="statusAddressBook2_size" value="" />
<spacer flex="2"/>
</statusbarpanel>
</statusbar>
<hbox align="center" id="duplicatesButtonsBox">
<button id="startbutton"
class="dialog"
Expand All @@ -53,14 +29,14 @@
disabled="true"
accesskey="&handleDuplicates.skipnextbutton.accesskey;"
oncommand="DuplicateEntriesWindow.skipAndSearchNextDuplicate()" />
<button id="keepnextbutton" flex="1"
<button id="keepnextbutton"
class="dialog"
label="&handleDuplicates.keepnextbutton.label;"
disabled="true"
visibility="hidden"
accesskey="&handleDuplicates.keepnextbutton.accesskey;"
oncommand="DuplicateEntriesWindow.keepAndSearchNextDuplicate();" />
<button id="applynextbutton" flex="1"
<button id="applynextbutton"
class="dialog"
label="&handleDuplicates.applynextbutton.label;"
disabled="true"
Expand All @@ -79,7 +55,29 @@
disabled="false"
oncommand="window.close();" />
</hbox>
<hbox flex="1" id="explanation" style="display: block">
<hbox id="statusBar">
<hbox id="statusText" flex="3">
<label id="statusText_label" value="&handleDuplicates.status_default;" />
</hbox>
<spacer flex="1"/>
<hbox id="statusAddressBook1" flex="3">
<label id="statusAddressBook1_label" value="AddressBook1" class="addressbookname" />
<label id="statusAddressBook1_size" value="" />
</hbox>
<spacer flex="1"/>
<hbox id="progress" flex="3">
<label id="progressText" value="" />
<progressmeter id="progressMeter" mode="determined" value="0%" style="display: none" />
</hbox>
<spacer flex="1"/>
<hbox id="statusAddressBook2" flex="3">
<label id="statusAddressBook2_label" value="AddressBook2" class="addressbookname" />
<label id="statusAddressBook2_size" value="" />
</hbox>
<spacer flex="1"/>
</hbox>
<hbox id="explanation" style="display: block">
<grid><!-- hack such that minimal window height expands automatically -->
<vbox flex="1" style="text-align: center">
<description class="explheader">&handleDuplicates.introheader;</description>
<description>&handleDuplicates.introtext;</description>
Expand All @@ -101,12 +99,13 @@
<textbox class="low" id="countryCallingCode" cols="1" size="7" />
</hbox>
<description>&handleDuplicates.considerFields;: </description>
<description class="text-line value" id="considerFields" style="width: 600px;"></description>
<description class="text-line value fields_wide" id="considerFields"></description>
<description>&handleDuplicates.ignoreFields;: </description>
<textbox multiline="true" id="ignoreFields" cols="90" />
</vbox>
</grid>
</hbox>
<hbox flex="1" id="tablepane" style="display: none">
<hbox id="tablepane" style="display: none">
<radiogroup>
<grid id="AttributesTable" flex="1">
<columns><column flex="1" /><column flex="2" /><column class="equivalence" /><column flex="2" /></columns>
Expand All @@ -130,7 +129,8 @@
</grid>
</radiogroup>
</hbox>
<hbox flex="1" id="endinfo" style="display: none">
<hbox id="endinfo" style="display: none">
<grid><!-- hack such that minimal window height expands automatically -->
<vbox flex="1" style="text-align: center">
<description class="explheader">&handleDuplicates.endheader;</description>
<vbox class="tbox">
Expand Down Expand Up @@ -162,6 +162,10 @@
-->
</vbox>
</vbox>
</grid>
</hbox>
<statusbar id="bottom">
<spacer flex="1"/>
</statusbar>
</vbox>
</window>
2 changes: 1 addition & 1 deletion locale/de-DE/duplicateContactsManager.dtd
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
<!ENTITY handleDuplicates.options "Optionen">

<!-- text after process has finished -->
<!ENTITY handleDuplicates.endheader "Das war’s.">
<!ENTITY handleDuplicates.endheader "Resultate">
<!ENTITY handleDuplicates.endtext "Sie haben sich von Ihren Dubletten getrennt und können Sich nun wieder angenehmeren Dingen widmen :-)">
<!ENTITY handleDuplicates.endtext.numBefore "Anzahl der Einträge vorher">
<!ENTITY handleDuplicates.endtext.numAfter "Anzahl der Einträge nachher">
Expand Down
20 changes: 9 additions & 11 deletions locale/de-DE/duplicateContactsManager.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@ cards=Karten
current=aktuell
of=von
noMatch=Keine Namen, E-Mail-Adressen und Telefonnummern zum Abgleich
matchingEmailAddresses=E-Mail-Adressen passen
matchingNames=Namen passen
matchingPhones=Telefonnummern passen
matchingNamesEmails=Namen und E-Mail-Adressen passen
matchingNamesPhones=Namen und Telefonnummern passen
matchingEmailsPhones=E-Mail-Adressen und Telefonnummern passen
matchingNamesEmailsPhones=Namen, E-Mail-Adresssen und Telefonnummern passen
matchFound=Übereinstimmung gefunden
match=passen
Names_label=Namen
Emails_label=E-Mail-Adressen
PhoneNumbers_label=Telefonnummern
SearchingForDuplicates=Suche nach Dubletten...
PleasePressStart=Bitte klicken Sie Start.
NoABookFound=Kein Adressbuch gefunden!
Expand Down Expand Up @@ -43,14 +41,14 @@ HomePhoneType_label=Art des Privat-Nummer
FaxNumberType_label=Art der Fax-Nummer
PagerNumberType_label=Art der Pager-Nummer
CellularNumberType_label=Art der Mobil-Nummer
HomeAddress_label=Privat-Adresse
HomeAddress2_label=Privat-Adresse 2
HomeAddress_label=Privat Adresse
HomeAddress2_label=Privat Adresse 2
HomeCity_label=Privat Stadt
HomeState_label=Privat Bundesland
HomeZipCode_label=Privat PLZ
HomeCountry_label=Privat Land
WorkAddress_label=Dienst-Adresse
WorkAddress2_label=Dienst-Adresse 2
WorkAddress_label=Dienst Adresse
WorkAddress2_label=Dienst Adresse 2
WorkCity_label=Dienst Stadt
WorkState_label=Dienst Bundesland
WorkZipCode_label=Dienst PLZ
Expand Down
2 changes: 1 addition & 1 deletion locale/en-US/duplicateContactsManager.dtd
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
<!ENTITY handleDuplicates.options "Options">

<!-- text after process has finished -->
<!ENTITY handleDuplicates.endheader "That’s it.">
<!ENTITY handleDuplicates.endheader "Results">
<!ENTITY handleDuplicates.endtext "You just got rid of these duplicates and can now continue with something that’s more fun :-)">
<!ENTITY handleDuplicates.endtext.numBefore "Number of entries before">
<!ENTITY handleDuplicates.endtext.numAfter "Number of entries after">
Expand Down
12 changes: 5 additions & 7 deletions locale/en-US/duplicateContactsManager.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@ cards=cards
current=current
of=of
noMatch=No names, email addresses, and phone numbers to compare
matchingEmailAddresses=Email addresses match
matchingNames=Names match
matchingPhones=Phone numbers match
matchingNamesEmails=Names and email addresses match
matchingNamesPhones=Names and phone numbers match
matchingEmailsPhones=Emails and phones match
matchingNamesEmailsPhones=Names, email addresses, and phone numbers match
matchFound=Match found
match=match
Names_label=Names
Emails_label=Email addresses
PhoneNumbers_label=Phone numbers
SearchingForDuplicates=Searching for duplicates...
PleasePressStart=Please press Start.
NoABookFound=No address book found!
Expand Down
2 changes: 1 addition & 1 deletion locale/es-ES/duplicateContactsManager.dtd
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
<!ENTITY handleDuplicates.options "Opciones">

<!-- text after process has finished -->
<!ENTITY handleDuplicates.endheader "Eso es todo.">
<!ENTITY handleDuplicates.endheader "Resultados">
<!ENTITY handleDuplicates.endtext "Acabas de deshacerse de estos duplicados y ahora puedes continuar con algo que es aún más divertido :-)">
<!ENTITY handleDuplicates.endtext.numBefore "Número de contactos antes">
<!ENTITY handleDuplicates.endtext.numAfter "Número de contactos después">
Expand Down
12 changes: 5 additions & 7 deletions locale/es-ES/duplicateContactsManager.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@ cards=Contactos
current=corriente
of=de
noMatch=Sin nombres, correos-e y teléfonos para comparar
matchingEmailAddresses=Correos-e coinciden
matchingNames=Nombres coinciden
matchingPhones=Números de teléfono coinciden
matchingNamesEmails=Nombres y correos-e coinciden
matchingNamesPhones=Nombres y teléfonos coinciden
matchingEmailsPhones=Correos-e y teléfonos coinciden
matchingNamesEmailsPhones=Nombres, correos-e y teléfonos coinciden
matchFound=Coincidencia encontrada
match=coinciden
Names_label=Nombres
Emails_label=Correos-e
PhoneNumbers_label=Números de teléfono
SearchingForDuplicates=Buscando contactos duplicados...
PleasePressStart=Por favor presione Inicio
NoABookFound=No se encontró una libreta de direcciones!
Expand Down
2 changes: 1 addition & 1 deletion locale/es-MX/duplicateContactsManager.dtd
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
<!ENTITY handleDuplicates.options "Opciones">

<!-- text after process has finished -->
<!ENTITY handleDuplicates.endheader "Eso es todo.">
<!ENTITY handleDuplicates.endheader "Resultados">
<!ENTITY handleDuplicates.endtext "Acabas de deshacerse de estos duplicados y ahora puedes continuar con algo que es aún más divertido :-)">
<!ENTITY handleDuplicates.endtext.numBefore "Número de contactos antes">
<!ENTITY handleDuplicates.endtext.numAfter "Número de contactos después">
Expand Down
12 changes: 5 additions & 7 deletions locale/es-MX/duplicateContactsManager.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@ cards=Contactos
current=corriente
of=de
noMatch=Sin nombres, correos-e y teléfonos para comparar
matchingEmailAddresses=Correos-e coinciden
matchingNames=Nombres coinciden
matchingPhones=Números de teléfono coinciden
matchingNamesEmails=Nombres y correos-e coinciden
matchingNamesPhones=Nombres y teléfonos coinciden
matchingEmailsPhones=Correos-e y teléfonos coinciden
matchingNamesEmailsPhones=Nombres, correos-e y teléfonos coinciden
matchFound=Coincidencia encontrada
match=coinciden
Names_label=Nombres
Emails_label=Correos-e
PhoneNumbers_label=Números de teléfono
SearchingForDuplicates=Buscando contactos duplicados...
PleasePressStart=Por favor presione Inicio
NoABookFound=No se encontró una libreta de direcciones!
Expand Down
2 changes: 1 addition & 1 deletion locale/fr-FR/duplicateContactsManager.dtd
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
<!ENTITY handleDuplicates.options "Options">

<!-- text after process has finished -->
<!ENTITY handleDuplicates.endheader "C'est bon.">
<!ENTITY handleDuplicates.endheader "Résultats">
<!ENTITY handleDuplicates.endtext "Vous venez de vous débarrasser des doublons et pouvez maintenant continuer avec quelque chose de plus amusant :-)">
<!ENTITY handleDuplicates.endtext.numBefore "Nombre de contacts avant">
<!ENTITY handleDuplicates.endtext.numAfter "Nombre de contacts après">
Expand Down
12 changes: 5 additions & 7 deletions locale/fr-FR/duplicateContactsManager.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@ cards=contacts
current=actuel
of=sur
noMatch=Pas de noms, adresses \u00e9lectroniques et téléphones à comparer
matchingEmailAddresses=Les adresses \u00e9lectroniques correspondent
matchingNames=Noms correspondent
matchingPhones=T\u00e9l\u00e9phones correspondent
matchingNamesEmails=Noms et adresses \u00e9lectroniques correspondent
matchingNamesPhones=Noms et t\u00e9l\u00e9phones correspondent
matchingEmailsPhones=Adresses \u00e9lectroniques et t\u00e9l\u00e9phones correspondent
matchingNamesEmailsPhones=Noms, adresses \u00e9lectroniques, et t\u00e9l\u00e9phones correspondent
matchFound=Match trouvé
match=correspondent
Names_label=Noms
Emails_label=Les adresses \u00e9lectroniques
PhoneNumbers_label=T\u00e9l\u00e9phones
SearchingForDuplicates=Recherche des doublons...
PleasePressStart=Appuyez sur D\u00e9marrer SVP.
NoABookFound=Aucun liste d\'adresses trouv\u00e9!
Expand Down
9 changes: 9 additions & 0 deletions skin/classic/duplicateContactsManager.css
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,11 @@ label#columnKeptInfoLeft, label#columnKeptInfoRight {
padding: 0px 0px 6px 10px;
}

#statusBar {
margin-left: 15px;
margin-bottom: 10px;
}

#statusText {
color: #aa0000;
}
Expand Down Expand Up @@ -172,6 +177,10 @@ checkbox {
text-align: left;
}

#bottom{
margin-top: -15px;
}

#mainbox{
/* min-width: 850px;
overflow: auto; */
Expand Down

0 comments on commit 39860bc

Please sign in to comment.