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