Compare commits

..
3 Commits
Author SHA1 Message Date
Wojtek 3ee0b22d75 Remove apply button from set form 2026-10-16 10:35:23 +02:00
Wojtek 59335cbc52 Use explicit set save toolbar actions 2026-10-16 10:32:20 +02:00
Wojtek 5abf29cebb Fix variant save and close redirect 2026-10-16 10:29:52 +02:00
8 changed files with 55 additions and 6 deletions
+1 -1
View File
@@ -30,6 +30,6 @@ Szkielet komponentu Joomla 6 do gromadzenia pytań testowych.
## Instalacja ## Instalacja
W Joomla wybierz **System → Install → Install from Folder** i wskaż ten katalog. Manifestem instalacyjnym jest `com_testquestions.xml` (wersja 1.37.1). W Joomla wybierz **System → Install → Install from Folder** i wskaż ten katalog. Manifestem instalacyjnym jest `com_testquestions.xml` (wersja 1.38.0).
Po instalacji komponent jest dostępny w panelu administratora jako **Pytania testowe**. Po instalacji komponent jest dostępny w panelu administratora jako **Pytania testowe**.
@@ -58,6 +58,8 @@ COM_TESTQUESTIONS_SET_ADD_VARIANT="Dodaj wariant"
COM_TESTQUESTIONS_SET_PARENT="Zestaw nadrzędny" COM_TESTQUESTIONS_SET_PARENT="Zestaw nadrzędny"
COM_TESTQUESTIONS_SET_NO_VARIANTS="Brak wariantów" COM_TESTQUESTIONS_SET_NO_VARIANTS="Brak wariantów"
COM_TESTQUESTIONS_SET_MULTI_QUESTIONS_INFO="Pytania są dodawane w poszczególnych wariantach zestawu." COM_TESTQUESTIONS_SET_MULTI_QUESTIONS_INFO="Pytania są dodawane w poszczególnych wariantach zestawu."
COM_TESTQUESTIONS_SET_SAVE="Zapisz"
COM_TESTQUESTIONS_SET_SAVE_AND_CLOSE="Zapisz i zamknij"
COM_TESTQUESTIONS_SET_DESCRIPTION="Opis zestawu" COM_TESTQUESTIONS_SET_DESCRIPTION="Opis zestawu"
COM_TESTQUESTIONS_SET_QUESTIONS="Pytania w zestawie" COM_TESTQUESTIONS_SET_QUESTIONS="Pytania w zestawie"
COM_TESTQUESTIONS_SET_QUESTION_COUNT="Liczba pytań" COM_TESTQUESTIONS_SET_QUESTION_COUNT="Liczba pytań"
@@ -0,0 +1 @@
-- No database changes required for version 1.37.2.
@@ -0,0 +1 @@
-- No database changes required for version 1.37.3.
@@ -0,0 +1 @@
-- No database changes required for version 1.38.0.
@@ -21,11 +21,55 @@ class SetController extends FormController
{ {
$formData = (array) $this->input->post->get('jform', [], 'array'); $formData = (array) $this->input->post->get('jform', [], 'array');
$parentId = (int) ($formData['parent_id'] ?? 0); $parentId = (int) ($formData['parent_id'] ?? 0);
$itemId = (int) ($formData['id'] ?? $this->input->getInt('id'));
$result = parent::save2close($key, $urlVar); $result = parent::save2close($key, $urlVar);
if ($result && $parentId > 0) { if ($result) {
if ($itemId > 0) {
$item = $this->getModel()->getItem($itemId);
$parentId = (int) ($item->parent_id ?? $parentId);
}
if ($parentId > 0) {
$this->setRedirect('index.php?option=com_testquestions&task=set.edit&id=' . $parentId); $this->setRedirect('index.php?option=com_testquestions&task=set.edit&id=' . $parentId);
} }
}
return $result;
}
public function save($key = null, $urlVar = null)
{
$formData = (array) $this->input->post->get('jform', [], 'array');
$result = parent::save($key, $urlVar);
$itemId = (int) ($formData['id'] ?? $this->input->getInt('id'));
if ($result && $itemId > 0) {
$this->setRedirect('index.php?option=com_testquestions&task=set.edit&id=' . $itemId);
}
return $result;
}
public function saveandclose($key = null, $urlVar = null)
{
$formData = (array) $this->input->post->get('jform', [], 'array');
$parentId = (int) ($formData['parent_id'] ?? 0);
$result = parent::save($key, $urlVar);
$itemId = (int) ($formData['id'] ?? $this->input->getInt('id'));
if ($result && $itemId > 0 && $parentId < 1) {
$item = $this->getModel()->getItem($itemId);
$parentId = (int) ($item->parent_id ?? 0);
}
if ($result) {
$this->setRedirect(
$parentId > 0
? 'index.php?option=com_testquestions&task=set.edit&id=' . $parentId
: 'index.php?option=com_testquestions&view=sets'
);
}
return $result; return $result;
} }
@@ -36,8 +36,8 @@ class HtmlView extends BaseHtmlView
protected function addToolbar() protected function addToolbar()
{ {
ToolbarHelper::title($this->item->id ? Text::_('COM_TESTQUESTIONS_EDIT_SET') : Text::_('COM_TESTQUESTIONS_NEW_SET')); ToolbarHelper::title($this->item->id ? Text::_('COM_TESTQUESTIONS_EDIT_SET') : Text::_('COM_TESTQUESTIONS_NEW_SET'));
ToolbarHelper::apply('set.apply', 'JTOOLBAR_APPLY'); ToolbarHelper::custom('set.save', 'save', 'save', 'COM_TESTQUESTIONS_SET_SAVE', false);
ToolbarHelper::save('set.save', 'JTOOLBAR_SAVE'); ToolbarHelper::custom('set.saveandclose', 'save', 'save', 'COM_TESTQUESTIONS_SET_SAVE_AND_CLOSE', false);
ToolbarHelper::cancel('set.cancel', 'JTOOLBAR_CANCEL'); ToolbarHelper::cancel('set.cancel', 'JTOOLBAR_CANCEL');
} }
} }
+1 -1
View File
@@ -4,7 +4,7 @@
<creationDate>2026-10-14</creationDate> <creationDate>2026-10-14</creationDate>
<author>Komponent</author> <author>Komponent</author>
<license>GNU General Public License version 2 or later</license> <license>GNU General Public License version 2 or later</license>
<version>1.37.1</version> <version>1.38.0</version>
<description>COM_TESTQUESTIONS_DESCRIPTION</description> <description>COM_TESTQUESTIONS_DESCRIPTION</description>
<element>com_testquestions</element> <element>com_testquestions</element>
<namespace path="src">Komponent\Component\Testquestions</namespace> <namespace path="src">Komponent\Component\Testquestions</namespace>