Merge lp:~renatofilho/telephony-service/sip-account into lp:telephony-service

Proposed by Renato Araujo Oliveira Filho
Status: Superseded
Proposed branch: lp:~renatofilho/telephony-service/sip-account
Merge into: lp:telephony-service
Prerequisite: lp:~boiko/telephony-service/voip_support
Diff against target: 725 lines (+619/-1)
14 files modified
CMakeLists.txt (+2/-1)
accounts/CMakeLists.txt (+2/-0)
accounts/common/DynamicField.qml (+150/-0)
accounts/common/Main.qml (+84/-0)
accounts/common/NewAccountInterface.qml (+264/-0)
accounts/irc/CMakeLists.txt (+4/-0)
accounts/irc/qml/CMakeLists.txt (+13/-0)
accounts/irc/qml/NewAccount.qml (+40/-0)
accounts/sip/CMakeLists.txt (+1/-0)
accounts/sip/qml/CMakeLists.txt (+13/-0)
accounts/sip/qml/NewAccount.qml (+26/-0)
debian/account-plugin-irc-unity8.install (+1/-0)
debian/account-plugin-sip-unity8.install (+1/-0)
debian/control (+18/-0)
To merge this branch: bzr merge lp:~renatofilho/telephony-service/sip-account
Reviewer Review Type Date Requested Status
system-apps-ci-bot continuous-integration Needs Fixing
Ubuntu Phablet Team Pending
Review via email: mp+313390@code.launchpad.net

This proposal has been superseded by a proposal from 2016-12-21.

Commit message

Create unity8 sip account package.

To post a comment you must log in.
969. By Renato Araujo Oliveira Filho

Fix arch for online-account package.

Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:968
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/99/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/system-apps/job/build/2197/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/2200
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2027/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2027/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/2027/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2027/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2027/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2027/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/2027/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/2027/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/2027/console

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/99/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:969
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/100/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/system-apps/job/build/2198/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/2201
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2028
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2028/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2028
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2028/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/2028/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2028/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2028
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2028/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2028
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2028/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/2028/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/2028
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/2028/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/2028/console

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/100/rebuild

review: Needs Fixing (continuous-integration)
970. By Renato Araujo Oliveira Filho

Refactory account plugin to allow extend it to new protocols.

Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:970
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/101/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/system-apps/job/build/2205/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/2208
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2035
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2035/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2035
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2035/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/2035/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2035
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2035/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2035/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2035
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2035/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/2035/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/2035
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/2035/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/2035
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/2035/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/101/rebuild

review: Needs Fixing (continuous-integration)
971. By Renato Araujo Oliveira Filho

Created 'irc' account plugin.

972. By Renato Araujo Oliveira Filho

Moved 'messaging-app.application' to messaging app package.

Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:972
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/102/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/system-apps/job/build/2207/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/2210
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2038/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2038
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2038/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/2038
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/2038/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2038
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2038/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2038
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2038/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2038/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/2038
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/2038/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/2038/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/2038/console

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/102/rebuild

review: Needs Fixing (continuous-integration)
973. By Renato Araujo Oliveira Filho

Update accounts view layout.

Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:973
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/103/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/system-apps/job/build/2210/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/2213
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2040
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2040/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2040/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/2040
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/2040/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2040/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2040
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2040/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2040
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2040/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/2040
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/2040/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/2040
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/2040/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/2040/console

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/103/rebuild

review: Needs Fixing (continuous-integration)
974. By Renato Araujo Oliveira Filho

Implemented support fo advaced fields on sip and irc accounts.

Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:974
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/104/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/system-apps/job/build/2213/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/2216
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2043
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2043/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2043
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2043/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/2043
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/2043/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2043/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2043
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2043/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2043/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/2043
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/2043/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/2043/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/2043
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/2043/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/104/rebuild

review: Needs Fixing (continuous-integration)
975. By Renato Araujo Oliveira Filho

