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