Smuggli has submitted this change and it was merged.
Change subject: Implemented changes for translatewiki
......................................................................
Implemented changes for translatewiki
Moved php i18n file to languages folder
Moved to Json i18n files
Added two missing messages in german
Fixed typo
Removed debugger statement
Fixed typo
Improved some messages
Added quotes in german
Removed de-formal json file because no message had polite form
Added key for suffix
Fixed Typo
Suffix msg is completely referenced now
Change-Id: Ia3d4fa898721eac7b9d8752019884fdf30748aa7
---
M NamespaceManager/NamespaceManager.class.php
M NamespaceManager/NamespaceManager.setup.php
A NamespaceManager/i18n/de.json
A NamespaceManager/i18n/en.json
A NamespaceManager/i18n/qqq.json
A NamespaceManager/includes/NamespaceNuker.php
A NamespaceManager/languages/NamespaceManager.i18n.php
M NamespaceManager/resources/BS.NamespaceManager/NamespaceDialog.js
M NamespaceManager/resources/BS.NamespaceManager/NamespaceRemoveDialog.js
M NamespaceManager/resources/BS.NamespaceManager/Panel.js
10 files changed, 405 insertions(+), 53 deletions(-)
Approvals:
Smuggli: Verified; Looks good to me, approved
Siebrand: Looks good to me, but someone else must approve
diff --git a/NamespaceManager/NamespaceManager.class.php
b/NamespaceManager/NamespaceManager.class.php
index c2261c8..d20a0ab 100644
--- a/NamespaceManager/NamespaceManager.class.php
+++ b/NamespaceManager/NamespaceManager.class.php
@@ -401,13 +401,13 @@
if ( strlen( $sNamespace ) < 2 ) {
return FormatJson::encode( array(
'success' => false,
- 'message' => wfMessage(
'bs-namespacemanager-namespace_name_length' )->plain()
+ 'message' => wfMessage(
'bs-namespacemanager-ns-length' )->plain()
) );
// TODO MRG (06.11.13 11:17): Unicodefähigkeit?
} else if ( !preg_match(
'%^[a-zA-Z_\\x80-\\xFF][a-zA-Z0-9_\\x80-\\xFF]{1,99}$%i', $sNamespace ) ) {
return FormatJson::encode( array(
'success' => false,
- 'message' => wfMessage(
'bs-namespacemanager-wrong_namespace_name_format' )->plain()
+ 'message' => wfMessage(
'bs-namespacemanager-wrong-name' )->plain()
) );
} else {
$aUserNamespaces[$iNS] = array( 'name' =>
$sNamespace );
@@ -432,7 +432,7 @@
// Zweig hier weglassen.
return FormatJson::encode( array(
'success' => false,
- 'message' => wfMessage(
'bs-namespacemanager-namespace_already_exists' )->plain()
+ 'message' => wfMessage(
'bs-namespacemanager-ns-exists' )->plain()
) );
}
}
@@ -460,19 +460,19 @@
if ( $iNS !== NS_MAIN && !$iNS ) {
return FormatJson::encode( array(
'success' => false,
- 'message' => wfMessage(
'bs-namespacemanager-no_valid_namespace_id' )->plain()
+ 'message' => wfMessage(
'bs-namespacemanager-invalid-id' )->plain()
) );
}
if ( strlen( $sNamespace ) < 2 ) {
return FormatJson::encode( array(
'success' => false,
- 'message' => wfMessage(
'bs-namespacemanager-namespace_name_length' )->plain()
+ 'message' => wfMessage(
'bs-namespacemanager-ns-length' )->plain()
) );
}
if ( $iNS !== NS_MAIN && $iNS !== NS_PROJECT && $iNS !==
NS_PROJECT_TALK && !preg_match(
'%^[a-zA-Z_\\x80-\\xFF][a-zA-Z0-9_\\x80-\\xFF]{1,99}$%', $sNamespace ) ) {
return FormatJson::encode( array(
'success' => false,
- 'message' => wfMessage(
'bs-namespacemanager-wrong_namespace_name_format' )->plain()
+ 'message' => wfMessage(
'bs-namespacemanager-wrong-name' )->plain()
) );
}
@@ -518,7 +518,7 @@
if ( !$iNS ) {
return FormatJson::encode( array(
'success' => false,
- 'message' => wfMessage(
'bs-namespacemanager-no_valid_namespace_id' )->plain()
+ 'message' => wfMessage(
'bs-namespacemanager-invalid-id' )->plain()
) );
}
diff --git a/NamespaceManager/NamespaceManager.setup.php
b/NamespaceManager/NamespaceManager.setup.php
index 15a394f..46712e2 100644
--- a/NamespaceManager/NamespaceManager.setup.php
+++ b/NamespaceManager/NamespaceManager.setup.php
@@ -1,55 +1,34 @@
<?php
-BsExtensionManager::registerExtension('NamespaceManager',
BsRUNLEVEL::FULL|BsRUNLEVEL::REMOTE, BsACTION::LOAD_SPECIALPAGE);
+BsExtensionManager::registerExtension('NamespaceManager',
BsRUNLEVEL::FULL|BsRUNLEVEL::REMOTE, BsACTION::LOAD_SPECIALPAGE);
+
+$wgMessagesDirs['NamespaceManager'] = __DIR__ . '/i18n';
+
+$wgExtensionMessagesFiles['NamespaceManager'] = __DIR__ .
'/languages/NamespaceManager.i18n.php';
$wgResourceModules['ext.bluespice.namespaceManager'] = array(
'scripts' =>
'extensions/BlueSpiceExtensions/NamespaceManager/resources/bluespice.namespaceManager.js',
'styles' =>
'extensions/BlueSpiceExtensions/NamespaceManager/resources/bluespice.namespaceManager.namespaceManagerTreeview.css',
'dependencies' => 'ext.bluespice.extjs',
'messages' => array(
- 'bs-namespacemanager-headerNamespaceId',
- 'bs-namespacemanager-headerNamespaceName',
- 'bs-namespacemanager-headerIsUserNamespace',
- 'bs-namespacemanager-headerIsContentNamespace',
- 'bs-namespacemanager-headerIsSearchableNamespace',
- 'bs-namespacemanager-headerIsSubpagesNamespace',
- 'bs-namespacemanager-headerActions',
- 'bs-namespacemanager-yes',
- 'bs-namespacemanager-no',
- 'bs-namespacemanager-btnAddNamespace',
- 'bs-namespacemanager-tipEdit',
- 'bs-namespacemanager-tipRemove',
- 'bs-namespacemanager-msgNotEditable',
- 'bs-namespacemanager-msgNotEditableDelete',
- 'bs-namespacemanager-titleNewNamespace',
- 'bs-namespacemanager-labelNamespaceName',
- 'bs-namespacemanager-emptyMsgNamespaceName',
- 'bs-namespacemanager-labelContentNamespace',
- 'bs-namespacemanager-labelSearchedNamespace',
- 'bs-namespacemanager-labelSubpagesNamespace',
- 'bs-namespacemanager-btnSave',
- 'bs-namespacemanager-btnCancel',
- 'bs-namespacemanager-titleError',
- 'bs-namespacemanager-willDelete',
- 'bs-namespacemanager-willMove',
- 'bs-namespacemanager-willMoveSuffix',
+ 'bs-namespacemanager-tipadd',
+ 'bs-namespacemanager-tipedit',
+ 'bs-namespacemanager-tipremove',
+ 'bs-namespacemanager-msgnoteditabledelete',
+ 'bs-namespacemanager-labelnsname',
+ 'bs-namespacemanager-willdelete',
+ 'bs-namespacemanager-willmove',
+ 'bs-namespacemanager-willmovesuffix',
'bs-namespacemanager-deletewarning',
- 'bs-namespacemanager-moveConflict',
- 'bs-namespacemanager-articlesPresent',
- 'bs-namespacemanager-btnDelete',
- 'bs-namespacemanager-deleteNamespace',
- 'bs-namespacemanager-showEntries',
- 'bs-namespacemanager-pageSize',
+ 'bs-namespacemanager-pagepresent',
'bs-namespacemanager-label-editable'
),
'localBasePath' => $IP,
'remoteBasePath' => &$GLOBALS['wgScriptPath']
);
-$wgExtensionMessagesFiles['NamespaceManager'] = __DIR__ .
'/NamespaceManager.i18n.php';
-
$GLOBALS['wgAutoloadClasses']['NamespaceManager'] = __DIR__ .
'/NamespaceManager.class.php';
-$wgAutoloadClasses['NamespaceNuker'] = __DIR__ . '/NamespaceNuker.php';
+$wgAutoloadClasses['NamespaceNuker'] = __DIR__ .
'/includes/NamespaceNuker.php';
$wgAjaxExportList[] = 'NamespaceManager::getForm';
$wgAjaxExportList[] = 'NamespaceManager::getData';
diff --git a/NamespaceManager/i18n/de.json b/NamespaceManager/i18n/de.json
new file mode 100644
index 0000000..9e887f6
--- /dev/null
+++ b/NamespaceManager/i18n/de.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Stephan Muggli <[email protected]>"
+ ]
+ },
+ "bs-namespacemanager-desc": "Administrationsoberfläche zum Erstellen
und Bearbeiten von Rechten",
+ "bs-namespacemanager-label": "Namensraumverwaltung",
+ "bs-namespacemanager-wrong-name": "Der Namesraum enthält unzulässige
Zeichen.",
+ "bs-namespacemanager-ns-exists": "Der Namesraum existiert bereits.",
+ "bs-namespacemanager-ns-length": "Der Namesraum muss minderstens zwei
Zeichen lang sein.",
+ "bs-namespacemanager-invalid-id": "Keine zulässige Namesraum ID
übertragen.",
+ "bs-namespacemanager-label-id": "ID",
+ "bs-namespacemanager-label-namespaces": "Namesraum",
+ "bs-namespacemanager-label-editable": "Umbenennbar",
+ "bs-namespacemanager-label-content": "In Statistik",
+ "bs-namespacemanager-label-searchable": "Standardmäßig durchsuchen",
+ "bs-namespacemanager-label-subpages": "Unterseiten",
+ "bs-namespacemanager-nsadded": "Der Namensraum wurde erstellt.",
+ "bs-namespacemanager-nsedited": "Der Namensraum wurde bearbeitet.",
+ "bs-namespacemanager-nsremoved": "Der Namensraum wurde gelöscht.",
+ "bs-namespacemanager-tipadd": "Namensraum hinzufügen",
+ "bs-namespacemanager-tipedit": "Namensraum bearbeiten",
+ "bs-namespacemanager-tipremove": "Namensraum entfernen",
+ "bs-namespacemanager-msgnoteditabledelete": "Dieser Namensraum ist ein
System-Namensraum und kann deshalb nicht gelöscht werden.",
+ "bs-namespacemanager-labelnsname": "Namensraum-Name",
+ "bs-namespacemanager-willdelete": "Werden gelöscht",
+ "bs-namespacemanager-willmove": "Werden in \"{{int:bs-ns_main}}\"
verschoben*",
+ "bs-namespacemanager-willmovesuffix": "Werden mit dem Suffix
\"{{int:bs-from-something}}\" in \"{{int:bs-ns_main}}\" verschoben",
+ "bs-namespacemanager-deletewarning": "Bist du dir sicher, dass du den
Namensraum löschen willst? Das Löschen eines Namensraums kann nicht rückgängig
gemacht werden.",
+ "bs-namespacemanager-pagepresent": "Seiten in diesem Namensraum:"
+}
diff --git a/NamespaceManager/i18n/en.json b/NamespaceManager/i18n/en.json
new file mode 100644
index 0000000..6427556
--- /dev/null
+++ b/NamespaceManager/i18n/en.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Stephan Muggli <[email protected]>"
+ ]
+ },
+ "bs-namespacemanager-desc": "Administration interface for managing
namespaces",
+ "bs-namespacemanager-label": "Namespace manager",
+ "bs-namespacemanager-wrong-name": "The namespace contains invalid
characters.",
+ "bs-namespacemanager-ns-exists": "The namespace already exists.",
+ "bs-namespacemanager-ns-length": "The namespace must have a minimum
length of two characters.",
+ "bs-namespacemanager-invalid-id": "No valid namespace ID",
+ "bs-namespacemanager-label-id": "ID",
+ "bs-namespacemanager-label-namespaces": "Namespace",
+ "bs-namespacemanager-label-editable": "Renameable",
+ "bs-namespacemanager-label-content": "In statistics",
+ "bs-namespacemanager-label-searchable": "Search by default",
+ "bs-namespacemanager-label-subpages": "Subpages",
+ "bs-namespacemanager-nsadded": "The namespace has been added.",
+ "bs-namespacemanager-nsremoved": "The namespace has been removed.",
+ "bs-namespacemanager-nsedited": "The namespace has been edited.",
+ "bs-namespacemanager-tipadd": "Add namespace",
+ "bs-namespacemanager-tipedit": "Edit namespace",
+ "bs-namespacemanager-tipremove": "Remove namespace",
+ "bs-namespacemanager-msgnoteditabledelete": "This namespace is a system
namespace and cannot be deleted.",
+ "bs-namespacemanager-labelnsname": "Namespace name",
+ "bs-namespacemanager-willdelete": "Will be deleted",
+ "bs-namespacemanager-willmove": "Will be moved into
\"{{int:bs-ns_main}}\"",
+ "bs-namespacemanager-willmovesuffix": "Will be moved into
\"{{int:bs-ns_main}}\" with the suffix \"{{int:bs-from-something}}\"",
+ "bs-namespacemanager-deletewarning": "Are you sure that you want to
delete this namespace? Deleting a namespace cannot be undone.",
+ "bs-namespacemanager-pagepresent": "Pages in this namespace:"
+}
diff --git a/NamespaceManager/i18n/qqq.json b/NamespaceManager/i18n/qqq.json
new file mode 100644
index 0000000..cec453b
--- /dev/null
+++ b/NamespaceManager/i18n/qqq.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Stephan Muggli <[email protected]>"
+ ]
+ },
+ "bs-namespacemanager-desc": "Used in
[[Special:Wiki_Admin&mode=ExtensionInfo]], description of namespace manager
extension",
+ "bs-namespacemanager-label": "Used in Sidebar, Anchor text for
namespace manager",
+ "bs-namespacemanager-wrong-name": "Error message for the namespace
contains invalid characters.",
+ "bs-namespacemanager-ns-exists": "Error message for the namespace
already exists.",
+ "bs-namespacemanager-ns-length": "Error message for the namespace must
have a minumum length of two characters.",
+ "bs-namespacemanager-invalid-id": "Error message for no valid namespace
ID",
+ "bs-namespacemanager-label-id": "Column headline for
id\n{{Identical|ID}}",
+ "bs-namespacemanager-label-namespaces": "Column headline for
namespace\n{{Identical|Namespace}}",
+ "bs-namespacemanager-label-editable": "Column headline for renameable",
+ "bs-namespacemanager-label-content": "Column headline for in
statistics",
+ "bs-namespacemanager-label-searchable": "Column headline for search by
default",
+ "bs-namespacemanager-label-subpages": "Column headline for subpages",
+ "bs-namespacemanager-nsadded": "Success message for the namespace has
been added.",
+ "bs-namespacemanager-nsremoved": "Success message for the namespace has
been removed.",
+ "bs-namespacemanager-nsedited": "Success message for the namespace has
been edited.",
+ "bs-namespacemanager-tipadd": "Window title for add namespace",
+ "bs-namespacemanager-tipedit": "Window title for edit namespace",
+ "bs-namespacemanager-tipremove": "Window title for remove namespace",
+ "bs-namespacemanager-msgnoteditabledelete": "Error message for this
namespace is a system namespace and cannot be deleted.",
+ "bs-namespacemanager-labelnsname": "Label for name",
+ "bs-namespacemanager-willdelete": "Checkbox label for will be deleted",
+ "bs-namespacemanager-willmove": "Checkbox label for will be moved into
\"{{int:bs-ns_main}}\"",
+ "bs-namespacemanager-willmovesuffix": "Checkbox label for will be moved
into \"{{int:bs-ns_main}}\" with the suffix \"{{int:bs-from-something}}\"\n$1
is the name of the namespace which will be deleted",
+ "bs-namespacemanager-deletewarning": "Text for are you sure that you
want to delete this namespace? Deleting a namespace cannot be undone.",
+ "bs-namespacemanager-pagepresent": "Headline for pages in this
namespace:\nHeadline for checkbox section"
+}
diff --git a/NamespaceManager/includes/NamespaceNuker.php
b/NamespaceManager/includes/NamespaceNuker.php
new file mode 100644
index 0000000..4fb21cd
--- /dev/null
+++ b/NamespaceManager/includes/NamespaceNuker.php
@@ -0,0 +1,236 @@
+<?php
+
+/**
+ * NamespacerNuker
+ * @author Sebastian Ulbricht
+ */
+// Last review MRG (01.07.11 01:47)
+class NamespaceNuker {
+
+ protected static function PurgeRedundantText() {
+ global $wgDBtype;
+ $dbw = wfGetDB(DB_MASTER);
+ $dbw->begin();
+
+ $tbl_arc = $dbw->tableName('archive');
+ $tbl_rev = $dbw->tableName('revision');
+ $tbl_txt = $dbw->tableName('text');
+
+ # Get "active" text records from the revisions table
+ $res = $dbw->query("SELECT DISTINCT rev_text_id FROM $tbl_rev");
+ while ($row = $dbw->fetchObject($res)) {
+ $cur[] = $row->rev_text_id;
+ }
+
+ # Get "active" text records from the archive table
+ $res = $dbw->query("SELECT DISTINCT ar_text_id FROM $tbl_arc");
+ while ($row = $dbw->fetchObject($res)) {
+ $cur[] = $row->ar_text_id;
+ }
+
+ # Get the IDs of all text records not in these sets
+ $set = implode(', ', $cur);
+ $res = $dbw->query("SELECT old_id FROM $tbl_txt WHERE old_id
NOT IN ( $set )");
+ $old = array();
+ while ($row = $dbw->fetchObject($res)) {
+ $old[] = $row->old_id;
+ }
+ if (count($old)) {
+ $set = implode(', ', $old);
+
+ $tbl_txt_bck = $wgDBtype == 'oracle' ?
$dbw->tableName('bs_ns_bak_text') :
$dbw->tableName('bs_namespacemanager_backup_text');
+ $dbw->query("INSERT INTO $tbl_txt_bck SELECT * FROM
$tbl_txt WHERE old_id IN ($set)");
+ $dbw->query("DELETE FROM $tbl_txt WHERE old_id IN (
$set )");
+ }
+
+ $dbw->commit();
+ }
+
+ protected static function DeleteRevisions($revs) {
+ global $wgDBtype;
+ $dbw = wfGetDB(DB_MASTER);
+ $dbw->begin();
+ $tbl_rev = $dbw->tableName('revision');
+ if (count($revs)) {
+ $set = implode(', ', $revs);
+ $tbl_rev_bck = $wgDBtype == 'oracle' ?
$dbw->tableName('bs_ns_bak_revision') :
$dbw->tableName('bs_namespacemanager_backup_revision');
+ $dbw->query("INSERT INTO $tbl_rev_bck SELECT * FROM
$tbl_rev WHERE rev_id IN ( $set )");
+ $dbw->query("DELETE FROM $tbl_rev WHERE rev_id IN (
$set )");
+ }
+ $dbw->commit();
+ }
+
+ public static function removeAllPages($idNS, $nameNS, $toNS = 0) {
+ global $wgDBtype;
+ if (!$idNS)
+ return false;
+ $bnUser = RequestContext::getMain()->getUser();
+ $idUser = $bnUser->getId();
+ $nameUser = $bnUser->getName();
+
+ $dbw = wfgetDB(DB_MASTER);
+ $dbw->begin();
+ $tbl_pag = $dbw->tableName('page');
+ $tbl_rec_chg = $dbw->tableName('recentchanges');
+ $idNS = $dbw->addQuotes($idNS);
+ $pages = array();
+ $info = array();
+ $renamed = 0;
+
+ $res = $dbw->query("SELECT page_id, page_title, page_len,
page_latest " .
+ "FROM $tbl_pag " .
+ "WHERE page_namespace = $idNS");
+ while ($row = $dbw->fetchObject($res)) {
+ $pages[] = $row->page_title;
+ $info[$row->page_title] = array('page_title' =>
$row->page_title,
+ 'page_id' => $row->page_id,
+ 'last_id' => $row->page_latest,
+ 'page_len' => $row->page_len);
+ }
+ if (count($pages)) {
+ $set = implode('\', \'', $pages);
+ $res = $dbw->query("SELECT page_title " .
+ "FROM $tbl_pag " .
+ "WHERE page_namespace =
0 " .
+ " AND page_title IN
('$set')");
+ $pages = array();
+ while ($row = $dbw->fetchObject($res)) {
+ $pages[] = $row->page_title;
+ $info[$row->page_title]['page_title'] =
$row->page_title . "_(from_$nameNS)";
+ }
+ if (count($pages)) {
+ $set = implode('\', \'', $pages);
+ $dbw->query("UPDATE $tbl_pag " .
+ "SET page_title =
CONCAT(page_title, '_(from_$nameNS)') " .
+ "WHERE page_namespace = $idNS "
.
+ " AND page_title IN ('$set')");
+ $renamed = $set;
+ }
+ if ($wgDBtype == 'postgres') {
+ $time = wfTimestamp(TS_POSTGRES, time());
+ } else {
+ $time = date("YmdHis", time());
+ }
+ foreach ($info as $page) {
+ $dbw->query("INSERT INTO $tbl_rec_chg " .
+ "(rc_timestamp, rc_cur_time,
rc_user, rc_user_text, rc_namespace, rc_title, rc_comment, rc_minor ,rc_bot,
rc_new, rc_cur_id, rc_this_oldid, " .
+ "rc_last_oldid, rc_type,
rc_moved_to_ns, rc_patrolled, rc_ip, rc_old_len, rc_new_len, rc_deleted,
rc_logid, rc_log_type) VALUES " .
+ "('$time', '$time', '$idUser',
'$nameUser', $idNS, '" . $page['page_title'] . "', " .
+ // TODO SU (04.07.11 12:05):
i18n
+ "'Diese Seite wurde vom
Namespace \"$nameNS\" in den Mainspace verschoben, da der Namespace \"$nameNS\"
gelöscht wurde.', " .
+ "0, 0, 0, " . $page['page_id']
. ", " . $page['last_id'] . ", 0, 3, 0, 0, '" . $_SERVER['REMOTE_ADDR'] . "', "
. $page['page_len'] . ", " .
+ $page['page_len'] . ", 0, 0,
'move')");
+ }
+ }
+ $dbw->query("UPDATE $tbl_pag " .
+ "SET page_namespace = $toNS " .
+ "WHERE page_namespace = $idNS");
+ $dbw->query("UPDATE $tbl_rec_chg " .
+ "SET rc_namespace = $toNS " .
+ "WHERE rc_namespace = $idNS");
+ $dbw->commit();
+
+ if ($renamed != 0) {
+ return $renamed;
+ }
+ return true;
+ }
+
+ public static function removeAllPagesWithSuffix($idNS, $nameNS, $toNS =
0) {
+ if (!$idNS) {
+ return false;
+ }
+
+ $dbw = wfgetDB(DB_MASTER);
+ $dbw->begin();
+ $tbl_pag = $dbw->tableName('page');
+ $tbl_rec_chg = $dbw->tableName('recentchanges');
+
+ $res = $dbw->query("SELECT page_id, page_title, page_len,
page_latest " .
+ "FROM $tbl_pag " .
+ "WHERE page_namespace = $idNS");
+ $info = array();
+ while ($row = $dbw->fetchObject($res)) {
+ $info[$row_ > page_title] = array('page_title' =>
$row->page_title . "_(from_$nameNS)",
+ 'page_id' => $row->page_id,
+ 'last_id' => $row->page_latest,
+ 'page_len' => $row->page_len);
+ }
+ if ($wgDBtype == 'postgres') {
+ $time = wfTimestamp(TS_POSTGRES, time());
+ } else {
+ $time = date("YmdHis", time());
+ }
+ foreach ($info as $page) {
+ $dbw->query("INSERT INTO $tbl_rec_chg " .
+ "(rc_timestamp, rc_cur_time, rc_user,
rc_user_text, rc_namespace, rc_title, rc_comment, rc_minor ,rc_bot, rc_new,
rc_cur_id, rc_this_oldid, " .
+ "rc_last_oldid, rc_type,
rc_moved_to_ns, rc_patrolled, rc_ip, rc_old_len, rc_new_len, rc_deleted,
rc_logid, rc_log_type) VALUES " .
+ "('$time', '$time', '$idUser',
'$nameUser', $idNS, '" . $page['page_title'] . "', " .
+ // TODO SU (04.07.11 12:05): i18n
+ "'Diese Seite wurde vom Namespace
\"$nameNS\" in den Mainspace verschoben, da der Namespace \"$nameNS\" gelöscht
wurde.', " .
+ "0, 0, 0, " . $page['page_id'] . ", " .
$page['last_id'] . ", 0, 3, 0, 0, '" . $_SERVER['REMOTE_ADDR'] . "', " .
$page['page_len'] . ", " .
+ $page['page_len'] . ", 0, 0, 'move')");
+ }
+
+ $dbw->query("UPDATE $tbl_pag " .
+ "SET page_title = CONCAT(page_title,
'_(from_$nameNS)'), " .
+ " page_namespace = $toNS " .
+ "WHERE page_namespace = $idNS");
+ $dbw->query("UPDATE $tbl_rec_chg " .
+ "SET rc_namespace = $toNS " .
+ "WHERE rc_namespace = $idNS");
+
+ $dbw->commit();
+ return true;
+ }
+
+ public static function nukeNamespaceWithAllPages($idNS) {
+ global $wgDBtype;
+ if (!$idNS) {
+ return false;
+ }
+ $dbw = wfgetDB(DB_MASTER);
+ $dbw->begin();
+
+ $tbl_pag = $dbw->tableName('page');
+ $tbl_rev = $dbw->tableName('revision');
+ $tbl_pag_bck = $wgDBtype == 'oracle' ?
$dbw->tableName('bs_ns_bak_page') :
$dbw->tableName('bs_namespacemanager_backup_page');
+ $tbl_rec_chg = $dbw->tableName('recentchanges');
+ $tbl_src_idx = $dbw->tableName('searchindex');
+ $res = $dbw->query("SELECT page_title FROM $tbl_pag WHERE
page_namespace = $idNS");
+ $i_deleted = 0;
+
+ while ($row = $dbw->fetchObject($res)) {
+ $title = Title::newFromText($row->page_title, $idNS);
+ $id = $title->getArticleID();
+
+ // Get corresponding revisions
+ $res2 = $dbw->query("SELECT rev_id FROM $tbl_rev WHERE
rev_page = $id");
+ $revs = array();
+ while ($row2 = $dbw->fetchObject($res2)) {
+ $revs[] = $row2->rev_id;
+ }
+ $dbw->query("INSERT INTO $tbl_pag_bck SELECT * FROM
$tbl_pag WHERE page_id = $id");
+ // Delete revisions as appropriate
+ self::DeleteRevisions($revs);
+ $dbw->query("DELETE FROM $tbl_pag WHERE page_id = $id");
+ $dbw->query("DELETE FROM $tbl_src_idx WHERE si_page =
$id");
+
+ $i_deleted++;
+ }
+ self::PurgeRedundantText(true);
+ $dbw->query("DELETE FROM $tbl_rec_chg WHERE rc_namespace =
$idNS");
+ $dbw->commit();
+ if ($i_deleted > 0) {
+ $res = $dbw->query("SELECT COUNT(*) AS pages FROM
$tbl_pag");
+ $row = $dbw->fetchObject($res);
+ $pages = $row->pages;
+ $dbw->update(
+ 'site_stats', array('ss_total_pages' =>
$pages), array('ss_row_id' => 1), __METHOD__
+ );
+ }
+
+ return true;
+ }
+
+}
\ No newline at end of file
diff --git a/NamespaceManager/languages/NamespaceManager.i18n.php
b/NamespaceManager/languages/NamespaceManager.i18n.php
new file mode 100644
index 0000000..55c1e6f
--- /dev/null
+++ b/NamespaceManager/languages/NamespaceManager.i18n.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * This is a backwards-compatibility shim, generated by:
+ *
https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php
+ *
+ * Beginning with MediaWiki 1.23, translation strings are stored in json files,
+ * and the EXTENSION.i18n.php file only exists to provide compatibility with
+ * older releases of MediaWiki. For more information about this migration, see:
+ * https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format
+ *
+ * This shim maintains compatibility back to MediaWiki 1.17.
+ */
+$messages = array();
+if ( !function_exists( 'wfJsonI18nShim0e5183bb4c366611' ) ) {
+ function wfJsonI18nShim0e5183bb4c366611( $cache, $code, &$cachedData ) {
+ $codeSequence = array_merge( array( $code ),
$cachedData['fallbackSequence'] );
+ foreach ( $codeSequence as $csCode ) {
+ $fileName = dirname( __FILE__ ) .
"/../i18n//$csCode.json";
+ if ( is_readable( $fileName ) ) {
+ $data = FormatJson::decode( file_get_contents(
$fileName ), true );
+ foreach ( array_keys( $data ) as $key ) {
+ if ( $key === '' || $key[0] === '@' ) {
+ unset( $data[$key] );
+ }
+ }
+ $cachedData['messages'] = array_merge( $data,
$cachedData['messages'] );
+ }
+
+ $cachedData['deps'][] = new FileDependency( $fileName );
+ }
+ return true;
+ }
+
+ $GLOBALS['wgHooks']['LocalisationCacheRecache'][] =
'wfJsonI18nShim0e5183bb4c366611';
+}
diff --git a/NamespaceManager/resources/BS.NamespaceManager/NamespaceDialog.js
b/NamespaceManager/resources/BS.NamespaceManager/NamespaceDialog.js
index d7c88b6..8cf4167 100644
--- a/NamespaceManager/resources/BS.NamespaceManager/NamespaceDialog.js
+++ b/NamespaceManager/resources/BS.NamespaceManager/NamespaceDialog.js
@@ -18,7 +18,7 @@
selectedData: {},
afterInitComponent: function() {
this.tfNamespaceName = Ext.create( 'Ext.form.TextField', {
- fieldLabel: mw.message(
'bs-namespacemanager-labelNamespaceName' ).plain(),
+ fieldLabel: mw.message(
'bs-namespacemanager-labelnsname' ).plain(),
labelWidth: 130,
labelAlign: 'right',
name: 'namespacename',
diff --git
a/NamespaceManager/resources/BS.NamespaceManager/NamespaceRemoveDialog.js
b/NamespaceManager/resources/BS.NamespaceManager/NamespaceRemoveDialog.js
index 6e4f4c6..5daf670 100644
--- a/NamespaceManager/resources/BS.NamespaceManager/NamespaceRemoveDialog.js
+++ b/NamespaceManager/resources/BS.NamespaceManager/NamespaceRemoveDialog.js
@@ -23,16 +23,16 @@
columns: 1,
vertical: true,
items: [
- { boxLabel:
mw.message('bs-namespacemanager-willDelete').plain(), name: 'rb', inputValue:
'0' },
- { boxLabel:
mw.message('bs-namespacemanager-willMove').plain(), name: 'rb', inputValue: '1'
},
- { boxLabel:
mw.message('bs-namespacemanager-willMoveSuffix').plain(), name: 'rb',
inputValue: '2' }
+ { boxLabel:
mw.message('bs-namespacemanager-willdelete').text(), name: 'rb', inputValue:
'0' },
+ { boxLabel:
mw.message('bs-namespacemanager-willmove').parse(), name: 'rb', inputValue: '1'
},
+ { boxLabel:
mw.message('bs-namespacemanager-willmovesuffix', this.nsName).parse(), name:
'rb', inputValue: '2' }
]
});
this.items = [{
html: mw.message(
'bs-namespacemanager-deletewarning' ).plain()
}, {
- html: mw.message(
'bs-namespacemanager-articlesPresent' ).plain()
+ html: mw.message(
'bs-namespacemanager-pagepresent' ).plain()
},
this.rgNamespacenuker
];
diff --git a/NamespaceManager/resources/BS.NamespaceManager/Panel.js
b/NamespaceManager/resources/BS.NamespaceManager/Panel.js
index 7a332ef..28387f6 100644
--- a/NamespaceManager/resources/BS.NamespaceManager/Panel.js
+++ b/NamespaceManager/resources/BS.NamespaceManager/Panel.js
@@ -84,7 +84,7 @@
//TODO: not nice. Decision on wether is "add" or "edit" shold
be made
//by the dialog depending on the provided ID. I.e. -1 for "add"
this.active = 'add';
- this.dlgNamespaceAdd.setTitle( mw.message(
'bs-namespacemanager-btnAddNamespace' ).plain() );
+ this.dlgNamespaceAdd.setTitle( mw.message(
'bs-namespacemanager-tipadd' ).plain() );
this.dlgNamespaceAdd.show();
this.callParent( arguments );
},
@@ -96,7 +96,7 @@
}
this.active = 'edit';
- this.dlgNamespaceEdit.setTitle( mw.message(
'bs-namespacemanager-tipEdit' ).plain() );
+ this.dlgNamespaceEdit.setTitle( mw.message(
'bs-namespacemanager-tipedit' ).plain() );
this.dlgNamespaceEdit.setData( selectedRow[0].getData() );
this.dlgNamespaceEdit.show();
this.callParent( arguments );
@@ -108,18 +108,24 @@
bs.util.alert(
'NMfail',
{
- textMsg:
'bs-namespacemanager-msgNotEditableDelete',
+ textMsg:
'bs-namespacemanager-msgnoteditabledelete',
titleMsg: 'bs-extjs-title-warning'
}
);
return;
}
if ( !this.dlgNamespaceRemove ) {
- this.dlgNamespaceRemove = Ext.create(
'BS.NamespaceManager.NamespaceRemoveDialog',
{id:"bs-namespacemanager-remove-dlg"} );
+ this.dlgNamespaceRemove = Ext.create(
+ 'BS.NamespaceManager.NamespaceRemoveDialog',
+ {
+ id:"bs-namespacemanager-remove-dlg",
+ nsName: selectedRow[0].get( 'name' )
+ }
+ );
this.dlgNamespaceRemove.on( 'ok',
this.onDlgNamespaceRemoveOk, this );
}
- this.dlgNamespaceRemove.setTitle( mw.message(
'bs-namespacemanager-tipRemove' ).plain() );
+ this.dlgNamespaceRemove.setTitle( mw.message(
'bs-namespacemanager-tipremove' ).plain() );
this.dlgNamespaceRemove.setData( selectedRow[0].getData() );
this.dlgNamespaceRemove.show();
this.callParent( arguments );
--
To view, visit https://gerrit.wikimedia.org/r/146428
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia3d4fa898721eac7b9d8752019884fdf30748aa7
Gerrit-PatchSet: 8
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Smuggli <[email protected]>
Gerrit-Reviewer: Mglaser <[email protected]>
Gerrit-Reviewer: Pigpen <[email protected]>
Gerrit-Reviewer: Robert Vogel <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: Smuggli <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits