home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2005 October / Gamestar_77_2005-10_dvd.iso / Programy / nsb-install-8-0.exe / chrome / toolkit.jar / content / mozapps / autofill / datacardDialogs.js < prev    next >
Text File  |  2005-07-29  |  5KB  |  175 lines

  1. // JavaScript common to both of these dialogs:
  2. //  - datacardUpdateDialog.xul
  3. //  - datacardSaveNewDialog.xul
  4.  
  5. const DATACARD_DIALOG_DEBUG = false;
  6. const nsIAutoFillService = Components.interfaces.nsIAutoFillService;
  7.  
  8. var datacardUtils;
  9. var contentDoc;
  10. var currentURI;
  11. var rippedValues;
  12.  
  13.  
  14. function initSaveNewDialog() {
  15.     dcDebug('initSaveNewDialog()');
  16.     commonInit();
  17. }
  18.  
  19.  
  20. function initUpdateDialog() {
  21.     dcDebug('initUpdateDialog()');
  22.     commonInit();
  23.     var menulist = document.getElementById('datacardList');
  24.     menulist.removeAllItems();
  25.     var datacards = datacardUtils.GetDatacardList();
  26.     var cardForSite = datacardUtils.FindDatacardForURI(currentURI);
  27.     for (var i = 0; i < datacards.length; i++) {
  28.         menulist.appendItem(datacards[i], datacards[i]);
  29.         if (datacards[i] == cardForSite)
  30.             menulist.selectedIndex = i;
  31.     }
  32. }
  33.  
  34.  
  35. function commonInit() {
  36.     dcDebug('commonInit()');
  37.     datacardFieldIDs = window.opener.datacardFieldIDs;
  38.     datacardUtils = window.opener.datacardUtils;
  39.     contentDoc = window.opener.gBrowser.contentDocument;
  40.     currentURI = window.opener.gBrowser.currentURI;
  41.     rippedValues = window.arguments[0];
  42.     dcDebug('  set rippedValues, length='+rippedValues.length);
  43.     document.getElementById('datacardChoice').selectedIndex = 0;
  44.     document.getElementById('datacardName').focus();
  45.     window.centerWindowOnScreen();
  46. }
  47.  
  48.  
  49. function onSaveNewAccept() {
  50.     dcDebug('onSaveNewAccept()');
  51.     return commonAccept();
  52. }
  53.  
  54.  
  55. function onUpdateAccept() {
  56.     dcDebug('onUpdateAccept()');
  57.     return commonAccept();
  58. }
  59.  
  60.  
  61. function commonAccept() {
  62.     dcDebug('commonAccept()');
  63.     var radiogroup = document.getElementById('datacardChoice');
  64.     switch (radiogroup.value) {
  65.     case 'update':
  66.         dcDebug(' - update');
  67.         var name = document.getElementById('datacardList').value;
  68.         datacardUtils.SetDatacardValues(name, currentURI, rippedValues);
  69.         datacardUtils.SetDatacardForHost(currentURI.host, name);
  70.         break;
  71.     case 'saveNew':
  72.         dcDebug(' - saveNew');
  73.         var datacardName = document.getElementById('datacardName');
  74.         var value = datacardName.value.replace(/^\s+/,'').replace(/\s+$/,'');
  75.         if (!value.length) {
  76.             alert('Please enter a name for the DataCard.');
  77.             return false;
  78.         }
  79.         var name = datacardUtils.GenerateFilenamePrefixForDatacard(value);
  80.         if (datacardUtils.DatacardExists(name)) {
  81.             alert('That name is already in use.  Please choose another.');
  82.             return false;
  83.         }
  84.         datacardUtils.CreateDatacard(name);
  85.         datacardUtils.SetDatacardValues(name, currentURI, rippedValues);
  86.         datacardUtils.SetDatacardForHost(currentURI.host, name);
  87.         var datacardFile = datacardUtils.GetDatacardFileByName(name);
  88.         datacardUtils.afService.SetDatacardFieldByType(
  89.                 datacardFile,
  90.                 nsIAutoFillService.FIELDTYPE_PROPERTY,
  91.                 'WhenToFill',
  92.                 'displayprompt');
  93.         datacardUtils.afService.SetDatacardFieldByType(
  94.                 datacardFile,
  95.                 nsIAutoFillService.FIELDTYPE_PROPERTY,
  96.                 'Label',
  97.                 datacardName.value);
  98.         var enc = (document.getElementById('passwordProtect').checked) ? '1' : '0';
  99.         datacardUtils.afService.SetDatacardFieldByType(
  100.                 datacardFile,
  101.                 nsIAutoFillService.FIELDTYPE_PROPERTY,
  102.                 'Encrypted',
  103.                 enc);
  104.         break;
  105.     case 'doNotSave':
  106.         dcDebug(' - doNotSave');
  107.         // Do nothing, let the dialog close
  108.         break;
  109.     case 'neverForThisSite':
  110.         dcDebug(' - neverForThisSite');
  111.         datacardUtils.BlacklistSite(currentURI);
  112.         break;
  113.     default:
  114.         dcDebug(' WARNING: unhandled choice: '+radiogroup.value);
  115.     }
  116.     return true;
  117. }
  118.  
  119.  
  120. function enableDisable() {
  121.     dcDebug('enableDisable()');
  122.     var opt = document.getElementById('datacardChoice').value;
  123.     var nameLabel = document.getElementById('nameLabel');
  124.     var datacardName = document.getElementById('datacardName');
  125.     var passwordProtect = document.getElementById('passwordProtect');
  126.     var datacardList = document.getElementById('datacardList');
  127.     if (opt == 'saveNew') {
  128.         if (nameLabel)
  129.             nameLabel.removeAttribute('disabled');
  130.         if (datacardName)
  131.             datacardName.removeAttribute('disabled');
  132.         if (passwordProtect)
  133.             passwordProtect.removeAttribute('disabled');
  134.         if (datacardList)
  135.             datacardList.setAttribute('disabled','true');
  136.     } else {
  137.         if (nameLabel)
  138.             nameLabel.setAttribute('disabled','true');
  139.         if (datacardName)
  140.             datacardName.setAttribute('disabled','true');
  141.         if (passwordProtect)
  142.             passwordProtect.setAttribute('disabled','true');
  143.         if (datacardList) {
  144.             if (opt == 'update')
  145.                 datacardList.removeAttribute('disabled');
  146.             else
  147.                 datacardList.setAttribute('disabled','true');
  148.         }
  149.     }
  150. }
  151.  
  152.  
  153. function onPasswordProtect(val)
  154. {
  155.     if (val && !IsMasterPasswordSet()) {
  156.         var obj = new Object();
  157.         obj.res = '';
  158.  
  159.         window.openDialog('chrome://browser/content/pref/pref-masterpass.xul',
  160.                           '_blank', 'chrome,dialog,modal', 'Set Master Password', obj);
  161.  
  162.         dcDebug('Datacard save/update prompt calling Master Password result: ' + obj.res);
  163.  
  164.         if(obj.res != 'ok') {
  165.             dcDebug('Cancelled out of Master Password');
  166.             document.getElementById('passwordProtect').checked = false;
  167.         }
  168.     }
  169. }
  170.  
  171.  
  172. function dcDebug(msg) {
  173.     if (DATACARD_DIALOG_DEBUG)
  174.         dump('datacardDialogs.js: '+msg+'\n');
  175. }