Symbian.org/Main.js
author ivanl
Wed, 29 Jul 2009 10:14:37 +0100
changeset 15 5e64ec5b1dfe
parent 13 3a1db8573f1e
child 16 6544cc5386ce
permissions -rw-r--r--
1.0rc11 Fixes feed parsing problems Cleanup of dead code
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
     1
// ////////////////////////////////////////////////////////////////////////////
5
3a3bac500145 Added public domain license notification
ivanl
parents: 4
diff changeset
     2
// Symbian Foundation Example Code
3a3bac500145 Added public domain license notification
ivanl
parents: 4
diff changeset
     3
//
3a3bac500145 Added public domain license notification
ivanl
parents: 4
diff changeset
     4
// This software is in the public domain. No copyright is claimed, and you 
3a3bac500145 Added public domain license notification
ivanl
parents: 4
diff changeset
     5
// may use it for any purpose without license from the Symbian Foundation.
3a3bac500145 Added public domain license notification
ivanl
parents: 4
diff changeset
     6
// No warranty for any purpose is expressed or implied by the authors or
3a3bac500145 Added public domain license notification
ivanl
parents: 4
diff changeset
     7
// the Symbian Foundation. 
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
     8
// ////////////////////////////////////////////////////////////////////////////
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
     9
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    10
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    11
///////////////////////////////////////////////////////////////////////////////
5
3a3bac500145 Added public domain license notification
ivanl
parents: 4
diff changeset
    12
// A widget for accessing developer.symbian.org 
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    13
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    14
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    15
// Reference to the WRTKit user interface manager and main view.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    16
var uiManager;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    17
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    18
// Global settings / URLs and such
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    19
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    20
// Symbian.org web site base URL
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    21
//var symbianOrgBaseUrl = "http://staging.foundationhost.org";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    22
//var symbianOrgBaseUrlSsl = "https://staging.foundationhost.org";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    23
var symbianOrgBaseUrl = "http://developer.symbian.org";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    24
var symbianOrgBaseUrlSsl = "https://developer.symbian.org";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    25
var registrationURL = symbianOrgBaseUrl + "/main/user_profile/register.php";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    26
var blogFeedName = "Symbian Blog";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    27
var blogFeedUrl = "http://blog.symbian.org/feed/";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    28
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    29
// FORUM vars and settings 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    30
var symbianOrgNewThreadUrl = symbianOrgBaseUrl+"/forum/newthread.php?";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    31
var symbianOrgNewReplyUrl = symbianOrgBaseUrl+"/forum/newreply.php?";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    32
var symbianOrgLoginUrl = symbianOrgBaseUrlSsl+"/main/user_profile/login.php";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    33
var symbianOrgLoginUsernameField = "username";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    34
var symbianOrgLoginPasswordField = "password";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    35
var forumUsername = null	;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    36
var forumPassword = null;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    37
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    38
// Feed name, URL etc for forums
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    39
var forumFeedName = "Symbian.org Forums";
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
    40
var forumFeedURL = symbianOrgBaseUrl+ "/forum/external2.php?type=rss2"; //&fulldesc=1&lastpost=1
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    41
var forumsForumSpecQuery = "&forumid=";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    42
var forumFeedUpdateFrequency = -1;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    43
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    44
var forumGroupsUrl = symbianOrgBaseUrl+ "/rss/forum.php?type=groups";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    45
var forumsListUrl = symbianOrgBaseUrl+ "/rss/forum.php?type=forums&group=";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    46
var forumThreadUrl = symbianOrgBaseUrl+ "/rss/forum.php?type=threadmsgs&threadid=";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    47
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    48
// Wiki url etc
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    49
var wikiFeedName = "New on Symbian.org Wiki";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    50
var wikiFeedUrl = symbianOrgBaseUrl+"/wiki/index.php?title=Special:NewPages&feed=rss";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    51
var wikiBaseUrl = symbianOrgBaseUrl+"/wiki/index.php";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    52
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    53
// Update variables
15
5e64ec5b1dfe 1.0rc11
ivanl
parents: 13
diff changeset
    54
