[Pkg-mozext-commits] [sage-extension] 10/54: Clean up OPML wizard a bit

David Prévot taffit at moszumanska.debian.org
Fri May 1 03:10:36 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to tag sage_1_3
in repository sage-extension.

commit 25aa7b273adf4a8b936f72f9d09254b8ef3c1ae3
Author: Erik Arvidsson <erik.arvidsson at gmail.com>
Date:   Sat Sep 11 15:01:53 2004 +0000

    Clean up OPML wizard a bit
---
 src/sage/content/opml/opml.js  | 152 +++++++++++++++++++++++++----------------
 src/sage/content/opml/opml.xul |  43 +++++++++---
 src/sage/locale/ca-CA/opml.dtd |   5 ++
 src/sage/locale/de-DE/opml.dtd |   7 +-
 src/sage/locale/en-US/opml.dtd |   5 ++
 src/sage/locale/es-ES/opml.dtd |   5 ++
 src/sage/locale/fr-FR/opml.dtd |   4 ++
 src/sage/locale/hu-HU/opml.dtd |   5 ++
 src/sage/locale/it-IT/opml.dtd |   4 ++
 src/sage/locale/ja-JP/opml.dtd |   5 ++
 src/sage/locale/nl-NL/opml.dtd |   5 ++
 src/sage/locale/ru-RU/opml.dtd |   7 +-
 src/sage/locale/zh-TW/opml.dtd |   5 ++
 13 files changed, 183 insertions(+), 69 deletions(-)

diff --git a/src/sage/content/opml/opml.js b/src/sage/content/opml/opml.js
index 7c03b02..5b9e7ec 100755
--- a/src/sage/content/opml/opml.js
+++ b/src/sage/content/opml/opml.js
@@ -1,17 +1,12 @@
-const WIZ_MODE_IMPORT = 0;
-const WIZ_MODE_EXPORT = 1;
-
-var wizMode = WIZ_MODE_IMPORT;
-
-	// XUL Object
-var winMain;
-var txtImportFile;
-var txtExportFile;
+// XUL Object
+var winMain, txtImportFile, txtExportFile;
 var strRes;
 
 
