[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ó">
+<!ENTITY pageExportFinished.label "Exporta OPML">
+<!ENTITY pageExportFinished.desc "S'ha acabat l'exportació">
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é">
+<!ENTITY pageExportFinished.label "Exporter une liste OPML">
+<!ENTITY pageExportFinished.desc "Export terminé">
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