protected function taskLinks($tasks)
 {
     $user = $this->getUser();
     foreach ($tasks as $index => $id) {
         $task = TranslateTasks::getTask($id);
         if (!$task) {
             unset($tasks[$index]);
             continue;
         }
         if (!$task->isAllowedFor($user)) {
             unset($tasks[$index]);
             continue;
         }
     }
     $sep = Html::element('br');
     $count = count($tasks);
     if ($count === 0) {
         return $sep . $this->msg('translate-taction-disabled')->escaped();
     } elseif ($count === 1) {
         $id = array_pop($tasks);
         // If there is only one task, and it is the default task, hide it.
         // If someone disables the default task for action, we will show
         // a list of alternative task(s), but not showing anything
         // by default. */
         if ($this->defaults['task'] === $id) {
             return '';
         }
         // Give grep a chance to find the usages:
         // translate-taskui-view, translate-taskui-untranslated, translate-taskui-optional,
         // translate-taskui-acceptqueue, translate-taskui-reviewall,
         // translate-taskui-export-to-file, translate-taskui-export-as-po
         return $sep . Html::rawElement('label', array(), Xml::radio('task', $id, true) . ' ' . $this->msg("translate-taskui-{$id}")->escaped());
     } else {
         $output = '';
         foreach ($tasks as $id) {
             // Give grep a chance to find the usages:
             // translate-taskui-view, translate-taskui-untranslated, translate-taskui-optional,
             // translate-taskui-acceptqueue, translate-taskui-reviewall,
             // translate-taskui-export-to-file, translate-taskui-export-as-po
             $output .= Html::rawElement('label', array(), Xml::radio('task', $id, $this->options['task'] === $id) . ' ' . $this->msg("translate-taskui-{$id}")->escaped()) . ' ';
         }
         return $sep . $output;
     }
 }
Example #2
0
 protected function taskSelector($pageTranslation = false)
 {
     global $wgUser;
     $selector = new XmlSelect('task', 'task');
     $selector->setDefault($this->options['task']);
     $isPageTranslation = $this->group instanceof WikiPageMessageGroup;
     foreach (TranslateTasks::getTasks($isPageTranslation) as $id) {
         if (TranslateTasks::getTask($id)->isAllowedFor($wgUser)) {
             $label = TranslateTask::labelForTask($id);
             $selector->addOption($label, $id);
         }
     }
     return $selector->getHTML();
 }