Symbian.org/Main.js
changeset 18 b73e6caf0031
parent 17 5dc2963cd75f
child 21 f7a5a40d5bc4
equal deleted inserted replaced
17:5dc2963cd75f 18:b73e6caf0031
    22 //var symbianOrgBaseUrlSsl = "https://staging.foundationhost.org";
    22 //var symbianOrgBaseUrlSsl = "https://staging.foundationhost.org";
    23 var symbianOrgBaseUrl = "http://developer.symbian.org";
    23 var symbianOrgBaseUrl = "http://developer.symbian.org";
    24 var symbianOrgBaseUrlSsl = "https://developer.symbian.org";
    24 var symbianOrgBaseUrlSsl = "https://developer.symbian.org";
    25 var registrationURL = symbianOrgBaseUrl + "/main/user_profile/register.php";
    25 var registrationURL = symbianOrgBaseUrl + "/main/user_profile/register.php";
    26 var blogFeedName = "Symbian Blog";
    26 var blogFeedName = "Symbian Blog";
    27 var blogFeedUrl = "http://blog.symbian.org/feed/";
    27 var blogFeedUrl = "http://blog.symbian.org/feed/rss/";
    28 
    28 
    29 // FORUM vars and settings 
    29 // FORUM vars and settings 
    30 var symbianOrgNewThreadUrl = symbianOrgBaseUrl+"/forum/newthread.php?";
    30 var symbianOrgNewThreadUrl = symbianOrgBaseUrl+"/forum/newthread.php?";
    31 var symbianOrgNewReplyUrl = symbianOrgBaseUrl+"/forum/newreply.php?";
    31 var symbianOrgNewReplyUrl = symbianOrgBaseUrl+"/forum/newreply.php?";
    32 var symbianOrgLoginUrl = symbianOrgBaseUrlSsl+"/main/user_profile/login.php";
    32 var symbianOrgLoginUrl = symbianOrgBaseUrlSsl+"/main/user_profile/login.php";
    33 var symbianOrgLoginUsernameField = "username";
    33 var symbianOrgLoginUsernameField = "username";
    34 var symbianOrgLoginPasswordField = "password";
    34 var symbianOrgLoginPasswordField = "password";
    35 var forumUsername = null	;
    35 var forumUsername = null;
    36 var forumPassword = null;
    36 var forumPassword = null;
    37 
    37 
    38 // Feed name, URL etc for forums
    38 // Feed name, URL etc for forums
    39 var forumFeedName = "Symbian.org Forums";
    39 var forumFeedName = "Symbian.org Forums";
    40 var forumFeedURL = symbianOrgBaseUrl+ "/forum/external2.php?type=rss2"; //&fulldesc=1&lastpost=1
    40 var forumFeedURL = symbianOrgBaseUrl+ "/forum/external2.php?type=rss2"; //&fulldesc=1&lastpost=1
    49 var wikiFeedName = "New on Symbian.org Wiki";
    49 var wikiFeedName = "New on Symbian.org Wiki";
    50 var wikiFeedUrl = symbianOrgBaseUrl+"/wiki/index.php?title=Special:NewPages&feed=rss";
    50 var wikiFeedUrl = symbianOrgBaseUrl+"/wiki/index.php?title=Special:NewPages&feed=rss";
    51 var wikiBaseUrl = symbianOrgBaseUrl+"/wiki/index.php";
    51 var wikiBaseUrl = symbianOrgBaseUrl+"/wiki/index.php";
    52 
    52 
    53 // Update variables
    53 // Update variables
    54 var myversion = "1.0rc14";
    54 var myversion = "1.0rc16";
    55 var versionWikiPageUrl = wikiBaseUrl + "/Symbian.org_WRT_Widget";
    55 var versionWikiPageUrl = wikiBaseUrl + "/Symbian.org_WRT_Widget";
    56 var versionWikiPageString = "Current widget version is [";
    56 var versionWikiPageString = "Current widget version is [";
    57 var downloadUrl = symbianOrgBaseUrl + "/wiki/images/c/c5/Symbian.org.wgz";
    57 var downloadUrl = symbianOrgBaseUrl + "/wiki/images/c/c5/Symbian.org.wgz";
    58 
    58 
    59 // UI elements
    59 // UI elements
    74 // Controls for the settings view
    74 // Controls for the settings view
    75 var forumUsernameControl;
    75 var forumUsernameControl;
    76 var forumPasswordControl;
    76 var forumPasswordControl;
    77 
    77 
    78 // Constants for menu item identifiers.
    78 // Constants for menu item identifiers.
    79 var MENU_ITEM_SETTINGS = 0;
    79 var MENU_ITEM_HOME = 0;
    80 var MENU_ITEM_REFRESH = 1;
    80 var MENU_ITEM_SETTINGS = 1;
    81 var MENU_ITEM_ABOUT = 2;
    81 var MENU_ITEM_REFRESH = 2;
    82 var MENU_ITEM_CHECK_UPDATE = 3;
    82 var MENU_ITEM_ABOUT = 3;
    83 var MENU_ITEM_LARGER_FONT = 4;
    83 var MENU_ITEM_CHECK_UPDATE = 4;
    84 var MENU_ITEM_SMALLER_FONT = 5;
    84 var MENU_ITEM_LARGER_FONT = 5;
    85 
    85 var MENU_ITEM_SMALLER_FONT = 6;
    86 // Flag indicating weather the web site login has been initiated
    86 // Flag indicating weather the web site login has been initiated
    87 var loginInitiated = false;
    87 var loginInitiated = false;
    88 var loginInitiatedCallback = null;
    88 var loginInitiatedCallback = null;
    89 
    89 
    90 
    90 
   100 				+ "Credits: Ivan Litovski, Ryan Grentz, James Mentz";
   100 				+ "Credits: Ivan Litovski, Ryan Grentz, James Mentz";
   101 
   101 
   102 
   102 
   103 var currentFontSize = 14;
   103 var currentFontSize = 14;
   104 
   104 
   105 
       
   106 // Called from the onload event handler to initialize the widget.
   105 // Called from the onload event handler to initialize the widget.
   107 function init() {
   106 function init() {
   108 	
   107 	
   109     // set tab-navigation mode and show softkeys
   108     // set tab-navigation mode and show softkeys
   110     // (only if we are in the WRT environment)
   109     // (only if we are in the WRT environment)
   111     if (window.widget) {
   110     if (window.widget) {
   112         widget.setNavigationEnabled(false);
   111         widget.setNavigationEnabled(false);
   113         window.menu.showSoftkeys();
   112         window.menu.showSoftkeys();
   114         // create menu
   113         // create menu
       
   114         var homeMenuItem = new MenuItem("Home", MENU_ITEM_HOME);
       
   115         homeMenuItem.onSelect = menuItemSelected;
       
   116         menu.append(homeMenuItem);
   115         var refreshMenuItem = new MenuItem("Refresh", MENU_ITEM_REFRESH);
   117         var refreshMenuItem = new MenuItem("Refresh", MENU_ITEM_REFRESH);
   116         refreshMenuItem.onSelect = menuItemSelected;
   118         refreshMenuItem.onSelect = menuItemSelected;
   117         menu.append(refreshMenuItem);
   119         menu.append(refreshMenuItem);
   118         var settingsMenuItem = new MenuItem("Settings", MENU_ITEM_SETTINGS);
   120         var settingsMenuItem = new MenuItem("Settings", MENU_ITEM_SETTINGS);
   119         settingsMenuItem.onSelect = menuItemSelected;
   121         settingsMenuItem.onSelect = menuItemSelected;
   120         menu.append(settingsMenuItem);
   122         menu.append(settingsMenuItem);
   121 		var updateMenuItem = new MenuItem("Check for updates", MENU_ITEM_CHECK_UPDATE);
   123 		var updateMenuItem = new MenuItem("Check for updates", MENU_ITEM_CHECK_UPDATE);
   122 		updateMenuItem.onSelect = menuItemSelected;
   124 		updateMenuItem.onSelect = menuItemSelected;
   123 		menu.append(updateMenuItem);
   125 		menu.append(updateMenuItem);
   124 		var largerFontMenuItem = new MenuItem("Larger font", MENU_ITEM_LARGER_FONT);
   126 		var largerFontMenuItem = new MenuItem("Large font", MENU_ITEM_LARGER_FONT);
   125 		largerFontMenuItem.onSelect = menuItemSelected;
   127 		largerFontMenuItem.onSelect = menuItemSelected;
   126 		menu.append(largerFontMenuItem);
   128 		menu.append(largerFontMenuItem);
   127 		var smallerFontMenuItem = new MenuItem("Smaller font", MENU_ITEM_SMALLER_FONT);
   129 		var smallerFontMenuItem = new MenuItem("Small font", MENU_ITEM_SMALLER_FONT);
   128 		smallerFontMenuItem.onSelect = menuItemSelected;
   130 		smallerFontMenuItem.onSelect = menuItemSelected;
   129 		menu.append(smallerFontMenuItem);
   131 		menu.append(smallerFontMenuItem);
   130 		var aboutMenuItem = new MenuItem("About", MENU_ITEM_ABOUT);
   132 		var aboutMenuItem = new MenuItem("About", MENU_ITEM_ABOUT);
   131 		aboutMenuItem.onSelect = menuItemSelected;
   133 		aboutMenuItem.onSelect = menuItemSelected;
   132 		menu.append(aboutMenuItem);
   134 		menu.append(aboutMenuItem);
   173 	
   175 	
   174 	// create blog screen
   176 	// create blog screen
   175 	blog = new RssReader(blogFeedName, blogFeedUrl, null, home, null);
   177 	blog = new RssReader(blogFeedName, blogFeedUrl, null, home, null);
   176 	
   178 	
   177 	// create wiki screen
   179 	// create wiki screen
   178 	wiki = new RssReader(wikiFeedName, wikiFeedUrl, new ButtonFeedPresenter(null), home, null);
   180 	wiki = new WikiHome(home);// new RssReader(wikiFeedName, wikiFeedUrl, new ButtonFeedPresenter(null), home, null);
   179 	
   181 	
   180 	// wiki feed contains full article text for many articles 
   182 	// wiki feed contains full article text for many articles 
   181 	// this takes up a _lot_ of memory. Also we don't 
   183 	// this takes up a _lot_ of memory. Also we don't 
   182 	// really want the full text at the stage when we want a list
   184 	// really want the full text at the stage when we want a list
   183 	// of recent articles.
   185 	// of recent articles.
   234 	aboutLabel.setExpanded(true);
   236 	aboutLabel.setExpanded(true);
   235 	about.addControl(aboutLabel);
   237 	about.addControl(aboutLabel);
   236 
   238 
   237 	home.show();
   239 	home.show();
   238 	setDefaultFontSizeForScreenSize();
   240 	setDefaultFontSizeForScreenSize();
   239 //	login(null);	
       
   240 }
   241 }
   241 
   242 
   242 // Callback for when menu items are selected.
   243 // Callback for when menu items are selected.
   243 function menuItemSelected(id) {
   244 function menuItemSelected(id) {
   244 	var currentView = uiManager.getView();
   245 	var currentView = uiManager.getView();
   250 				settings.previousView = currentView;
   251 				settings.previousView = currentView;
   251 			}
   252 			}
   252 			uiManager.hideNotification();
   253 			uiManager.hideNotification();
   253             settings.show();
   254             settings.show();
   254             break;
   255             break;
       
   256 		case MENU_ITEM_HOME:
       
   257 			currentView = home;
       
   258 			home.show();
       
   259 			break;
   255         case MENU_ITEM_REFRESH:
   260         case MENU_ITEM_REFRESH:
   256             currentView.update(true);
   261             currentView.update(true);
   257             break;
   262             break;
   258         case MENU_ITEM_LARGER_FONT:
   263         case MENU_ITEM_LARGER_FONT:
   259             increaseFontSize();
   264 			setLargeView();
       
   265 //            increaseFontSize();
   260             break;
   266             break;
   261         case MENU_ITEM_SMALLER_FONT:
   267         case MENU_ITEM_SMALLER_FONT:
   262             decreaseFontSize();
   268 			setSmallView();
       
   269 //            decreaseFontSize();
   263             break;
   270             break;
   264         case MENU_ITEM_CHECK_UPDATE:
   271         case MENU_ITEM_CHECK_UPDATE:
   265             checkForUpdates();
   272             checkForUpdates();
   266             break;
   273             break;
   267 		case MENU_ITEM_ABOUT:
   274 		case MENU_ITEM_ABOUT:
   373 }
   380 }
   374 
   381 
   375 function setDefaultFontSizeForScreenSize(){
   382 function setDefaultFontSizeForScreenSize(){
   376 	// first check if there is a preference present
   383 	// first check if there is a preference present
   377     if (window.widget) {
   384     if (window.widget) {
   378 		var saved = widget.preferenceForKey("fontsize");
   385 //		var saved = widget.preferenceForKey("fontsize");
   379 		if ( widget.preferenceForKey("fontsize") ) {
   386 //		if ( widget.preferenceForKey("fontsize") ) {
   380 			setCssBodyFontSize(parseInt(saved));
   387 //			setCssBodyFontSize(parseInt(saved));
   381 		}
   388 //		}
   382 		else {
   389 //		else {
   383 			// no preference available, check screen size
   390 			// no preference available, check screen size
   384 			if (window.screen.width > 400 || window.screen.height > 400) {
   391 			if (window.screen.width > 400 || window.screen.height > 400) {
   385 				// hi res screen, use large font
   392 				// hi res screen, use large font
   386 				setCssBodyFontSize(30);
   393 				setLargeView();
   387 			}
   394 			}
   388 			else {
   395 			else {
   389 				// lo res screen, use small font
   396 				// lo res screen, use small font
   390 				setCssBodyFontSize(14);
   397 				setSmallView();
   391 			}
   398 			}
   392 		}
   399 //		}
   393 	}
   400 	}
       
   401 }
       
   402 
       
   403 function setLargeView(){
       
   404 	document.getElementById('stylesheet').href = 'WRTKit/Resources/UI-large.css';
       
   405 //	setCssBodyFontSize(22);
       
   406 }
       
   407 
       
   408 function setSmallView(){
       
   409 	document.getElementById('stylesheet').href = 'WRTKit/Resources/UI.css';
       
   410 //	setCssBodyFontSize(14);
   394 }
   411 }
   395 
   412 
   396 function increaseFontSize(){
   413 function increaseFontSize(){
   397     if (window.widget) {
   414     if (window.widget) {
   398 		setCssBodyFontSize(currentFontSize + 2);
   415 		setCssBodyFontSize(currentFontSize + 2);
   420     if (url.indexOf("?") == -1) {
   437     if (url.indexOf("?") == -1) {
   421         url += "?";
   438         url += "?";
   422     } else {
   439     } else {
   423         url += "&";
   440         url += "&";
   424     }
   441     }
   425     url += "nocache=" + (new Date().getTime());
   442     url += "xnocache=" + (new Date().getTime());
   426 	return url;
   443 	return url;
   427 }
   444 }