Do not store empty parameters.

Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:975
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/105/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/system-apps/job/build/2214/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/2217
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2044
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2044/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2044
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2044/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/2044/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2044
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2044/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2044/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2044
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/2044/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/2044/console
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/2044/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/2044
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/2044/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-telephony-service-ci/105/rebuild

review: Needs Fixing (continuous-integration)
976. By Renato Araujo Oliveira Filho

Parent merged.

977. By Renato Araujo Oliveira Filho

Fix irc account params.

978. By Renato Araujo Oliveira Filho

Implement support for password on IRC account.

979. By Renato Araujo Oliveira Filho

Fixed irc account creation.

Unmerged revisions

979. By Renato Araujo Oliveira Filho

Fixed irc account creation.

978. By Renato Araujo Oliveira Filho

Implement support for password on IRC account.

977. By Renato Araujo Oliveira Filho

Fix irc account params.

976. By Renato Araujo Oliveira Filho

Parent merged.

975. By Renato Araujo Oliveira Filho

Do not store empty parameters.

974. By Renato Araujo Oliveira Filho

Implemented support fo advaced fields on sip and irc accounts.

973. By Renato Araujo Oliveira Filho

Update accounts view layout.

972. By Renato Araujo Oliveira Filho

Moved 'messaging-app.application' to messaging app package.

971. By Renato Araujo Oliveira Filho

Created 'irc' account plugin.

970. By Renato Araujo Oliveira Filho