var myversion = "1.0rc11";
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    55
var versionWikiPageUrl = wikiBaseUrl + "/Symbian.org_WRT_Widget";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    56
var versionWikiPageString = "Current widget version is [";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    57
var downloadUrl = symbianOrgBaseUrl + "/wiki/images/c/c5/Symbian.org.wgz";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    58
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    59
// UI elements
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    60
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    61
// blog / forum instances
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    62
// all are SOScreen subclasses
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    63
var home;   // home screen
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    64
var blog;   // RSSReader showing blog
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    65
var wiki;   // RSSReader showing wiki
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    66
var bugzila; // RSSReader showing bugzilla feeds
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    67
var forumGroups; // RSSReader showing list of forum groups
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    68
var settings;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    69
var about;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    70
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    71
// currently showing SOScreen
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    72
var currentScreen = null;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    73
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    74
// Controls for the settings view
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    75
var forumUsernameControl;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    76
var forumPasswordControl;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    77
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    78
// Constants for menu item identifiers.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    79
var MENU_ITEM_SETTINGS = 0;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    80
var MENU_ITEM_REFRESH = 1;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    81
var MENU_ITEM_ABOUT = 2;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    82
var MENU_ITEM_CHECK_UPDATE = 3;
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
    83
var MENU_ITEM_LARGER_FONT = 4;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
    84
