home *** CD-ROM | disk | FTP | other *** search
/ Freelog 117 / FreelogNo117-OctobreNovembre2013.iso / Theme / 8GadgetPack / 8GadgetPackSetup.msi / Gadgets.7z / Gadgets / FeedReader.gadget / scripts / settings.js < prev   
Text File  |  2011-10-09  |  5KB  |  188 lines

  1. /* Set the event handlers */
  2. System.Gadget.onSettingsClosing = settingsClosing;
  3.  
  4. /* Saves the settings when Settings dialog is closed */
  5. function settingsClosing(event)
  6. {
  7.     if (event.closeAction == event.Action.commit)
  8.     {
  9.         System.Gadget.Settings.write( "refresh", feedRefresh.options[feedRefresh.selectedIndex].value );
  10.         System.Gadget.Settings.write( "theme", feedTheme.options[feedTheme.selectedIndex].value );
  11.         System.Gadget.Settings.write( "noItems", noItems.options[noItems.selectedIndex].value );
  12.         System.Gadget.Settings.write( "autoScroll", ((autoScrollCheckBox.checked == true) ? 1 : 0 ) );
  13.         event.cancel = false;
  14.     }
  15. }
  16.  
  17. /* Loads the existing settings when the Settings dialog is shown */
  18. function loadSettings() 
  19. {
  20.     var refresh = System.Gadget.Settings.read("refresh");
  21.     var theme = System.Gadget.Settings.read("theme");
  22.  
  23.     switch ( refresh ) {
  24.         case 60000:
  25.             feedRefresh[0].selected = "1";
  26.             break;
  27.         case 900000:
  28.             feedRefresh[1].selected = "1";
  29.             break;
  30.         case 1800000:
  31.             feedRefresh[2].selected = "1";
  32.             break;
  33.         case 3600000:
  34.             feedRefresh[3].selected = "1";
  35.             break;
  36.         default:
  37.             feedRefresh[4].selected = "1";
  38.     }    
  39.     
  40.     for ( var i=0; i<4; i++ ) if ( feedTheme[i].value == theme ) feedTheme[i].selected = "1";
  41.     updatePreview();
  42.  
  43.     buildFeedList();
  44.     var current = System.Gadget.Settings.read("currentFeed");
  45.     if ( current == "" ) current = 0;
  46.     feeds.options[current].selected = "1";
  47.     
  48.     var isAutoScroll = System.Gadget.Settings.read( "autoScroll" );
  49.     autoScrollCheckBox.checked = (isAutoScroll == 1);
  50.     var items = System.Gadget.Settings.read("noItems");
  51.     if ( items == "" ) items = 4;
  52.     noItems.options[items/2-2].selected = "1";
  53. }
  54.  
  55. /* Updates the preview image when theme is switched */
  56. function updatePreview()
  57. {
  58.     previewImage.src = "/themes/" + feedTheme.options[feedTheme.selectedIndex].value + "/preview.png";
  59. }
  60.  
  61. /* Builds the feed list */
  62. function buildFeedList()
  63. {
  64.     var n;
  65.     var aux = System.Gadget.Settings.read("noFeeds");
  66.     if ( aux == "" ) n = 0; else n = aux;
  67.     
  68.     for ( var i = 0; i < feeds.options.length; i++ ) feeds.options[i] = null;
  69.     
  70.     for ( var i = 0; i < n; i++ )
  71.     {
  72.         var text = System.Gadget.Settings.read("feedName"+i);
  73.         feeds.options[i] = new Option(text,i+'');
  74.     }
  75. }
  76.  
  77. /* Add a new feed */
  78. function addNewFeed( name, url )
  79. {
  80.     if ( url == "" )
  81.     {
  82.         if ( feedURL.value.replace(/^\s+|\s+$/, '') == "" ) 
  83.         {
  84.             errorMessage.innerHTML = "URL is empty.";
  85.             return true;
  86.         }
  87.         if ( feedName.value.replace(/^\s+|\s+$/, '') == "" )
  88.         {
  89.             errorMessage.innerHTML = "Name is empty.";
  90.             return true;
  91.         }
  92.         url = feedURL.value;
  93.         name = feedName.value;
  94.     }
  95.     
  96.     var n;
  97.     var aux = System.Gadget.Settings.read("noFeeds");
  98.     if ( aux == "" ) n = 0; else n = aux;
  99.  
  100.     System.Gadget.Settings.write( "feedName"+n, name );    
  101.     System.Gadget.Settings.write( "feedURL"+n, url );    
  102.  
  103.     n++;
  104.     System.Gadget.Settings.write("noFeeds",n);
  105.     
  106.     feedName.value = "";
  107.     feedURL.value = "";
  108.     errorMessage.innerHTML = "";
  109.     
  110.     buildFeedList();
  111.     feeds.options[feeds.options.length-1].selected = "1";
  112. }
  113.  
  114. /* Deletes an existing feed */
  115. function deleteExistingFeed()
  116. {
  117.     var n;
  118.     var aux = System.Gadget.Settings.read("noFeeds");
  119.     if ( aux == "" ) n = 0; else n = aux;
  120.     
  121.     for ( var i = feeds.selectedIndex; i < n; i++ )    
  122.     {
  123.         var URL = System.Gadget.Settings.read("feedURL"+(i+1));
  124.         var name = System.Gadget.Settings.read("feedName"+(i+1));
  125.         System.Gadget.Settings.write("feedURL"+i, URL);
  126.         System.Gadget.Settings.write("feedName"+i, name);
  127.     }
  128.     
  129.     if ( n > 0 ) n--; else n = 0;
  130.     System.Gadget.Settings.write("noFeeds",n);
  131.     
  132.     buildFeedList();
  133. }
  134.  
  135. /* Import feeds from Internet Explorer 7, using Vista feed platform */
  136. function importFeedsFromIE7() 
  137. {
  138.     var feedManager = null;
  139.     try
  140.     {
  141.         feedManager = new ActiveXObject( "Microsoft.FeedsManager" );
  142.         if ( feedManager == null ) return false;
  143.         searchAndAddFeed( feedManager.RootFolder );
  144.     } catch(e) {}
  145. }
  146.  
  147. /* Recursively search and add feeds from vista feed platform */
  148. function searchAndAddFeed( folder ) 
  149. {
  150.     var feeds = folder.Feeds;
  151.     for ( var i = 0; i < feeds.Count; i++ )    addNewFeed( feeds.Item(i).Name, feeds.Item(i).Url );
  152.     
  153.     var subFolders = folder.Subfolders;
  154.     for ( var i = 0; i < subFolders.Count; i++ ) searchAndAddFeed( subFolders.Item(i) );
  155. }
  156.  
  157. /* Export feeds into IE/Vista feed platform */
  158. function exportFeeds()
  159. {
  160.     var feedManager = null;
  161.     try
  162.     {
  163.         feedManager = new ActiveXObject( "Microsoft.FeedsManager" );
  164.         if ( feedManager == null ) return false;
  165.     } catch(e) {}
  166.     
  167.     var folder = feedManager.RootFolder.CreateSubfolder( "Feed Reader Gadget Feeds" );
  168.     var n;
  169.     var aux = System.Gadget.Settings.read("noFeeds");
  170.     if ( aux == "" ) n = 0; else n = aux;
  171.     
  172.     for ( var i = 0; i < n; i++ )
  173.     {
  174.         var name = System.Gadget.Settings.read("feedName"+i);
  175.         var url = System.Gadget.Settings.read("feedURL"+i);
  176.         folder.CreateFeed( name, url );
  177.     }
  178. }
  179.  
  180. /* Shows a specified table in the settings dialog */
  181. function showTable( table )
  182. {
  183.     feedsTable.style.display = 'none';
  184.     aboutTable.style.display = 'none';
  185.     optionsTable.style.display = 'none';
  186.     table.style.display = 'block';
  187. }
  188.