author | Clipperz <info@clipperz.com> | 2013-01-08 15:21:04 (UTC) |
---|---|---|
committer | Clipperz <info@clipperz.com> | 2013-01-08 15:21:04 (UTC) |
commit | 816fc35420a434b1d54ae5833d617608f7456048 (patch) (unidiff) | |
tree | 95b8caf354083593d7775e4dda6f4c556b44a2d9 /frontend/gamma/js/Clipperz/PM/UI/Web | |
parent | 267603e3aa3cf0029411e67ae14018b52344c296 (diff) | |
download | clipperz-816fc35420a434b1d54ae5833d617608f7456048.zip clipperz-816fc35420a434b1d54ae5833d617608f7456048.tar.gz clipperz-816fc35420a434b1d54ae5833d617608f7456048.tar.bz2 |
Updated version of /gamma
Tons of changes, included a new draft of the mobile version (still VERY rough)
Diffstat (limited to 'frontend/gamma/js/Clipperz/PM/UI/Web') (more/less context) (ignore whitespace changes)
5 files changed, 65 insertions, 23 deletions
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js index ee6d7a3..d6b0574 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/AccountPanel.js | |||
@@ -20,126 +20,131 @@ refer to http://www.clipperz.com. | |||
20 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
21 | License along with Clipperz Community Edition. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
22 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
23 | 23 | ||
24 | */ | 24 | */ |
25 | 25 | ||
26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Components'); |
27 | 27 | ||
28 | Clipperz.PM.UI.Web.Components.AccountPanel = function(args) { | 28 | Clipperz.PM.UI.Web.Components.AccountPanel = function(args) { |
29 | args = args || {}; | 29 | args = args || {}; |
30 | 30 | ||
31 | Clipperz.PM.UI.Web.Components.AccountPanel.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.UI.Web.Components.AccountPanel.superclass.constructor.apply(this, arguments); |
32 | 32 | ||
33 | //this._initiallySelectedTab = args.selected || 'ACCOUNT'; | 33 | //this._initiallySelectedTab = args.selected || 'ACCOUNT'; |
34 | this._initiallySelectedTab = args.selected || 'PASSPHRASE'; | 34 | this._initiallySelectedTab = args.selected || 'PASSPHRASE'; |
35 | this._tabPanelControllerConfiguration = { | 35 | this._tabPanelControllerConfiguration = { |
36 | // 'ACCOUNT': { | 36 | // 'ACCOUNT': { |
37 | // tab:'accountTab', | 37 | // tab:'accountTab', |
38 | // panel:'accountPanel' | 38 | // panel:'accountPanel' |
39 | // }, | 39 | // }, |
40 | 'PASSPHRASE': { | 40 | 'PASSPHRASE': { |
41 | tab:'passphraseTab', | 41 | tab:'passphraseTab', |
42 | panel:'passphrasePanel' | 42 | panel:'passphrasePanel' |
43 | }, | 43 | }, |
44 | 'OTP': { | ||
45 | tab:'OTPTab', | ||
46 | panel:'OTPPanel' | ||
47 | }, | ||
44 | 'PREFERENCES': { | 48 | 'PREFERENCES': { |
45 | tab:'preferencesTab', | 49 | tab:'preferencesTab', |
46 | panel:'preferencesPanel' | 50 | panel:'preferencesPanel' |
47 | }, | 51 | }, |
48 | 'LOGIN_HISTORY': { | 52 | 'LOGIN_HISTORY': { |
49 | tab:'loginHistoryTab', | 53 | tab:'loginHistoryTab', |
50 | panel:'loginHistoryPanel' | 54 | panel:'loginHistoryPanel' |
51 | } | 55 | } |
52 | }; | 56 | }; |
53 | 57 | ||
54 | return this; | 58 | return this; |
55 | } | 59 | } |
56 | 60 | ||
57 | //============================================================================= | 61 | //============================================================================= |
58 | 62 | ||
59 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { | 63 | Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.AccountPanel, Clipperz.PM.UI.Common.Components.TabPanelComponent, { |
60 | 64 | ||
61 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
62 | 66 | ||
63 | 'toString': function () { | 67 | 'toString': function () { |
64 | return "Clipperz.PM.UI.Web.Components.AccountPanel component"; | 68 | return "Clipperz.PM.UI.Web.Components.AccountPanel component"; |
65 | }, | 69 | }, |
66 | 70 | ||
67 | //------------------------------------------------------------------------- | 71 | //------------------------------------------------------------------------- |
68 | 72 | ||
69 | 'renderSelf': function(/*aContainer, aPosition*/) { | 73 | 'renderSelf': function(/*aContainer, aPosition*/) { |
70 | //Clipperz.log("AccountPanel.renderSelf element", this.element()); | 74 | //Clipperz.log("AccountPanel.renderSelf element", this.element()); |
71 | this.append(this.element(), [ | 75 | this.append(this.element(), [ |
72 | {tag:'div', cls:'header', children:[ | 76 | {tag:'div', cls:'header', children:[ |
73 | {tag:'div', cls:'subPanelTabs', children:[ | 77 | {tag:'div', cls:'subPanelTabs', children:[ |
74 | {tag:'ul', children:[ | 78 | {tag:'ul', children:[ |
75 | // {tag:'li', id:this.getId('accountTab'), children:[{tag:'a', href:'#', html:'Account'}], cls:'first'}, | 79 | // {tag:'li', id:this.getId('accountTab'), children:[{tag:'a', href:'#', html:'Account'}], cls:'first'}, |
76 | {tag:'li', id:this.getId('passphraseTab'), children:[{tag:'a', href:'#', html:'Passphrase'}], cls:'first'}, | 80 | {tag:'li', id:this.getId('passphraseTab'), children:[{tag:'a', href:'#', html:'Passphrase'}], cls:'first'}, |
81 | {tag:'li', id:this.getId('OTPTab'), children:[{tag:'a', href:'#', html:'One Time Passwords'}]}, | ||
77 | {tag:'li', id:this.getId('preferencesTab'), children:[{tag:'a', href:'#', html:'Preferences'}]}, | 82 | {tag:'li', id:this.getId('preferencesTab'), children:[{tag:'a', href:'#', html:'Preferences'}]}, |
78 | {tag:'li', id:this.getId('loginHistoryTab'),children:[{tag:'a', href:'#', html:'Login history'}]} | 83 | {tag:'li', id:this.getId('loginHistoryTab'),children:[{tag:'a', href:'#', html:'Login history'}]} |
79 | ]} | 84 | ]} |
80 | ]} | 85 | ]} |
81 | ]}, | 86 | ]}, |
82 | {tag:'div', cls:'body', children:[ | 87 | {tag:'div', cls:'body', children:[ |
83 | {tag:'div', cls:'accountPanel', children:[ | 88 | {tag:'div', cls:'accountPanel', children:[ |
84 | {tag:'div', cls:'subPanelContent', children:[ | 89 | {tag:'div', cls:'subPanelContent', children:[ |
85 | {tag:'ul', children:[ | 90 | {tag:'ul', children:[ |
86 | // {tag:'li', id:this.getId('accountPanel'),children:[ | 91 | // {tag:'li', id:this.getId('accountPanel'),children:[ |
87 | // {tag:'h3', html:"-- Account --"} | 92 | // {tag:'h3', html:"-- Account --"} |
88 | // ]}, | 93 | // ]}, |
89 | {tag:'li', id:this.getId('passphrasePanel'),children:[ | 94 | {tag:'li', id:this.getId('passphrasePanel'),children:[ |
90 | {tag:'h3', cls:'changePassphrase', html:"Change passphrase"}, | 95 | {tag:'h3', cls:'changePassphrase', html:"Change passphrase"}, |
91 | {tag:'form', id:this.getId('changePassphrase'), cls:'changePassphrase', children:[ | 96 | {tag:'form', id:this.getId('changePassphrase'), cls:'changePassphrase', children:[ |
92 | {tag:'div', cls:'currentCredentials', children:[ | 97 | {tag:'div', cls:'currentCredentials', children:[ |
93 | {tag:'div', cls:'field username', children:[ | 98 | {tag:'div', cls:'field username', children:[ |
94 | {tag:'label', html:"username", 'for':this.getId('currentUsername')}, | 99 | {tag:'label', html:"username", 'for':this.getId('currentUsername')}, |
95 | {tag:'input', id:this.getId('currentUsername')} | 100 | {tag:'input', id:this.getId('currentUsername')} |
96 | ]}, | 101 | ]}, |
97 | {tag:'div', cls:'field passphrase', children:[ | 102 | {tag:'div', cls:'field passphrase', children:[ |
98 | {tag:'label', html:"passphrase", 'for':this.getId('currentPassphrase')}, | 103 | {tag:'label', html:"passphrase", 'for':this.getId('currentPassphrase')}, |
99 | {tag:'input', id:this.getId('currentPassphrase')} | 104 | {tag:'input', id:this.getId('currentPassphrase')} |
100 | ]} | 105 | ]} |
101 | ]}, | 106 | ]}, |
102 | {tag:'div', cls:'newPassphrase', children:[ | 107 | {tag:'div', cls:'newPassphrase', children:[ |
103 | {tag:'div', cls:'field', children:[ | 108 | {tag:'div', cls:'field', children:[ |
104 | {tag:'label', html:"new passphrase", 'for':this.getId('newPassphrase')}, | 109 | {tag:'label', html:"new passphrase", 'for':this.getId('newPassphrase')}, |
105 | {tag:'input', id:this.getId('newPassphrase')} | 110 | {tag:'input', id:this.getId('newPassphrase')} |
106 | ]}, | 111 | ]}, |
107 | {tag:'div', cls:'field', children:[ | 112 | {tag:'div', cls:'field', children:[ |
108 | {tag:'label', html:"re-new passphrase", 'for':this.getId('reNewPassphrase')}, | 113 | {tag:'label', html:"re-new passphrase", 'for':this.getId('reNewPassphrase')}, |
109 | {tag:'input', id:this.getId('reNewPassphrase')} | 114 | {tag:'input', id:this.getId('reNewPassphrase')} |
110 | ]} | 115 | ]} |
111 | ]}, | 116 | ]}, |
112 | {tag:'div', cls:'confirm', children:[ | 117 | {tag:'div', cls:'confirm', children:[ |
113 | {tag:'input', type:'checkbox', id:this.getId('confirm')}, | 118 | {tag:'input', type:'checkbox', id:this.getId('confirm')}, |
114 | {tag:'label', html:"I understand that Clipperz will not be able to recover a lost passphrase", 'for':this.getId('confirm')} | 119 | {tag:'label', html:"I understand that Clipperz will not be able to recover a lost passphrase", 'for':this.getId('confirm')} |
115 | ]} | 120 | ]} |
116 | ]}, | 121 | ]}, |
117 | {tag:'div', cls:'clear'}, | 122 | {tag:'div', cls:'clear'}, |
118 | {tag:'div', cls:'confirmButton', id:this.getId('confirmationButton'), children:[ | 123 | {tag:'div', cls:'confirmButton', id:this.getId('confirmationButton'), children:[ |
119 | {tag:'span', html:"change passphrase"} | 124 | {tag:'span', html:"change passphrase"} |
120 | ]}, | 125 | ]} |
121 | 126 | ]}, | |
122 | {tag:'h3', cls:'manageOTP', html:"Manage One-Time Passphrases"}, | 127 | {tag:'li', id:this.getId('OTPPanel'), children:[ |
123 | {} | 128 | // {tag:'h3', html:"Manage One-Time Passphrases"} |
124 | ]}, | 129 | ]}, |
125 | {tag:'li', id:this.getId('preferencesPanel'), children:[ | 130 | {tag:'li', id:this.getId('preferencesPanel'), children:[ |
126 | {tag:'h3', html:"-- Preferences --"} | 131 | // {tag:'h3', html:"-- Preferences --"} |
127 | ]}, | 132 | ]}, |
128 | {tag:'li', id:this.getId('loginHistoryPanel'), children:[ | 133 | {tag:'li', id:this.getId('loginHistoryPanel'), children:[ |
129 | {tag:'h3', html:"-- Login History --"} | 134 | // {tag:'h3', html:"-- Login History --"} |
130 | ]} | 135 | ]} |
131 | ]} | 136 | ]} |
132 | ]} | 137 | ]} |
133 | ]} | 138 | ]} |
134 | ]}, | 139 | ]}, |
135 | {tag:'div', cls:'footer'} | 140 | {tag:'div', cls:'footer'} |
136 | ]); | 141 | ]); |
137 | 142 | ||
138 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); | 143 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); |
139 | }, | 144 | }, |
140 | 145 | ||
141 | //------------------------------------------------------------------------- | 146 | //------------------------------------------------------------------------- |
142 | 147 | ||
143 | 148 | ||
144 | __syntaxFix__: "syntax fix" | 149 | __syntaxFix__: "syntax fix" |
145 | }); | 150 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js index d2f1045..462d864 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/DataPanel.js | |||
@@ -61,48 +61,56 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.DataPanel, Clipperz.PM.UI.Com | |||
61 | 61 | ||
62 | 'toString': function () { | 62 | 'toString': function () { |
63 | return "Clipperz.PM.UI.Web.Components.DataPanel component"; | 63 | return "Clipperz.PM.UI.Web.Components.DataPanel component"; |
64 | }, | 64 | }, |
65 | 65 | ||
66 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
67 | 67 | ||
68 | 'renderSelf': function(/*aContainer, aPosition*/) { | 68 | 'renderSelf': function(/*aContainer, aPosition*/) { |
69 | this.append(this.element(), [ | 69 | this.append(this.element(), [ |
70 | {tag:'div', cls:'header', children:[ | 70 | {tag:'div', cls:'header', children:[ |
71 | {tag:'div', cls:'subPanelTabs', children:[ | 71 | {tag:'div', cls:'subPanelTabs', children:[ |
72 | {tag:'ul', children:[ | 72 | {tag:'ul', children:[ |
73 | {tag:'li', id:this.getId('offlineCopyTab'),children:[{tag:'a', href:'#', html:'Offline copy'}], cls:'first'}, | 73 | {tag:'li', id:this.getId('offlineCopyTab'),children:[{tag:'a', href:'#', html:'Offline copy'}], cls:'first'}, |
74 | {tag:'li', id:this.getId('sharingTab'), children:[{tag:'a', href:'#', html:'Sharing'}]}, | 74 | {tag:'li', id:this.getId('sharingTab'), children:[{tag:'a', href:'#', html:'Sharing'}]}, |
75 | {tag:'li', id:this.getId('importTab'), children:[{tag:'a', href:'#', html:'Import'}]}, | 75 | {tag:'li', id:this.getId('importTab'), children:[{tag:'a', href:'#', html:'Import'}]}, |
76 | {tag:'li', id:this.getId('exportTab'), children:[{tag:'a', href:'#', html:'Export'}]} | 76 | {tag:'li', id:this.getId('exportTab'), children:[{tag:'a', href:'#', html:'Export'}]} |
77 | ]} | 77 | ]} |
78 | ]} | 78 | ]} |
79 | ]}, | 79 | ]}, |
80 | {tag:'div', cls:'body', children:[ | 80 | {tag:'div', cls:'body', children:[ |
81 | {tag:'div', cls:'accountPanel', children:[ | 81 | {tag:'div', cls:'accountPanel', children:[ |
82 | {tag:'div', cls:'subPanelContent', children:[ | 82 | {tag:'div', cls:'subPanelContent', children:[ |
83 | {tag:'ul', children:[ | 83 | {tag:'ul', children:[ |
84 | {tag:'li', id:this.getId('offlineCopyPanel'),children:[ | 84 | {tag:'li', id:this.getId('offlineCopyPanel'),children:[ |
85 | {tag:'h3', html:"Offline copy"} | 85 | // {tag:'h3', html:"Offline copy"}, |
86 | {tag:'p', html:"With just one click you can dump all your encrypted data from Clipperz servers to your hard disk and create a read-only offline version of Clipperz to be used when you are not connected to the Internet."}, | ||
87 | {tag:'a', id:this.getId('offlineCopyDownloadLink'), href:'#', html:"Download", cls:'downloadOfflineCopy'} | ||
86 | ]}, | 88 | ]}, |
87 | {tag:'li', id:this.getId('sharingPanel'),children:[ | 89 | {tag:'li', id:this.getId('sharingPanel'),children:[ |
88 | {tag:'h3', html:"Sharing"} | 90 | // {tag:'h3', html:"Sharing"} |
89 | ]}, | 91 | ]}, |
90 | {tag:'li', id:this.getId('importPanel'), children:[ | 92 | {tag:'li', id:this.getId('importPanel'), children:[ |
91 | {tag:'h3', html:"Import"} | 93 | // {tag:'h3', html:"Import"} |
92 | ]}, | 94 | ]}, |
93 | {tag:'li', id:this.getId('exportPanel'), children:[ | 95 | {tag:'li', id:this.getId('exportPanel'), children:[ |
94 | {tag:'h3', html:"Export"} | 96 | // {tag:'h3', html:"Export"} |
95 | ]} | 97 | ]} |
96 | ]} | 98 | ]} |
97 | ]} | 99 | ]} |
98 | ]} | 100 | ]} |
99 | ]}, | 101 | ]}, |
100 | {tag:'div', cls:'footer'} | 102 | {tag:'div', cls:'footer'} |
101 | ]); | 103 | ]); |
102 | 104 | ||
103 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); | 105 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); |
106 | MochiKit.Signal.connect(this.getId('offlineCopyDownloadLink'), 'onclick', this, 'downloadOfflineCopy'); | ||
104 | }, | 107 | }, |
105 | 108 | ||
109 | 'downloadOfflineCopy': function (anEvent) { | ||
110 | anEvent.preventDefault(); | ||
111 | MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'downloadOfflineCopy', anEvent.src()); | ||
112 | }, | ||
113 | |||
106 | //------------------------------------------------------------------------- | 114 | //------------------------------------------------------------------------- |
107 | __syntaxFix__: "syntax fix" | 115 | __syntaxFix__: "syntax fix" |
108 | }); | 116 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js index 5d082b5..26506e7 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/LoginProgress.js | |||
@@ -61,88 +61,92 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.LoginProgress, Clipperz.PM.UI | |||
61 | // var loginProgressElement; | 61 | // var loginProgressElement; |
62 | // | 62 | // |
63 | // loginProgressElement = MochiKit.DOM.getElement('loginProgress'); | 63 | // loginProgressElement = MochiKit.DOM.getElement('loginProgress'); |
64 | // | 64 | // |
65 | // if (loginProgressElement == null) { | 65 | // if (loginProgressElement == null) { |
66 | // loginProgressElement = this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress'}, true); | 66 | // loginProgressElement = this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress'}, true); |
67 | // } | 67 | // } |
68 | 68 | ||
69 | //console.log(">> LoginProgress.renderSelf", this.element()); | 69 | //console.log(">> LoginProgress.renderSelf", this.element()); |
70 | this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress', children: [ | 70 | this.append(this.element(), {tag:'div', id:'loginProgress', cls:'LoginProgress', children: [ |
71 | // this.append(loginProgressElement, [ | 71 | // this.append(loginProgressElement, [ |
72 | {tag:'div', cls:'header', children:[ | 72 | {tag:'div', cls:'header', children:[ |
73 | {tag:'h3', id:this.getId('title'), html:"login progress"} | 73 | {tag:'h3', id:this.getId('title'), html:"login progress"} |
74 | ]}, | 74 | ]}, |
75 | {tag:'div', cls:'body', children:[ | 75 | {tag:'div', cls:'body', children:[ |
76 | {tag:'div', id:this.getId('progressBar')}, | 76 | {tag:'div', id:this.getId('progressBar')}, |
77 | {tag:'div', id:this.getId('errorBox'), cls:'errorBox', children:[ | 77 | {tag:'div', id:this.getId('errorBox'), cls:'errorBox', children:[ |
78 | // {tag:'div',cls:'img ALERT', children:[{tag:'div'}]}, | 78 | // {tag:'div',cls:'img ALERT', children:[{tag:'div'}]}, |
79 | {tag:'div',cls:'img ALERT', children:[{tag:'canvas', id:this.getId('canvas')}]}, | 79 | {tag:'div',cls:'img ALERT', children:[{tag:'canvas', id:this.getId('canvas')}]}, |
80 | {tag:'p', html:"Login failed"} | 80 | {tag:'p', html:"Login failed"} |
81 | ]} | 81 | ]} |
82 | ]}, | 82 | ]}, |
83 | {tag:'div', cls:'footer', children:[ | 83 | {tag:'div', cls:'footer', children:[ |
84 | {tag:'div', cls:'buttonArea', id:this.getId('buttonArea'), children:[ | 84 | {tag:'div', cls:'buttonArea', id:this.getId('buttonArea'), children:[ |
85 | {tag:'div', cls:'button', id:this.getId('button'), children:[ | 85 | // {tag:'div', cls:'button', id:this.getId('button'), children:[ |
86 | {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"} | 86 | // {tag:'a', href:'#', id:this.getId('buttonLink'), html:"cancel"} |
87 | ]} | 87 | // ]} |
88 | {tag:'a', cls:'button', id:this.getId('button'), html:"cancel"} | ||
88 | ]} | 89 | ]} |
89 | ]} | 90 | ]} |
90 | ]}); | 91 | ]}); |
91 | // ]); | 92 | // ]); |
92 | 93 | ||
93 | Clipperz.PM.UI.Canvas.marks['!'](this.getElement('canvas'), "#ffffff"); | 94 | Clipperz.PM.UI.Canvas.marks['!'](this.getElement('canvas'), "#ffffff"); |
94 | 95 | ||
95 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); | 96 | this.addComponent(new Clipperz.PM.UI.Common.Components.ProgressBar({'element':this.getElement('progressBar')})); |
96 | MochiKit.Style.hideElement(this.getElement('errorBox')); | 97 | MochiKit.Style.hideElement(this.getElement('errorBox')); |
97 | 98 | ||
98 | MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler'); | 99 | // MochiKit.Signal.connect(this.getId('buttonLink'), 'onclick', this, 'cancelEventHandler'); |
100 | MochiKit.Signal.connect(this.getId('button'), 'onclick', this, 'cancelEventHandler'); | ||
99 | }, | 101 | }, |
100 | 102 | ||
101 | //------------------------------------------------------------------------- | 103 | //------------------------------------------------------------------------- |
102 | 104 | ||
103 | 'displayElement': function() { | 105 | 'displayElement': function() { |
104 | return MochiKit.DOM.getElement('loginProgress'); | 106 | return MochiKit.DOM.getElement('loginProgress'); |
105 | }, | 107 | }, |
106 | 108 | ||
107 | //------------------------------------------------------------------------- | 109 | //------------------------------------------------------------------------- |
108 | 110 | ||
109 | 'cancelEventHandler': function(anEvent) { | 111 | 'cancelEventHandler': function(anEvent) { |
110 | anEvent.preventDefault(); | 112 | anEvent.preventDefault(); |
111 | 113 | ||
112 | MochiKit.Signal.signal(this, 'cancelEvent'); | 114 | MochiKit.Signal.signal(this, 'cancelEvent'); |
113 | }, | 115 | }, |
114 | 116 | ||
115 | //------------------------------------------------------------------------- | 117 | //------------------------------------------------------------------------- |
116 | 118 | ||
117 | 'disableCancel': function() { | 119 | 'disableCancel': function() { |
118 | MochiKit.Style.hideElement(this.getElement('buttonArea')); | 120 | MochiKit.Style.hideElement(this.getElement('buttonArea')); |
119 | }, | 121 | }, |
120 | 122 | ||
121 | //------------------------------------------------------------------------- | 123 | //------------------------------------------------------------------------- |
122 | 124 | ||
123 | 'showErrorMessage': function() { | 125 | 'showErrorMessage': function() { |
124 | this.getElement('buttonLink').innerHTML = "close"; | 126 | // this.getElement('buttonLink').innerHTML = "close"; |
127 | this.getElement('button').innerHTML = "close"; | ||
128 | MochiKit.DOM.addElementClass(this.getElement('button'), 'default'); | ||
125 | 129 | ||
126 | MochiKit.Style.hideElement(this.getElement('progressBar')); | 130 | MochiKit.Style.hideElement(this.getElement('progressBar')); |
127 | 131 | ||
128 | this.getElement('title').innerHTML = "Error"; | 132 | this.getElement('title').innerHTML = "Error"; |
129 | MochiKit.Style.showElement(this.getElement('errorBox')); | 133 | MochiKit.Style.showElement(this.getElement('errorBox')); |
130 | MochiKit.Style.showElement(this.getElement('buttonArea')); | 134 | MochiKit.Style.showElement(this.getElement('buttonArea')); |
131 | }, | 135 | }, |
132 | 136 | ||
133 | //------------------------------------------------------------------------- | 137 | //------------------------------------------------------------------------- |
134 | 138 | ||
135 | 'deferredHideModalAndRemove': function(someParameters, aResult) { | 139 | 'deferredHideModalAndRemove': function(someParameters, aResult) { |
136 | vardeferredResult; | 140 | vardeferredResult; |
137 | 141 | ||
138 | deferredResult = new Clipperz.Async.Deferred("LoginProgress.deferredHideModalAndRemove", {trace:false}); | 142 | deferredResult = new Clipperz.Async.Deferred("LoginProgress.deferredHideModalAndRemove", {trace:false}); |
139 | deferredResult.addMethod(this, 'deferredHideModal'); | 143 | deferredResult.addMethod(this, 'deferredHideModal'); |
140 | deferredResult.addMethod(this, 'remove'); | 144 | deferredResult.addMethod(this, 'remove'); |
141 | deferredResult.addCallback(function () { | 145 | deferredResult.addCallback(function () { |
142 | return aResult; | 146 | return aResult; |
143 | }); | 147 | }); |
144 | deferredResult.callback(someParameters); | 148 | deferredResult.callback(someParameters); |
145 | 149 | ||
146 | return deferredResult; | 150 | return deferredResult; |
147 | }, | 151 | }, |
148 | 152 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js index 3ee6189..0fa369f 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Components/ToolsPanel.js | |||
@@ -61,50 +61,50 @@ Clipperz.Base.extend(Clipperz.PM.UI.Web.Components.ToolsPanel, Clipperz.PM.UI.Co | |||
61 | 61 | ||
62 | 'toString': function () { | 62 | 'toString': function () { |
63 | return "Clipperz.PM.UI.Web.Components.ToolsPanel component"; | 63 | return "Clipperz.PM.UI.Web.Components.ToolsPanel component"; |
64 | }, | 64 | }, |
65 | 65 | ||
66 | //------------------------------------------------------------------------- | 66 | //------------------------------------------------------------------------- |
67 | 67 | ||
68 | 'renderSelf': function(/*aContainer, aPosition*/) { | 68 | 'renderSelf': function(/*aContainer, aPosition*/) { |
69 | this.append(this.element(), [ | 69 | this.append(this.element(), [ |
70 | {tag:'div', cls:'header', children:[ | 70 | {tag:'div', cls:'header', children:[ |
71 | {tag:'div', cls:'subPanelTabs', children:[ | 71 | {tag:'div', cls:'subPanelTabs', children:[ |
72 | {tag:'ul', children:[ | 72 | {tag:'ul', children:[ |
73 | {tag:'li', id:this.getId('passwordGeneratorTab'),children:[{tag:'a', href:'#', html:'Password generator'}], cls:'first'}, | 73 | {tag:'li', id:this.getId('passwordGeneratorTab'),children:[{tag:'a', href:'#', html:'Password generator'}], cls:'first'}, |
74 | {tag:'li', id:this.getId('bookmarkletTab'), children:[{tag:'a', href:'#', html:'Bookmarklet'}]}, | 74 | {tag:'li', id:this.getId('bookmarkletTab'), children:[{tag:'a', href:'#', html:'Bookmarklet'}]}, |
75 | {tag:'li', id:this.getId('compactEditionTab'), children:[{tag:'a', href:'#', html:'Compact edition'}]}, | 75 | {tag:'li', id:this.getId('compactEditionTab'), children:[{tag:'a', href:'#', html:'Compact edition'}]}, |
76 | {tag:'li', id:this.getId('httpAuthTab'), children:[{tag:'a', href:'#', html:'HTTP Auth'}]} | 76 | {tag:'li', id:this.getId('httpAuthTab'), children:[{tag:'a', href:'#', html:'HTTP Auth'}]} |
77 | ]} | 77 | ]} |
78 | ]} | 78 | ]} |
79 | ]}, | 79 | ]}, |
80 | {tag:'div', cls:'body', children:[ | 80 | {tag:'div', cls:'body', children:[ |
81 | {tag:'div', cls:'accountPanel', children:[ | 81 | {tag:'div', cls:'accountPanel', children:[ |
82 | {tag:'div', cls:'subPanelContent', children:[ | 82 | {tag:'div', cls:'subPanelContent', children:[ |
83 | {tag:'ul', children:[ | 83 | {tag:'ul', children:[ |
84 | {tag:'li', id:this.getId('passwordGeneratorPanel'),children:[ | 84 | {tag:'li', id:this.getId('passwordGeneratorPanel'),children:[ |
85 | {tag:'h3', html:"Password generator"} | 85 | // {tag:'h3', html:"Password generator"} |
86 | ]}, | 86 | ]}, |
87 | {tag:'li', id:this.getId('bookmarkletPanel'),children:[ | 87 | {tag:'li', id:this.getId('bookmarkletPanel'),children:[ |
88 | {tag:'h3', html:"Bookmarklet"} | 88 | // {tag:'h3', html:"Bookmarklet"} |
89 | ]}, | 89 | ]}, |
90 | {tag:'li', id:this.getId('compactEditionPanel'), children:[ | 90 | {tag:'li', id:this.getId('compactEditionPanel'), children:[ |
91 | {tag:'h3', html:"Compact edition"} | 91 | // {tag:'h3', html:"Compact edition"} |
92 | ]}, | 92 | ]}, |
93 | {tag:'li', id:this.getId('httpAuthPanel'), children:[ | 93 | {tag:'li', id:this.getId('httpAuthPanel'), children:[ |
94 | {tag:'h3', html:"HTTP Auth"} | 94 | // {tag:'h3', html:"HTTP Auth"} |
95 | ]} | 95 | ]} |
96 | ]} | 96 | ]} |
97 | ]} | 97 | ]} |
98 | ]} | 98 | ]} |
99 | ]}, | 99 | ]}, |
100 | {tag:'div', cls:'footer'} | 100 | {tag:'div', cls:'footer'} |
101 | ]); | 101 | ]); |
102 | 102 | ||
103 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); | 103 | this.tabPanelController().setup({selected:this.initiallySelectedTab()}); |
104 | }, | 104 | }, |
105 | 105 | ||
106 | //------------------------------------------------------------------------- | 106 | //------------------------------------------------------------------------- |
107 | 107 | ||
108 | 108 | ||
109 | __syntaxFix__: "syntax fix" | 109 | __syntaxFix__: "syntax fix" |
110 | }); | 110 | }); |
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js index 9a0e744..1ab2e69 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/AppController.js | |||
@@ -210,51 +210,53 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, { | |||
210 | 210 | ||
211 | 'run': function(args) { | 211 | 'run': function(args) { |
212 | var deferredResult; | 212 | var deferredResult; |
213 | varslot; | 213 | varslot; |
214 | varpage; | 214 | varpage; |
215 | var user; | 215 | var user; |
216 | 216 | ||
217 | slot = args.slot; | 217 | slot = args.slot; |
218 | user = args.user; | 218 | user = args.user; |
219 | 219 | ||
220 | this.setUser(user); | 220 | this.setUser(user); |
221 | 221 | ||
222 | slot.setContent(this.appPage()); | 222 | slot.setContent(this.appPage()); |
223 | 223 | ||
224 | this.appPage().slotNamed('userInfoBox').setContent(this.userInfoBox()); | 224 | this.appPage().slotNamed('userInfoBox').setContent(this.userInfoBox()); |
225 | this.appPage().slotNamed('tabSidePanel').setContent(this.tabSidePanel()); | 225 | this.appPage().slotNamed('tabSidePanel').setContent(this.tabSidePanel()); |
226 | 226 | ||
227 | this.appPage().slotNamed('accountPanel').setContent(this.accountPanel()); | 227 | this.appPage().slotNamed('accountPanel').setContent(this.accountPanel()); |
228 | this.appPage().slotNamed('dataPanel').setContent(this.dataPanel()); | 228 | this.appPage().slotNamed('dataPanel').setContent(this.dataPanel()); |
229 | this.appPage().slotNamed('toolsPanel').setContent(this.toolsPanel()); | 229 | this.appPage().slotNamed('toolsPanel').setContent(this.toolsPanel()); |
230 | 230 | ||
231 | this.hideAllAppPageTabSlots(); | 231 | this.hideAllAppPageTabSlots(); |
232 | this.appPage().showSlot(this.slotNameForTab('cards')); | 232 | this.appPage().showSlot(this.slotNameForTab('cards')); |
233 | 233 | ||
234 | MochiKit.Signal.connect(this.tabSidePanel(), 'tabSelected',this, 'handleTabSelected'); | 234 | MochiKit.Signal.connect(this.tabSidePanel(), 'tabSelected', this, 'handleTabSelected'); |
235 | MochiKit.Signal.connect(this.tabSidePanel(), 'addCard', this, 'handleAddCard'); | 235 | MochiKit.Signal.connect(this.tabSidePanel(), 'addCard', this, 'handleAddCard'); |
236 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'addCard', this, 'handleAddCard'); | 236 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'addCard', this, 'handleAddCard'); |
237 | |||
238 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'downloadOfflineCopy',this, 'handleDownloadOfflineCopy'); | ||
237 | 239 | ||
238 | deferredResult = new Clipperz.Async.Deferred("AppController.run", {trace:false}); | 240 | deferredResult = new Clipperz.Async.Deferred("AppController.run", {trace:false}); |
239 | 241 | ||
240 | deferredResult.addMethod(this.cardsController(), 'run', {slot:this.appPage().slotNamed('cardGrid'), user:user}); | 242 | deferredResult.addMethod(this.cardsController(), 'run', {slot:this.appPage().slotNamed('cardGrid'), user:user}); |
241 | // deferredResult.addMethod(this.directLoginsController(), 'run', {slot:this.appPage().slotNamed('directLoginGrid'), user:user}); | 243 | // deferredResult.addMethod(this.directLoginsController(), 'run', {slot:this.appPage().slotNamed('directLoginGrid'), user:user}); |
242 | deferredResult.addMethod(this, 'populateUserInfo'); | 244 | deferredResult.addMethod(this, 'populateUserInfo'); |
243 | 245 | ||
244 | deferredResult.addCallback(MochiKit.Visual.ScrollTo, 'miscLinks', {duration:0}); | 246 | deferredResult.addCallback(MochiKit.Visual.ScrollTo, 'miscLinks', {duration:0}); |
245 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN'); | 247 | deferredResult.addCallback(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN'); |
246 | deferredResult.addMethod(this.tabSidePanel(), 'selectTab', 'cards'); | 248 | deferredResult.addMethod(this.tabSidePanel(), 'selectTab', 'cards'); |
247 | deferredResult.callback(); | 249 | deferredResult.callback(); |
248 | }, | 250 | }, |
249 | 251 | ||
250 | //----------------------------------------------------------------------------- | 252 | //----------------------------------------------------------------------------- |
251 | 253 | ||
252 | 'handleTabSelected': function (selectedTabName) { | 254 | 'handleTabSelected': function (selectedTabName) { |
253 | var aTabName; | 255 | var aTabName; |
254 | var aSlotName; | 256 | var aSlotName; |
255 | 257 | ||
256 | //Clipperz.log(">>> AppController.handleTabSelected", selectedTabName); | 258 | //Clipperz.log(">>> AppController.handleTabSelected", selectedTabName); |
257 | this.hideAllAppPageTabSlots(); | 259 | this.hideAllAppPageTabSlots(); |
258 | this.appPage().showSlot(this.slotNameForTab(selectedTabName)); | 260 | this.appPage().showSlot(this.slotNameForTab(selectedTabName)); |
259 | 261 | ||
260 | switch (selectedTabName) { | 262 | switch (selectedTabName) { |
@@ -300,27 +302,50 @@ MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.AppController.prototype, { | |||
300 | return deferredResult; | 302 | return deferredResult; |
301 | }, | 303 | }, |
302 | 304 | ||
303 | //----------------------------------------------------------------------------- | 305 | //----------------------------------------------------------------------------- |
304 | 306 | ||
305 | 'handleLock': function (anEvent) { | 307 | 'handleLock': function (anEvent) { |
306 | return Clipperz.Async.callbacks("AppController.handleLock", [ | 308 | return Clipperz.Async.callbacks("AppController.handleLock", [ |
307 | MochiKit.Base.method(this.cardsController(), 'deleteAllCleanTextData'), | 309 | MochiKit.Base.method(this.cardsController(), 'deleteAllCleanTextData'), |
308 | MochiKit.Base.method(this.user(), 'lock') | 310 | MochiKit.Base.method(this.user(), 'lock') |
309 | ], {trace:false}); | 311 | ], {trace:false}); |
310 | }, | 312 | }, |
311 | 313 | ||
312 | //............................................................................. | 314 | //............................................................................. |
313 | 315 | ||
314 | 'handleUnlock': function (anEvent) { | 316 | 'handleUnlock': function (anEvent) { |
315 | return Clipperz.Async.callbacks("AppController.handleUnock", [ | 317 | return Clipperz.Async.callbacks("AppController.handleUnock", [ |
316 | MochiKit.Base.partial(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress'), | 318 | MochiKit.Base.partial(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress'), |
317 | MochiKit.Base.method(this.user(), 'login'), | 319 | MochiKit.Base.method(this.user(), 'login'), |
318 | MochiKit.Base.method(this.cardsController(), 'focus'), | 320 | MochiKit.Base.method(this.cardsController(), 'focus'), |
319 | MochiKit.Base.partial(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'progressDone'), | 321 | MochiKit.Base.partial(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'progressDone'), |
320 | MochiKit.Base.method(this.userInfoBox(), 'unlock') | 322 | MochiKit.Base.method(this.userInfoBox(), 'unlock') |
321 | ], {trace:false}); | 323 | ], {trace:false}); |
322 | }, | 324 | }, |
323 | 325 | ||
326 | 'handleDownloadOfflineCopy': function (anEvent) { | ||
327 | console.log("AppController.handleDownloadOfflineCopy"); | ||
328 | var downloadHref; | ||
329 | |||
330 | downloadHref = window.location.href.replace(/\/[^\/]*$/,'') + Clipperz_dumpUrl; | ||
331 | |||
332 | if (Clipperz_IEisBroken == true) { | ||
333 | window.open(downloadHref, ""); | ||
334 | } else { | ||
335 | vardeferredResult; | ||
336 | var newWindow; | ||
337 | |||
338 | newWindow = window.open("", ""); | ||
339 | |||
340 | deferredResult = new Clipperz.Async.Deferred("AppController.handleDownloadOfflineCopy", {trace:true}); | ||
341 | deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'echo', {'echo':"echo"}); | ||
342 | deferredResult.addCallback(function(aWindow) { | ||
343 | aWindow.location.href = downloadHref; | ||
344 | }, newWindow); | ||
345 | deferredResult.callback(); | ||
346 | } | ||
347 | }, | ||
348 | |||
324 | //============================================================================= | 349 | //============================================================================= |
325 | __syntaxFix__: "syntax fix" | 350 | __syntaxFix__: "syntax fix" |
326 | }); | 351 | }); |