var MENU_ITEM_SMALLER_FONT = 5;
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    85
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    86
// Flag indicating weather the web site login has been initiated
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    87
var loginInitiated = false;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    88
var loginInitiatedCallback = null;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    89
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    90
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    91
var widgetHomepage = symbianOrgBaseUrl + "/wiki/index.php?title=Symbian.org_WRT_Widget&action=render";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    92
var aboutText = "<strong>Symbian.org "+myversion+"</strong><br>"
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    93
				+ "Symbian.org WRT Widget is a Web Runtime application which allows mobile "
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    94
				+ "access to Symbian Foundation Forums, Blog, Wiki and Bugzilla. <br>"
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    95
				+ "For more information and updates check <div class=FeedItemLink>"
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    96
				+ "<a href=\"JavaScript:void(0)\" onclick=\"openURL('" 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    97
				+ widgetHomepage 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    98
				+ "'); return false;\">"
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
    99
				+" Symbian.org Widget Homepage </a> </div><p>"
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   100
				+ "Credits: Ivan Litovski, Ryan Grentz, James Mentz";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   101
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   102
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   103
var currentFontSize = 14;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   104
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   105
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   106
// Called from the onload event handler to initialize the widget.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   107
function init() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   108
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   109
    // set tab-navigation mode and show softkeys
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   110
    // (only if we are in the WRT environment)
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   111
    if (window.widget) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   112
        widget.setNavigationEnabled(false);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   113
        window.menu.showSoftkeys();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   114
        // create menu
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   115
        var refreshMenuItem = new MenuItem("Refresh", MENU_ITEM_REFRESH);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   116
        refreshMenuItem.onSelect = menuItemSelected;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   117
        menu.append(refreshMenuItem);
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   118
        var settingsMenuItem = new MenuItem("Settings", MENU_ITEM_SETTINGS);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   119
        settingsMenuItem.onSelect = menuItemSelected;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   120
        menu.append(settingsMenuItem);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   121
		var updateMenuItem = new MenuItem("Check for updates", MENU_ITEM_CHECK_UPDATE);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   122
		updateMenuItem.onSelect = menuItemSelected;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   123
		menu.append(updateMenuItem);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   124
		var largerFontMenuItem = new MenuItem("Larger font", MENU_ITEM_LARGER_FONT);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   125
		largerFontMenuItem.onSelect = menuItemSelected;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   126
		menu.append(largerFontMenuItem);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   127
		var smallerFontMenuItem = new MenuItem("Smaller font", MENU_ITEM_SMALLER_FONT);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   128
		smallerFontMenuItem.onSelect = menuItemSelected;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   129
		menu.append(smallerFontMenuItem);
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   130
		var aboutMenuItem = new MenuItem("About", MENU_ITEM_ABOUT);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   131
		aboutMenuItem.onSelect = menuItemSelected;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   132
		menu.append(aboutMenuItem);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   133
    }
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   134
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   135
    // load prefs 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   136
	if (!forumUsername || !forumPassword) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   137
		loadPreferences();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   138
	}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   139
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   140
    // create UI manager
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   141
    uiManager = new UIManager();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   142
    
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   143
	// Create the home view
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   144
	home = new ListView(null, "<img src=logo.png>");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   145
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   146
	// add forums button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   147
	var forumsButton = new NavigationButton(1, "right.gif", "Forums")
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   148
	forumsButton.addEventListener("ActionPerformed", function(){forumGroups.show();});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   149
	home.addControl(forumsButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   150
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   151
	// add blogs button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   152
	var blogsButton = new NavigationButton(2, "right.gif", "Blogs")
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   153
	blogsButton.addEventListener("ActionPerformed", function(){blog.show();});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   154
	home.addControl(blogsButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   155
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   156
	// add wiki button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   157
	var wikiButton = new NavigationButton(3, "right.gif", "Wiki")
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   158
	wikiButton.addEventListener("ActionPerformed", function(){wiki.show();});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   159
	home.addControl(wikiButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   160
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   161
	// add bugzilla button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   162
	var bugzillaButton = new NavigationButton(3, "right.gif", "Bugzilla")
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   163
	bugzillaButton.addEventListener("ActionPerformed", function(){login(function(){bugzilla.show();});});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   164
	home.addControl(bugzillaButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   165
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   166
	// soft keys
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   167
	home.setupSoftKeys = function()  {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   168
	    if (window.widget) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   169
			menu.setRightSoftkeyLabel("Exit", function(){window.close();});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   170
	    }
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   171
	}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   172
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   173
	// create blog screen
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   174
	blog = new RssReader(blogFeedName, blogFeedUrl, null, home, null);
10
07ac2f6a36a9 1.0rc10 Fixes annoyances and buglets in reading forums and blog.
ivanl
parents: 6
diff changeset
   175
	
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   176
	// create wiki screen
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   177
	wiki = new RssReader(wikiFeedName, wikiFeedUrl, new ButtonFeedPresenter(null), home, null);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   178
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   179
	// wiki feed contains full article text for many articles 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   180
	// this takes up a _lot_ of memory. Also we don't 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   181
	// really want the full text at the stage when we want a list
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   182
	// of recent articles.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   183
	wiki.ignoreContent = true;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   184
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   185
	wiki.maxItems = 20;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   186
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   187
	bugzilla = new BugzillaSearchPanel(home);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   188
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   189
	// create the top level forums screen - list of forum groups
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   190
	// forumsGroup, forum and thread screens are dynamically generated by forumGroups
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   191
	forumGroups = new RssReader("Forums", forumGroupsUrl, new ForumGroupsFeedPresenter(null), home, forumGroupsResponseParser);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   192
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   193
    // create settings view
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   194
    settings = new ListView(null, createCaption("Settings"));
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   195
	settings.previousView = home;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   196
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   197
	var settingsIntroLabel = new Label(null, null, 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   198
		"In order to access all site features, you must login. "
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   199
		+ "If you have not registered yet, please click the 'Register' button below.");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   200
		
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   201
	settings.addControl(settingsIntroLabel);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   202
    // forum username control
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   203
    forumUsernameControl = new TextField('forumUsername', "Symbian.org username", forumUsername?forumUsername:"");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   204
    settings.addControl(forumUsernameControl);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   205
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   206
    // forum password control
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   207
    forumPasswordControl = new TextField('forumPassword', "Symbian.org password", forumPassword?forumPassword:"", true);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   208
    settings.addControl(forumPasswordControl);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   209
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   210
    // save settings button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   211
    settingsSaveButton = new FormButton(null, "Save");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   212
    settingsSaveButton.addEventListener("ActionPerformed", saveSettingsClicked);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   213
    settings.addControl(settingsSaveButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   214
    
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   215
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   216
    // cancel settings button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   217
    var settingsRegisterButton = new FormButton(null, "Register");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   218
    settingsRegisterButton.addEventListener("ActionPerformed", function(){openURL(registrationURL);});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   219
    settings.addControl(settingsRegisterButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   220
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   221
    // cancel settings button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   222
    settingsCancelButton = new FormButton(null, "Cancel");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   223
    settingsCancelButton.addEventListener("ActionPerformed", function(){settings.goBack();});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   224
    settings.addControl(settingsCancelButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   225
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   226
	//Create about view
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   227
	about = new ListView(null, createCaption("Symbian.org"));
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   228
    about.previousView = home;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   229
	// About label control
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   230
	aboutLabel = new ContentPanel(null, null, null, true);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   231
	aboutLabel.setCaption("About this Widget");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   232
	aboutLabel.setContent(aboutText);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   233
	aboutLabel.setExpanded(true);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   234
	about.addControl(aboutLabel);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   235
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   236
	home.show();
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   237
	setDefaultFontSizeForScreenSize();
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   238
	login(null);	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   239
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   240
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   241
// Callback for when menu items are selected.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   242
function menuItemSelected(id) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   243
	var currentView = uiManager.getView();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   244
    switch (id) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   245
        case MENU_ITEM_SETTINGS:
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   246
			if ( currentView == settings || currentView == about) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   247
				settings.previousView = home;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   248
			} else {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   249
				settings.previousView = currentView;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   250
			}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   251
			uiManager.hideNotification();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   252
            settings.show();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   253
            break;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   254
        case MENU_ITEM_REFRESH:
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   255
            currentView.update(true);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   256
            break;
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   257
        case MENU_ITEM_LARGER_FONT:
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   258
            increaseFontSize();
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   259
            break;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   260
        case MENU_ITEM_SMALLER_FONT:
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   261
            decreaseFontSize();
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   262
            break;
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   263
        case MENU_ITEM_CHECK_UPDATE:
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   264
            checkForUpdates();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   265
            break;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   266
		case MENU_ITEM_ABOUT:
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   267
			if ( currentView == settings || currentView == about) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   268
				about.previousView = home;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   269
			} else {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   270
				about.previousView = currentView;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   271
			}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   272
			about.show();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   273
			break;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   274
    }
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   275
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   276
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   277
// Loads widget preferences.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   278
function loadPreferences() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   279
    if (window.widget) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   280
        // load settings from widget preferences store
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   281
        forumUsername = widget.preferenceForKey("forumUsername");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   282
        forumPassword = widget.preferenceForKey("forumPassword");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   283
    }
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   284
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   285
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   286
// Loads widget preferences.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   287
function savePreferences() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   288
    if (window.widget) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   289
        // save settings in widget preferences store
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   290
        widget.setPreferenceForKey(forumUsername, "forumUsername");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   291
        widget.setPreferenceForKey(forumPassword, "forumPassword");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   292
    }
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   293
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   294
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   295
// Callback for settings view save button.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   296
function saveSettingsClicked() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   297
	forumUsername = forumUsernameControl.getText();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   298
	forumPassword = forumPasswordControl.getText();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   299
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   300
    // save preferences
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   301
    savePreferences();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   302
    
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   303
	settings.goBack();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   304
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   305
	if ( loginInitiated ) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   306
		login(loginInitiatedCallback);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   307
	}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   308
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   309
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   310
// Opens a URL in a separate browser window
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   311
function openURL(url) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   312
    if (window.widget) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   313
        // in WRT
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   314
        widget.openURL(url);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   315
    } else {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   316
        // outside WRT
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   317
        window.open(url, "NewWindow");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   318
    }
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   319
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   320
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   321
var updatePageAjax = null;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   322
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   323
function checkForUpdates() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   324
	uiManager.showNotification(-1, "wait", "Checking for updates...", -1);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   325
	updatePageAjax = new Ajax();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   326
	updatePageAjax.onreadystatechange = checkForUpdatesStage2;
