فهرست منبع

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

AntonLV 5 ماه پیش
والد
کامیت
461c06bc3e

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

@@ -169,7 +169,8 @@
     <string name="_bx_tasks_form_f_input_priority"><![CDATA[Приоритет]]></string>
     <string name="_bx_tasks_form_f_input_priority"><![CDATA[Приоритет]]></string>
     <string name="_bx_tasks_form_f_input_estimate"><![CDATA[Временные оценки]]></string>
     <string name="_bx_tasks_form_f_input_estimate"><![CDATA[Временные оценки]]></string>
     <string name="_bx_tasks_form_f_input_state"><![CDATA[Состояние]]></string>
     <string name="_bx_tasks_form_f_input_state"><![CDATA[Состояние]]></string>
-    <string name="_bx_tasks_form_f_input_save"><![CDATA[Сохраните для дальнейшего использования]]></string>
+    <string name="_bx_tasks_form_f_input_save_me"><![CDATA[Сохранить для себя]]></string>
+    <string name="_bx_tasks_form_f_input_save_all"><![CDATA[Сохранить для всех]]></string>
     <string name="_bx_tasks_form_f_input_title"><![CDATA[Заголовок]]></string>
     <string name="_bx_tasks_form_f_input_title"><![CDATA[Заголовок]]></string>
     <string name="_bx_tasks_form_f_input_apply"><![CDATA[Применить]]></string>
     <string name="_bx_tasks_form_f_input_apply"><![CDATA[Применить]]></string>
     <string name="_bx_tasks_form_f_input_cancel"><![CDATA[Отменить]]></string>
     <string name="_bx_tasks_form_f_input_cancel"><![CDATA[Отменить]]></string>
@@ -552,6 +553,7 @@
     <string name="_bx_tasks_txt_estimate"><![CDATA[Выделено времени: {0}]]></string>
     <string name="_bx_tasks_txt_estimate"><![CDATA[Выделено времени: {0}]]></string>
     <string name="_bx_tasks_txt_set"><![CDATA[set...]]></string>
     <string name="_bx_tasks_txt_set"><![CDATA[set...]]></string>
     <string name="_bx_tasks_txt_flt_system"><![CDATA[Системные]]></string>
     <string name="_bx_tasks_txt_flt_system"><![CDATA[Системные]]></string>
+    <string name="_bx_tasks_txt_flt_contextual"><![CDATA[Контекстные]]></string>
     <string name="_bx_tasks_txt_flt_my_permanent"><![CDATA[Мои сохраненные]]></string>
     <string name="_bx_tasks_txt_flt_my_permanent"><![CDATA[Мои сохраненные]]></string>
     <string name="_bx_tasks_txt_flt_my_temporary"><![CDATA[Мои временные]]></string>
     <string name="_bx_tasks_txt_flt_my_temporary"><![CDATA[Мои временные]]></string>
     <string name="_bx_tasks_txt_flt_user_current"><![CDATA[Текущий пользователь]]></string>
     <string name="_bx_tasks_txt_flt_user_current"><![CDATA[Текущий пользователь]]></string>

+ 26 - 8
modules/boonex/tasks/classes/BxTasksModule.php

