https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113669
Revision: 113669
Author: amire80
Date: 2012-03-12 21:19:31 +0000 (Mon, 12 Mar 2012)
Log Message:
-----------
Completing the form fields.
Modified Paths:
--------------
trunk/extensions/TranslationNotifications/SpecialNotifyTranslators.php
trunk/extensions/TranslationNotifications/TranslationNotifications.i18n.php
Modified: trunk/extensions/TranslationNotifications/SpecialNotifyTranslators.php
===================================================================
--- trunk/extensions/TranslationNotifications/SpecialNotifyTranslators.php
2012-03-12 21:17:23 UTC (rev 113668)
+++ trunk/extensions/TranslationNotifications/SpecialNotifyTranslators.php
2012-03-12 21:19:31 UTC (rev 113669)
@@ -25,12 +25,19 @@
public function execute( $parameters ) {
global $wgUser, $wgOut;
+ $this->setHeaders();
+
if ( !$wgUser->isallowed( self::$right ) ) {
throw new PermissionsError( self::$right );
}
- $wgOut->addModules(
'ext.translationnotifications.notifytranslators' );
+ $htmlFormDataModel = $this->getDataModel();
+ if ( !is_array( $htmlFormDataModel ) ) {
+ $wgOut->addWikiMsg( $htmlFormDataModel );
+ return;
+ }
+
$context = $this->getContext();
$htmlForm = new HtmlForm( $this->getDataModel(), $context,
'translationnotifications' );
$htmlForm->setId( 'notifytranslators-form' );
@@ -39,10 +46,35 @@
$htmlForm->setSubmitCallback( array( $this, 'formSubmit' ) );
$htmlForm->show();
- $this->setHeaders();
+ $wgOut->addModules(
'ext.translationnotifications.notifytranslators' );
}
- public function getDataModel() {
+ /**
+ * Builds the form fields
+ *
+ * @return array or string with an error message key in case of error
+ */
+ private function getDataModel() {
+
+ // Translatable pages dropdown
+ $translatablePagesIDs =
TranslatablePage::getTranslatablePages();
+ if ( count ( $translatablePagesIDs ) ) {
+ return
'translationnotifications-error-no-translatable-pages';
+ }
+
+ $translatablePagesOptions = array();
+ foreach ( $translatablePagesIDs as $translatablePagesID ) {
+ $translatablePagesOptions[Title::newFromID(
$translatablePagesID )->getText()] = $translatablePagesID;
+ }
+
+ $m['TranslatablePage'] = array(
+ 'type' => 'select',
+ 'label-message' => array(
'translationnotifications-translatablepage-title' ),
+ 'options' => $translatablePagesOptions,
+ 'default' => 'unset',
+ );
+
+ // Languages to notify input box
$m['LanguagesToNotify'] = array(
'type' => 'text',
'rows' => 20,
@@ -50,19 +82,37 @@
'label-message' =>
'translationnotifications-languages-to-notify-label',
);
- $m['NotificationText'] = array(
- 'type' => 'textarea',
- 'rows' => 20,
- 'cols' => 80,
- 'label-message' => 'emailmessage',
+ // Priotity dropdown
+ $priorityOptions = array();
+ $priorities = array( 'unset', 'high', 'medium', 'low' );
+
+ foreach ( $priorities as $priority ) {
+ $priorityMessage = wfMessage(
"translationnotifications-priority-$priority" )->plain();
+ $priorityOptions[$priorityMessage] = $priority;
+ }
+
+ $m['Priority'] = array(
+ 'type' => 'select',
+ 'label-message' => array(
'translationnotifications-priority' ),
+ 'options' => $priorityOptions,
+ 'default' => 'unset',
);
+ // Deadline date input box with datepicker
$m['DeadlineDate'] = array(
'type' => 'text',
'size' => 20,
'label-message' =>
'translationnotifications-deadline-label',
);
+ // Custom text
+ $m['NotificationText'] = array(
+ 'type' => 'textarea',
+ 'rows' => 20,
+ 'cols' => 80,
+ 'label-message' => 'emailmessage',
+ );
+
return $m;
}
}
Modified:
trunk/extensions/TranslationNotifications/TranslationNotifications.i18n.php
===================================================================
--- trunk/extensions/TranslationNotifications/TranslationNotifications.i18n.php
2012-03-12 21:17:23 UTC (rev 113668)
+++ trunk/extensions/TranslationNotifications/TranslationNotifications.i18n.php
2012-03-12 21:19:31 UTC (rev 113669)
@@ -42,7 +42,14 @@
'translationnotifications-notifytranslators' => 'Notify translators',
'translationnotifications-send-notification-button' => 'Send a
notification to translators',
'translationnotifications-deadline-label' => 'Deadline to indicate in
this notification:',
- 'translationnotifications-languages-to-notify-label' => 'Which
languages to notify (code):',
+ 'translationnotifications-languages-to-notify-label' => 'Which
languages to notify (comma-separated codes):',
+ 'translationnotifications-priority' => 'Priority:',
+ 'translationnotifications-priority-high' => 'high',
+ 'translationnotifications-priority-medium' => 'medium',
+ 'translationnotifications-priority-low' => 'low',
+ 'translationnotifications-priority-unset' => '(unset)',
+ 'translationnotifications-translatablepage-title' => 'Translatable page
name:',
+ 'translationnotifications-error-no-translatable-pages' => 'There are no
translatable pages in this wiki.',
);
/** Message documentation (Message documentation)
@@ -80,6 +87,13 @@
'translationnotifications-send-notification-button' => 'A title for the
submit button of the translator notification form.',
'translationnotifications-deadline-label' => 'A label for the deadline
field, which will have a datepicker.',
'translationnotifications-languages-to-notify-label' => 'A label for
language codes field.',
+ 'translationnotifications-priority' => 'A label for translation
priority field.',
+ 'translationnotifications-priority-high' => 'high (priority), an item
in a dropdown box.',
+ 'translationnotifications-priority-medium' => 'medium (priority), an
item in a dropdown box.',
+ 'translationnotifications-priority-low' => 'low (priority), an item in
a dropdown box.',
+ 'translationnotifications-priority-unset' => 'unset (priority), an item
in a dropdown box.',
+ 'translationnotifications-translatablepage-title' => 'A label for
language codes field. Can be translated as "A page designated for translation,
intended for translation", etc.',
+ 'translationnotifications-error-no-translatable-pages' => 'An error
message.',
);
/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs