Symbian.org/Main.js
author ivanl
Fri, 19 Mar 2010 11:03:38 +0000
changeset 21 f7a5a40d5bc4
parent 18 b73e6caf0031
permissions -rw-r--r--
1.0rc17 Fix blog feed
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";
21
f7a5a40d5bc4 1.0rc17 Fix blog feed
ivanl
parents: 18
diff changeset
    27
var blogFeedUrl = "http://blog.symbian.org/feed/";
0
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";
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
    35
var forumUsername = null;
0
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
21
f7a5a40d5bc4 1.0rc17 Fix blog feed
ivanl
parents: 18
diff changeset
    54
var myversion = "1.0rc17";
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.
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
    79
var MENU_ITEM_HOME = 0;
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
    80
var MENU_ITEM_SETTINGS = 1;
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
    81
var MENU_ITEM_REFRESH = 2;
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
    82
var MENU_ITEM_ABOUT = 3;
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
    83
var MENU_ITEM_CHECK_UPDATE = 4;
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
    84
var MENU_ITEM_LARGER_FONT = 5;
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
    85
var MENU_ITEM_SMALLER_FONT = 6;
0
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
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   105
// Called from the onload event handler to initialize the widget.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   106
function init() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   107
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   108
    // set tab-navigation mode and show softkeys
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   109
    // (only if we are in the WRT environment)
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   110
    if (window.widget) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   111
        widget.setNavigationEnabled(false);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   112
        window.menu.showSoftkeys();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   113
        // create menu
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   114
        var homeMenuItem = new MenuItem("Home", MENU_ITEM_HOME);
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   115
        homeMenuItem.onSelect = menuItemSelected;
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   116
        menu.append(homeMenuItem);
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   117
        var refreshMenuItem = new MenuItem("Refresh", MENU_ITEM_REFRESH);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   118
        refreshMenuItem.onSelect = menuItemSelected;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   119
        menu.append(refreshMenuItem);
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   120
        var settingsMenuItem = new MenuItem("Settings", MENU_ITEM_SETTINGS);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   121
        settingsMenuItem.onSelect = menuItemSelected;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   122
        menu.append(settingsMenuItem);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   123
		var updateMenuItem = new MenuItem("Check for updates", MENU_ITEM_CHECK_UPDATE);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   124
		updateMenuItem.onSelect = menuItemSelected;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   125
		menu.append(updateMenuItem);
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   126
		var largerFontMenuItem = new MenuItem("Large font", MENU_ITEM_LARGER_FONT);
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   127
		largerFontMenuItem.onSelect = menuItemSelected;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   128
		menu.append(largerFontMenuItem);
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   129
		var smallerFontMenuItem = new MenuItem("Small font", MENU_ITEM_SMALLER_FONT);
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   130
		smallerFontMenuItem.onSelect = menuItemSelected;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   131
		menu.append(smallerFontMenuItem);
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   132
		var aboutMenuItem = new MenuItem("About", MENU_ITEM_ABOUT);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   133
		aboutMenuItem.onSelect = menuItemSelected;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   134
		menu.append(aboutMenuItem);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   135
    }
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   136
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   137
    // load prefs 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   138
	if (!forumUsername || !forumPassword) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   139
		loadPreferences();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   140
	}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   141
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   142
    // create UI manager
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   143
    uiManager = new UIManager();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   144
    
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   145
	// Create the home view
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   146
	home = new ListView(null, "<img src=logo.png>");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   147
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   148
	// add forums button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   149
	var forumsButton = new NavigationButton(1, "right.gif", "Forums")
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   150
	forumsButton.addEventListener("ActionPerformed", function(){forumGroups.show();});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   151
	home.addControl(forumsButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   152
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   153
	// add blogs button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   154
	var blogsButton = new NavigationButton(2, "right.gif", "Blogs")
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   155
	blogsButton.addEventListener("ActionPerformed", function(){blog.show();});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   156
	home.addControl(blogsButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   157
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   158
	// add wiki button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   159
	var wikiButton = new NavigationButton(3, "right.gif", "Wiki")
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   160
	wikiButton.addEventListener("ActionPerformed", function(){wiki.show();});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   161
	home.addControl(wikiButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   162
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   163
	// add bugzilla button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   164
	var bugzillaButton = new NavigationButton(3, "right.gif", "Bugzilla")
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   165
	bugzillaButton.addEventListener("ActionPerformed", function(){login(function(){bugzilla.show();});});
16
6544cc5386ce Adaptation to new login mechanism.
ivanl
parents: 15
diff changeset
   166
//	bugzillaButton.addEventListener("ActionPerformed", function(){bugzilla.show();});
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   167
	home.addControl(bugzillaButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   168
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   169
	// soft keys
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   170
	home.setupSoftKeys = function()  {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   171
	    if (window.widget) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   172
			menu.setRightSoftkeyLabel("Exit", function(){window.close();});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   173
	    }
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   174
	}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   175
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   176
	// create blog screen
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   177
	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
   178
	
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   179
	// create wiki screen
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   180
	wiki = new WikiHome(home);// new RssReader(wikiFeedName, wikiFeedUrl, new ButtonFeedPresenter(null), home, null);
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   181
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   182
	// wiki feed contains full article text for many articles 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   183
	// this takes up a _lot_ of memory. Also we don't 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   184
	// 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
   185
	// of recent articles.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   186
	wiki.ignoreContent = true;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   187
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   188
	wiki.maxItems = 20;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   189
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   190
	bugzilla = new BugzillaSearchPanel(home);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   191
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   192
	// create the top level forums screen - list of forum groups
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   193
	// forumsGroup, forum and thread screens are dynamically generated by forumGroups
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   194
	forumGroups = new RssReader("Forums", forumGroupsUrl, new ForumGroupsFeedPresenter(null), home, forumGroupsResponseParser);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   195
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   196
    // create settings view
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   197
    settings = new ListView(null, createCaption("Settings"));
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   198
	settings.previousView = home;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   199
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   200
	var settingsIntroLabel = new Label(null, null, 
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   201
		"In order to access all site features, you must login. "
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   202
		+ "If you have not registered yet, please click the 'Register' button below.");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   203
		
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   204
	settings.addControl(settingsIntroLabel);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   205
    // forum username control
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   206
    forumUsernameControl = new TextField('forumUsername', "Symbian.org username", forumUsername?forumUsername:"");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   207
    settings.addControl(forumUsernameControl);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   208
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   209
    // forum password control
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   210
    forumPasswordControl = new TextField('forumPassword', "Symbian.org password", forumPassword?forumPassword:"", true);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   211
    settings.addControl(forumPasswordControl);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   212
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   213
    // save settings button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   214
    settingsSaveButton = new FormButton(null, "Save");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   215
    settingsSaveButton.addEventListener("ActionPerformed", saveSettingsClicked);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   216
    settings.addControl(settingsSaveButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   217
    
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   218
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   219
    // cancel settings button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   220
    var settingsRegisterButton = new FormButton(null, "Register");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   221
    settingsRegisterButton.addEventListener("ActionPerformed", function(){openURL(registrationURL);});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   222
    settings.addControl(settingsRegisterButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   223
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   224
    // cancel settings button
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   225
    settingsCancelButton = new FormButton(null, "Cancel");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   226
    settingsCancelButton.addEventListener("ActionPerformed", function(){settings.goBack();});
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   227
    settings.addControl(settingsCancelButton);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   228
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   229
	//Create about view
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   230
	about = new ListView(null, createCaption("Symbian.org"));
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   231
    about.previousView = home;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   232
	// About label control
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   233
	aboutLabel = new ContentPanel(null, null, null, true);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   234
	aboutLabel.setCaption("About this Widget");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   235
	aboutLabel.setContent(aboutText);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   236
	aboutLabel.setExpanded(true);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   237
	about.addControl(aboutLabel);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   238
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   239
	home.show();
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   240
	setDefaultFontSizeForScreenSize();
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   241
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   242
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   243
// Callback for when menu items are selected.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   244
function menuItemSelected(id) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   245
	var currentView = uiManager.getView();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   246
    switch (id) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   247
        case MENU_ITEM_SETTINGS:
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   248
			if ( currentView == settings || currentView == about) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   249
				settings.previousView = home;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   250
			} else {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   251
				settings.previousView = currentView;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   252
			}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   253
			uiManager.hideNotification();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   254
            settings.show();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   255
            break;
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   256
		case MENU_ITEM_HOME:
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   257
			currentView = home;
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   258
			home.show();
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   259
			break;
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   260
        case MENU_ITEM_REFRESH:
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   261
            currentView.update(true);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   262
            break;
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   263
        case MENU_ITEM_LARGER_FONT:
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   264
			setLargeView();
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   265
//            increaseFontSize();
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   266
            break;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   267
        case MENU_ITEM_SMALLER_FONT:
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   268
			setSmallView();
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   269
//            decreaseFontSize();
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   270
            break;
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   271
        case MENU_ITEM_CHECK_UPDATE:
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   272
            checkForUpdates();
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
		case MENU_ITEM_ABOUT:
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   275
			if ( currentView == settings || currentView == about) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   276
				about.previousView = home;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   277
			} else {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   278
				about.previousView = currentView;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   279
			}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   280
			about.show();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   281
			break;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   282
    }
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
// Loads widget preferences.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   286
function loadPreferences() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   287
    if (window.widget) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   288
        // load settings from widget preferences store
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   289
        forumUsername = widget.preferenceForKey("forumUsername");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   290
        forumPassword = widget.preferenceForKey("forumPassword");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   291
    }
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
// Loads widget preferences.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   295
function savePreferences() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   296
    if (window.widget) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   297
        // save settings in widget preferences store
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   298
        widget.setPreferenceForKey(forumUsername, "forumUsername");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   299
        widget.setPreferenceForKey(forumPassword, "forumPassword");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   300
    }
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   301
}
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
// Callback for settings view save button.
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   304
function saveSettingsClicked() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   305
	forumUsername = forumUsernameControl.getText();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   306
	forumPassword = forumPasswordControl.getText();
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
    // save preferences
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   309
    savePreferences();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   310
    
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   311
	settings.goBack();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   312
	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   313
	if ( loginInitiated ) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   314
		login(loginInitiatedCallback);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   315
	}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   316
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   317
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   318
// Opens a URL in a separate browser window
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   319
function openURL(url) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   320
    if (window.widget) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   321
        // in WRT
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   322
        widget.openURL(url);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   323
    } else {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   324
        // outside WRT
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   325
        window.open(url, "NewWindow");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   326
    }
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   327
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   328
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   329
var updatePageAjax = null;
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 checkForUpdates() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   332
	uiManager.showNotification(-1, "wait", "Checking for updates...", -1);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   333
	updatePageAjax = new Ajax();
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   334
	updatePageAjax.onreadystatechange = checkForUpdatesStage2;
3
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   335
	updatePageAjax.open('GET', nocache(versionWikiPageUrl), true);
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   336
	updatePageAjax.send(null);	
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   337
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   338
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   339
function checkForUpdatesStage2() {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   340
    if (updatePageAjax.readyState == 4) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   341
		// extract version number
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   342
		var content = updatePageAjax.responseText;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   343
		var ind = content.indexOf(versionWikiPageString);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   344
		if ( ind == -1 ) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   345
			uiManager.showNotification(3000, "warning", "Update failed, check manually.");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   346
			return;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   347
		}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   348
		ind += versionWikiPageString.length;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   349
		var ind2 = content.indexOf("]",ind);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   350
		if ( ind2 == -1 || (ind2-ind) > 10 ) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   351
			uiManager.showNotification(3000, "warning", "Update failed, check manually.");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   352
			return;
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   353
		}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   354
		var version = content.substring(ind,ind2);
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   355
		// compare to this version
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   356
		if ( version != myversion ) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   357
			var answer = confirm("Install new version " + version + "?");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   358
			if (answer) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   359
				// ok, we have the update
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   360
				uiManager.hideNotification();
3
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   361
				openURL(nocache(downloadUrl));
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   362
				setTimeout(function () {window.close();}, 1000);
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   363
			} else {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   364
			uiManager.showNotification(3000, "info", "Update cancelled.");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   365
			}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   366
		} else {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   367
			uiManager.showNotification(3000, "info", "Up to date!");
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   368
		}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   369
	}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   370
}
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   371
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   372
function createCaption(caption) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   373
	if (caption.length > 30) {
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   374
		caption = caption.substring(0, 30) + "...";
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   375
	}
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   376
	return  "<table border=0><tr><td style=\"{vertical-align:middle}\">"
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   377
		+ "<img src=titlebar.png style=\"{vertical-align:middle}\" >"
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   378
		+ "</td><td style=\"{vertical-align:middle}\"> " 
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   379
		+ "<p class=ListViewCaptionText>" + caption +"</p></td></tr></table>";
0
54498df70f5d Adding Symbian.org Widget 1.0rc3 source
ivanl
parents:
diff changeset
   380
}
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   381
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   382
function setDefaultFontSizeForScreenSize(){
21
f7a5a40d5bc4 1.0rc17 Fix blog feed
ivanl
parents: 18
diff changeset
   383
	// no preference available, check screen size
f7a5a40d5bc4 1.0rc17 Fix blog feed
ivanl
parents: 18
diff changeset
   384
	if (window.innerWidth > 400 || window.innerHeight > 400) {
f7a5a40d5bc4 1.0rc17 Fix blog feed
ivanl
parents: 18
diff changeset
   385
		// hi res screen, use large font
f7a5a40d5bc4 1.0rc17 Fix blog feed
ivanl
parents: 18
diff changeset
   386
		setLargeView();
f7a5a40d5bc4 1.0rc17 Fix blog feed
ivanl
parents: 18
diff changeset
   387
	}
f7a5a40d5bc4 1.0rc17 Fix blog feed
ivanl
parents: 18
diff changeset
   388
	else {
f7a5a40d5bc4 1.0rc17 Fix blog feed
ivanl
parents: 18
diff changeset
   389
		// lo res screen, use small font
f7a5a40d5bc4 1.0rc17 Fix blog feed
ivanl
parents: 18
diff changeset
   390
		setSmallView();
2
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
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   394
function setLargeView(){
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   395
	document.getElementById('stylesheet').href = 'WRTKit/Resources/UI-large.css';
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   396
//	setCssBodyFontSize(22);
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   397
}
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   398
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   399
function setSmallView(){
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   400
	document.getElementById('stylesheet').href = 'WRTKit/Resources/UI.css';
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   401
//	setCssBodyFontSize(14);
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   402
}
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   403
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   404
function increaseFontSize(){
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   405
    if (window.widget) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   406
		setCssBodyFontSize(currentFontSize + 2);
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
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   410
function decreaseFontSize(){
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   411
    if (window.widget) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   412
		if (currentFontSize > 4) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   413
			setCssBodyFontSize(currentFontSize - 2);
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   414
		}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   415
	}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   416
}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   417
16
6544cc5386ce Adaptation to new login mechanism.
ivanl
parents: 15
diff changeset
   418
function setCssBodyFontSize(size){
2
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   419
    if (window.widget) {
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   420
		currentFontSize = size;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   421
		var sizestring = "" + size;
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   422
		document.body.style.fontSize = sizestring + "px";
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   423
		widget.setPreferenceForKey(sizestring, "fontsize");
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   424
	}
99bc8e56b756 Font size fix
ivanl
parents: 0
diff changeset
   425
}
3
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   426
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   427
function nocache(url) {
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   428
    if (url.indexOf("?") == -1) {
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   429
        url += "?";
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   430
    } else {
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   431
        url += "&";
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   432
    }
18
b73e6caf0031 Added Wiki support
ivanl
parents: 17
diff changeset
   433
    url += "xnocache=" + (new Date().getTime());
3
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   434
	return url;
9cbe91927e89 Fix for auto-update caching problem
ivanl
parents: 2
diff changeset
   435
}