@@ -93,7 +93,7 @@ class BxTasksModule extends BxBaseModTextModule implements iBxDolCalendarService
             $sTitle = '';
             $sTitle = '';
             $aValues = [];
             $aValues = [];
             foreach($oForm->aInputs as $sName => $aInput) {
             foreach($oForm->aInputs as $sName => $aInput) {
-                if(in_array($sName, ['save', 'title', 'controls']))
+                if(in_array($sName, ['save_me', 'save_all', 'title', 'controls']))
                     continue;
                     continue;
 
 
                 if(($mixedValue = $oForm->getCleanValue($sName))) {
                 if(($mixedValue = $oForm->getCleanValue($sName))) {
@@ -112,8 +112,9 @@ class BxTasksModule extends BxBaseModTextModule implements iBxDolCalendarService
             if($aValues && is_array($aValues) && ($aCnds = $this->_getFilterConditions($iContextId, $aValues)))
             if($aValues && is_array($aValues) && ($aCnds = $this->_getFilterConditions($iContextId, $aValues)))
                 $aValsToAdd['conditions'] = json_encode($aCnds);
                 $aValsToAdd['conditions'] = json_encode($aCnds);
 
 
-            if($oForm->getCleanValue('save') == 'on') {
+            if(($bForAll = $oForm->getCleanValue('save_all') == 'on') || ($oForm->getCleanValue('save_me') == 'on')) {
                 $aValsToAdd = array_merge($aValsToAdd, [
                 $aValsToAdd = array_merge($aValsToAdd, [
+                    'author' => $bForAll ? 0 : $iAuthorId,
                     'title' => $oForm->getCleanValue('title') ?: $sFltTitle,
                     'title' => $oForm->getCleanValue('title') ?: $sFltTitle,
                     'permanent' => 1
                     'permanent' => 1
                 ]);
                 ]);
@@ -1592,10 +1593,19 @@ class BxTasksModule extends BxBaseModTextModule implements iBxDolCalendarService
                 $CNF['FIELD_STATE'] => [
                 $CNF['FIELD_STATE'] => [
                     'type' => 'checkbox_set',
                     'type' => 'checkbox_set',
                 ],
                 ],
-                'save' => [
+                'save_me' => [
                     'type' => 'switcher',
                     'type' => 'switcher',
-                    'name' => 'save',
-                    'caption' => _t('_bx_tasks_form_f_input_save'),
+                    'name' => 'save_me',
+                    'caption' => _t('_bx_tasks_form_f_input_save_me'),
+                    'value' => 'on',
+                    'attrs' => [
+                        'onchange' => $sJsObject . '.onChangeSave(this)'
+                    ]
+                ],
+                'save_all' => [
+                    'type' => 'switcher',
+                    'name' => 'save_all',
+                    'caption' => _t('_bx_tasks_form_f_input_save_all'),
                     'value' => 'on',
                     'value' => 'on',
                     'attrs' => [
                     'attrs' => [
                         'onchange' => $sJsObject . '.onChangeSave(this)'
                         'onchange' => $sJsObject . '.onChangeSave(this)'
@@ -1650,18 +1660,26 @@ class BxTasksModule extends BxBaseModTextModule implements iBxDolCalendarService
             }
             }
         }
         }
 
 
+        $oContext = false;
+        $sContextModule = '';
+        if($iContextId && ($oContext = BxDolProfile::getInstance($iContextId)) !== false)
+            $sContextModule = $oContext->getModule();
+
         foreach([$CNF['FIELD_AUTHOR'], $CNF['FIELD_INITIAL_MEMBERS']] as $sK)
         foreach([$CNF['FIELD_AUTHOR'], $CNF['FIELD_INITIAL_MEMBERS']] as $sK)
             if(isset($aForm['inputs'][$sK])) {
             if(isset($aForm['inputs'][$sK])) {
-                $aForm['inputs'][$sK]['values'][$this->_iProfileId] = _t('_bx_tasks_txt_flt_user_current');
+                $aForm['inputs'][$sK]['values']['{logged_pid}'] = _t('_bx_tasks_txt_flt_user_current');
 
 
-                if($iContextId && ($oContext = BxDolProfile::getInstance($iContextId)) !== false) {
-                    $aMembers = bx_srv($oContext->getModule(), 'fans', [$oContext->getContentId(), true]);
+                if($oContext !== false) {
+                    $aMembers = bx_srv($sContextModule, 'fans', [$oContext->getContentId(), true]);
                     foreach($aMembers as $iMember)
                     foreach($aMembers as $iMember)
                         if(($iMember != $this->_iProfileId) && ($oMember = BxDolProfile::getInstance($iMember)) !== false && !($oMember instanceof BxDolProfileUndefined))
                         if(($iMember != $this->_iProfileId) && ($oMember = BxDolProfile::getInstance($iMember)) !== false && !($oMember instanceof BxDolProfileUndefined))
                             $aForm['inputs'][$sK]['values'][$iMember] = $oMember->getDisplayName();
                             $aForm['inputs'][$sK]['values'][$iMember] = $oMember->getDisplayName();
                 }
                 }
             }
             }
 
 
+        if(!$oContext || !bx_srv($sContextModule, 'is_admin', [$iContextId, $this->_iProfileId]))
+            unset($aForm['inputs']['save_all']);
+
         return new BxTemplFormView($aForm);
         return new BxTemplFormView($aForm);
     }
     }
 }
 }

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

@@ -507,6 +507,7 @@ class BxTasksTemplate extends BxBaseModTextTemplate
 
 
         $aTypes = [
         $aTypes = [
             '_bx_tasks_txt_flt_system' => ['sample' => 'active', 'context_id' => 0, 'author' => 0],
             '_bx_tasks_txt_flt_system' => ['sample' => 'active', 'context_id' => 0, 'author' => 0],
+            '_bx_tasks_txt_flt_contextual' => ['sample' => 'active', 'context_id' => $iContextId, 'author' => 0],
             '_bx_tasks_txt_flt_my_permanent' => ['sample' => 'active', 'context_id' => $iContextId, 'author' => $iLoggedId, 'permanent' => 1],
             '_bx_tasks_txt_flt_my_permanent' => ['sample' => 'active', 'context_id' => $iContextId, 'author' => $iLoggedId, 'permanent' => 1],
             '_bx_tasks_txt_flt_my_temporary' => ['sample' => 'active', 'context_id' => $iContextId, 'author' => $iLoggedId, 'permanent' => 0]
             '_bx_tasks_txt_flt_my_temporary' => ['sample' => 'active', 'context_id' => $iContextId, 'author' => $iLoggedId, 'permanent' => 0]
         ];
         ];

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

@@ -169,7 +169,8 @@
     <string name="_bx_tasks_form_f_input_priority"><![CDATA[Priority]]></string>
     <string name="_bx_tasks_form_f_input_priority"><![CDATA[Priority]]></string>
     <string name="_bx_tasks_form_f_input_estimate"><![CDATA[Estimate]]></string>
     <string name="_bx_tasks_form_f_input_estimate"><![CDATA[Estimate]]></string>
     <string name="_bx_tasks_form_f_input_state"><![CDATA[State]]></string>
     <string name="_bx_tasks_form_f_input_state"><![CDATA[State]]></string>
-    <string name="_bx_tasks_form_f_input_save"><![CDATA[Save for future usage]]></string>
+    <string name="_bx_tasks_form_f_input_save_me"><![CDATA[Save for me]]></string>
+    <string name="_bx_tasks_form_f_input_save_all"><![CDATA[Save for all]]></string>
     <string name="_bx_tasks_form_f_input_title"><![CDATA[Title]]></string>
     <string name="_bx_tasks_form_f_input_title"><![CDATA[Title]]></string>
     <string name="_bx_tasks_form_f_input_apply"><![CDATA[Apply]]></string>
     <string name="_bx_tasks_form_f_input_apply"><![CDATA[Apply]]></string>
     <string name="_bx_tasks_form_f_input_cancel"><![CDATA[Cancel]]></string>
     <string name="_bx_tasks_form_f_input_cancel"><![CDATA[Cancel]]></string>
@@ -556,6 +557,7 @@
     <string name="_bx_tasks_txt_estimate"><![CDATA[Estimate: {0}]]></string>
     <string name="_bx_tasks_txt_estimate"><![CDATA[Estimate: {0}]]></string>
     <string name="_bx_tasks_txt_set"><![CDATA[set...]]></string>
     <string name="_bx_tasks_txt_set"><![CDATA[set...]]></string>
     <string name="_bx_tasks_txt_flt_system"><![CDATA[System]]></string>
     <string name="_bx_tasks_txt_flt_system"><![CDATA[System]]></string>
+    <string name="_bx_tasks_txt_flt_contextual"><![CDATA[Contextual]]></string>
     <string name="_bx_tasks_txt_flt_my_permanent"><![CDATA[My saved]]></string>
     <string name="_bx_tasks_txt_flt_my_permanent"><![CDATA[My saved]]></string>
     <string name="_bx_tasks_txt_flt_my_temporary"><![CDATA[My temporary]]></string>
     <string name="_bx_tasks_txt_flt_my_temporary"><![CDATA[My temporary]]></string>
     <string name="_bx_tasks_txt_flt_user_current"><![CDATA[Current user]]></string>
     <string name="_bx_tasks_txt_flt_user_current"><![CDATA[Current user]]></string>

+ 1 - 1
modules/boonex/tasks/js/tasks.js

@@ -183,7 +183,7 @@ BxTasksView.prototype.createFilter = function (oSource, iContextId) {
 };
 };
 
 
 BxTasksView.prototype.onChangeSave = function (oElement) {
 BxTasksView.prototype.onChangeSave = function (oElement) {
-    $(oElement).parents('form').find('#bx-form-element-title').toggleClass('bx-tasks-ffi-hidden', !$(oElement).prop('checked'));
+    $(oElement).parents('form').find('#bx-form-element-title').toggleClass('bx-tasks-ffi-hidden', !($("[name = 'save_me']").prop('checked') || $("[name = 'save_all']").prop('checked')));
 };
 };
 
 
 BxTasksView.prototype.loadingInBlock = function(e, bShow) {
 BxTasksView.prototype.loadingInBlock = function(e, bShow) {