ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkDialog.js
changeset 12 afcd8e6d025b
parent 3 0954f5dd2cd0
child 14 6aeb7a756187
--- a/ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkDialog.js	Wed Sep 01 13:56:21 2010 -0400
+++ b/ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkDialog.js	Fri Sep 17 12:11:40 2010 -0400
@@ -1,12 +1,33 @@
 var _dailogFlag = 0;
 var _OriginalTitle = 0;
 
+document.getElementsByClassName = function(class_name) {
+    var docList = this.all || this.getElementsByTagName('*');
+    var matchArray = new Array();
+
+    /*Create a regular expression object for class*/
+    var re = new RegExp("(?:^|\\s)"+class_name+"(?:\\s|$)");
+    for (var i = 0; i < docList.length; i++) {
+        if (re.test(docList[i].className) ) {
+            matchArray[matchArray.length] = docList[i];
+        }
+    }
+
+	return matchArray;
+}
+
 function bookmarkDialog()
 {
-   this.write = writeBookmarkDialog;
+    this.write = writeBookmarkDialog;
+
+    // do setup
+    this.write();
 
-   // do setup
-    this.write();
+    if (app.serviceFramework() == "mobility_service_framework")
+    {
+        document.getElementsByClassName("bookmarkCheckboxTextLabel")[0].style.display = "inline";
+    }
+    
 }
 
 function writeBookmarkDialog()
@@ -17,6 +38,8 @@
                    '<div class="bookmarkTextLabel" id="bookmarkDialogTitle">Add Bookmark</div>'+
                    '<div class="GinebraSnippet" id="BookmarkDialogTitleId" data-GinebraNativeClass="TextEditSnippet" data-GinebraVisible="true"></div>'+ 
                    '<div class="GinebraSnippet" id="BookmarkDialogUrlId" data-GinebraNativeClass="TextEditSnippet" data-GinebraVisible="true"></div>'+
+                   '<div class="bookmarkCheckboxTextLabel"><input type="checkbox" id="bookmarkCheckboxId"/>Add shortcut to home screen</div>'+
+                   '<div><input type="hidden" id="BookmarkDialogBookmarkId" name="BookmarkDialogBookmarkId" value=""/></div>'+
                    '<div class="controls">' +
                       '<div type="button"  onmouseup="bookmarkOperation();" class="bookmarkDoneButton"></div>'+     
                        '<div type="button" onmouseup="bookmarkDialogIdHide();" class="bookmarkCancelButton"></div>'+  
@@ -30,9 +53,17 @@
     window.snippets.BookmarkDialogId.hide();
     snippets.BookmarkViewToolbarId.enabled = true;
     snippets.WebViewToolbarId.enabled = true;
+    
+    if (app.serviceFramework() == "mobility_service_framework") 
+    {
+        if (document.getElementById("bookmarkCheckboxId").checked)
+        {
+            document.getElementById("bookmarkCheckboxId").checked = false;
+        }
+    }    
 }
 
-function launchBookmarkDialog(bmtitle, bmurl, dialogFlag)
+function launchBookmarkDialog(bmtitle, bmurl, bmid, dialogFlag)
 {
     try{
         snippets.BookmarkViewToolbarId.enabled = false;
@@ -66,7 +97,8 @@
         if (bmurl == "")
             window.snippets.BookmarkDialogUrlId.text = "Url";
         else
-           window.snippets.BookmarkDialogUrlId.text = bmurl; 
+           window.snippets.BookmarkDialogUrlId.text = bmurl;
+        document.getElementById('BookmarkDialogBookmarkId').value = bmid;
 
         window.snippets.BookmarkDialogId.show(false);
 
@@ -76,7 +108,6 @@
 
 }
 
-
 function bookmarkOperation()
 {
     snippets.BookmarkViewToolbarId.enabled = true;
@@ -87,13 +118,28 @@
     //Hide the dialog
     window.snippets.BookmarkDialogId.hide();
     //Update the database
-    var errCode;
+    var errCode = 0;
+    
+    if (app.serviceFramework() == "mobility_service_framework") 
+    {
+        if (document.getElementById("bookmarkCheckboxId").checked)
+        {
+            errCode = window.hsBookmarkPublishClient.addWidget(bmtitle, bmurl);
+            document.getElementById("bookmarkCheckboxId").checked = false;
+        }
+    } 
 
-    if (_dailogFlag == 0)
-       errCode = window.bookmarksManager.addBookmark(bmtitle,bmurl);
-    else if (_dailogFlag == 1)
-       errCode = window.bookmarksManager.modifyBookmark(_OriginalTitle,bmtitle,bmurl);
-    
+    if (_dailogFlag == 0) {
+        var bmid = window.bookmarksController.addBookmark(bmtitle,bmurl);
+        if (bmid < 0) {
+            alert("Unknown error adding bookmark");
+            return;
+        }
+    }
+    else if (_dailogFlag == 1) {
+        var bmid = document.getElementById('BookmarkDialogBookmarkId').value;
+        errCode = window.bookmarksController.modifyBookmark(bmid,bmtitle,bmurl);
+    }
     
     if (errCode == -3){
 	     alert("Bookmark Url Is Empty");
@@ -133,6 +179,6 @@
 }
 
 
-function showBookmarkEditDialog(bmtitle,bmurl) {
-    launchBookmarkDialog(bmtitle,bmurl,1);
+function showBookmarkEditDialog(bmtitle,bmurl,id) {
+    launchBookmarkDialog(bmtitle,bmurl,id,1);
 }