ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkview.js
changeset 16 3c88a81ff781
parent 14 6aeb7a756187
equal deleted inserted replaced
14:6aeb7a756187 16:3c88a81ff781
     9 // Set to the LongPress object that is currently waiting for activation,
     9 // Set to the LongPress object that is currently waiting for activation,
    10 // ie. it has gotten a mouse-down event and has its timer running.
    10 // ie. it has gotten a mouse-down event and has its timer running.
    11 var __currentLongPress;
    11 var __currentLongPress;
    12 var __cancelLinkOpening = false;
    12 var __cancelLinkOpening = false;
    13 
    13 
       
    14 function _displayError(text) {
       
    15     var el = document.getElementById("errorText");
       
    16     el.style.visibility = "visible";
       
    17     el.style.width = "100%";
       
    18     el.style.height = "100%";
       
    19     el.innerHTML = "<p>" + text;
       
    20 }
       
    21 
       
    22 function _clearError(text) {
       
    23     var el = document.getElementById("errorText");
       
    24     el.style.visibility = "hidden";
       
    25     el.style.width = "0";
       
    26     el.style.height = "0";
       
    27     el.innerHTML = "";
       
    28 }
       
    29 
    14 function _enableSorting(ele) {
    30 function _enableSorting(ele) {
    15     // This is messy, why do we even need to do this sort/no-sort stuff???
    31     // This is messy, why do we even need to do this sort/no-sort stuff???
    16     $(ele).removeClass('no-sort');
    32     $(ele).removeClass('no-sort');
    17     $(ele).addClass('sort');
    33     $(ele).addClass('sort');
    18 		
    34         
    19 	var evt = document.createEvent("MouseEvents");
    35     var evt = document.createEvent("MouseEvents");
    20 	evt.initMouseEvent("mousedown", true, true, window,
    36     evt.initMouseEvent("mousedown", true, true, window,
    21 	  0, 0, 0, gInitialX, gInitialY, false, false, false, false, 0, null);
    37       0, 0, 0, gInitialX, gInitialY, false, false, false, false, 0, null);
    22 	var canceled = !ele.dispatchEvent(evt);
    38     var canceled = !ele.dispatchEvent(evt);
    23     
    39     
    24   	views.WebView.gesturesEnabled = false;
    40     views.WebView.gesturesEnabled = false;
    25 
    41 
    26     $(ele).find(".dogEarBox").addClass('selected');
    42     $(ele).find(".dogEarBox").addClass('selected');
    27     $(ele).find(".dogEar").addClass('selected');
    43     $(ele).find(".dogEar").addClass('selected');
    28 
    44 
    29   __sortingEnabled = true;
    45   __sortingEnabled = true;
    98             _disableSorting(__previousSortEle)
   114             _disableSorting(__previousSortEle)
    99             return false;
   115             return false;
   100   }
   116   }
   101 
   117 
   102   if(__prevOpenedBookmarkControl)
   118   if(__prevOpenedBookmarkControl)
   103   	_bookmarkHideControl(__prevOpenedBookmarkControl);
   119     _bookmarkHideControl(__prevOpenedBookmarkControl);
   104   	
   120     
   105     if(!__dogearSelected)
   121     if(!__dogearSelected)
   106      _enableSorting(ele);
   122      _enableSorting(ele);
   107 }
   123 }
   108 
   124 
   109 function _timeLeft()
   125 function _timeLeft()
   128     __cancelLinkOpening = false;
   144     __cancelLinkOpening = false;
   129 }
   145 }
   130 
   146 
   131 function _handlePanStarted(type)
   147 function _handlePanStarted(type)
   132 {
   148 {
   133 		__cancelLinkOpening = true;
   149    if(app.ui() != "maemo5_ui") // workaround for Maemo Issue
   134 		
   150    {
       
   151             __cancelLinkOpening = true;
       
   152      }
       
   153         
   135     // Scrolling started, cancel the LongPress.
   154     // Scrolling started, cancel the LongPress.
   136       if (__currentLongPress != undefined) {
   155       if (__currentLongPress != undefined) {
   137         __currentLongPress.cancel();
   156         __currentLongPress.cancel();
   138         __currentLongPress = undefined;
   157         __currentLongPress = undefined;
   139     }
   158     }
   149 function _bookmarkToggleControls(event){
   168 function _bookmarkToggleControls(event){
   150     var ele = event.target;
   169     var ele = event.target;
   151     try {
   170     try {
   152         if(__timerId != "")
   171         if(__timerId != "")
   153         {
   172         {
   154         	window.clearTimeout(__timerId);
   173             window.clearTimeout(__timerId);
   155         	__timerId = "";
   174             __timerId = "";
   156         }
   175         }
   157         if (__sortingEnabled && ele.parentNode.parentNode!=__previousSortEle)
   176         if (__sortingEnabled && ele.parentNode.parentNode!=__previousSortEle)
   158         {
   177         {
   159             _disableSorting(__previousSortEle)
   178             _disableSorting(__previousSortEle)
   160             return false;
   179             return false;
   199     if(__timerId != "")
   218     if(__timerId != "")
   200     {
   219     {
   201         window.clearTimeout(__timerId);
   220         window.clearTimeout(__timerId);
   202         __timerId = "";
   221         __timerId = "";
   203     }
   222     }
   204 	if(__prevOpenedBookmarkControl)
   223     if(__prevOpenedBookmarkControl)
   205   		_bookmarkHideControl(__prevOpenedBookmarkControl);
   224         _bookmarkHideControl(__prevOpenedBookmarkControl);
   206 
   225 
   207     if(__previousSortEle    != null)
   226     if(__previousSortEle    != null)
   208         _disableSorting(__previousSortEle)
   227         _disableSorting(__previousSortEle)
   209 
   228 
   210     __bookmarkCount += 1;
   229     __bookmarkCount += 1;
   211     //create element and add it to bookmark view
   230     //create element and add it to bookmark view
   212     var ul=document.getElementById('bookmarkListTree');
   231     var ul=document.getElementById('bookmarkListTree');
   213     var dbgTitle = bmtitle.replace(/'/g, "&#39");
   232     var dbgTitle = bmtitle.replace(/'/g, "&#39");
   214     dbgTitle = dbgTitle.replace(/"/g, "&#34");
   233     dbgTitle = dbgTitle.replace(/"/g, "&#34");
   215     var li = _createBookmarkElement(dbgTitle,bmurl,bmid);
   234     var li = _createBookmarkElement(dbgTitle,bmurl,bmid);
   216 	$(li).addClass('no-sort');
   235     $(li).addClass('no-sort');
   217 	ul.insertBefore(li, ul.firstChild);
   236     ul.insertBefore(li, ul.firstChild);
   218     ul.childNodes[ul.childNodes.length-1].focus();
   237     ul.childNodes[ul.childNodes.length-1].focus();
   219     
   238     
   220     if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
   239     if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
   221         new LongPress(li.id, _longPress, _longPressStarted, 250);
   240         new LongPress(li.id, _longPress, _longPressStarted, 250);
   222     else
   241     else
   238     $('#'+bmid).find('.aUrl').text(bm.url);
   257     $('#'+bmid).find('.aUrl').text(bm.url);
   239 }
   258 }
   240 
   259 
   241 function _launchEditBookmark(r,bmtitle,bmurl,id)
   260 function _launchEditBookmark(r,bmtitle,bmurl,id)
   242 {
   261 {
   243 		// bookmark title/url may have been altered by the controller's edit method, so reload it
   262         // bookmark title/url may have been altered by the controller's edit method, so reload it
   244     var bm = window.bookmarksController.findBookmark(id);
   263     var bm = window.bookmarksController.findBookmark(id);
   245     window.bookmarksController.showBookmarkEditDialog(bm.title,bm.url,id);
   264     window.bookmarksController.showBookmarkEditDialog(bm.title,bm.url,id);
   246 }
   265 }
   247 
   266 
   248 function _deleteBookmark(r,bmid)
   267 function _deleteBookmark(r,bmid)
   273         __dragendFlag = false;
   292         __dragendFlag = false;
   274         return false;
   293         return false;
   275     }
   294     }
   276     else if(__cancelLinkOpening)
   295     else if(__cancelLinkOpening)
   277     {
   296     {
   278     	__cancelLinkOpening = false;
   297         __cancelLinkOpening = false;
   279     	return false;
   298         return false;
   280     }
   299     }
   281 
   300 
   282     window.views.WebView.showNormalPage();
   301     window.views.WebView.showNormalPage();
   283     window.ViewStack.switchView( "WebView","BookmarkTreeView");
   302     window.ViewStack.switchView( "WebView","BookmarkTreeView");
   284 
   303 
   296     $('.dogEarBox').not('.closed').next('.bookmarkItem').css('width', (parseInt(window.innerWidth)-220)+"px");
   315     $('.dogEarBox').not('.closed').next('.bookmarkItem').css('width', (parseInt(window.innerWidth)-220)+"px");
   297 }
   316 }
   298 
   317 
   299 function _setDogear()
   318 function _setDogear()
   300 {
   319 {
   301 	__dogearSelected = true;
   320     __dogearSelected = true;
   302 }
   321 }
   303 
   322 
   304 function _unsetDogear()
   323 function _unsetDogear()
   305 {
   324 {
   306 	__dogearSelected = false;
   325     __dogearSelected = false;
   307 }
   326 }
   308 
   327 
   309 function _createBookmarkElement(bmtitle,bmfullurl,idValue)
   328 function _createBookmarkElement(bmtitle,bmfullurl,idValue)
   310 {
   329 {
   311         var _width = parseInt(window.innerWidth)-70;
   330         var _width = parseInt(window.innerWidth)-70;
   313         var li=document.createElement('li');
   332         var li=document.createElement('li');
   314         li.id = idValue;
   333         li.id = idValue;
   315         li.innerHTML =
   334         li.innerHTML =
   316         '<div class="dogEarBox closed">'+ // bookmarkBox
   335         '<div class="dogEarBox closed">'+ // bookmarkBox
   317           '<div class="dogEar closed"></div>'+
   336           '<div class="dogEar closed"></div>'+
   318           '<img class="bookmarkEditBtn" src="icons/edit_btn.png" width="56" height="56" vspace="7" hspace="5">'+
   337           '<img class="bookmarkEditBtn" src="/bookmarkview/edit_btn.png" width="56" height="56" vspace="7" hspace="5">'+
   319           '<img class="bookmarkDeleteBtn" src="icons/delete_btn.png" width="56" height="56" vspace="7" hspace="5" >'+
   338           '<img class="bookmarkDeleteBtn" src="/bookmarkview/delete_btn.png" width="56" height="56" vspace="7" hspace="5" >'+
   320         '</div>'+
   339         '</div>'+
   321         '<div class="bookmarkItem" style="width:'+_width+'px;">'+
   340         '<div class="bookmarkItem" style="width:'+_width+'px;">'+
   322           '<span class="aTitle">'+bmtitle+'</span>'+
   341           '<span class="aTitle">'+bmtitle+'</span>'+
   323           '<br/>'+
   342           '<br/>'+
   324           '<span class="aUrl">'+bmfullurl+'</span>'+
   343           '<span class="aUrl">'+bmfullurl+'</span>'+
   359                 ul.childNodes[0].focus();
   378                 ul.childNodes[0].focus();
   360                 if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
   379                 if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
   361                     new LongPress(li.id, _longPress, _longPressStarted, 250);
   380                     new LongPress(li.id, _longPress, _longPressStarted, 250);
   362                 else
   381                 else
   363                     new LongPress(li.id, _longPress, _longPressStarted, 550);
   382                     new LongPress(li.id, _longPress, _longPressStarted, 550);
   364                 		
   383                         
   365                 __bookmarkCount++;
   384                 __bookmarkCount++;
   366             }
   385             }
   367         } catch(E) { alert(E); }
   386         } catch(E) {
       
   387               _displayError("Bookmarks unavailable");  // Localize!
       
   388             app.debug("bookmarkView.js:_createBookmarkView: " + E); 
       
   389         }
   368 
   390 
   369         _dragInit();
   391         _dragInit();
   370 }
   392 }
   371 
   393 
   372 function launchBookmarkView()
   394 function launchBookmarkView()