[TikiWiki-commits] [Git][tikiwiki/tiki][26.x] [BP][ENH] Tracker calendar item: Show link to tracker item from calendar interface

"Adrien Mbuya Maloba \(@adrienmaloba\) via TikiWiki-cvs" <[email protected]>
Newsgroups gmane.comp.cms.tiki.cvs
Message-ID <68daca983fea_2c559ce7811339@gitlab-sidekiq-low-urgency-cpu-bound-v2-5cc58485fb-9mzmx.mail>

Adrien Mbuya Maloba pushed to branch 26.x at Tiki Wiki CMS Groupware / Tiki


Commits:
92eb0a41 by Adrien Mbuya Maloba at 2025-09-29T21:01:11+03:00
[BP][ENH] Tracker calendar item: Show link to tracker item from calendar interface
---
* [BP][ENH] Tracker calendar item: Show link to tracker item from calendar interface
---
* [ENH] Tracker calendar item: Show link to tracker item from calendar interface
---
* [ENH] Tracker calendar item: Show link to tracker item from calendar interface

See merge request tikiwiki/tiki!8510

See merge request tikiwiki/tiki!8679

See merge request tikiwiki/tiki!8680

- - - - -


3 changed files:

- lib/core/Services/Calendar/Controller.php
- templates/calendar/edit_item.tpl
- templates/calendar/view_item.tpl


Changes:

=====================================
lib/core/Services/Calendar/Controller.php
=====================================
@@ -267,9 +267,11 @@ class Services_Calendar_Controller
         $access = TikiLib::lib('access');
         $parserLib = TikiLib::lib('parser');
         $displayTimezone = TikiLib::lib('tiki')->get_display_timezone();
+        $trklib = TikiLib::lib('trk');
         $timezones = TikiDate::getTimeZoneList();
         $timezones = array_keys($timezones);
         $return_url = $input->return_url->url();
+        $trackerItems = [];
 
         $rawcals = $this->calendarLib->list_calendars();
 
@@ -388,6 +390,8 @@ class Services_Calendar_Controller
             $calitem['start'] = $start->getTime();
             $calitem['end']   = $end->getTime();
             $calitem['duration'] = 0;
+
+            $trackerItems = $this->calendarLib->getAttachedTrackerItems($calitemId);
         } else {
             // new event
             $title = tr('Calendar event : %0', tr('New'));
@@ -559,6 +563,8 @@ class Services_Calendar_Controller
             'modal'                      => $input->modal->int(),
             'displayTimezone'            => $displayTimezone,
             'timezones'                  => $timezones,
+            // related tracker items
+            'trackerItems'              => ! empty($trackerItems) ? $trackerItems : [],
         ];
     }
 
@@ -580,9 +586,11 @@ class Services_Calendar_Controller
     public function action_view_item(JitFilter $input): array
     {
         global $prefs;
+        $trklib = TikiLib::lib('trk');
 
         $calitemId = $input->calitemId->int();
         $recurrence = [];
+        $trackerItems = [];
         $preview = false;
 
         if ($input->act->word() === 'preview') {
@@ -658,6 +666,7 @@ class Services_Calendar_Controller
                 $endtime = $tikilib->get_short_time($calitem['end']);
                 $calitem['display_datetimes'] = tr('%0 %1 to %2 %3', $startday, $starttime, $endday, $endtime);
             }
+            $trackerItems = $this->calendarLib->getAttachedTrackerItems($calitemId);
         }
 
         return [
@@ -668,6 +677,8 @@ class Services_Calendar_Controller
             'daynames'             => $this->daynamesPlural,
             'monthnames'           => $this->monthnames,
             'preview'              => $preview,
+            // related tracker items
+            'trackerItems'        => ! empty($trackerItems) ? $trackerItems : [],
         ];
     }
 


=====================================
templates/calendar/edit_item.tpl
=====================================
@@ -80,10 +80,22 @@
                 </div>
 
             </div>
+            {if !empty($trackerItems)}
+                <div class="mb-3 row">
+                    <label class="col-form-label col-sm-3">{tr}Related tracker items{/tr}</label>
+                    <div class="col-sm-9 mb-0 pt-2">
+                        <ul>
+                            {foreach from=$trackerItems item=trackerItem}
+                                <li>{object_link type="trackeritem" id=$trackerItem}</li>
+                            {/foreach}
+                        </ul>
+                    </div>
+                </div>
+            {/if}
             <div class="mb-3 row">
                 <label class="col-form-label col-sm-3">{tr}Created by{/tr}</label>
                 <div class="col-sm-9">
-                    <div class="summary" style="margin-bottom: 0; padding-top: 7px;">
+                    <div class="summary mb-0 pt-2">
                         {$calitem.user|escape}
                     </div>
 


=====================================
templates/calendar/view_item.tpl
=====================================
@@ -208,6 +208,18 @@
     <div class="description">
         {$calitem.parsed|default:"<em>{tr}No description{/tr}</em>"}
     </div>
+    {if !empty($trackerItems)}
+        <div class="row px-3 py-2">
+            <label class="col-form-label col-sm-3">{tr}Related tracker items{/tr} : </label>
+            <div class="col-sm-9 mb-0 pt-2">
+                <ul>
+                    {foreach from=$trackerItems item=trackerItem}
+                        <li>{object_link type="trackeritem" id=$trackerItem}</li>
+                    {/foreach}
+                </ul>
+            </div>
+        </div>
+    {/if}
     <div class="small mt-3">
         <table class="table table-borderless table-sm{if $preview} table-secondary{/if}">
             {* custom properties *}



View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/92eb0a41698db8130585d82c9fed9729b3763b3f

-- 
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/92eb0a41698db8130585d82c9fed9729b3763b3f
You're receiving this email because of your account on gitlab.com.

_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.