ginebra2/chrome/bedrockchrome/bookmarkview.superpage/bookmarkDialog.js
changeset 16 3c88a81ff781
parent 14 6aeb7a756187
equal deleted inserted replaced
14:6aeb7a756187 16:3c88a81ff781
     1 var _dailogFlag = 0;
     1 var _dialogFlag = 0;
     2 var _OriginalTitle = 0;
     2 var _OriginalTitle = 0;
       
     3 var selected_src = "/bookmarkview/yes_selected.png";
       
     4 var deselected_src = "/bookmarkview/yes_deselected.png";
     3 
     5 
     4 document.getElementsByClassName = function(class_name) {
     6 document.getElementsByClassName = function(class_name) {
     5     var docList = this.all || this.getElementsByTagName('*');
     7     var docList = this.all || this.getElementsByTagName('*');
     6     var matchArray = new Array();
     8     var matchArray = new Array();
     7 
     9 
    21     this.write = writeBookmarkDialog;
    23     this.write = writeBookmarkDialog;
    22 
    24 
    23     // do setup
    25     // do setup
    24     this.write();
    26     this.write();
    25 
    27 
    26     if (app.serviceFramework() == "mobility_service_framework")
    28     if (app.serviceFramework() == "mobility_service_framework") {
    27     {
    29         $("bookmarkCheckboxTextLabelContainer").css("display", "inline");
    28         document.getElementsByClassName("bookmarkCheckboxTextLabel")[0].style.display = "inline";
    30     }
    29     }
    31 
    30     
    32     chrome.chromeComplete.connect(createDelegate(this,
       
    33         function() {
       
    34             var snippet = window.snippets["BookmarkDialogId"];
       
    35             chrome.aspectChanged.connect(createDelegate(this,
       
    36                     function(a) {
       
    37                         centerBookmarkDialog();
       
    38                     })
       
    39             );
       
    40         })
       
    41     );
    31 }
    42 }
    32 
    43 
    33 function writeBookmarkDialog()
    44 function writeBookmarkDialog()
    34 {
    45 {
    35     var html =
    46     var html =
    36                '<div class="top"></div>'+
    47                '<div class="top"></div>'+
    37                 '<div class="body">'+
    48                 '<div class="body">'+
    38                    '<div class="bookmarkTextLabel" id="bookmarkDialogTitle">Add Bookmark</div>'+
    49                    '<div class="bookmarkTextLabel" id="bookmarkDialogTitle">Add Bookmark</div>'+
    39                    '<div class="GinebraSnippet" id="BookmarkDialogTitleId" data-GinebraNativeClass="TextEditSnippet" data-GinebraVisible="true"></div>'+ 
    50                    '<div class="GinebraSnippet" id="BookmarkDialogTitleId" data-GinebraNativeClass="TextEditSnippet" data-GinebraVisible="true"></div>'+ 
    40                    '<div class="GinebraSnippet" id="BookmarkDialogUrlId" data-GinebraNativeClass="TextEditSnippet" data-GinebraVisible="true"></div>'+
    51                    '<div class="GinebraSnippet" id="BookmarkDialogUrlId" data-GinebraNativeClass="TextEditSnippet" data-GinebraVisible="true"></div>'+
    41                    '<div class="bookmarkCheckboxTextLabel"><input type="checkbox" id="bookmarkCheckboxId"/>Add shortcut to home screen</div>'+
    52                    '<div class="bookmarkCheckboxTextLabelContainer">' +
    42                    '<div><input type="hidden" id="BookmarkDialogBookmarkId" name="BookmarkDialogBookmarkId" value=""/></div>'+
    53                    '	<input style="vertical-align:middle;" type="image" src="' + deselected_src + '" id="bookmarkCheckboxId" />' +
       
    54                    '	<label id="bookmarkCheckboxTextLabel">Add shortcut to home screen</label>' +
       
    55                    '</div>'+
       
    56                    '<div>' + 
       
    57                    '<input type="hidden" id="BookmarkDialogBookmarkId" name="BookmarkDialogBookmarkId" value=""/></div>'+
    43                    '<div class="controls">' +
    58                    '<div class="controls">' +
    44                       '<div type="button"  onmouseup="bookmarkOperation();" class="bookmarkDoneButton"></div>'+     
    59                    '	<div type="button"  onmouseup="bookmarkOperation();" class="bookmarkDoneButton"></div>'+     
    45                        '<div type="button" onmouseup="bookmarkDialogIdHide();" class="bookmarkCancelButton"></div>'+  
    60                    '	<div type="button" onmouseup="bookmarkDialogIdHide();" class="bookmarkCancelButton"></div>'+  
    46                     '</div>'+ /*controls*/
    61                    '</div>'+ /*controls*/
    47                 '</div>'+  /*body*/
    62                 '</div>'+  /*body*/
    48                 '<div class="bottom"></div>';
    63                 '<div class="bottom"></div>';
    49   document.write(html);
    64     document.write(html);
       
    65     $('#bookmarkCheckboxId').click(function() {
       
    66     	toggleCheckbox($(this));
       
    67     });
       
    68    
       
    69     $('#bookmarkCheckboxTextLabel').click(function() {
       
    70     	toggleCheckbox($('#bookmarkCheckboxId'));
       
    71     });
       
    72 }
       
    73 
       
    74 function toggleCheckbox(elem) {
       
    75     img_src = elem.getAttribute('src');
       
    76     if ( img_src == deselected_src ) {
       
    77 
       
    78         elem.src = selected_src;
       
    79 
       
    80     } else {
       
    81 
       
    82         elem.src = deselected_src;
       
    83 
       
    84     }
    50 }
    85 }
    51 
    86 
    52 function bookmarkDialogIdHide(){
    87 function bookmarkDialogIdHide(){
    53     window.snippets.BookmarkDialogId.hide();
    88     window.snippets.BookmarkDialogId.hide();
    54     snippets.BookmarkViewToolbarId.enabled = true;
    89     snippets.BookmarkViewToolbarId.enabled = true;
    55     snippets.WebViewToolbarId.enabled = true;
    90     snippets.WebViewToolbarId.enabled = true;
    56     
    91     
    57     if (app.serviceFramework() == "mobility_service_framework") 
    92     if (app.serviceFramework() == "mobility_service_framework") 
    58     {
    93     {
    59         if (document.getElementById("bookmarkCheckboxId").checked)
    94         elem = $("#bookmarkCheckboxId");
       
    95         if (elem)
    60         {
    96         {
    61             document.getElementById("bookmarkCheckboxId").checked = false;
    97             if ( elem.src == selected_src )
       
    98             {
       
    99                 elem.src = deselected_src;
       
   100             }
    62         }
   101         }
    63     }    
   102     }    
    64 }
   103 }
    65 
   104 
    66 function launchBookmarkDialog(bmtitle, bmurl, bmid, dialogFlag)
   105 function launchBookmarkDialog(bmtitle, bmurl, bmid, dialogFlag)
    67 {
   106 {
    68     try{
   107     try{
    69         snippets.BookmarkViewToolbarId.enabled = false;
   108         snippets.BookmarkViewToolbarId.enabled = false;
       
   109         snippets.BookmarkDialogId.zValue = 100;
    70         snippets.WebViewToolbarId.enabled = false;
   110         snippets.WebViewToolbarId.enabled = false;
    71 
   111 
    72         if (dialogFlag == 0) {
   112         if (dialogFlag == 0) {
    73             if (app.serviceFramework() == "mobility_service_framework")
   113             if (app.serviceFramework() == "mobility_service_framework") {
    74             {
   114                 $(".bookmarkCheckboxTextLabelContainer").css("display", "inline"); 
    75                 document.getElementsByClassName("bookmarkCheckboxTextLabel")[0].style.display = "inline"; 
       
    76             }
   115             }
    77             var dlgTitle = document.getElementById("bookmarkDialogTitle");
   116             var dlgTitle = $("#bookmarkDialogTitle");
    78             dlgTitle.firstChild.nodeValue= window.localeDelegate.translateText("txt_browser_input_dial_add_bm");
   117             dlgTitle.text(window.localeDelegate.translateText("txt_browser_input_dial_add_bm"));
    79             var chkboxTitle = document.getElementsByClassName("bookmarkCheckboxTextLabel")[0];
   118             var chkboxTitle = $("#bookmarkCheckboxTextLabel");
    80             chkboxTitle.firstChild.nodeValue= window.localeDelegate.translateText("txt_browser_bookmarks_also_add_to_home_screen");
   119             chkboxTitle.val(window.localeDelegate.translateText("txt_browser_bookmarks_also_add_to_home_screen"));
    81         }
   120         }
    82         else if (dialogFlag == 1) {
   121         else if (dialogFlag == 1) {
    83              document.getElementsByClassName("bookmarkCheckboxTextLabel")[0].style.display = "none";
   122              $("bookmarkCheckboxTextLabelContainer").css("display", "none");
    84              var dlgTitle = document.getElementById("bookmarkDialogTitle");
   123              var dlgTitle = $("#bookmarkDialogTitle");
    85              dlgTitle.firstChild.nodeValue= window.localeDelegate.translateText("txt_browser_input_dial_edit_bm");
   124              dlgTitle.text(window.localeDelegate.translateText("txt_browser_input_dial_edit_bm"));
    86         }
   125         }
    87        
   126        
    88         _dailogFlag = dialogFlag;
   127         _dialogFlag = dialogFlag;
    89         _OriginalTitle = bmtitle;
   128         _OriginalTitle = bmtitle;
    90         window.snippets.BookmarkDialogTitleId.lostFocus.connect(titleFieldLostFocus);
   129         window.snippets.BookmarkDialogTitleId.lostFocus.connect(titleFieldLostFocus);
    91         window.snippets.BookmarkDialogUrlId.lostFocus.connect(urlFieldLostFocus);
   130         window.snippets.BookmarkDialogUrlId.lostFocus.connect(urlFieldLostFocus);
    92         window.snippets.BookmarkDialogTitleId.gainedFocus.connect(titleFieldGainedFocus);
   131         window.snippets.BookmarkDialogTitleId.gainedFocus.connect(titleFieldGainedFocus);
    93         window.snippets.BookmarkDialogUrlId.gainedFocus.connect(urlFieldGainedFocus);
   132         window.snippets.BookmarkDialogUrlId.gainedFocus.connect(urlFieldGainedFocus);
   105             window.snippets.BookmarkDialogUrlId.text = "Url";
   144             window.snippets.BookmarkDialogUrlId.text = "Url";
   106         else
   145         else
   107            window.snippets.BookmarkDialogUrlId.text = bmurl;
   146            window.snippets.BookmarkDialogUrlId.text = bmurl;
   108         document.getElementById('BookmarkDialogBookmarkId').value = bmid;
   147         document.getElementById('BookmarkDialogBookmarkId').value = bmid;
   109 
   148 
       
   149         centerBookmarkDialog();
       
   150 
   110         window.snippets.BookmarkDialogId.show(false);
   151         window.snippets.BookmarkDialogId.show(false);
   111 
       
   112         window.snippets.BookmarkDialogTitleId.selectAll();
       
   113         
   152         
   114        }catch(e){ alert(e); }
   153        }catch(e){ alert(e); }
   115 
   154 
       
   155 }
       
   156 
       
   157 function centerBookmarkDialog() {
       
   158         
       
   159         var statusBarHeight = window.snippets.StatusBarChromeId.visible ? window.snippets.StatusBarChromeId.geometry.height : 0;
       
   160         
       
   161         var snippet = window.snippets["BookmarkDialogId"];
       
   162         var x = (window.chrome.displaySize.width - snippet.geometry.width) / 2;
       
   163         
       
   164         // Center the menu in the space between status bar and tool bar
       
   165         var y = (window.chrome.displaySize.height - statusBarHeight - window.snippets.WebViewToolbarId.geometry.height - document.getElementById("BookmarkDialogId").offsetHeight)/2;
       
   166         snippet.setPosition(x, (y+statusBarHeight));
   116 }
   167 }
   117 
   168 
   118 function bookmarkOperation()
   169 function bookmarkOperation()
   119 {
   170 {
   120     snippets.BookmarkViewToolbarId.enabled = true;
   171     snippets.BookmarkViewToolbarId.enabled = true;
   125     //Hide the dialog
   176     //Hide the dialog
   126     window.snippets.BookmarkDialogId.hide();
   177     window.snippets.BookmarkDialogId.hide();
   127     //Update the database
   178     //Update the database
   128     var errCode = 0;
   179     var errCode = 0;
   129 
   180 
   130     if (_dailogFlag == 0) {
   181     if (_dialogFlag == 0) {
   131         var bmid = window.bookmarksController.addBookmark(bmtitle,bmurl);
   182         var bmid = window.bookmarksController.addBookmark(bmtitle,bmurl);
   132         if (bmid < 0) {
   183         if (bmid < 0) {
   133             alert("Unknown error adding bookmark");
   184             alert("Unknown error adding bookmark");
   134             return;
   185             return;
   135         }
   186         }
   136         if (app.serviceFramework() == "mobility_service_framework") 
   187         if (app.serviceFramework() == "mobility_service_framework") 
   137         {
   188         {
   138             if (document.getElementById("bookmarkCheckboxId").checked)
   189             elem = document.getElementById("bookmarkCheckboxId");
       
   190             if (elem)
   139             {
   191             {
   140                 errCode = window.hsBookmarkPublishClient.addWidget(bmtitle, bmurl);
   192                 if ( elem.src == selected_src )
   141                 document.getElementById("bookmarkCheckboxId").checked = false;
   193                 {
       
   194                     errCode = window.hsBookmarkPublishClient.addWidget(bmtitle, bmurl);
       
   195                     elem.src = deselected_src;
       
   196                 }
   142             }
   197             }
   143         } 
   198         } 
   144     }
   199     }
   145     else if (_dailogFlag == 1) {
   200     else if (_dialogFlag == 1) {
   146         var bmid = document.getElementById('BookmarkDialogBookmarkId').value;
   201         var bmid = document.getElementById('BookmarkDialogBookmarkId').value;
   147         errCode = window.bookmarksController.modifyBookmark(bmid,bmtitle,bmurl);
   202         errCode = window.bookmarksController.modifyBookmark(bmid,bmtitle,bmurl);
   148     }
   203     }
   149     
   204     
   150     if (errCode == -3){
   205     if (errCode == -3){
   174 }
   229 }
   175 
   230 
   176 
   231 
   177 function titleFieldGainedFocus()
   232 function titleFieldGainedFocus()
   178 {
   233 {
   179     window.snippets.BookmarkDialogUrlId.unselect();
   234     //window.snippets.BookmarkDialogUrlId.unselect();
   180 }
   235 }
   181 
   236 
   182 function urlFieldGainedFocus()
   237 function urlFieldGainedFocus()
   183 {
   238 {
   184     window.snippets.BookmarkDialogTitleId.unselect();
   239     //window.snippets.BookmarkDialogTitleId.unselect();
   185 }
   240 }
   186 
   241 
   187 
   242 
   188 function showBookmarkEditDialog(bmtitle,bmurl,id) {
   243 function showBookmarkEditDialog(bmtitle,bmurl,id) {
   189     launchBookmarkDialog(bmtitle,bmurl,id,1);
   244     launchBookmarkDialog(bmtitle,bmurl,id,1);