+var g_errorMesage = "";
+
 function init() {
-		// Bookmarks Service
+	// Bookmarks Service
 	initServices();
 	initBMService();
 
@@ -20,33 +15,26 @@ function init() {
 	winMain = document.getElementById("winMain");
 	txtImportFile = document.getElementById("txtImportFile");
 	txtExportFile = document.getElementById("txtExportFile");
+
+	document.getElementById( "pageExport" ).canAdvance = false;
+	document.getElementById( "pageImport" ).canAdvance = false;
 }
 
 function finish() {
-	if(wizMode == WIZ_MODE_IMPORT) {
-		if(!checkFilePath(txtImportFile.value, true)) return false;
-		if(!importOPML()) return false;
-		alert(strRes.getString("opml_import_done"));
-	} else {
-		if(!checkFilePath(txtExportFile.value, false)) return false;
-		exportOPML();
-		alert(strRes.getString("opml_export_done"));
-	}
-	
 	return true;
 }
 
-
 function browseImportFile() {
 	var fpicker = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
-	fpicker.init(window, "Select OPML File", fpicker.modeOpen);
+	fpicker.init(window, strRes.getString("opml_select_file"), fpicker.modeOpen);
 	fpicker.appendFilter("OPML File(*.xml, *.opml)", "*.xml;*.opml");
 	fpicker.appendFilters(fpicker.filterAll);
 
 	var showResult = fpicker.show();
 	if(showResult == fpicker.returnOK) {
-		txtImportFile.value = fpicker.file.path;	
+		txtImportFile.value = fpicker.file.path;
 	}
+	canAdvanceImport();
 }
 
 function browseExportFile() {
@@ -58,44 +46,45 @@ function browseExportFile() {
 
 	var showResult = fpicker.show();
 	if(showResult == fpicker.returnOK || showResult == fpicker.returnReplace) {
-		txtExportFile.value = fpicker.file.path;	
+		txtExportFile.value = fpicker.file.path;
 	}
+	canAdvanceExport();
 }
 
-
-
 function checkFilePath(aFilePath, aExistCheck) {
 	if(!aFilePath) {
-		alert(strRes.getString("opml_path_blank"));
+		g_errorMesage = strRes.getString("opml_path_blank");
 		return false;
 	}
-	
+
 	var tmpFile = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
 	try {
 		tmpFile.initWithPath(aFilePath);
 		if(aExistCheck) {
 			if(!tmpFile.exists()) {
-					// �t�@�C�������݂��Ȃ�
-				alert(strRes.getString("opml_path_nofile"));
+				g_errorMesage = strRes.getString("opml_path_nofile");
 				return false;
 			}
 		}
 	} catch(e) {
-			// �s���ȃt�@�C���p�X
-		alert(strRes.getString("opml_path_invalid"));
+		g_errorMesage = strRes.getString("opml_path_invalid");
 		return false;
 	}
-	
+
 	return true;
 }
 
-
-
 // ********** ********** Import OPML ********** **********
 
 function importOPML() {
+	var path = txtImportFile.value;
+	if (!checkFilePath(path, true)) {
+		reportError(g_errorMesage);
+		return false;
+	}
+
 	var uriFixup = Components.classes['@mozilla.org/docshell/urifixup;1'].getService(Components.interfaces.nsIURIFixup);
-	var opmlUrl = uriFixup.createFixupURI(txtImportFile.value, uriFixup.FIXUP_FLAG_ALLOW_KEYWORD_LOOKUP);
+	var opmlUrl = uriFixup.createFixupURI(path, uriFixup.FIXUP_FLAG_ALLOW_KEYWORD_LOOKUP);
 
 	var httpReq = new XMLHttpRequest();
 	try {
@@ -103,13 +92,13 @@ function importOPML() {
 		httpReq.overrideMimeType("application/xml");
 		httpReq.send(null);
 	} catch(e) {
-		alert(strRes.getString("opml_import_fail"));
+		reportError(strRes.getString("opml_import_fail"));
 		return false;
 	}
-	
+
 	opmlDoc = httpReq.responseXML;
 	if(opmlDoc.documentElement.localName != "opml") {
-		alert(strRes.getString("opml_import_badfile"));
+		reportError(strRes.getString("opml_import_badfile"));
 		return false;
 	}
 	var rssReaderFolderID = CommonFunc.getPrefValue(CommonFunc.RSS_READER_FOLDER_ID, "str", "NC:BookmarksRoot");
@@ -138,7 +127,6 @@ function importOPML() {
 		}
 	}
 
-		// �u�b�N�}�[�N�̕ۑ�
 	BookmarksUtils.flushDataSource();
 
 	return true;
@@ -169,21 +157,24 @@ function createRssItem(aOutlineNode, aRssFolder) {
 	} else {
 		BMSVC.createBookmarkInContainer(title, xmlUrl, null, "no-updated", null, null, aRssFolder, null);
 	}
-	
-}
-
-
 
+}
 
 // ********** ********** Export OPML ********** **********
 
 function exportOPML() {
+	var path = txtExportFile.value;
+	if (!checkFilePath(path, false)) {
+		reportError(g_errorMesage);
+		return false;
+	}
+
 	var opmlSource = createOpmlSource();
 	opmlSource = CommonFunc.convertCharCodeFrom(opmlSource, "UTF-8");
 
 	var tmpFile = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
 	try {
-		tmpFile.initWithPath(txtExportFile.value);
+		tmpFile.initWithPath(path);
 		if(tmpFile.exists()) {
 			tmpFile.remove(true);
 		}
@@ -194,31 +185,32 @@ function exportOPML() {
 		stream.flush();
 		stream.close();
 	} catch(e) {
-		alert(strRes.getString("opml_export_nocreate"));
+		reportError(strRes.getString("opml_export_nocreate"));
+		return false;
 	}
-}
 
+	return true;
+}
 
 function createOpmlSource() {
 	var rssReaderFolderID = CommonFunc.getPrefValue(CommonFunc.RSS_READER_FOLDER_ID,"str", "NC:BookmarksRoot");
 	var rssReaderFolderRes = RDF.GetResource(rssReaderFolderID);
-	
+
 	var srcTemplate =  '<?xml version="1.0" encoding="UTF-8"?>';
 	srcTemplate += '<opml version="1.0">';
 	srcTemplate += '<head><title>RSS Reader Panel Export OPML</title></head>';
 	srcTemplate += '<body/></opml>';
-	
+
 	var opmlDoc = new DOMParser().parseFromString(srcTemplate, "text/xml");
 	var opmlBody = opmlDoc.getElementsByTagName("body")[0];
-	
+
 	opmlBody.appendChild(createOpmlOutline(opmlDoc, rssReaderFolderRes));
 	xmlIndent(opmlDoc);
-	
+
 	var opmlSource = new XMLSerializer().serializeToString(opmlDoc);
 	return opmlSource;
 }
 
-
 function createOpmlOutline(aOpmlDoc, aRssItem) {
 	var url = CommonFunc.getBMDSProperty(aRssItem, CommonFunc.BM_URL);
 	var title = CommonFunc.getBMDSProperty(aRssItem, CommonFunc.BM_NAME);
@@ -227,7 +219,7 @@ function createOpmlOutline(aOpmlDoc, aRssItem) {
 
 	if(isContainer) {
 		outlineNode.setAttribute("text", title);
-		
+
 		var rdfContainer = Components.classes["@mozilla.org/rdf/container;1"].getService(Components.interfaces.nsIRDFContainer);
 		rdfContainer.Init(BMDS, aRssItem);
 		var containerChildren = rdfContainer.GetElements();
@@ -245,9 +237,6 @@ function createOpmlOutline(aOpmlDoc, aRssItem) {
 	return outlineNode;
 }
 
-
-
-	// XML �\�[�X�̃C���f���g
 function xmlIndent(aDoc) {
 	var treeWalker = aDoc.createTreeWalker(aDoc, NodeFilter.SHOW_ELEMENT, null, true);
 	aDoc._depth = 0;
@@ -268,7 +257,54 @@ function xmlIndent(aDoc) {
 		}
 	}
 	function getIndent(aDepth) {
-		var result = new Array(aDepth);
+		// in some weird case this is NaN
+		if (aDepth < 0 || isNaN(aDepth))
+			return "";
+		var result = new Array( aDepth );
 		return result.join("\t");
 	}
-}
\ No newline at end of file
+}
+
+function isTextBoxEmpty(el) {
+	return /^\s*$/.test(el.value);
+}
+
+function canAdvanceImport() {
+	winMain.canAdvance = !isTextBoxEmpty(txtImportFile)
+}
+
+function canAdvanceExport() {
+	winMain.canAdvance = !isTextBoxEmpty(txtExportFile)
+}
+
+function reportError(s)
+{
+	// This should really show an error prompt
+	alert(s);
+}
+
+
+// Page initializers
+function onPageStartShow() {
+	winMain.getButton("cancel").disabled = false;
+	winMain.canAdvance = true;
+}
+
+function onPageImportShow() {
+	winMain.getButton("cancel").disabled = false;
+	canAdvanceImport();
+}
+
+function onPageExportShow() {
+	winMain.getButton("cancel").disabled = false;
+	canAdvanceExport();
+}
+
+function onPageImportFinishedShow() {
+	document.documentElement.getButton("cancel").disabled = true;
+}
+
+function onPageExportFinishedShow() {
+	document.documentElement.getButton("cancel").disabled = true;
+}
+
diff --git a/src/sage/content/opml/opml.xul b/src/sage/content/opml/opml.xul
index e8ca895..f500bc9 100755
--- a/src/sage/content/opml/opml.xul
+++ b/src/sage/content/opml/opml.xul
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="Shift_JIS"?>
+<?xml version="1.0" encoding="utf-8"?>
 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
 
 <!DOCTYPE wizard SYSTEM "chrome://sage/locale/opml.dtd">
 
 <wizard id="winMain" title="&pageStart.label;"
-	onload="init()" onwizardfinish="return finish()"
+	onload="init()"	onwizardfinish="return finish()"
 	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
 <script type="application/x-javascript" src="chrome://browser/content/bookmarks/bookmarks.js"></script>
@@ -16,33 +16,58 @@
 </stringbundleset>
 
 <wizardpage pageid="pageStart" next="pageImport"
-		label="&pageStart.label;" description="&pageStart.desc;">
+		label="&pageStart.label;" description="&pageStart.desc;"
+		onpageshow="onPageStartShow()">
 	<spacer height="40px"/>
 	<hbox>
 		<radiogroup>
 			<radio id="rdoImport" label="&rdoImport.label;" selected="true"
-				onclick="winMain.currentPage.next='pageImport'; wizMode=WIZ_MODE_IMPORT"/>
+				onclick="winMain.currentPage.next='pageImport'"/>
 			<radio id="rdoExport" label="&rdoExport.label;"
-				onclick="winMain.currentPage.next='pageExport'; wizMode=WIZ_MODE_EXPORT"/>
+				onclick="winMain.currentPage.next='pageExport'"/>
 		</radiogroup>
 		<spacer flex="1"/>
 	</hbox>
 </wizardpage>
 
-<wizardpage pageid="pageImport" label="&pageImport.label;" description="&pageImport.desc;">
+<!-- Import -->
+<wizardpage id="pageImport" pageid="pageImport"
+			label="&pageImport.label;" description="&pageImport.desc;"
+			next="pageImportFinished"
+			onpageshow="onPageImportShow()"
+			onpageadvanced="return importOPML()">
 	<spacer height="40px"/>
 	<hbox align="center">
-		<textbox flex="1" id="txtImportFile"/>
+		<textbox flex="1" id="txtImportFile" oninput="canAdvanceImport()"/>
 		<button label="&browseButton.label;" oncommand="browseImportFile()"/>
 	</hbox>
 </wizardpage>
 
-<wizardpage pageid="pageExport" label="&pageExport.label;" description="&pageExport.desc;">
+<wizardpage pageid="pageImportFinished" label="&pageImportFinished.label;"
+			onpageshow="onPageImportFinishedShow()">
+	<spacer height="40px"/>
+	<description>&pageImportFinished.desc;</description>
+</wizardpage>
+
+<!-- Export -->
+<wizardpage id="pageExport" pageid="pageExport"
+			label="&pageExport.label;" description="&pageExport.desc;"
+			next="pageExportFinished"
+			onpageshow="onPageExportShow()"
+			onpageadvanced="return exportOPML()">
 	<spacer height="40px"/>
 	<hbox align="center">
-		<textbox flex="1" id="txtExportFile"/>
+		<textbox flex="1" id="txtExportFile" oninput="canAdvanceExport()"/>
 		<button label="&browseButton.label;" oncommand="browseExportFile()"/>
 	</hbox>
 </wizardpage>
 
+<wizardpage pageid="pageExportFinished" label="&pageExportFinished.label;"
+			onpageshow="onPageExportFinishedShow()">
+	<spacer height="40px"/>
+	<description>&pageExportFinished.desc;</description>
+</wizardpage>
+
+
 </wizard>
+
diff --git a/src/sage/locale/ca-CA/opml.dtd b/src/sage/locale/ca-CA/opml.dtd
index 86b6fa7..aa0acc3 100644
--- a/src/sage/locale/ca-CA/opml.dtd
+++ b/src/sage/locale/ca-CA/opml.dtd
@@ -7,3 +7,8 @@
 <!ENTITY rdoImport.label "Importa OPML">
 <!ENTITY rdoExport.label "Exporta OPML">
 <!ENTITY browseButton.label "Vés a...">
+
+<!ENTITY pageImportFinished.label	"Importa OPML">
+<!ENTITY pageImportFinished.desc	"S'ha acabat la importaci&#x00f3;">
+<!ENTITY pageExportFinished.label	"Exporta OPML">
+<!ENTITY pageExportFinished.desc	"S'ha acabat l'exportaci&#x00f3;">
diff --git a/src/sage/locale/de-DE/opml.dtd b/src/sage/locale/de-DE/opml.dtd
index 55e25c1..d5b32c6 100644
--- a/src/sage/locale/de-DE/opml.dtd
+++ b/src/sage/locale/de-DE/opml.dtd
@@ -8,4 +8,9 @@
 <!ENTITY rdoImport.label			"OPML importieren">
 <!ENTITY rdoExport.label			"OPML exportieren">
 
-<!ENTITY browseButton.label			"Durchsuchen...">
\ No newline at end of file
+<!ENTITY browseButton.label			"Durchsuchen...">
+
+<!ENTITY pageImportFinished.label	"OPML importieren">
+<!ENTITY pageImportFinished.desc	"Import Complete">
+<!ENTITY pageExportFinished.label	"OPML exportieren">
+<!ENTITY pageExportFinished.desc	"Export Complete">
diff --git a/src/sage/locale/en-US/opml.dtd b/src/sage/locale/en-US/opml.dtd
index eee4dcf..fdd9237 100755
--- a/src/sage/locale/en-US/opml.dtd
+++ b/src/sage/locale/en-US/opml.dtd
@@ -9,3 +9,8 @@
 <!ENTITY rdoExport.label			"Export OPML">
 
 <!ENTITY browseButton.label			"Browse...">
+
+<!ENTITY pageImportFinished.label	"Import OPML">
+<!ENTITY pageImportFinished.desc	"Import Complete">
+<!ENTITY pageExportFinished.label	"Export OPML">
+<!ENTITY pageExportFinished.desc	"Export Complete">
diff --git a/src/sage/locale/es-ES/opml.dtd b/src/sage/locale/es-ES/opml.dtd
index 04c4340..794cce3 100644
--- a/src/sage/locale/es-ES/opml.dtd
+++ b/src/sage/locale/es-ES/opml.dtd
@@ -9,3 +9,8 @@
 <!ENTITY rdoExport.label			"Exportar OPML">
 
 <!ENTITY browseButton.label			"Examinar...">
+
+<!ENTITY pageImportFinished.label	"Importar OPML">
+<!ENTITY pageImportFinished.desc	"Importaci�n Completa">
+<!ENTITY pageExportFinished.label	"Exportar OPML">
+<!ENTITY pageExportFinished.desc	"Exportaci�n Completa">
diff --git a/src/sage/locale/fr-FR/opml.dtd b/src/sage/locale/fr-FR/opml.dtd
index ecf68d1..2f02803 100644
--- a/src/sage/locale/fr-FR/opml.dtd
+++ b/src/sage/locale/fr-FR/opml.dtd
@@ -10,3 +10,7 @@
 
 <!ENTITY browseButton.label			"Parcourir...">
 
+<!ENTITY pageImportFinished.label	"Importer une liste OPML">
+<!ENTITY pageImportFinished.desc	"Import termin&#x00e9;">
+<!ENTITY pageExportFinished.label	"Exporter une liste OPML">
+<!ENTITY pageExportFinished.desc	"Export termin&#x00e9;">
diff --git a/src/sage/locale/hu-HU/opml.dtd b/src/sage/locale/hu-HU/opml.dtd
index 46967e3..275d7d0 100755
--- a/src/sage/locale/hu-HU/opml.dtd
+++ b/src/sage/locale/hu-HU/opml.dtd
@@ -9,3 +9,8 @@
 <!ENTITY rdoExport.label			"OPML export">
 
 <!ENTITY browseButton.label			"B�ng�sz�s...">
+
+<!ENTITY pageImportFinished.label	"OPML import�l�s">
+<!ENTITY pageImportFinished.desc	"Import�l�s befejezve">
+<!ENTITY pageExportFinished.label	"OPML export�l�s">
+<!ENTITY pageExportFinished.desc	"Exportport�l�s befejezve">
diff --git a/src/sage/locale/it-IT/opml.dtd b/src/sage/locale/it-IT/opml.dtd
index 7f0e7bc..2fd7de0 100644
--- a/src/sage/locale/it-IT/opml.dtd
+++ b/src/sage/locale/it-IT/opml.dtd
@@ -10,3 +10,7 @@
 
 <!ENTITY browseButton.label			"Percorso...">
 
+<!ENTITY pageImportFinished.label	"Importare una lista OPML">
+<!ENTITY pageImportFinished.desc	"Importazione Completa">
+<!ENTITY pageExportFinished.label	"Esportare una lista OPML">
+<!ENTITY pageExportFinished.desc	"Esportazione Completa">
diff --git a/src/sage/locale/ja-JP/opml.dtd b/src/sage/locale/ja-JP/opml.dtd
index a2812ff..10b8d44 100755
--- a/src/sage/locale/ja-JP/opml.dtd
+++ b/src/sage/locale/ja-JP/opml.dtd
@@ -9,3 +9,8 @@
 <!ENTITY rdoExport.label			"OPML のエクスポート">
 
 <!ENTITY browseButton.label			"参照...">
+
+<!ENTITY pageImportFinished.label	"OPML のインポート">
+<!ENTITY pageImportFinished.desc	"Import Complete">
+<!ENTITY pageExportFinished.label	"OPML のエクスポート">
+<!ENTITY pageExportFinished.desc	"Export Complete">
diff --git a/src/sage/locale/nl-NL/opml.dtd b/src/sage/locale/nl-NL/opml.dtd
index e82623f..6762141 100644
--- a/src/sage/locale/nl-NL/opml.dtd
+++ b/src/sage/locale/nl-NL/opml.dtd
@@ -9,3 +9,8 @@
 <!ENTITY rdoExport.label			"Exporteer OPML">
 
 <!ENTITY browseButton.label		"Verkennen...">
+
+<!ENTITY pageImportFinished.label	"Importeer OPML">
+<!ENTITY pageImportFinished.desc	"Import volledig">
+<!ENTITY pageExportFinished.label	"Exporteer OPML">
+<!ENTITY pageExportFinished.desc	"Export volledig">
diff --git a/src/sage/locale/ru-RU/opml.dtd b/src/sage/locale/ru-RU/opml.dtd
index 4fc4327..80e9bf8 100644
--- a/src/sage/locale/ru-RU/opml.dtd
+++ b/src/sage/locale/ru-RU/opml.dtd
@@ -8,4 +8,9 @@
 <!ENTITY rdoImport.label                        "Импорт OPML">
 <!ENTITY rdoExport.label                        "Экспорт OPML">
 
-<!ENTITY browseButton.label                     "Пролистать...">
\ No newline at end of file
+<!ENTITY browseButton.label                     "Пролистать...">
+
+<!ENTITY pageImportFinished.label	"Импорт OPML">
+<!ENTITY pageImportFinished.desc	"Импорт завершен">
+<!ENTITY pageExportFinished.label	"Экспорт OPML">
+<!ENTITY pageExportFinished.desc	"Экспорт завершен">
diff --git a/src/sage/locale/zh-TW/opml.dtd b/src/sage/locale/zh-TW/opml.dtd
index 4b87729..2db26a0 100644
--- a/src/sage/locale/zh-TW/opml.dtd
+++ b/src/sage/locale/zh-TW/opml.dtd
@@ -9,3 +9,8 @@
 <!ENTITY rdoExport.label			"匯出 OPML">
 
 <!ENTITY browseButton.label			"瀏覽...">
+
+<!ENTITY pageImportFinished.label	"匯入 OPML">
+<!ENTITY pageImportFinished.desc	"OPML 匯入完成">
+<!ENTITY pageExportFinished.label	"匯出 OPML">
+<!ENTITY pageExportFinished.desc	"OPML 匯出完成">

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/sage-extension.git



More information about the Pkg-mozext-commits mailing list