www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

upgrade.xul (4986B)


      1 <?xml version="1.0"?>
      2 
      3 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
      4 <?xml-stylesheet href="chrome://zotero/skin/upgrade.css" type="text/css"?>
      5 
      6 <!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd">
      7 
      8 <wizard id="zotero-schema-upgrade" title="&zotero.upgrade.title;"
      9 		xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
     10 	
     11 	<script>
     12 	<![CDATA[
     13 		var Zotero_Schema_Upgrade = new function() {
     14 			this.init = init;
     15 			this.onAdvance = onAdvance;
     16 			this.doUpgrade = doUpgrade;
     17 			
     18 			var obj = window.arguments[0].wrappedJSObject;
     19 			var Zotero = obj.Zotero;
     20 			var data = obj.data;
     21 			
     22 			function init() {
     23 				var wizard = document.getElementById('zotero-schema-upgrade');
     24 				
     25 				var continueButton = wizard.getButton('next');
     26 				continueButton.focus(); // prevent focusing upgrade instructions link
     27 				
     28 				// Use proper button name in text
     29 				var continueButtonName = continueButton.getAttribute('label');
     30 				var str = Zotero.getString('upgrade.advanceMessage', continueButtonName);
     31 				document.getElementById('zotero-advance-message').setAttribute('value', str);
     32 				
     33 				if (data.majorUpgrade) {
     34 					document.getElementById('zotero-major-upgrade').hidden = false;
     35 					document.getElementById('zotero-upgrade-required').hidden = true;
     36 				}
     37 			}
     38 			
     39 			
     40 			function onAdvance() {
     41 				var wizard = document.getElementById('zotero-schema-upgrade');
     42 				wizard.getButton('cancel').setAttribute('disabled', true);
     43 				wizard.getButton('next').setAttribute('disabled', true);
     44 				wizard.canRewind = false;
     45 				wizard.getButton('finish').focus(); // prevent focusing of changelog link
     46 				Zotero.wait();
     47 			}
     48 			
     49 			
     50 			function doUpgrade() {
     51 				var wizard = document.getElementById('zotero-schema-upgrade');
     52 				
     53 				onAdvance();
     54 				
     55 				try {
     56 					if (data.integrityCheck) {
     57 						if (!Zotero.DB.integrityCheck()) {
     58 							var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
     59 													.getService(Components.interfaces.nsIPromptService);
     60 							var buttonFlags = (ps.BUTTON_POS_0) * (ps.BUTTON_TITLE_IS_STRING)
     61 												+ (ps.BUTTON_POS_1) * (ps.BUTTON_TITLE_CANCEL);
     62 							var index = ps.confirmEx(
     63 								null,
     64 								Zotero.getString('general.error'),
     65 								Zotero.getString('upgrade.integrityCheckFailed'),
     66 								buttonFlags, Zotero.getString('upgrade.loadDBRepairTool'),
     67 								null, null, null, {});
     68 							
     69 							if (index == 0) {
     70 								Zotero.initialURL = 'https://www.zotero.org/utils/dbfix/';
     71 							}
     72 							
     73 							_setStartupError();
     74 							_clickCancel();
     75 							return;
     76 						}
     77 					}
     78 					
     79 					Zotero.Schema.updateSchema();
     80 				}
     81 				catch (e) {
     82 					data.msg = Zotero.getString('upgrade.failed');
     83 					data.e = e;
     84 					
     85 					Components.utils.reportError(e);
     86 					
     87 					_clickCancel();
     88 					return;
     89 				}
     90 				
     91 				data.success = true;
     92 				
     93 				wizard.advance();
     94 			}
     95 			
     96 			
     97 			this.onUpgradeInstructionsLinkClick = function () {
     98 				_setStartupError();
     99 				Zotero.initialURL = 'http://zotero.org/support/upgrade';
    100 				_clickCancel();
    101 			}
    102 			
    103 			
    104 			this.onChangeLogLinkClick = function () {
    105 				Zotero.initialURL = 'http://zotero.org/support/changelog';
    106 				document.getElementById('zotero-schema-upgrade').getButton('finish').click();
    107 			}
    108 			
    109 			
    110 			function _setStartupError() {
    111 				Zotero.startupError = Zotero.localeJoin([
    112 					Zotero.getString('upgrade.dbUpdateRequired'), Zotero.getString('general.restartFirefox')
    113 				]);
    114 			}
    115 			
    116 			
    117 			function _clickCancel() {
    118 				var cancelButton = document.getElementById('zotero-schema-upgrade').getButton('cancel');
    119 				cancelButton.setAttribute('disabled', false);
    120 				cancelButton.click();
    121 			}
    122 		}
    123 	]]>
    124 	</script>
    125 	
    126 	<wizardpage onpageshow="Zotero_Schema_Upgrade.init()" label=" ">
    127 		<description>&zotero.upgrade.newVersionInstalled;</description>
    128 		<description id="zotero-upgrade-required">&zotero.upgrade.upgradeRequired; &zotero.upgrade.autoBackup;</description>
    129 		<description id="zotero-major-upgrade" hidden="true">
    130 			<label value="&zotero.upgrade.majorUpgrade;" style="font-weight: bold"/>
    131 			&zotero.upgrade.majorUpgradeBeforeLink;
    132 			<label class="text-link" value="&zotero.upgrade.majorUpgradeLink;"
    133 				onclick="try { Zotero_Schema_Upgrade.onUpgradeInstructionsLinkClick(); } catch (e) { alert(e); }"/>
    134 			&zotero.upgrade.majorUpgradeAfterLink;
    135 		</description>
    136 		<description id="zotero-advance-message"/>
    137 	</wizardpage>
    138 	
    139 	<wizardpage onpageshow="Zotero_Schema_Upgrade.doUpgrade()" label=" ">
    140 		<description>&zotero.upgrade.upgradeInProgress;</description>
    141 		<progressmeter mode="undetermined"/>
    142 	</wizardpage>
    143 	
    144 	<wizardpage onpageshow="Zotero_Schema_Upgrade.onAdvance()" label=" ">
    145 		<description>&zotero.upgrade.upgradeSucceeded;</description>
    146 		<description>
    147 			&zotero.upgrade.changeLogBeforeLink;
    148 			<label class="text-link" value="&zotero.upgrade.changeLogLink;"
    149 				onclick="Zotero_Schema_Upgrade.onChangeLogLinkClick()"/>
    150 			&zotero.upgrade.changeLogAfterLink;
    151 		</description>
    152 	</wizardpage>
    153 </wizard>