Refactory account plugin to allow extend it to new protocols.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2016-12-20 16:33:54 +0000
3+++ CMakeLists.txt 2016-12-20 16:33:55 +0000
4@@ -46,7 +46,7 @@
5
6 option(SKIP_QML_TESTS "Skip QML tests" OFF)
7
8-if(NOT CMAKE_CROSSCOMPILING)
9+if(CMAKE_CROSSCOMPILING)
10 find_program(QMAKE_EXECUTABLE qmake)
11 if(QMAKE_EXECUTABLE STREQUAL "QMAKE_EXECUTABLE-NOTFOUND")
12 message(FATAL_ERROR "qmake not found")
13@@ -112,6 +112,7 @@
14 add_subdirectory(po)
15 add_subdirectory(tests)
16 add_subdirectory(protocols)
17+add_subdirectory(accounts)
18
19 include(EnableCoverageReport)
20 #####################################################################
21
22=== added directory 'accounts'
23=== added file 'accounts/CMakeLists.txt'
24--- accounts/CMakeLists.txt 1970-01-01 00:00:00 +0000
25+++ accounts/CMakeLists.txt 2016-12-20 16:33:55 +0000
26@@ -0,0 +1,2 @@
27+add_subdirectory(sip)
28+add_subdirectory(irc)
29
30=== added directory 'accounts/common'
31=== added file 'accounts/common/DynamicField.qml'
32--- accounts/common/DynamicField.qml 1970-01-01 00:00:00 +0000
33+++ accounts/common/DynamicField.qml 2016-12-20 16:33:55 +0000
34@@ -0,0 +1,150 @@
35+import QtQuick 2.0
36+import Ubuntu.Components 1.3
37+
38+Loader {
39+ id: root
40+
41+ property var model
42+ readonly property string value: status === Loader.Ready ? item.value : ""
43+ readonly property bool isEmpty: status === Loader.Ready ? item.isEmpty : true
44+
45+ Component {
46+ id: stringField
47+
48+ TextField {
49+ id: field
50+
51+ property alias label: field.placeholderText
52+ property string defaultValue
53+
54+ readonly property alias value: field.text
55+ readonly property bool isEmpty: value === "" || (defaultValue && value === model.defaultValue)
56+
57+ text: defaultValue ? defaultValue : ""
58+ }
59+ }
60+
61+ Component {
62+ id: booleanField
63+
64+ Item {
65+ property alias label: fieldLabel.text
66+ property string defaultValue
67+
68+ readonly property string value: fieldValue.checked ? "true" : "false"
69+ readonly property bool isEmpty: (defaultValue && value === model.defaultValue)
70+
71+ height: fieldValue.height
72+
73+ Label {
74+ id: fieldLabel
75+
76+ anchors {
77+ left: parent.left
78+ right: fieldValue.left
79+ verticalCenter: parent.verticalCenter
80+ }
81+ }
82+ Switch {
83+ id: fieldValue
84+
85+ anchors {
86+ right: parent.right
87+ verticalCenter: parent.verticalCenter
88+ }
89+ checked: (defaultValue && (defaultValue === 'true'))
90+ }
91+ }
92+ }
93+
94+ Component {
95+ id: numericField
96+
97+ TextField {
98+ id: field
99+
100+ property alias label: field.placeholderText
101+ property string defaultValue
102+
103+ readonly property alias value: field.text
104+ readonly property bool isEmpty: value === "" || (defaultValue && (value === defaultValue))
105+
106+ inputMethodHints: Qt.ImhDigitsOnly
107+ validator: IntValidator {}
108+ }
109+ }
110+
111+ Component{
112+ id: passwordField
113+
114+ Item {
115+ property alias label: field.placeholderText
116+ readonly property alias value: field.text
117+ readonly property bool isEmpty: value === ""
118+
119+ height: field.height + showPasswordCheck.height
120+ TextField {
121+ id: field
122+
123+ echoMode: showPasswordCheck.checked ? TextInput.Normal : TextInput.Password
124+ anchors {
125+ left: parent.left
126+ right: parent.right
127+ }
128+ }
129+ CheckBox {
130+ id: showPasswordCheck
131+ anchors {
132+ left: field.left
133+ top: field.bottom
134+ topMargin: units.gu(1)
135+ }
136+ }
137+ Label {
138+ text: i18n.tr("Show Password")
139+ anchors {
140+ top: showPasswordCheck.top
141+ left: showPasswordCheck.right
142+ leftMargin: units.gu(1)
143+ right: field.right
144+ }
145+ }
146+ }
147+ }
148+
149+
150+ sourceComponent: {
151+ if (!model)
152+ return null
153+
154+ if (!model.inputType) {
155+ console.warn("Model does not contain 'inputType'")
156+ return null
157+ }
158+
159+ switch (model.inputType) {
160+ case 'string':
161+ return stringField
162+ case 'boolean':
163+ return booleanField
164+ case 'numeric':
165+ return numericField
166+ case 'password':
167+ return passwordField
168+ }
169+ }
170+
171+ Binding {
172+ target: root.item
173+ property: "label"
174+ value: model.label
175+ when: status == Loader.Ready
176+ }
177+
178+ Binding {
179+ target: root.item
180+ property: "defaultValue"
181+ value: model.hasOwnProperty('defaultValue') ? model.defaultValue : undefined
182+ when: status == Loader.Ready
183+ }
184+}
185
186=== added file 'accounts/common/Main.qml'
187--- accounts/common/Main.qml 1970-01-01 00:00:00 +0000
188+++ accounts/common/Main.qml 2016-12-20 16:33:55 +0000
189@@ -0,0 +1,84 @@
190+import QtQuick 2.0
191+import Ubuntu.Components 1.3
192+import Ubuntu.OnlineAccounts.Plugin 1.0
193+
194+Item {
195+ id: rootFlickable
196+
197+ property int keyboardSize: Qt.inputMethod.visible ? Qt.inputMethod.keyboardRectangle.height : 0
198+
199+ signal finished
200+
201+ anchors.fill: parent
202+
203+ Flickable {
204+ anchors {
205+ left: parent.left
206+ right: parent.right
207+ top: parent.top
208+ bottom: btnConfirm.top
209+ }
210+ contentWidth: parent.width
211+ contentHeight: editPageLoader.item.height + keyboardSize
212+ clip: true
213+
214+ Loader {
215+ id: editPageLoader
216+ sourceComponent: account.accountId != 0 ? existingAccountComponent : newAccountComponent
217+ anchors {
218+ left: parent.left
219+ right: parent.right
220+ }
221+
222+ Connections {
223+ target: editPageLoader.item
224+ onFinished: rootFlickable.finished()
225+ }
226+ }
227+
228+ Component {
229+ id: newAccountComponent
230+ NewAccount {}
231+ }
232+
233+ Component {
234+ id: existingAccountComponent
235+ Options {}
236+ }
237+ }
238+
239+ Button {
240+ id: btnConfirm
241+ text: i18n.tr("Continue")
242+ color: UbuntuColors.orange
243+ anchors {
244+ left: parent.left
245+ right: parent.right
246+ bottom: btnCancel.top
247+ margins: units.gu(2)
248+ bottomMargin: units.gu(1)
249+ }
250+ onClicked: {
251+ if (editPageLoader.item)
252+ editPageLoader.item.confirm()
253+ }
254+
255+ }
256+
257+ Button {
258+ id: btnCancel
259+
260+ text: i18n.tr("Cancel")
261+ anchors {
262+ left: parent.left
263+ right: parent.right
264+ bottom: parent.bottom
265+ margins: units.gu(2)
266+ bottomMargin: units.gu(1)
267+ }
268+ onClicked: {
269+ if (editPageLoader.item)
270+ editPageLoader.item.cancel()
271+ }
272+ }
273+}
274
275=== added file 'accounts/common/NewAccountInterface.qml'
276--- accounts/common/NewAccountInterface.qml 1970-01-01 00:00:00 +0000
277+++ accounts/common/NewAccountInterface.qml 2016-12-20 16:33:55 +0000
278@@ -0,0 +1,264 @@
279+import QtQuick 2.0
280+import Ubuntu.Components 1.3
281+import Ubuntu.OnlineAccounts 0.1
282+
283+Item {
284+ id: root
285+
286+ readonly property string keyPrefix: "telepathy/"
287+ readonly property var accountObjectHandle: account ? account.objectHandle : undefined
288+
289+ property string manager
290+ property string protocol
291+ property string icon
292+ property var params
293+ property var advancedParams
294+ property bool hasCrendentials: true
295+
296+ signal finished
297+ height: fields.childrenRect.height +
298+ units.gu(10)
299+
300+ function getAccountService() {
301+ var service = serviceModel.get(0, "accountServiceHandle")
302+ if (!service) {
303+ console.warn("No service handle from model")
304+ return null
305+ }
306+
307+ return accountServiceComponent.createObject(null,
308+ {"objectHandle": service})
309+ }
310+
311+ function extendedSettings(inputFields)
312+ {
313+ return {}
314+ //Helper class to be extended by derived class
315+ }
316+
317+ function saveServiceSettings(serviceIM, creds) {
318+ var settingsIM = serviceIM.settings
319+ var inputFields = {}
320+
321+ settingsIM[root.keyPrefix + 'manager'] = root.manager
322+ settingsIM[root.keyPrefix + 'protocol'] = root.protocol
323+ settingsIM[root.keyPrefix + 'Icon'] = root.icon
324+
325+ // basic fields
326+ for (var i=0; i < paramsRepeater.count; i++) {
327+ var fieldData = root.params[i]
328+ var field = paramsRepeater.itemAt(i)
329+ var fieldParamName = root.keyPrefix + 'param-' + fieldData.name
330+
331+ if (field.isEmpty) {
332+ delete settingsIM[fieldParamName]
333+ } else {
334+ inputFields[fieldData.name] = field.value
335+ if (fieldData.store) {
336+ settingsIM[fieldParamName] = field.value
337+ }
338+ }
339+ }
340+
341+ // advanced fields
342+ for (var i=0; i < advancedParamsRepeater.count; i++) {
343+ var xFieldData = root.advancedParams[i]
344+ var xField = advancedParamsRepeater.itemAt(i)
345+ var xFieldParamName = root.keyPrefix + 'param-' + xFieldData.name
346+
347+ if (xField.isEmpty) {
348+ delete settingsIM[xFieldParamName]
349+ } else {
350+ inputFields[xFieldData.name] = xField.value
351+
352+ if (xFieldData.store) {
353+ settingsIM[xFieldParamName] = xField.value
354+ }
355+ }
356+ }
357+
358+
359+ var xSettings = extendedSettings(inputFields)
360+ for (var key in xSettings) {
361+ settingsIM[root.keyPrefix + key] = xSettings[key]
362+ }
363+
364+ serviceIM.updateSettings(settingsIM)
365+ //serviceIM.credentials = creds
366+ //serviceIM.updateServiceEnabled(true)
367+ }
368+
369+ function continueAccountSave(creds) {
370+ var imService = root.getAccountService()
371+ if (!imService) {
372+ console.warn("Fail to retrieve account service")
373+ return
374+ }
375+
376+ root.saveServiceSettings(imService, creds)
377+ if (creds)
378+ globalAccountService.credentials = creds
379+ globalAccountService.updateServiceEnabled(true)
380+
381+ account.synced.connect(root.finished)
382+ account.sync()
383+ }
384+
385+ function credentialsStored() {
386+ if (creds.credentialsId === 0) {
387+ console.warn("Credentials not stored correct")
388+ return
389+ }
390+
391+ var imService = root.getAccountService()
392+ if (!imService) {
393+ console.warn("Fail to retrieve account service")
394+ return
395+ }
396+
397+ continueAccountSave(creds)
398+ }
399+
400+ function parseCrendentials() {
401+ var credentials = {'userName': '', 'password': ''}
402+
403+ for (var i=0; i < paramsRepeater.count; i++) {
404+ var fieldData = root.params[i]
405+ var field = paramsRepeater.itemAt(i)
406+
407+ if (fieldData.name === 'account')
408+ credentials['userName'] = field.value
409+
410+ if (fieldData.name === 'password')
411+ credentials['password'] = field.value
412+ }
413+
414+ return credentials
415+ }
416+
417+ function cancel() {
418+ account.removed.connect(root.finished)
419+ account.remove(Account.RemoveCredentials)
420+ }
421+
422+ function confirm() {
423+ var info = root.parseCrendentials()
424+ // save account
425+ account.updateDisplayName(info.userName)
426+ if (root.hasCrendentials) {
427+ creds.userName = info.userName
428+ creds.secret = info.password
429+ creds.sync()
430+ } else {
431+ continueAccountSave(null)
432+ }
433+ }
434+
435+ Column {
436+ id: fields
437+
438+ anchors {
439+ top: parent.top
440+ topMargin: units.gu(5)
441+ left: parent.left
442+ right: parent.right
443+ }
444+ height: childrenRect.height
445+ spacing: units.gu(2)
446+
447+ Icon {
448+ anchors.horizontalCenter: fields.horizontalCenter
449+ name: root.icon
450+ }
451+
452+ Repeater {
453+ id: paramsRepeater
454+
455+ width: parent.width
456+ model: root.params
457+ DynamicField {
458+ model: modelData
459+ anchors{
460+ left: parent.left
461+ right: parent.right
462+ margins: units.gu(4)
463+ }
464+ }
465+ }
466+
467+ Item {
468+ id: div
469+
470+ anchors{
471+ left: parent.left
472+ right: parent.right
473+ }
474+ height: units.gu(3)
475+ visible: root.advancedParams.length > 0
476+ }
477+
478+ Label {
479+ id: advancedParamsTitle
480+
481+ anchors{
482+ left: parent.left
483+ right: parent.right
484+ margins: units.gu(4)
485+ }
486+ visible: root.advancedParams.length > 0
487+ text: i18n.tr("Advanced Options")
488+ textSize: Label.Medium
489+ }
490+
491+ Repeater {
492+ id: advancedParamsRepeater
493+
494+ width: parent.width
495+ model: root.advancedParams
496+ DynamicField {
497+ model: modelData
498+ anchors{
499+ left: parent.left
500+ right: parent.right
501+ margins: units.gu(4)
502+ }
503+ }
504+ }
505+ }
506+
507+ AccountService {
508+ id: globalAccountService
509+
510+ objectHandle: account.accountServiceHandle
511+ autoSync: false
512+ }
513+
514+ Credentials {
515+ id: creds
516+
517+ caption: account.provider.id
518+ acl: "*" // untill later
519+ storeSecret: true
520+ onCredentialsIdChanged: {
521+ console.debug("Credetials id changed")
522+ root.credentialsStored()
523+ }
524+ }
525+
526+ // necessary to store settings on the "IM" service
527+ AccountServiceModel {
528+ id: serviceModel
529+
530+ includeDisabled: true
531+ account: root.accountObjectHandle
532+ serviceType: "IM"
533+ }
534+
535+ Component {
536+ id: accountServiceComponent
537+
538+ AccountService {
539+ autoSync: false
540+ }
541+ }
542+}
543
544=== added directory 'accounts/irc'
545=== added file 'accounts/irc/CMakeLists.txt'
546--- accounts/irc/CMakeLists.txt 1970-01-01 00:00:00 +0000
547+++ accounts/irc/CMakeLists.txt 2016-12-20 16:33:55 +0000
548@@ -0,0 +1,4 @@
549+file(GLOB APPLICATION_FILES *.application)
550+
551+install(FILES ${APPLICATION_FILES} DESTINATION share/accounts/applications/)
552+add_subdirectory(qml)
553
554=== added directory 'accounts/irc/qml'
555=== added file 'accounts/irc/qml/AccountInfo.qml'
556=== added file 'accounts/irc/qml/CMakeLists.txt'
557--- accounts/irc/qml/CMakeLists.txt 1970-01-01 00:00:00 +0000
558+++ accounts/irc/qml/CMakeLists.txt 2016-12-20 16:33:55 +0000
559@@ -0,0 +1,13 @@
560+file(GLOB QML_PLUGIN_FILES *.qml)
561+
562+# The path (including plug-in name) where the QML files are installed
563+set(QML_PLUGIN_INSTALL_DIR share/accounts/qml-plugins/irc/)
564+
565+# Do not install symbolic links
566+set (QML_PLUGIN_RESOLVED_FILES "")
567+foreach (QML_PLUGIN_FILE ${QML_PLUGIN_FILES})
568+ get_filename_component(resolvedFile "${QML_PLUGIN_FILE}" REALPATH)
569+ list (APPEND QML_PLUGIN_RESOLVED_FILES "${resolvedFile}")
570+endforeach()
571+
572+install(FILES ${QML_PLUGIN_RESOLVED_FILES} DESTINATION ${QML_PLUGIN_INSTALL_DIR})
573
574=== added symlink 'accounts/irc/qml/DynamicField.qml'
575=== target is u'../../common/DynamicField.qml'
576=== added symlink 'accounts/irc/qml/Main.qml'
577=== target is u'../../common/Main.qml'
578=== added file 'accounts/irc/qml/NewAccount.qml'
579--- accounts/irc/qml/NewAccount.qml 1970-01-01 00:00:00 +0000
580+++ accounts/irc/qml/NewAccount.qml 2016-12-20 16:33:55 +0000
581@@ -0,0 +1,40 @@
582+import QtQuick 2.0
583+
584+NewAccountInterface {
585+ id: root
586+
587+ anchors {
588+ left: parent.left
589+ right: parent.right
590+ verticalCenter: parent.verticalCenter
591+ }
592+
593+ manager: 'idle'
594+ protocol: 'irc'
595+ icon: 'irc'
596+ hasCrendentials: false
597+ params: [
598+ {'name': 'server', 'inputType': 'string', 'label': i18n.tr('Network. (Eg: chat.freenode.net)'), 'store': true},
599+ {'name': 'account', 'inputType': 'string', 'label': i18n.tr('Nickname'), 'store': true},
600+ {'name': 'password', 'inputType': 'password', 'label': i18n.tr('Password'), 'store': false}
601+ ]
602+ advancedParams: [
603+ {'name': 'username', 'inputType': 'string', 'label': i18n.tr('Username'), 'store': true},
604+ {'name': 'fullname', 'inputType': 'string', 'label': i18n.tr('Real name'), 'store': true},
605+ {'name': 'quit-message', 'inputType': 'string', 'label': i18n.tr('Quit message'), 'store': true},
606+ ]
607+
608+ function extendedSettings(inputFields)
609+ {
610+ var settings = {}
611+ settings['Service'] = inputFields['server']
612+ settings['NickName'] = inputFields['account']
613+ settings['NormalizedName'] = encodeURI(inputFields['account'])
614+ //FIXME: maybe move the following params to advancedParams
615+ settings['param-charset'] = 'UTF-8'
616+ settings['param-port'] = '6697'
617+ settings['use-ssl'] = 'true'
618+ return settings
619+ }
620+
621+}
622
623=== added symlink 'accounts/irc/qml/NewAccountInterface.qml'
624=== target is u'../../common/NewAccountInterface.qml'
625=== added directory 'accounts/sip'
626=== added file 'accounts/sip/CMakeLists.txt'
627--- accounts/sip/CMakeLists.txt 1970-01-01 00:00:00 +0000
628+++ accounts/sip/CMakeLists.txt 2016-12-20 16:33:55 +0000
629@@ -0,0 +1,1 @@
630+add_subdirectory(qml)
631
632=== added directory 'accounts/sip/qml'
633=== added file 'accounts/sip/qml/AccountInfo.qml'
634=== added file 'accounts/sip/qml/CMakeLists.txt'
635--- accounts/sip/qml/CMakeLists.txt 1970-01-01 00:00:00 +0000
636+++ accounts/sip/qml/CMakeLists.txt 2016-12-20 16:33:55 +0000
637@@ -0,0 +1,13 @@
638+file(GLOB QML_PLUGIN_FILES *.qml)
639+
640+# The path (including plug-in name) where the QML files are installed
641+set(QML_PLUGIN_INSTALL_DIR share/accounts/qml-plugins/sip/)
642+
643+# Do not install symbolic links
644+set (QML_PLUGIN_RESOLVED_FILES "")
645+foreach (QML_PLUGIN_FILE ${QML_PLUGIN_FILES})
646+ get_filename_component(resolvedFile "${QML_PLUGIN_FILE}" REALPATH)
647+ list (APPEND QML_PLUGIN_RESOLVED_FILES "${resolvedFile}")
648+endforeach()
649+
650+install(FILES ${QML_PLUGIN_RESOLVED_FILES} DESTINATION ${QML_PLUGIN_INSTALL_DIR})
651
652=== added symlink 'accounts/sip/qml/DynamicField.qml'
653=== target is u'../../common/DynamicField.qml'
654=== added symlink 'accounts/sip/qml/Main.qml'
655=== target is u'../../common/Main.qml'
656=== added file 'accounts/sip/qml/NewAccount.qml'
657--- accounts/sip/qml/NewAccount.qml 1970-01-01 00:00:00 +0000
658+++ accounts/sip/qml/NewAccount.qml 2016-12-20 16:33:55 +0000
659@@ -0,0 +1,26 @@
660+import QtQuick 2.0
661+
662+NewAccountInterface {
663+ id: root
664+
665+ manager: 'sofiasip'
666+ protocol: 'sip'
667+ icon: 'sip'
668+ params: [
669+ {'name': 'account', 'inputType': 'string', 'label': i18n.tr('Sip Id. (Eg: user@my.sip.net)'), 'store': true},
670+ {'name': 'password', 'inputType': 'password', 'label': i18n.tr('Password'), 'store': false}
671+ ]
672+ advancedParams: [
673+ {'name': 'discover-stun', 'inputType': 'boolean', 'label': i18n.tr('Discover the STUN server automatically'), 'store': true, 'defaultValue' : 'false' },
674+ {'name': 'stun-server', 'inputType': 'string', 'label': i18n.tr('STUN server'), 'store': true},
675+ {'name': 'stun-port', 'inputType': 'numeric', 'label': i18n.tr('STUN port'), 'store': true},
676+ {'name': 'discover-binding', 'inputType': 'boolean', 'label': i18n.tr('Divscover Binding'), 'store': true, 'defaultValue': 'true'},
677+ {'name': 'proxy-host', 'inputType': 'string', 'label': i18n.tr('Proxy server'), 'store': true},
678+ {'name': 'port', 'inputType': 'numeric', 'label': i18n.tr('Proxy port'), 'store': true},
679+ {'name': 'keepalive-mechanism', 'inputType': 'string', 'label': i18n.tr('Keep alive mechanism'), 'store': true, 'defaultValue': 'auto'},
680+ {'name': 'keepalive-interval', 'inputType': 'numeric', 'label': i18n.tr('Keep alive interval'), 'store': true},
681+ {'name': 'auth-user', 'inputType': 'string', 'label': i18n.tr('Authentication username'), 'store': true},
682+ {'name': 'transport', 'inputType': 'string', 'label': i18n.tr('Transport'), 'store': true, 'defaultValue': 'auto'},
683+ {'name': 'loose-routing', 'inputType': 'boolean', 'label': i18n.tr('Loose Routing'), 'store': true, 'defaultValue': 'false'}
684+ ]
685+}
686
687=== added symlink 'accounts/sip/qml/NewAccountInterface.qml'
688=== target is u'../../common/NewAccountInterface.qml'
689=== added file 'debian/account-plugin-irc-unity8.install'
690--- debian/account-plugin-irc-unity8.install 1970-01-01 00:00:00 +0000
691+++ debian/account-plugin-irc-unity8.install 2016-12-20 16:33:55 +0000
692@@ -0,0 +1,1 @@
693+usr/share/accounts/qml-plugins/irc/*
694
695=== added file 'debian/account-plugin-sip-unity8.install'
696--- debian/account-plugin-sip-unity8.install 1970-01-01 00:00:00 +0000
697+++ debian/account-plugin-sip-unity8.install 2016-12-20 16:33:55 +0000
698@@ -0,0 +1,1 @@
699+usr/share/accounts/qml-plugins/sip/*
700
701=== modified file 'debian/control'
702--- debian/control 2016-11-29 01:04:13 +0000
703+++ debian/control 2016-12-20 16:33:55 +0000
704@@ -92,3 +92,21 @@
705 This package contains the QML plugin providing the features from the telephony
706 PhoneNumber to applications.
707
708+Package: account-plugin-sip-unity8
709+Architecture: all
710+Pre-Depends: dpkg (>= 1.15.6~)
711+Depends: account-plugin-sip
712+Description: Online account plugin for unity8
713+ Online account plugin for unity8.
714+ .
715+ This package contains the online account plugin providing sip account.
716+
717+Package: account-plugin-irc-unity8
718+Architecture: all
719+Pre-Depends: dpkg (>= 1.15.6~)
720+Depends: account-plugin-irc
721+Description: Online account plugin for unity8
722+ Online account plugin for unity8.
723+ .
724+ This package contains the online account plugin providing irc account.
725+

Subscribers

People subscribed via source and target branches