summaryrefslogtreecommitdiff
path: root/frontend/beta/js/Clipperz/PM/Components/Import/CSVImport/CSVImportTitle.js
Unidiff
Diffstat (limited to 'frontend/beta/js/Clipperz/PM/Components/Import/CSVImport/CSVImportTitle.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/PM/Components/Import/CSVImport/CSVImportTitle.js22
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/beta/js/Clipperz/PM/Components/Import/CSVImport/CSVImportTitle.js b/frontend/beta/js/Clipperz/PM/Components/Import/CSVImport/CSVImportTitle.js
index aa57580..4b2149a 100644
--- a/frontend/beta/js/Clipperz/PM/Components/Import/CSVImport/CSVImportTitle.js
+++ b/frontend/beta/js/Clipperz/PM/Components/Import/CSVImport/CSVImportTitle.js
@@ -1,186 +1,184 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer to http://www.clipperz.com.
9 8
10* Clipperz Community Edition is free software: you can redistribute 9* Clipperz is free software: you can redistribute it and/or modify it
11 it and/or modify it under the terms of the GNU Affero General Public 10 under the terms of the GNU Affero General Public License as published
12 License as published by the Free Software Foundation, either version 11 by the Free Software Foundation, either version 3 of the License, or
13 3 of the License, or (at your option) any later version. 12 (at your option) any later version.
14 13
15* Clipperz Community Edition is distributed in the hope that it will 14* Clipperz is distributed in the hope that it will be useful, but
16 be useful, but WITHOUT ANY WARRANTY; without even the implied 15 WITHOUT ANY WARRANTY; without even the implied warranty of
17 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU Affero General Public License for more details. 17 See the GNU Affero General Public License for more details.
19 18
20* You should have received a copy of the GNU Affero General Public 19* You should have received a copy of the GNU Affero General Public
21 License along with Clipperz Community Edition. If not, see 20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
22 <http://www.gnu.org/licenses/>.
23 21
24*/ 22*/
25 23
26if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } 24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
27if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } 25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
28if (typeof(Clipperz.PM.Components) == 'undefined') { Clipperz.PM.Components = {}; } 26if (typeof(Clipperz.PM.Components) == 'undefined') { Clipperz.PM.Components = {}; }
29if (typeof(Clipperz.PM.Components.Import) == 'undefined') { Clipperz.PM.Components.Import = {}; } 27if (typeof(Clipperz.PM.Components.Import) == 'undefined') { Clipperz.PM.Components.Import = {}; }
30if (typeof(Clipperz.PM.Components.Import.CSVImport) == 'undefined') { Clipperz.PM.Components.Import.CSVImport = {}; } 28if (typeof(Clipperz.PM.Components.Import.CSVImport) == 'undefined') { Clipperz.PM.Components.Import.CSVImport = {}; }
31 29
32//############################################################################# 30//#############################################################################
33 31
34Clipperz.PM.Components.Import.CSVImport.CSVImportTitle = function(anElement, args) { 32Clipperz.PM.Components.Import.CSVImport.CSVImportTitle = function(anElement, args) {
35 args = args || {}; 33 args = args || {};
36 34
37 Clipperz.PM.Components.Import.CSVImport.CSVImportTitle.superclass.constructor.call(this, anElement, args); 35 Clipperz.PM.Components.Import.CSVImport.CSVImportTitle.superclass.constructor.call(this, anElement, args);
38 this._mainComponent = args.mainComponent; 36 this._mainComponent = args.mainComponent;
39 37
40 return this; 38 return this;
41} 39}
42 40
43//============================================================================= 41//=============================================================================
44 42
45YAHOO.extendX(Clipperz.PM.Components.Import.CSVImport.CSVImportTitle, Clipperz.PM.Components.BaseComponent, { 43YAHOO.extendX(Clipperz.PM.Components.Import.CSVImport.CSVImportTitle, Clipperz.PM.Components.BaseComponent, {
46 44
47 'toString': function() { 45 'toString': function() {
48 return "Clipperz.PM.Components.Import.CSVImport.CSVImportTitle component"; 46 return "Clipperz.PM.Components.Import.CSVImport.CSVImportTitle component";
49 }, 47 },
50 48
51 //------------------------------------------------------------------------- 49 //-------------------------------------------------------------------------
52 50
53 'mainComponent': function() { 51 'mainComponent': function() {
54 return this._mainComponent; 52 return this._mainComponent;
55 }, 53 },
56 54
57 //------------------------------------------------------------------------- 55 //-------------------------------------------------------------------------
58 56
59 'render': function() { 57 'render': function() {
60 vartitleSelectorCheckboxCells; 58 vartitleSelectorCheckboxCells;
61 var titleColumnIndex; 59 var titleColumnIndex;
62 var i,c; 60 var i,c;
63 61
64 Clipperz.NotificationCenter.unregister(this); 62 Clipperz.NotificationCenter.unregister(this);
65 MochiKit.Signal.disconnectAllTo(this); 63 MochiKit.Signal.disconnectAllTo(this);
66 64
67 this.element().update(""); 65 this.element().update("");
68 66
69 titleColumnIndex = this.mainComponent().titleColumnIndex() 67 titleColumnIndex = this.mainComponent().titleColumnIndex()
70 titleSelectorCheckboxCells = []; 68 titleSelectorCheckboxCells = [];
71 c =this.mainComponent().parsedValues()[0].length; 69 c =this.mainComponent().parsedValues()[0].length;
72 for (i=0; i<c; i++) { 70 for (i=0; i<c; i++) {
73 if (this.mainComponent().isColumnSelected(i)) { 71 if (this.mainComponent().isColumnSelected(i)) {
74 titleSelectorCheckboxCells.push({tag:'th', valign:'top', id:this.getId('th_' + i), children:[ 72 titleSelectorCheckboxCells.push({tag:'th', valign:'top', id:this.getId('th_' + i), children:[
75 {tag:'input', type:'radio', id:this.getId('radio_' + i), name:'CSVImportTitleColumn', value:i}, 73 {tag:'input', type:'radio', id:this.getId('radio_' + i), name:'CSVImportTitleColumn', value:i},
76 {tag:'span', cls:'clickableSpan', id:this.getId('columnLabel_' + i), html:this.mainComponent().labelForColumn(i)} 74 {tag:'span', cls:'clickableSpan', id:this.getId('columnLabel_' + i), html:this.mainComponent().labelForColumn(i)}
77 ]}) 75 ]})
78 } 76 }
79 } 77 }
80 78
81 if (titleColumnIndex >= titleSelectorCheckboxCells.length) { 79 if (titleColumnIndex >= titleSelectorCheckboxCells.length) {
82 this.mainComponent().setTitleColumnIndex(-1); 80 this.mainComponent().setTitleColumnIndex(-1);
83 } 81 }
84 82
85 this.domHelper().append(this.element(), {tag:'div', children:[ 83 this.domHelper().append(this.element(), {tag:'div', children:[
86 {tag:'div', cls:'importStepDescription', htmlString:Clipperz.PM.Strings['CSV_ImportWizard_Title']}, 84 {tag:'div', cls:'importStepDescription', htmlString:Clipperz.PM.Strings['CSV_ImportWizard_Title']},
87 {tag:'div', id:this.getId('dataDiv'), cls:'csvImportPreview', children:[ 85 {tag:'div', id:this.getId('dataDiv'), cls:'csvImportPreview', children:[
88 {tag:'table', id:this.getId('previewDada'), cls:'csvImportPreview', cellspacing:'0', children:[ 86 {tag:'table', id:this.getId('previewDada'), cls:'csvImportPreview', cellspacing:'0', children:[
89 {tag:'thead', id:this.getId('previewData_thead'), children:[ 87 {tag:'thead', id:this.getId('previewData_thead'), children:[
90 {tag:'tr', children:titleSelectorCheckboxCells} 88 {tag:'tr', children:titleSelectorCheckboxCells}
91 ]}, 89 ]},
92 {tag:'tbody', id:this.getId('previewData_tbody'), children:[]} 90 {tag:'tbody', id:this.getId('previewData_tbody'), children:[]}
93 ]} 91 ]}
94 ]} 92 ]}
95 ]}); 93 ]});
96 94
97 this.renderData(this.getElement('previewData_tbody'), this.mainComponent().parsedValues()); 95 this.renderData(this.getElement('previewData_tbody'), this.mainComponent().parsedValues());
98 96
99 c =this.mainComponent().parsedValues()[0].length; 97 c =this.mainComponent().parsedValues()[0].length;
100 for (i=0; i<c; i++) { 98 for (i=0; i<c; i++) {
101 if (this.mainComponent().isColumnSelected(i)) { 99 if (this.mainComponent().isColumnSelected(i)) {
102 MochiKit.Signal.connect(this.getDom('radio_' + i), 'onclick', this, 'renderDataHandler'); 100 MochiKit.Signal.connect(this.getDom('radio_' + i), 'onclick', this, 'renderDataHandler');
103 if (Clipperz_IEisBroken != true) { 101 if (Clipperz_IEisBroken != true) {
104 MochiKit.Signal.connect(this.getDom('columnLabel_' + i), 'onclick', this.getDom('radio_' + i), 'click'); 102 MochiKit.Signal.connect(this.getDom('columnLabel_' + i), 'onclick', this.getDom('radio_' + i), 'click');
105 } 103 }
106 } 104 }
107 } 105 }
108 106
109 if (titleColumnIndex != -1) { 107 if (titleColumnIndex != -1) {
110 this.getDom('radio_' + titleColumnIndex).click(); 108 this.getDom('radio_' + titleColumnIndex).click();
111 } else { 109 } else {
112 this.mainComponent().nextButton().disable(); 110 this.mainComponent().nextButton().disable();
113 } 111 }
114 112
115 }, 113 },
116 114
117 //------------------------------------------------------------------------- 115 //-------------------------------------------------------------------------
118 116
119 'renderData': function(anElement, someData) { 117 'renderData': function(anElement, someData) {
120 var data; 118 var data;
121 var config; 119 var config;
122 var titleColumnIndex; 120 var titleColumnIndex;
123 var i,c; 121 var i,c;
124 122
125 // anElement.update(""); 123 // anElement.update("");
126 MochiKit.DOM.replaceChildNodes(anElement.dom); 124 MochiKit.DOM.replaceChildNodes(anElement.dom);
127 125
128 titleColumnIndex = this.mainComponent().titleColumnIndex() 126 titleColumnIndex = this.mainComponent().titleColumnIndex()
129 127
130 if (this.mainComponent().isFirstRowHeader()) { 128 if (this.mainComponent().isFirstRowHeader()) {
131 data = someData.slice(1); 129 data = someData.slice(1);
132 } else { 130 } else {
133 data = someData; 131 data = someData;
134 } 132 }
135 133
136 config = MochiKit.Base.map(MochiKit.Base.bind(function(aRowData) { 134 config = MochiKit.Base.map(MochiKit.Base.bind(function(aRowData) {
137 var result; 135 var result;
138 var i,c; 136 var i,c;
139 137
140 result = {tag:'tr', children:[]}; 138 result = {tag:'tr', children:[]};
141 c = aRowData.length; 139 c = aRowData.length;
142 for (i=0; i<c; i++) { 140 for (i=0; i<c; i++) {
143 if (this.mainComponent().isColumnSelected(i)) { 141 if (this.mainComponent().isColumnSelected(i)) {
144 var field; 142 var field;
145 143
146 field = aRowData[i]; 144 field = aRowData[i];
147 result.children.push({tag:'td', valign:'top', cls:((titleColumnIndex == i) ? 'titleColumn': ''), html:(MochiKit.Base.isNotEmpty(field) ? field.replace(/\n/g, '<br>') : '&nbsp;')}); 145 result.children.push({tag:'td', valign:'top', cls:((titleColumnIndex == i) ? 'titleColumn': ''), html:(MochiKit.Base.isNotEmpty(field) ? field.replace(/\n/g, '<br>') : '&nbsp;')});
148 } 146 }
149 } 147 }
150 148
151 return result; 149 return result;
152 }, this), data); 150 }, this), data);
153 151
154 MochiKit.Base.map(function(aRowConfig) {Clipperz.YUI.DomHelper.append(anElement, aRowConfig);}, config); 152 MochiKit.Base.map(function(aRowConfig) {Clipperz.YUI.DomHelper.append(anElement, aRowConfig);}, config);
155 153
156 Clipperz.Style.applyZebraStylesToTable(this.getId('previewDada')); 154 Clipperz.Style.applyZebraStylesToTable(this.getId('previewDada'));
157 }, 155 },
158 156
159 //------------------------------------------------------------------------- 157 //-------------------------------------------------------------------------
160 158
161 'renderDataHandler': function(anEvent) { 159 'renderDataHandler': function(anEvent) {
162 var i,c; 160 var i,c;
163 161
164 this.mainComponent().setTitleColumnIndex(anEvent.src().value); 162 this.mainComponent().setTitleColumnIndex(anEvent.src().value);
165 163
166 c = this.mainComponent().parsedValues()[0].length; 164 c = this.mainComponent().parsedValues()[0].length;
167 for (i=0; i<c; i++) { 165 for (i=0; i<c; i++) {
168 if (this.mainComponent().isColumnSelected(i)) { 166 if (this.mainComponent().isColumnSelected(i)) {
169 this.getElement('th_' + i).removeClass('titleColumn'); 167 this.getElement('th_' + i).removeClass('titleColumn');
170 } 168 }
171 } 169 }
172 this.getElement('th_' + anEvent.src().value).addClass('titleColumn'); 170 this.getElement('th_' + anEvent.src().value).addClass('titleColumn');
173 171
174 if (anEvent.src().value != -1) { 172 if (anEvent.src().value != -1) {
175 this.mainComponent().nextButton().enable(); 173 this.mainComponent().nextButton().enable();
176 } else { 174 } else {
177 this.mainComponent().nextButton().disable(); 175 this.mainComponent().nextButton().disable();
178 } 176 }
179 177
180 this.renderData(this.getElement('previewData_tbody'), this.mainComponent().parsedValues()); 178 this.renderData(this.getElement('previewData_tbody'), this.mainComponent().parsedValues());
181 }, 179 },
182 180
183 //------------------------------------------------------------------------- 181 //-------------------------------------------------------------------------
184 __syntaxFix__: "syntax fix" 182 __syntaxFix__: "syntax fix"
185}); 183});
186 184