ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkview.js
changeset 0 1450b09d0cfd
child 3 0954f5dd2cd0
child 5 0f2326c2a325
equal deleted inserted replaced
-1:000000000000 0:1450b09d0cfd
       
     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 }