3
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   327
	updatePageAjax.open('GET', nocache(versionWikiPageUrl), true);
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   328
	updatePageAjax.send(null);	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   329
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   330
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   331
function checkForUpdatesStage2() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   332
    if (updatePageAjax.readyState == 4) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   333
		// extract version number
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   334
		var content = updatePageAjax.responseText;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   335
		var ind = content.indexOf(versionWikiPageString);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   336
		if ( ind == -1 ) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   337
			uiManager.showNotification(3000, "warning", "Update failed, check manually.");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   338
			return;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   339
		}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   340
		ind += versionWikiPageString.length;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   341
		var ind2 = content.indexOf("]",ind);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   342
		if ( ind2 == -1 || (ind2-ind) > 10 ) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   343
			uiManager.showNotification(3000, "warning", "Update failed, check manually.");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   344
			return;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   345
		}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   346
		var version = content.substring(ind,ind2);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   347
		// compare to this version
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   348
		if ( version != myversion ) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   349
			var answer = confirm("Install new version " + version + "?");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   350
			if (answer) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   351
				// ok, we have the update
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   352
				uiManager.hideNotification();
3
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   353
				openURL(nocache(downloadUrl));
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   354
				setTimeout(function () {window.close();}, 1000);
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   355
			} else {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   356
			uiManager.showNotification(3000, "info", "Update cancelled.");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   357
			}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   358
		} else {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   359
			uiManager.showNotification(3000, "info", "Up to date!");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   360
		}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   361
	}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   362
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   363
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   364
function createCaption(caption) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   365
	if (caption.length > 30) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   366
		caption = caption.substring(0, 30) + "...";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   367
	}
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   368
	return  "<table border=0><tr><td style=\"{vertical-align:middle}\">"
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   369
		+ "<img src=titlebar.png style=\"{vertical-align:middle}\" >"
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   370
		+ "</td><td style=\"{vertical-align:middle}\"> " 
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   371
		+ "<p class=ListViewCaptionText>" + caption +"</p></td></tr></table>";
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   372
}
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   373
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   374
function setDefaultFontSizeForScreenSize(){
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   375
	// first check if there is a preference present
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   376
    if (window.widget) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   377
		var saved = widget.preferenceForKey("fontsize");
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   378
		if ( widget.preferenceForKey("fontsize") ) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   379
			setCssBodyFontSize(parseInt(saved));
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   380
		}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   381
		else {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   382
			// no preference available, check screen size
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   383
			if (window.screen.width > 400 || window.screen.height > 400) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   384
				// hi res screen, use large font
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   385
				setCssBodyFontSize(18);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   386
			}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   387
			else {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   388
				// lo res screen, use small font
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   389
				setCssBodyFontSize(14);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   390
			}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   391
		}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   392
	}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   393
}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   394
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   395
function increaseFontSize(){
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   396
    if (window.widget) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   397
		setCssBodyFontSize(currentFontSize + 2);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   398
	}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   399
}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   400
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   401
function decreaseFontSize(){
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   402
    if (window.widget) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   403
		if (currentFontSize > 4) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   404
			setCssBodyFontSize(currentFontSize - 2);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   405
		}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   406
	}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   407
}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   408
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   409
function setCssBodyFontSize(size) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   410
    if (window.widget) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   411
		currentFontSize = size;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   412
		var sizestring = "" + size;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   413
		document.body.style.fontSize = sizestring + "px";
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   414
		widget.setPreferenceForKey(sizestring, "fontsize");
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   415
	}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   416
}
3
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   417
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   418
function nocache(url) {
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   419
    if (url.indexOf("?") == -1) {
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   420
        url += "?";
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   421
    } else {
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   422
        url += "&";
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   423
    }
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   424
    url += "nocache=" + (new Date().getTime());
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   425
	return url;
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   426
}