|
1 var _prevOpenedBookmarkControl = null; |
|
2 var previousSortEle = null; |
|
3 |
|
4 function BookmarkToggleControls(ele){ |
|
5 try { |
|
6 |
|
7 if(_sortingEnabled && ele.parentNode.parentNode!=previousSortEle) |
|
8 { |
|
9 _sortingEnabled = false; |
|
10 previousSortEle.className = 'li.no-sort'; |
|
11 views.WebView.gesturesEnabled = true; |
|
12 return false; |
|
13 } |
|
14 else if(_sortingEnabled && (ele.parentNode.parentNode==previousSortEle)) |
|
15 { |
|
16 return false; |
|
17 } |
|
18 |
|
19 ele.parentNode.className = (ele.parentNode.className == 'controlIn') ? 'controlOut' : 'controlIn'; |
|
20 if(ele.parentNode.className == 'controlIn') { |
|
21 ele.className = 'collapsed'; |
|
22 ele.parentNode.childNodes[1].className = "collapsedIcons"; |
|
23 ele.parentNode.parentNode.childNodes[1].style.width = (parseInt(window.innerWidth)-115)+"px"; |
|
24 } |
|
25 else { |
|
26 ele.className = 'expanded'; |
|
27 ele.parentNode.childNodes[1].className = "expandedIcons"; |
|
28 ele.parentNode.parentNode.childNodes[1].style.width = (parseInt(window.innerWidth)-195)+"px"; |
|
29 } |
|
30 |
|
31 if(_prevOpenedBookmarkControl != null && _prevOpenedBookmarkControl != ele) |
|
32 BookmarkHideControl(_prevOpenedBookmarkControl); |
|
33 |
|
34 }catch(e) { alert(e); } |
|
35 _prevOpenedBookmarkControl = ele; |
|
36 } |
|
37 |
|
38 |
|
39 function BookmarkHideControl(ele){ |
|
40 ele.parentNode.className = 'controlIn'; |
|
41 ele.className = 'collapsed'; |
|
42 } |
|
43 |
|
44 |
|
45 function deleteBookmark(r,bmtitle) |
|
46 { |
|
47 window.bookmarksManager.deleteBookmark(bmtitle); |
|
48 //ToDo : check for error code |
|
49 r.parentNode.parentNode.parentNode.removeChild(r.parentNode.parentNode); |
|
50 } |
|
51 |
|
52 |
|
53 function openUrl(ele, newUrl) { |
|
54 // DragStart & DragEnd listeners are defined at bottom |
|
55 if(_sortingEnabled && (ele.parentNode!=previousSortEle)) |
|
56 { |
|
57 _sortingEnabled = false; |
|
58 previousSortEle.className = 'li.no-sort'; |
|
59 views.WebView.gesturesEnabled = true; |
|
60 return false; |
|
61 } |
|
62 else if(_sortingEnabled && (ele.parentNode==previousSortEle)) |
|
63 { |
|
64 return false; |
|
65 } |
|
66 else if(__dragendFlag) |
|
67 { |
|
68 __dragendFlag = false; |
|
69 return false; |
|
70 } |
|
71 |
|
72 window.views.WebView.showNormalPage(); |
|
73 window.ViewStack.switchView( "WebView","BookmarkTreeView"); |
|
74 |
|
75 // Laod a page to chrome view |
|
76 window.views.WebView.loadUrlToCurrentPage(newUrl); |
|
77 views.WebView.gesturesEnabled = true; |
|
78 } |
|
79 |
|
80 |
|
81 //'<div class="Title" onclick="openUrl(\''+bmurl+'\')">'+ |
|
82 //'<div class="collapsedIcons"><img src="icons/edit-icon.gif" width="56" height="56" class="controlIcon">'+ |
|
83 //background-image: url(\''+bmfavicon+'\'); |
|
84 |
|
85 function createBookmarkElement(bmtitle,bmfullurl,bmtrimmedurl, idValue) |
|
86 { |
|
87 var _width = parseInt(window.innerWidth)-115; |
|
88 |
|
89 var li=document.createElement('li'); |
|
90 li.id = idValue; |
|
91 li.innerHTML = |
|
92 '<div class="controlIn">'+ |
|
93 '<div class="collapsed" onClick="javascript:BookmarkToggleControls(this);"></div>'+ |
|
94 '<img class="controlIcon" src="icons/delete-icon.gif" width="56" height="56" vspace="7" hspace="5" onclick="deleteBookmark(this, \''+bmtitle+'\')">'+ |
|
95 '</div>'+ |
|
96 '<div class="Title" style="width:'+_width+'px;" onclick="openUrl(this,\''+bmfullurl+'\')">'+ |
|
97 '<span class="aTitle">'+bmtitle+'</span>'+ |
|
98 '<br/>'+ |
|
99 '<span class="aUrl">'+bmtrimmedurl+'</span>'+ |
|
100 '</div>'; |
|
101 |
|
102 return li; |
|
103 } |
|
104 |
|
105 function clearBookmarkList() |
|
106 { |
|
107 var list = document.getElementById('bookmarkListTree'); |
|
108 while( list.hasChildNodes() ) { |
|
109 list.removeChild( list.lastChild ); |
|
110 } |
|
111 } |
|
112 |
|
113 var __dragendFlag = false; |
|
114 |
|
115 function longtapbm(ele) |
|
116 { |
|
117 if(_sortingEnabled) |
|
118 { |
|
119 _sortingEnabled = false; |
|
120 previousSortEle.className = 'li.no-sort'; |
|
121 views.WebView.gesturesEnabled = true; |
|
122 return false; |
|
123 } |
|
124 |
|
125 _sortingEnabled = true; |
|
126 _sortEleOffsetTop = ele.offsetTop; |
|
127 views.WebView.gesturesEnabled = false; |
|
128 ele.className = 'sort'; |
|
129 previousSortEle = ele; |
|
130 $("#bookmarkListTree").sortable('enable'); |
|
131 |
|
132 } |
|
133 |
|
134 // Set to the LongPress object that is currently waiting for activation, |
|
135 // ie. it has gotten a mouse-down event and has its timer running. |
|
136 var __currentLongPress; |
|
137 |
|
138 function longPressStarted(lp) |
|
139 { |
|
140 // Remember the current LongPress object so we can cancel it if scrolling |
|
141 // starts. |
|
142 __currentLongPress = lp; |
|
143 } |
|
144 |
|
145 function handlePanStarted(type) |
|
146 { |
|
147 // Scrolling started, cancel the LongPress. |
|
148 if(__currentLongPress != undefined) { |
|
149 __currentLongPress.cancel(); |
|
150 __currentLongPress = undefined; |
|
151 } |
|
152 } |
|
153 |
|
154 function createBookmarkView() |
|
155 { |
|
156 try |
|
157 { |
|
158 __currentLongPress = undefined; |
|
159 clearBookmarkList(); |
|
160 //Get bookmarks data from database |
|
161 var bookmakrData = window.bookmarksManager.getBookmarksJSON(); |
|
162 var myObject = eval('(' + bookmakrData + ')'); |
|
163 var ul=document.getElementById('bookmarkListTree'); |
|
164 for(x=0; x<myObject.length; x++) |
|
165 { |
|
166 var bmurl = myObject[x].urlvalue; |
|
167 var bmtitle = myObject[x].title; |
|
168 var bmtrimmedurl = bmurl.replace('http://',''); |
|
169 bmtrimmedurl = bmtrimmedurl.replace('www.',''); |
|
170 bmtrimmedurl = bmtrimmedurl.replace('file:///',''); |
|
171 |
|
172 //create element and add it to bookmark view |
|
173 var li = createBookmarkElement(bmtitle,bmurl,bmtrimmedurl, x); |
|
174 li.className = 'no-sort'; |
|
175 ul.appendChild(li); |
|
176 ul.childNodes[0].focus(); |
|
177 |
|
178 new LongPress(li.id, longtapbm, longPressStarted); |
|
179 } |
|
180 } catch(E) { alert(E); } |
|
181 dragInit(); |
|
182 } |
|
183 |
|
184 function _updateBookmarkViewGoemetry(displayMode) |
|
185 { |
|
186 try{ |
|
187 var _list = document.getElementsByClassName('Title'); |
|
188 for(var i=0; i<_list.length; i++){ |
|
189 if(_list[i].parentNode.childNodes[0].className == 'controlIn'){ |
|
190 _list[i].style.width = (parseInt(window.innerWidth)-115)+"px"; |
|
191 } |
|
192 else{ |
|
193 _list[i].style.width = (parseInt(window.innerWidth)-195)+"px"; |
|
194 } |
|
195 } |
|
196 }catch(e){ alert(e); } |
|
197 |
|
198 } |
|
199 |
|
200 function launchBookmarkView() |
|
201 { |
|
202 try{ |
|
203 window.chrome.aspectChanged.connect(_updateBookmarkViewGoemetry); |
|
204 |
|
205 // Get Bookmarks from the database |
|
206 createBookmarkView(); |
|
207 |
|
208 // Watch for the start of scrolling in the view so we can cancel the |
|
209 // long presses to prevent them from interfere with scrolling. Otherwise |
|
210 // the long press callback will fire and trigger sortable mode. |
|
211 views.WebView.startingPanGesture.connect(handlePanStarted); |
|
212 |
|
213 }catch(e){ alert(e); } |
|
214 } |
|
215 |
|
216 function dragInit() |
|
217 { |
|
218 $("#bookmarkListTree").sortable({ |
|
219 placeholder: 'ui-state-highlight', |
|
220 axis:'y', |
|
221 cancel : 'li.no-sort', |
|
222 scrollSensitivity : 40, |
|
223 scrollSpeed : 40, |
|
224 start: function(event, ui) { |
|
225 __dragendFlag = true; |
|
226 }, |
|
227 update: function(event, ui) { |
|
228 _sortingEnabled = false; |
|
229 views.WebView.gesturesEnabled = true; |
|
230 $("#bookmarkListTree").sortable('disable'); |
|
231 |
|
232 var sortedItemId = ui.item[0].id; |
|
233 var _a = $('#bookmarkListTree').sortable('toArray'); |
|
234 for(var i=0; i<_a.length; i++) |
|
235 { |
|
236 if(sortedItemId == _a[i]) |
|
237 { |
|
238 var li = document.getElementById(sortedItemId); |
|
239 li.className = 'no-sort'; |
|
240 var div = li.childNodes[1]; |
|
241 window.bookmarksManager.reorderBokmarks(div.childNodes[0].firstChild.nodeValue,i); |
|
242 } |
|
243 } |
|
244 } |
|
245 }); |
|
246 |
|
247 $("#bookmarkListTree").sortable('disable'); |
|
248 $("#bookmarkListTree").disableSelection(); |
|
249 |
|
250 } |