[TikiWiki-commits] [Git][tikiwiki/tiki][30.x] [FIX] ItemsList: deal with empty field selection in link field id option
"Victor Emanouilov \(@kroky\) via TikiWiki-cvs" <[email protected]>
| Newsgroups | gmane.comp.cms.tiki.cvs |
|---|---|
| Message-ID | <6a73215778997_3819f244163d1@gitlab-sidekiq-low-urgency-cpu-bound-v2-6c9c76fb4f-zt7q5.mail> |
Victor Emanouilov pushed to branch 30.x at Tiki Wiki CMS Groupware / Tiki
Commits:
379b78a8 by Victor Emanouilov at 2026-08-05T14:41:04+03:00
[FIX] ItemsList: deal with empty field selection in link field id option
---
* [FIX] ItemsList: deal with empty field selection in link field id option
See merge request tikiwiki/tiki!10844
- - - - -
1 changed file:
- lib/core/Tracker/Field/ItemsList.php
Changes:
=====================================
lib/core/Tracker/Field/ItemsList.php
=====================================
@@ -325,7 +325,10 @@ $("input[name=ins_' . $this->getOption('fieldIdHere') . '], select[name=ins_' .
$context['edit_mode'] = $editmode;
if ($this->getOption('editable') && $editmode) {
$trackerThere = Tracker_Definition::get($this->getOption('trackerId'));
- $fieldThere = $trackerThere->getField($this->getOption('fieldIdThere'));
+ if ($this->getOption('fieldIdThere')) {
+ $fieldThere = $trackerThere->getField($this->getOption('fieldIdThere'));
+ $data['otherFieldPermName'] = $fieldThere['permName'];
+ }
// trackerPerms overide field Options
$trackerPerms = Perms::get('tracker', $this->getOption('trackerId'));
$canCreate = $trackerPerms->create_tracker_items; // tracker/global permission; However canEdit and canRemove are Item permissions, see below
@@ -337,7 +340,6 @@ $("input[name=ins_' . $this->getOption('fieldIdHere') . '], select[name=ins_' .
}
$data['itemPermissions'] = $itemPermissions;
$data['addItemText'] = $canCreate ? $this->getOption('addItemText') : '';
- $data['otherFieldPermName'] = $fieldThere['permName'];
if (empty($this->getOption('fieldIdHere'))) {
$data['parentItemId'] = $this->getItemId();
} else {
@@ -362,6 +364,10 @@ $("input[name=ins_' . $this->getOption('fieldIdHere') . '], select[name=ins_' .
public function handleSave($value, $oldValue)
{
+ $fieldId = $this->trackerField->getOption('fieldIdThere');
+ if (! $fieldId) {
+ return ['value' => ''];
+ }
$oldValue = array_map('intval', $oldValue);
$value = array_map('intval', $value);
$removing = array_values(array_diff($oldValue, $value));
@@ -370,7 +376,6 @@ $("input[name=ins_' . $this->getOption('fieldIdHere') . '], select[name=ins_' .
$trackerId = $this->trackerField->getOption('trackerId');
$definition = Tracker_Definition::get($trackerId);
$itemData = Tracker_Item::fromId($itemId)->getData();
- $fieldId = $this->trackerField->getOption('fieldIdThere');
$fieldHandler = $definition->getFieldFactory()->getHandler(
$definition->getField($fieldId),
$itemData
@@ -617,17 +622,18 @@ $("input[name=ins_' . $this->getOption('fieldIdHere') . '], select[name=ins_' .
$fieldIdThere = $this->getOption('fieldIdThere');
$trackerIdThere = $this->getOption('trackerId');
$trackerThere = Tracker_Definition::get($trackerIdThere);
- $fieldThere = $trackerThere->getField($fieldIdThere);
- if ($fieldThere) {
- $queryFieldName = "tracker_field_{$fieldThere['permName']}";
- if ($fieldHere['type'] === 'r' && $fieldThere['type'] !== 'r') {
- $extraFieldName .= '_text';
+ if ($fieldIdThere) {
+ $fieldThere = $trackerThere->getField($fieldIdThere);
+ if ($fieldThere) {
+ $queryFieldName = "tracker_field_{$fieldThere['permName']}";
+ if ($fieldHere['type'] === 'r' && $fieldThere['type'] !== 'r') {
+ $extraFieldName .= '_text';
+ }
+ } else {
+ $queryFieldName = '';
}
- } else {
- $queryFieldName = '';
}
-
// cache the other tracker's items to test when importing
$itemsThereLookup = new Tracker\Tabular\Schema\CachedLookupHelper();
$tiki_tracker_items = TikiDb::get()->table('tiki_tracker_items');
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/379b78a87b0f0dff848a1e2237fca4c0afe525e3
--
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/379b78a87b0f0dff848a1e2237fca4c0afe525e3
You're receiving this email because of your account on gitlab.com. Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help
_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs