Просмотр исходного кода

Ticket #5425 - Tasks: Functionality improvements. Stage 2.

AntonLV 6 месяцев назад
Родитель
Сommit
eac1301367

+ 3 - 0
modules/boonex/russian/data/langs/bx_tasks/ru.xml

@@ -90,6 +90,8 @@
     <string name="_bx_tasks_form_entry_input_date_due_date"><![CDATA[Срок]]></string>
     <string name="_bx_tasks_form_entry_input_sys_estimate"><![CDATA[Временные оценки]]></string>
     <string name="_bx_tasks_form_entry_input_estimate"><![CDATA[Временные оценки (в баллах)]]></string>
+    <string name="_bx_tasks_form_entry_input_sys_gh_issue_url"><![CDATA[GitHub проблема]]></string>
+    <string name="_bx_tasks_form_entry_input_gh_issue_url"><![CDATA[GitHub проблема]]></string>
 
     <string name="_bx_tasks_form_list_entry"><![CDATA[Списки заданий]]></string>
     <string name="_bx_tasks_form_list_entry_display_add"><![CDATA[Добавить Список заданий]]></string>
@@ -507,6 +509,7 @@
     <string name="_bx_tasks_txt_msg_confirm_tasklist_deletion"><![CDATA[Вы удалите все задания, которые содержатся в этом списке заданий. Вы уверены?]]></string>
 
     <string name="_bx_tasks_txt_msg_format"><![CDATA[{0} &#183; <span>{1}</span>]]></string>
+    <string name="_bx_tasks_txt_msg_synced"><![CDATA[Задача была синхронизирована с GitHub: <b><a href="{ghi_link}" target="_blank">#{ghi_number}</a></b>]]></string>
     <string name="_bx_tasks_txt_msg_edit_type"><![CDATA[<a href="{author_link}">{author_name}</a> изменил тип на <b>{value}</b>]]></string>
     <string name="_bx_tasks_txt_msg_edit_priority"><![CDATA[<a href="{author_link}">{author_name}</a> изменил приоритет на <b>{value}</b>]]></string>
     <string name="_bx_tasks_txt_msg_edit_estimate"><![CDATA[<a href="{author_link}">{author_name}</a> изменил 'выделенное время' на <b>{value}</b>]]></string>

+ 1 - 0
modules/boonex/tasks/classes/BxTasksConfig.php

@@ -73,6 +73,7 @@ class BxTasksConfig extends BxBaseModTextConfig
             'FIELD_LABELS' => 'labels',
             'FIELD_TASKLIST' => 'tasks_list',
             'FIELD_GH_ISSUE' => 'gh_issue',
+            'FIELD_GH_ISSUE_URL' => 'gh_issue_url',
             'FIELD_INITIAL_MEMBERS' => 'initial_members',
             'FIELD_DUE_DATE' => 'due_date',
             'FIELD_EXPIRED' => 'expired',

+ 5 - 0
modules/boonex/tasks/classes/BxTasksFormEntry.php

@@ -159,6 +159,11 @@ class BxTasksFormEntry extends BxBaseModTextFormEntry
         return parent::delete($iContentId);
     }
 
+    protected function genCustomViewRowValueGhIssueUrl(&$aInput)
+    {
+        return $aInput['value'] ? bx_linkify(bx_process_output($aInput['value'])) : null;
+    }
+
     protected function _getCoverGhostTmplVars($aContentInfo = [])
     {
     	$CNF = &$this->_oModule->_oConfig->CNF;

+ 11 - 2
modules/boonex/tasks/classes/BxTasksModule.php

@@ -942,8 +942,17 @@ class BxTasksModule extends BxBaseModTextModule implements iBxDolCalendarService
                 list($sGhUsername, $sGhRepository) = $mixedRepo;
 
                 $aIssue = bx_srv($sMl, $sMd, [$sGhUsername, $sGhRepository, $aContentInfo[$CNF['FIELD_TITLE']], $aContentInfo[$CNF['FIELD_TEXT']]]);
-                if($aIssue && is_array($aIssue) && ($iNumber = (int)($aIssue['number'] ?? 0)) != 0)
-                    $this->_oDb->updateEntriesBy([$CNF['FIELD_GH_ISSUE'] => $iNumber], [$CNF['FIELD_ID'] => $iContentId]);
+                if($aIssue && is_array($aIssue) && ($iNumber = (int)($aIssue['number'] ?? 0)) != 0 && ($sUrl = $aIssue['html_url'] ?? '') != '') {
+                    $this->_oDb->updateEntriesBy([
+                        $CNF['FIELD_GH_ISSUE'] => $iNumber,
+                        $CNF['FIELD_GH_ISSUE_URL'] => $sUrl,
+                    ], [$CNF['FIELD_ID'] => $iContentId]);
+
+                    $this->logActivity($iContentId, ['key' => '_bx_tasks_txt_msg_synced', 'markers' => [
+                        'ghi_link' => $sUrl,
+                        'ghi_number' => $iNumber
+                    ]]);
+                }
             }
         }
     }

+ 4 - 1
modules/boonex/tasks/install/langs/en.xml

@@ -90,6 +90,8 @@
     <string name="_bx_tasks_form_entry_input_date_due_date"><![CDATA[Due date]]></string>
     <string name="_bx_tasks_form_entry_input_sys_estimate"><![CDATA[Estimate]]></string>
     <string name="_bx_tasks_form_entry_input_estimate"><![CDATA[Estimate (in points)]]></string>
+    <string name="_bx_tasks_form_entry_input_sys_gh_issue_url"><![CDATA[GitHub Issue]]></string>
+    <string name="_bx_tasks_form_entry_input_gh_issue_url"><![CDATA[GitHub Issue]]></string>
 
     <string name="_bx_tasks_form_list_entry"><![CDATA[Tasklists]]></string>
     <string name="_bx_tasks_form_list_entry_display_add"><![CDATA[Add Tasklist]]></string>
@@ -190,7 +192,7 @@
     <string name="_bx_tasks_page_block_title_recent_entries_view_full"><![CDATA[Latest Tasks (Full View)]]></string>
     <string name="_bx_tasks_page_block_title_entry_social_sharing"><![CDATA[Share]]></string>
     <string name="_bx_tasks_page_block_title_entry_author"><![CDATA[Author]]></string>
-    <string name="_bx_tasks_page_block_title_entry_assignments"><![CDATA[Assignments]]></string>
+    <string name="_bx_tasks_page_block_title_entry_assignments"><![CDATA[Assignees]]></string>
     <string name="_bx_tasks_page_block_title_entry_actions"><![CDATA[Actions]]></string>
     <string name="_bx_tasks_page_block_title_sys_entry_comments"><![CDATA[Activity]]></string>
     <string name="_bx_tasks_page_block_title_entry_comments"><![CDATA[Activity ({0})]]></string>
@@ -510,6 +512,7 @@
     <string name="_bx_tasks_txt_msg_confirm_tasklist_deletion"><![CDATA[You will delete all tasks that are contained in this tasklist. Are you sure?]]></string>
 
     <string name="_bx_tasks_txt_msg_format"><![CDATA[{0} &#183; <span>{1}</span>]]></string>
+    <string name="_bx_tasks_txt_msg_synced"><![CDATA[The task was synced with GitHub: <b><a href="{ghi_link}" target="_blank">#{ghi_number}</a></b>]]></string>
     <string name="_bx_tasks_txt_msg_edit_type"><![CDATA[<a href="{author_link}">{author_name}</a> changed type to <b>{value}</b>]]></string>
     <string name="_bx_tasks_txt_msg_edit_priority"><![CDATA[<a href="{author_link}">{author_name}</a> changed priority to <b>{value}</b>]]></string>
     <string name="_bx_tasks_txt_msg_edit_estimate"><![CDATA[<a href="{author_link}">{author_name}</a> changed estimate to <b>{value}</b>]]></string>

+ 6 - 3
modules/boonex/tasks/install/sql/install.sql

@@ -30,7 +30,8 @@ CREATE TABLE IF NOT EXISTS `bx_tasks_tasks` (
   `featured` int(11) NOT NULL default '0',
   `due_date` int(11) NOT NULL,
   `tasks_list` int(11) NOT NULL,
-  `github_issue` int(11) NOT NULL default '0',
+  `gh_issue` int(11) NOT NULL default '0',
+  `gh_issue_url` varchar(255) NOT NULL default '',
   `completed` tinyint(4) NOT NULL DEFAULT '0', 
   `expired` tinyint(4) NOT NULL DEFAULT '0', 
   `cf` int(11) NOT NULL default '1',
@@ -483,7 +484,8 @@ INSERT INTO `sys_form_inputs`(`object`, `module`, `name`, `value`, `values`, `ch
 ('bx_tasks', 'bx_tasks', 'attachments', '', '', 0, 'custom', '_bx_tasks_form_entry_input_sys_attachments', '', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_tasks', 'bx_tasks', 'labels', '', '', 0, 'custom', '_sys_form_input_sys_labels', '_sys_form_input_labels', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
 ('bx_tasks', 'bx_tasks', 'anonymous', '', '', 0, 'switcher', '_sys_form_input_sys_anonymous', '_sys_form_input_anonymous', '', 0, 0, 0, '', '', '', '', '', '', '', '', 1, 0),
-('bx_tasks', 'bx_tasks', 'allow_comments', '1', '', 1, 'switcher', '_bx_tasks_form_entry_input_sys_allow_comments', '_bx_tasks_form_entry_input_allow_comments', '', 0, 0, 0, '', '', '', '', '', '', 'Int', '', 1, 0);
+('bx_tasks', 'bx_tasks', 'allow_comments', '1', '', 1, 'switcher', '_bx_tasks_form_entry_input_sys_allow_comments', '_bx_tasks_form_entry_input_allow_comments', '', 0, 0, 0, '', '', '', '', '', '', 'Int', '', 1, 0),
+('bx_tasks', 'bx_tasks', 'gh_issue_url', '', '', 0, 'value', '_bx_tasks_form_entry_input_sys_gh_issue_url', '_bx_tasks_form_entry_input_gh_issue_url', '', 0, 0, 0, '', '', '', '', '', '', 'Xss', '', 1, 0);
 
 INSERT INTO `sys_form_display_inputs`(`display_name`, `input_name`, `visible_for_levels`, `active`, `order`) VALUES 
 ('bx_tasks_entry_add', 'title', 2147483647, 1, 1),
@@ -553,7 +555,8 @@ INSERT INTO `sys_form_display_inputs`(`display_name`, `input_name`, `visible_for
 ('bx_tasks_entry_view', 'added', 2147483647, 1, 5),
 ('bx_tasks_entry_view', 'changed', 2147483647, 1, 6),
 ('bx_tasks_entry_view', 'due_date', 192, 1, 7),
-('bx_tasks_entry_view', 'state', 2147483647, 1, 8);
+('bx_tasks_entry_view', 'state', 2147483647, 1, 8),
+('bx_tasks_entry_view', 'gh_issue_url', 2147483647, 1, 9);
 
 
 -- FORMS: entry (tasklist)