Merge lp:~renatofilho/address-book-app/fix-1380094 into lp:~phablet-team/address-book-app/staging
- fix-1380094
- Merge into staging
Status: | Merged |
---|---|
Merge reported by: | Renato Araujo Oliveira Filho |
Merged at revision: | not available |
Proposed branch: | lp:~renatofilho/address-book-app/fix-1380094 |
Merge into: | lp:~phablet-team/address-book-app/staging |
Diff against target: |
252 lines (+68/-54) 7 files modified
src/imports/Ubuntu/Contacts/ContactAvatar.qml (+2/-2) src/imports/Ubuntu/Contacts/ContactDelegate.qml (+3/-5) src/imports/Ubuntu/Contacts/ContactListView.qml (+0/-14) src/imports/Ubuntu/Contacts/ContactPreviewPage.qml (+7/-13) src/imports/Ubuntu/Contacts/ContactSimpleListView.qml (+1/-17) src/imports/Ubuntu/Contacts/Contacts.js (+55/-1) src/imports/Ubuntu/Contacts/MostCalledModel.qml (+0/-2) |
To merge this branch: | bzr merge lp:~renatofilho/address-book-app/fix-1380094 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot | continuous-integration | Needs Fixing | |
Ubuntu Phablet Team | Pending | ||
Review via email: mp+238186@code.launchpad.net |
Commit message
Format contact preview page title based on designer spec.
1- Name
2- Company
3- Phone
4- Email
5- Alias
6- No name
Description of the change
PS Jenkins bot (ps-jenkins) wrote : | # |
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:315
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:316
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:317
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:318
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Autolanding.
More details in the following jenkins job:
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
Preview Diff
1 | === modified file 'src/imports/Ubuntu/Contacts/ContactAvatar.qml' |
2 | --- src/imports/Ubuntu/Contacts/ContactAvatar.qml 2014-08-21 00:45:37 +0000 |
3 | +++ src/imports/Ubuntu/Contacts/ContactAvatar.qml 2014-10-14 18:54:07 +0000 |
4 | @@ -37,7 +37,7 @@ |
5 | function reload() |
6 | { |
7 | img.avatarUrl = Qt.binding(function() { return ContactsJS.getAvatar(contactElement, fallbackAvatarUrl) }) |
8 | - initialsLabel.contactDisplayName = Qt.binding(function() { return ContactsJS.formatToDisplay(contactElement, ContactDetail.Name, [Name.FirstName, Name.LastName], fallbackDisplayName) }) |
9 | + initialsLabel.contactDisplayName = Qt.binding(function() { return ContactsJS.formatToDisplayWithDetails(contactElement, ContactDetail.Name, [Name.FirstName, Name.LastName], fallbackDisplayName) }) |
10 | } |
11 | |
12 | radius: "medium" |
13 | @@ -47,7 +47,7 @@ |
14 | id: initialsLabel |
15 | objectName: "avatarInitials" |
16 | |
17 | - property string contactDisplayName: ContactsJS.formatToDisplay(contactElement, ContactDetail.Name, [Name.FirstName, Name.LastName], fallbackDisplayName) |
18 | + property string contactDisplayName: ContactsJS.formatToDisplayWithDetails(contactElement, ContactDetail.Name, [Name.FirstName, Name.LastName], fallbackDisplayName) |
19 | |
20 | anchors.centerIn: parent |
21 | text: Contacts.contactInitialsFromString(contactDisplayName) |
22 | |
23 | === modified file 'src/imports/Ubuntu/Contacts/ContactDelegate.qml' |
24 | --- src/imports/Ubuntu/Contacts/ContactDelegate.qml 2014-09-02 19:23:05 +0000 |
25 | +++ src/imports/Ubuntu/Contacts/ContactDelegate.qml 2014-10-14 18:54:07 +0000 |
26 | @@ -26,12 +26,10 @@ |
27 | property bool showAvatar: true |
28 | property bool isCurrentItem: false |
29 | property string defaultAvatarUrl: "" |
30 | - property string defaultTitle: "" |
31 | - property int titleDetail: ContactDetail.Name |
32 | - property variant titleFields: [ Name.FirstName, Name.LastName ] |
33 | property bool detailsShown: false |
34 | property int loaderOpacity: 0.0 |
35 | property bool flicking: false |
36 | + readonly property string displayLabel: contact ? ContactsJS.formatToDisplay(contact, "") : "" |
37 | |
38 | signal clicked(int index, QtObject contact) |
39 | signal pressAndHold(int index, QtObject contact) |
40 | @@ -84,7 +82,7 @@ |
41 | id: avatar |
42 | |
43 | contactElement: contact |
44 | - fallbackDisplayName: name.text |
45 | + fallbackDisplayName: root.displayLabel |
46 | anchors { |
47 | left: parent.left |
48 | top: parent.top |
49 | @@ -107,7 +105,7 @@ |
50 | |
51 | } |
52 | color: UbuntuColors.lightAubergine |
53 | - text: contact ? ContactsJS.formatToDisplay(contact, root.titleDetail, root.titleFields, "") : root.defaultTitle |
54 | + text: root.displayLabel != "" ? root.displayLabel : i18n.dtr("address-book-app", "No name") |
55 | elide: Text.ElideRight |
56 | } |
57 | |
58 | |
59 | === modified file 'src/imports/Ubuntu/Contacts/ContactListView.qml' |
60 | --- src/imports/Ubuntu/Contacts/ContactListView.qml 2014-08-27 22:40:35 +0000 |
61 | +++ src/imports/Ubuntu/Contacts/ContactListView.qml 2014-10-14 18:54:07 +0000 |
62 | @@ -69,20 +69,6 @@ |
63 | */ |
64 | property alias showAvatar: view.showAvatar |
65 | /*! |
66 | - \qmlproperty int titleDetail |
67 | - |
68 | - This property holds the contact detail which will be used to display the contact title in the delegate |
69 | - By default this is set to ContactDetail.Name. |
70 | - */ |
71 | - property alias titleDetail: view.titleDetail |
72 | - /*! |
73 | - \qmlproperty list<int> titleFields |
74 | - |
75 | - This property holds the list of all fields which will be used to display the contact title in the delegate |
76 | - By default this is set to [ Name.FirstName, Name.LastName ] |
77 | - */ |
78 | - property alias titleFields: view.titleFields |
79 | - /*! |
80 | \qmlproperty list<SortOrder> sortOrders |
81 | |
82 | This property holds a list of sort orders used by the contacts model. |
83 | |
84 | === modified file 'src/imports/Ubuntu/Contacts/ContactPreviewPage.qml' |
85 | --- src/imports/Ubuntu/Contacts/ContactPreviewPage.qml 2014-09-17 18:36:48 +0000 |
86 | +++ src/imports/Ubuntu/Contacts/ContactPreviewPage.qml 2014-10-14 18:54:07 +0000 |
87 | @@ -20,6 +20,7 @@ |
88 | import Ubuntu.Components.ListItems 1.0 as ListItem |
89 | import Ubuntu.Contacts 0.1 as ContactsUI |
90 | import Ubuntu.Components.Popups 1.0 as Popups |
91 | +import "Contacts.js" as ContactsJS |
92 | |
93 | Page { |
94 | id: root |
95 | @@ -27,22 +28,15 @@ |
96 | property QtObject contact: null |
97 | property alias extensions: extensionsContents.children |
98 | |
99 | - function formatNameToDisplay(contact) { |
100 | - if (!contact) { |
101 | - return "" |
102 | - } |
103 | - if (contact.name) { |
104 | - var detail = contact.name |
105 | - return (detail.firstName + " " + detail.lastName).trim() |
106 | - } else if (contact.displayLabel && contact.displayLabel.label && contact.displayLabel.label !== "") { |
107 | - return contact.displayLabel.label |
108 | - } else { |
109 | - return "" |
110 | + title: ContactsJS.formatToDisplay(contact, i18n.dtr("address-book-app", "No name")) |
111 | + |
112 | + Connections { |
113 | + target: contact |
114 | + onContactChanged: { |
115 | + root.title = ContactsJS.formatToDisplay(contact, i18n.dtr("address-book-app", "No name")) |
116 | } |
117 | } |
118 | |
119 | - title: formatNameToDisplay(contact) |
120 | - |
121 | Flickable { |
122 | id: flickable |
123 | |
124 | |
125 | === modified file 'src/imports/Ubuntu/Contacts/ContactSimpleListView.qml' |
126 | --- src/imports/Ubuntu/Contacts/ContactSimpleListView.qml 2014-09-04 18:21:29 +0000 |
127 | +++ src/imports/Ubuntu/Contacts/ContactSimpleListView.qml 2014-10-14 18:54:07 +0000 |
128 | @@ -54,20 +54,6 @@ |
129 | property bool showAvatar: true |
130 | |
131 | /*! |
132 | - \qmlproperty int titleDetail |
133 | - |
134 | - This property holds the contact detail which will be used to display the contact title in the delegate |
135 | - By default this is set to ContactDetail.Name. |
136 | - */ |
137 | - property int titleDetail: ContactDetail.DisplayLabel |
138 | - /*! |
139 | - \qmlproperty list<int> titleFields |
140 | - |
141 | - This property holds the list of all fields which will be used to display the contact title in the delegate |
142 | - By default this is set to [ Name.FirstName, Name.LastName ] |
143 | - */ |
144 | - property variant titleFields: [ DisplayLabel.Label ] |
145 | - /*! |
146 | \qmlproperty list<SortOrder> sortOrders |
147 | |
148 | This property holds a list of sort orders used by the contacts model. |
149 | @@ -101,7 +87,7 @@ |
150 | detailTypesHint: { |
151 | var hints = [ ContactDetail.Tag, // sections |
152 | ContactDetail.PhoneNumber, // expansion |
153 | - contactListView.titleDetail ] |
154 | + ContactDetail.DisplayLabel ] |
155 | |
156 | if (contactListView.showAvatar) { |
157 | hints.push(ContactDetail.Avatar) |
158 | @@ -292,8 +278,6 @@ |
159 | selected: contactListView.multiSelectionEnabled && contactListView.isSelected(contactDelegate) |
160 | selectionMode: contactListView.isInSelectionMode |
161 | defaultAvatarUrl: contactListView.defaultAvatarImageUrl |
162 | - titleDetail: contactListView.titleDetail |
163 | - titleFields: contactListView.titleFields |
164 | isCurrentItem: ListView.isCurrentItem |
165 | |
166 | // actions |
167 | |
168 | === modified file 'src/imports/Ubuntu/Contacts/Contacts.js' |
169 | --- src/imports/Ubuntu/Contacts/Contacts.js 2014-07-05 22:00:02 +0000 |
170 | +++ src/imports/Ubuntu/Contacts/Contacts.js 2014-10-14 18:54:07 +0000 |
171 | @@ -2,7 +2,8 @@ |
172 | var phoneTypeModel = null |
173 | |
174 | // Format contact name to be displayed |
175 | -function formatToDisplay(contact, contactDetail, detailFields, defaultTitle) { |
176 | +function formatToDisplayWithDetails(contact, contactDetail, detailFields, defaultTitle) |
177 | +{ |
178 | if (!contact) { |
179 | return defaultTitle |
180 | } |
181 | @@ -28,6 +29,59 @@ |
182 | return values |
183 | } |
184 | |
185 | +function formatToDisplay(contact, defaultTitle) |
186 | +{ |
187 | + if (!contact) { |
188 | + return defaultTitle |
189 | + } |
190 | + |
191 | + var detail = contact.detail(ContactDetail.DisplayLabel) |
192 | + if (detail && (detail.label.length > 0)) { |
193 | + return detail.label |
194 | + } |
195 | + |
196 | + detail = contact.detail(ContactDetail.Name) |
197 | + if (detail) { |
198 | + var fullName = (detail.firstName + " " + detail.lastName).trim() |
199 | + if (fullName.length > 0) { |
200 | + return fullName |
201 | + } |
202 | + } |
203 | + |
204 | + detail = contact.detail(ContactDetail.Organization) |
205 | + if (detail) { |
206 | + if (detail.name && (detail.name.length > 0)) { |
207 | + return detail.name |
208 | + } |
209 | + } |
210 | + |
211 | + var details = contact.details(ContactDetail.PhoneNumber) |
212 | + if (details.length > 0) { |
213 | + detail = details[0] |
214 | + if (detail.number && detail.number.length > 0) { |
215 | + return detail.number |
216 | + } |
217 | + } |
218 | + |
219 | + details = contact.details(ContactDetail.Email) |
220 | + if (details.length > 0) { |
221 | + detail = details[0] |
222 | + if (detail.emailAddress && detail.emailAddress.length > 0) { |
223 | + return detail.emailAddress |
224 | + } |
225 | + } |
226 | + |
227 | + details = contact.details(ContactDetail.OnlineAccount) |
228 | + if (details.length > 0) { |
229 | + detail = details[0] |
230 | + if (detail.accountUri && detail.accountUri.length > 0) { |
231 | + return detail.accountUri |
232 | + } |
233 | + } |
234 | + |
235 | + return defaultTitle |
236 | +} |
237 | + |
238 | function getAvatar(contact, defaultValue) |
239 | { |
240 | // use this verbose mode to avoid problems with binding loops |
241 | |
242 | === modified file 'src/imports/Ubuntu/Contacts/MostCalledModel.qml' |
243 | --- src/imports/Ubuntu/Contacts/MostCalledModel.qml 2014-09-04 20:34:55 +0000 |
244 | +++ src/imports/Ubuntu/Contacts/MostCalledModel.qml 2014-10-14 18:54:07 +0000 |
245 | @@ -75,8 +75,6 @@ |
246 | |
247 | defaultAvatarUrl: "image://theme/contacts" |
248 | width: parent ? parent.width : 0 |
249 | - titleDetail: ContactDetail.DisplayLabel |
250 | - titleFields: [ DisplayLabel.Label ] |
251 | isCurrentItem: root.currentIndex === index |
252 | locked: true |
253 |
FAILED: Continuous integration, rev:314 jenkins. qa.ubuntu. com/job/ phablet- team-address- book-app- staging- ci/354/ jenkins. qa.ubuntu. com/job/ generic- deb-autopilot- utopic- touch/5884 jenkins. qa.ubuntu. com/job/ generic- mediumtests- utopic/ 4065 jenkins. qa.ubuntu. com/job/ phablet- team-address- book-app- staging- utopic- i386-ci/ 354 jenkins. qa.ubuntu. com/job/ generic- deb-autopilot- runner- mako/5528 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- utopic- armhf/7136 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- utopic- armhf/7136/ artifact/ work/output/ *zip*/output. zip s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 14605 jenkins. qa.ubuntu. com/job/ autopilot- testrunner- otto-utopic/ 3431 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- utopic- amd64/4394 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- utopic- amd64/4394/ artifact/ work/output/ *zip*/output. zip
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/phablet- team-address- book-app- staging- ci/354/ rebuild
http://