Files
EasySoft-ZenTaoPMS/module/pivot/zen.php
T
caoyanyi 7bb53ec47f Squashed commit of the following:
commit b9e9f86d39
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Fri Apr 26 13:35:56 2024 +0800

    * Adjust mr actions style.

commit 1ddb2067b2
Author: hufangzhou <hufangzhou@easycorp.ltd>
Date:   Fri Apr 26 13:24:05 2024 +0800

    * Fix bug #48463.

commit 94528ed5b0
Author: xieqiyu <xieqiyu@easycorp.ltd>
Date:   Fri Apr 26 13:17:29 2024 +0800

    * Fix bug#48410.

commit d1b38c54f9
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Fri Apr 26 13:13:38 2024 +0800

    - Remove mr repos switch block.

commit c94da3e17a
Author: sunhao <sunhao@easycorp.ltd>
Date:   Fri Apr 26 11:30:43 2024 +0800

    * my: optimize UI of manage contacts page.

commit 2e74f33d22
Author: 宋辰轩 <songchenxuan@easycorp.ltd>
Date:   Fri Apr 26 11:13:16 2024 +0800

    * Fix bug #48317.

commit 45b6beccae
Author: liwenrui <liwenrui@easycorp.ltd>
Date:   Fri Apr 26 11:13:06 2024 +0800

    * handle direct client download without selecting os.

commit 82be78538f
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Fri Apr 26 10:43:42 2024 +0800

    * Fix ipd project only one execution bug.

commit faa6c605fc
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Fri Apr 26 10:42:25 2024 +0800

    * Fix bug #48499, modify the icon.

commit 5134736779
Author: xieqiyu <xieqiyu@easycorp.ltd>
Date:   Fri Apr 26 10:41:35 2024 +0800

    * Fix bug#48167.

commit 5ca23cd76f
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Fri Apr 26 10:30:02 2024 +0800

    * Fix bug #48453.

commit 23cde4b38e
Author: sunhao <sunhao@easycorp.ltd>
Date:   Fri Apr 26 10:19:28 2024 +0800

    * tutorial: fix tutorial start modal style.

commit 1d710e10bd
Author: sunhao <sunhao@easycorp.ltd>
Date:   Fri Apr 26 10:18:40 2024 +0800

    * zin: fix batch-form style in old iframe modal.

commit c9092603f0
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Fri Apr 26 10:15:27 2024 +0800

    * Fix bug #48495.

commit c0aeb9f69d
Author: sunguangming <sunguangming@easycorp.ltd>
Date:   Fri Apr 26 10:12:39 2024 +0800

    * Fix bug #48431.

commit 4348fd543a
Author: 宋辰轩 <songchenxuan@easycorp.ltd>
Date:   Fri Apr 26 10:11:45 2024 +0800

    * Fix bug #48445.

commit c9df08b1a1
Author: 宋辰轩 <songchenxuan@easycorp.ltd>
Date:   Fri Apr 26 10:07:01 2024 +0800

    * Fix bug for screen browse.

commit ebc469c0a4
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Fri Apr 26 09:55:44 2024 +0800

    * Adjust recentproject block css.

commit 9337fa109a
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Fri Apr 26 09:50:34 2024 +0800

    * Adjust recentproject block css.

commit 07903733bf
Author: 王怡栋 <wangyidong@cnezsoft.com>
Date:   Fri Apr 26 09:33:39 2024 +0800

    * Fix bug #48473.

commit a347de8354
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Fri Apr 26 09:34:29 2024 +0800

    * Add progress to recentproject block. task #116976.

commit e6e6c6047e
Author: xieqiyu <xieqiyu@easycorp.ltd>
Date:   Fri Apr 26 09:29:12 2024 +0800

    * Modify the problem of code review.

commit a53a577b69
Author: sunguangming <sunguangming@easycorp.ltd>
Date:   Fri Apr 26 09:13:43 2024 +0800

    * Finish task #45906.

commit 774cb4efbc
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Fri Apr 26 09:03:42 2024 +0800

    * Adjust review by me data to DAO search.

commit 976ef156b6
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Fri Apr 26 09:00:51 2024 +0800

    * Add class for copy project button.

commit 36f2c24a97
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Fri Apr 26 09:00:39 2024 +0800

    * Fix bug #48480.

commit ae9ef45621
Author: xieqiyu <xieqiyu@easycorp.ltd>
Date:   Thu Apr 25 21:12:27 2024 +0800

    * Optimated code.

commit 20eefb90dc
Author: sunhao <sunhao@easycorp.ltd>
Date:   Thu Apr 25 19:42:50 2024 +0800

    * zin: optimize UI for loading old pages.

commit 56006bca4f
Author: sunhao <sunhao@easycorp.ltd>
Date:   Thu Apr 25 18:18:24 2024 +0800

    * theme: update themes for old pages.

commit 0dd32057e4
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 17:15:25 2024 +0800

    * Modify style of productplan desc.

commit 272cdc4a61
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 17:03:07 2024 +0800

    * Fix bug #48413, replace executionLang with productplanLang.

commit 1f0b96aab2
Author: tanghucheng <tanghucheng@easycorp.ltd>
Date:   Thu Apr 25 16:59:05 2024 +0800

    * Program in the product lines can be empty.

commit fb6bb48ee6
Author: 宋辰轩 <songchenxuan@easycorp.ltd>
Date:   Thu Apr 25 17:02:29 2024 +0800

    * Remove update bi guide img file.

commit 66bcb21455
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 16:48:22 2024 +0800

    * Fix bug #48464, set icon by project model.

commit c5738c4129
Author: 宋辰轩 <songchenxuan@easycorp.ltd>
Date:   Thu Apr 25 16:47:41 2024 +0800

    * Fix bug for preview pivot.

commit cc0a8aabce
Author: hufangzhou <hufangzhou@easycorp.ltd>
Date:   Thu Apr 25 16:39:20 2024 +0800

    + Add the or vision image.

commit 73d70324fd
Author: hufangzhou <hufangzhou@easycorp.ltd>
Date:   Thu Apr 25 16:34:31 2024 +0800

    * Change lang item.

commit a54780438a
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 16:33:11 2024 +0800

    * Modify the style of bugSteps.

commit ff5be095b4
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 16:32:24 2024 +0800

    * Fix bug #48453.

commit 0432554143
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 16:21:52 2024 +0800

    + Add comment.

commit 9155a82131
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Thu Apr 25 16:07:55 2024 +0800

    * Adjust jenkins job form style.

commit dc272445cf
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 15:59:31 2024 +0800

    * Fix bug if the execution doesn't have the products.

commit 1fce0df29b
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Thu Apr 25 15:48:41 2024 +0800

    * Adjust app create tips.

commit a48e48394e
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 15:47:09 2024 +0800

    * Fix bug #48452.

commit c500f9ce58
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 15:27:17 2024 +0800

    * Fix bug #48449.

commit 076b33652c
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 15:11:57 2024 +0800

    * Fix bug #48429, don't append relatedBugs to excludeBugs when linking bugs.

commit bf59668dff
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Fri Apr 19 11:22:22 2024 +0800

    + Add page data for repo code view.

commit 91e83ce12b
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Thu Apr 25 15:10:34 2024 +0800

    * Adjust repo branch switch style.

commit 16147ac595
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 15:09:44 2024 +0800

    * Fix bug #48444.

commit da77572ec8
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Thu Apr 25 15:06:20 2024 +0800

    * Adjust executionstatistic block burn. task #116977.

commit 73235c93c8
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 15:03:45 2024 +0800

    * Fix bug #48436, add ztfRun to the actions in execution::testcase.

commit 248b65ba6a
Author: xieqiyu <xieqiyu@easycorp.ltd>
Date:   Thu Apr 25 15:02:39 2024 +0800

    * Fix bug#48420.

commit 388f54b5ec
Author: xieqiyu <xieqiyu@easycorp.ltd>
Date:   Thu Apr 25 15:01:03 2024 +0800

    * Fix bug#48427.

commit 2c4122b084
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 14:58:02 2024 +0800

    * Fix bug #48441, keep in current tab when changing the stepsType.

commit c9b094b3ab
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 14:58:13 2024 +0800

    * Fix bug #48438.

commit ae10a1c686
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 14:54:28 2024 +0800

    * Fix bug #48435, replace `$this->session` with `$app->session`.

commit c81031dab9
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 14:49:42 2024 +0800

    * Fix bug #48430, replace `{runID}`.

commit 0635779f1f
Author: 王怡栋 <wangyidong@cnezsoft.com>
Date:   Thu Apr 25 14:48:58 2024 +0800

    * Fix bug #48419.

commit 2b1358fb75
Author: zhouxin <zhouxin@easycorp.ltd>
Date:   Thu Apr 25 14:46:08 2024 +0800

    * Fix bug #47408.

commit aef64e2c85
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 14:45:30 2024 +0800

    * Fix bug #48423, replace `<br />` with `<p></p>`.

commit 392a031495
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 14:41:55 2024 +0800

    * Show the product line when the program is not selected.

commit 1449ea4d06
Author: tanghucheng <tanghucheng@easycorp.ltd>
Date:   Thu Apr 25 14:41:09 2024 +0800

    * Fix bug #116431.

commit 9ce8dfe3ee
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 14:31:03 2024 +0800

    * Fix bug #48433.

commit 62a8779806
Author: sunguangming <sunguangming@easycorp.ltd>
Date:   Thu Apr 25 14:28:56 2024 +0800

    * Add loadProductModules function.

commit 8ec4efde62
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 14:27:36 2024 +0800

    * Add return type.

commit 035f15b16e
Author: sunhao <sunhao@easycorp.ltd>
Date:   Thu Apr 25 14:21:50 2024 +0800

    * disable loading effect on loading modal with same url.

commit 1b7aac3f6f
Author: zhouxin <zhouxin@easycorp.ltd>
Date:   Thu Apr 25 14:19:34 2024 +0800

    * Fix bug #47654.

commit 730ab12d86
Author: sunhao <sunhao@easycorp.ltd>
Date:   Thu Apr 25 13:59:51 2024 +0800

    * zin: add favicon to base page.

commit e7051b2d2f
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 13:58:51 2024 +0800

    * Fix bug #48421, removes duplicate projects.

commit 3089e95041
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 13:43:47 2024 +0800

    * Fix bug #48176.

commit 1409059467
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 13:41:20 2024 +0800

    * Fix bug #48418.

commit 6934f36b9e
Author: zhouxin <zhouxin@easycorp.ltd>
Date:   Thu Apr 25 13:35:10 2024 +0800

    * Remove useless method.

commit 908f7dd087
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Thu Apr 25 13:30:56 2024 +0800

    * Adjust teamachievement block css. task #116978.

commit abb2d04bd0
Author: zhouxin <zhouxin@easycorp.ltd>
Date:   Thu Apr 25 13:25:53 2024 +0800

    * Optimize code.

commit 042726dd6a
Author: tanghucheng <tanghucheng@easycorp.ltd>
Date:   Thu Apr 25 11:16:45 2024 +0800

    * Fix bug #48143, Add $config->story->dtable->fieldList['roadmap']['width'].

commit b3b3a4884b
Author: tanghucheng <tanghucheng@easycorp.ltd>
Date:   Thu Apr 25 11:00:11 2024 +0800

    * Fix bug #48415.

commit b2878c8644
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 10:59:32 2024 +0800

    - Remove `var_dump`.

commit b8e22a5446
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 10:59:02 2024 +0800

    * Optimize code for uploading files.

commit 328cf2c605
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 10:57:27 2024 +0800

    - Remove unused style.

commit 98f501ad66
Author: sunhao <sunhao@easycorp.ltd>
Date:   Thu Apr 25 10:57:18 2024 +0800

    * zui: update zui3 lib.

commit 138ae9b7bb
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Thu Apr 25 10:55:12 2024 +0800

    * Adjust repo page language.

commit 2a4abbde8d
Author: 宋辰轩 <songchenxuan@easycorp.ltd>
Date:   Thu Apr 25 10:24:32 2024 +0800

    * Fix bug #48350.

commit c2c122b678
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Thu Apr 25 10:22:08 2024 +0800

    * Adjust welcome block css. task #116979.

commit 1cba83c80f
Author: sunhao <sunhao@easycorp.ltd>
Date:   Thu Apr 25 10:21:24 2024 +0800

    * kanban: optimize label style.

commit a92ca103b9
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 10:18:16 2024 +0800

    * Fix bug #48402.

commit decae20945
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 10:11:24 2024 +0800

    * Adjust select execution title style.

commit 8fc680ecc9
Author: 宋辰轩 <songchenxuan@easycorp.ltd>
Date:   Thu Apr 25 10:03:04 2024 +0800

    * Add delete file.

commit 0c08073647
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 09:39:41 2024 +0800

    * The date field was not validated when fixing the bug import task.

commit b6aa30da6f
Author: liyang <liyang@easycorp.ltd>
Date:   Thu Apr 25 09:41:02 2024 +0800

    Add delete btn in import repo page.

commit 188bdfff90
Author: liyang <liyang@easycorp.ltd>
Date:   Thu Apr 25 09:30:58 2024 +0800

    Hide the hidden function of the imported code library page

commit 22e899b21f
Author: sunguangming <sunguangming@easycorp.ltd>
Date:   Thu Apr 25 09:26:39 2024 +0800

    * Fix bug #48372.

commit dea8d5785a
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Thu Apr 25 09:25:57 2024 +0800

    * Remove the box when it is out of focus.

commit 94117eac4a
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 09:21:31 2024 +0800

    * Modify testtask's order in qastatistic block.

commit 16558b955d
Author: 宋辰轩 <songchenxuan@easycorp.ltd>
Date:   Thu Apr 25 09:18:46 2024 +0800

    * Use ajaxGetOldDropMenu

commit eb7f606fe5
Author: hufangzhou <hufangzhou@easycorp.ltd>
Date:   Thu Apr 25 09:07:24 2024 +0800

    * Add todo-calendar privilege to or interface.

commit 119fef4fae
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Thu Apr 25 09:06:33 2024 +0800

    * Adjust closedSetting to closeSetting.

commit 1179f36595
Author: tanghucheng <tanghucheng@easycorp.ltd>
Date:   Thu Apr 25 08:58:31 2024 +0800

    * Fix bug #47758, unset percent when disabled.

commit b143356a55
Author: sunguangming <sunguangming@easycorp.ltd>
Date:   Thu Apr 25 08:56:35 2024 +0800

    * Fix bug #48379.

commit e1ec138058
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Thu Apr 25 08:52:51 2024 +0800

    * Optimize code for bug #48271.

commit 8ca008736a
Author: liwenrui <liwenrui@easycorp.ltd>
Date:   Thu Apr 25 08:49:31 2024 +0800

    * tweak again, actually only wanted to add padding to the top.

commit 388006b340
Author: liwenrui <liwenrui@easycorp.ltd>
Date:   Thu Apr 25 08:49:05 2024 +0800

    * tweak zeneditor to add some padding back.

commit 0e0121b201
Author: liwenrui <liwenrui@easycorp.ltd>
Date:   Thu Apr 25 08:27:23 2024 +0800

    * update zeneditor and remove paragraph margin within.

commit 5e3b42a9f3
Author: sunhao <sunhao@easycorp.ltd>
Date:   Wed Apr 24 17:32:20 2024 +0800

    * zui: update zui3 lib.

commit 3e543c1403
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Wed Apr 24 17:30:35 2024 +0800

    * Optimize code.

commit ce8e34849d
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Wed Apr 24 17:29:17 2024 +0800

    * Fix project menu bug. bug #48121.

commit bff8da8aba
Author: sunhao <sunhao@easycorp.ltd>
Date:   Wed Apr 24 17:20:38 2024 +0800

    * zin: sort fields after reload form.

commit 01e15f6635
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 16:53:10 2024 +0800

    * Fix bug #46381.

commit b89caabfce
Author: hufangzhou <hufangzhou@easycorp.ltd>
Date:   Wed Apr 24 16:53:21 2024 +0800

    * Adjust the default filename for export execution.

commit 17d5d65a17
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 16:47:28 2024 +0800

    * Fix bug #48367, get linked bugs.

commit 3ee2f3ea5c
Author: 宋辰轩 <songchenxuan@easycorp.ltd>
Date:   Wed Apr 24 16:45:43 2024 +0800

    * Fix bug for preview pivot menu.

commit 2c00f9a657
Author: xieqiyu <xieqiyu@easycorp.ltd>
Date:   Wed Apr 24 16:29:25 2024 +0800

    * Fix bug#48334.

commit 484e24fd9d
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 16:24:24 2024 +0800

    * Fix bug #48343.

commit 1aa110645c
Author: liwenrui <liwenrui@easycorp.ltd>
Date:   Wed Apr 24 16:01:19 2024 +0800

    * fix ai prompt menu injected multiple times, bug #48358.

commit a2333979b5
Author: zhouxin <zhouxin@easycorp.ltd>
Date:   Wed Apr 24 15:59:09 2024 +0800

    * Fix height of project deviation pivot.

commit 7a3b20222f
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 15:54:16 2024 +0800

    * Replace runID in testcase::browse.

commit ab05d56301
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 15:45:01 2024 +0800

    * No iterative project hides execution column.

commit dffcd9e5c7
Author: sunguangming <sunguangming@easycorp.ltd>
Date:   Wed Apr 24 15:46:18 2024 +0800

    * Fix sql error.

commit 22d89bb361
Author: xieqiyu <xieqiyu@easycorp.ltd>
Date:   Wed Apr 24 15:43:11 2024 +0800

    * Fix bug#48349.

commit 603195b1e1
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 15:41:27 2024 +0800

    * Adjust execution column style of the build list.

commit 989f2b8ca5
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 15:27:01 2024 +0800

    * Fix bug #48344, set runID.

commit 2db2a7f9dc
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Wed Apr 24 15:25:54 2024 +0800

    - Remove gitfox for 20.0.

commit 3a1f824210
Author: xieqiyu <xieqiyu@easycorp.ltd>
Date:   Wed Apr 24 15:24:46 2024 +0800

    * Fix bug#48351.

commit af0b038283
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 15:14:43 2024 +0800

    * Fix bug #48348.

commit d4dc98d604
Author: tanghucheng <tanghucheng@easycorp.ltd>
Date:   Wed Apr 24 15:13:00 2024 +0800

    * Fix bug #48140, Enabled child stage for ipd project.

commit 08e0f83941
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 15:07:36 2024 +0800

    * Adjust height of the batchcreate stakeholder page.

commit 8e1dfa7634
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 14:58:29 2024 +0800

    * Fix bug #48345.

commit 0562ebb542
Author: sunguangming <sunguangming@easycorp.ltd>
Date:   Wed Apr 24 14:55:42 2024 +0800

    * Add story pairs to search form.

commit 2c062163a5
Author: tanghucheng <tanghucheng@easycorp.ltd>
Date:   Wed Apr 24 14:40:10 2024 +0800

    * Fix bug #48314.

commit b812069307
Author: qixinzhi <qixinzhi@easycorp.ltd>
Date:   Wed Apr 24 06:38:51 2024 +0000

    * Auto column width with cell max value length.

commit f9c1a3e850
Author: qixinzhi <qixinzhi@easycorp.ltd>
Date:   Wed Apr 24 06:38:04 2024 +0000

    * Delete screen 3 scheme.

commit 3ffa92734f
Author: hufangzhou <hufangzhou@easycorp.ltd>
Date:   Wed Apr 24 14:35:14 2024 +0800

    * Fix bug #48239.

commit 99e1864ca8
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 14:30:08 2024 +0800

    * Fix bug #46381.

commit 81c3ebaa0a
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Wed Apr 24 14:28:26 2024 +0800

    + Add time fliter for commit search.

commit 14d5bf7cf0
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Wed Apr 24 09:34:53 2024 +0800

    * Adjust repo create page linkage.

commit 6880ef70af
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 14:22:28 2024 +0800

    * Replace `->size` with `set::width` and `set::height` in echarts.

commit b4ea64832a
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Wed Apr 24 14:15:13 2024 +0800

    * Adjust job view repo name.

commit 8168c98ba8
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 14:13:53 2024 +0800

    * Fix bug #48262.

commit d480ef87bd
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 13:51:05 2024 +0800

    * Fix bug #48025, modify id.

commit 003a73d5cb
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 13:49:12 2024 +0800

    * Fix bug #48025, modify id.

commit 3ad257eb53
Author: daitingting <daitingting@xirangit.com>
Date:   Wed Apr 24 05:43:53 2024 +0000

     * Fix bug #48261.

commit 77e6744f1d
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 13:42:13 2024 +0800

    * Fix bug #48294.

commit f10b3f5710
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 13:36:01 2024 +0800

    * Reset code.

commit 068f97bc38
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 13:18:34 2024 +0800

    * Fix bug #48308, set control of stage.

commit 078d566703
Author: wangyuting <wangyuting@easycorp.ltd>
Date:   Wed Apr 24 13:18:41 2024 +0800

    * Adjust edit feedback data toggle.

commit 34738e42d9
Author: zhouxin <zhouxin@easycorp.ltd>
Date:   Wed Apr 24 13:13:29 2024 +0800

    * Adjust lang.

commit eddba468d0
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 13:07:40 2024 +0800

    * Fix bug #48310.

commit fc673b76ce
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 11:26:49 2024 +0800

    * Fix bug #48310.

commit 7840c1ab35
Author: sunguangming <sunguangming@easycorp.ltd>
Date:   Wed Apr 24 11:24:40 2024 +0800

    * Remove dm driver from convert date.

commit d47e91c07e
Author: hufangzhou <hufangzhou@easycorp.ltd>
Date:   Wed Apr 24 11:20:10 2024 +0800

    * Fix bug #48293.

commit d475b63a74
Author: daitingting <daitingting@xirangit.com>
Date:   Wed Apr 24 03:16:57 2024 +0000

     * Fix bug #48261.

commit 655cc652be
Author: 王怡栋 <wangyidong@cnezsoft.com>
Date:   Wed Apr 24 11:14:54 2024 +0800

    * Fix bug for select usage when install.

commit 425fade713
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 11:14:19 2024 +0800

    * Fix bug #48303.

commit 723797107b
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 11:09:27 2024 +0800

    * Fix bug #48303.

commit 6740a4c699
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 11:06:32 2024 +0800

    * Fix bug #48306.

commit c42f7ad83e
Author: zhouxin <zhouxin@easycorp.ltd>
Date:   Wed Apr 24 11:02:21 2024 +0800

    * Fix bug #48073.

commit e38f2f6531
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 10:42:42 2024 +0800

    * Set search form open.

commit 2cb511cf52
Author: 王怡栋 <wangyidong@cnezsoft.com>
Date:   Wed Apr 24 10:07:43 2024 +0800

    * Fix error for sso module.

commit f8b093e0eb
Author: xieqiyu <xieqiyu@easycorp.ltd>
Date:   Wed Apr 24 10:21:37 2024 +0800

    * Fix the bug of duration and BSA default value.

commit c3e9c7d7cd
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 10:20:25 2024 +0800

    * Fix bug #48243.

commit c7cf68be63
Author: hufangzhou <hufangzhou@easycorp.ltd>
Date:   Wed Apr 24 10:17:03 2024 +0800

    * Fix bug #48280, #48289.

commit b9cdcf5bcd
Author: sunhao <sunhao@easycorp.ltd>
Date:   Wed Apr 24 10:17:34 2024 +0800

    * my: fix cannot update badges in main navbar.

commit 3aa9609ce2
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 10:16:21 2024 +0800

    * Fix bug #48294.

commit fb26e627de
Author: sunhao <sunhao@easycorp.ltd>
Date:   Wed Apr 24 10:10:56 2024 +0800

    Revert "* zin: fix cannot find page method on update."

    This reverts commit 367a4ae49d.

commit 63a70421ed
Author: tianshujie <tianshujie@easycorp.ltd>
Date:   Wed Apr 24 09:45:07 2024 +0800

    * Fix bug #48271.

commit c1a66b708b
Author: sunguangming <sunguangming@easycorp.ltd>
Date:   Wed Apr 24 09:40:09 2024 +0800

    * Modify upgrade method.

commit c68b2170f9
Author: 王怡栋 <wangyidong@cnezsoft.com>
Date:   Wed Apr 24 09:18:09 2024 +0800

    * Fix for sso login from zdoo.

commit 580b4f170f
Author: liumengyi <liumengyi@easycorp.ltd>
Date:   Wed Apr 24 09:30:37 2024 +0800

    * Fix bug #48272, update program's consumed, left and progress.

commit 1d9791a55e
Author: 王怡栋 <wangyidong@cnezsoft.com>
Date:   Tue Apr 23 17:27:07 2024 +0800

    * Remove useless code.

commit 40f0e10c1f
Author: caoyanyi <caoyanyi@easycorp.ltd>
Date:   Tue Apr 23 17:18:03 2024 +0800

    * Update standard sql.

# Conflicts:
#	db/update20.0.beta2.sql
#	module/block/config/feedback.php
#	module/block/zen.php
#	module/custom/lang/vi.php
#	module/mr/ui/browsebyexecution.html.php
#	module/repo/lang/de.php
#	module/repo/lang/en.php
#	module/repo/lang/fr.php
#	module/repo/lang/zh-cn.php
#	module/space/lang/de.php
#	module/space/lang/en.php
#	module/space/lang/fr.php
#	module/space/lang/zh-cn.php
#	module/space/ui/createapplication.html.php
#	www/js/zui3/zen-editor/index.esm.js
#	www/js/zui3/zen-editor/p-0aaccc7e.js
#	www/js/zui3/zen-editor/p-276dd30f.js
#	www/js/zui3/zen-editor/p-2b13cc9a.js
#	www/js/zui3/zen-editor/p-38d18c5d.js
#	www/js/zui3/zen-editor/p-3f6cad83.js
#	www/js/zui3/zen-editor/p-51e3a048.js
#	www/js/zui3/zen-editor/p-617d463f.js
#	www/js/zui3/zen-editor/p-62c0132e.js
#	www/js/zui3/zen-editor/p-6d22490c.js
#	www/js/zui3/zen-editor/p-a563f50b.js
#	www/js/zui3/zen-editor/p-bf31230c.js
#	www/js/zui3/zen-editor/p-c6c95773.js
#	www/js/zui3/zen-editor/p-d83dd3f0.js
#	www/js/zui3/zen-editor/p-d8bedd14.js
#	www/js/zui3/zen-editor/p-eaaa4129.js
#	www/js/zui3/zen-editor/zen-editor.esm.js
2024-04-26 13:59:25 +08:00

492 lines
19 KiB
PHP

<?php
class pivotZen extends pivot
{
/**
* 获取分组里一个透视表的默认方法和参数。
* Get default method name and parameters of a pivot in a group.
*
* @param int $dimension
* @param int $group
* @access protected
* @return array
*/
protected function getDefaultMethodAndParams(int $dimensionID, int $groupID): array
{
$currentGroup = $this->loadModel('tree')->getByID($groupID);
if(empty($currentGroup) || $currentGroup->grade != 1) return array('', '');
$groups = $this->pivot->getGroupsByDimensionAndPath($dimensionID, $currentGroup->path);
if(!$groups) return array('', '');
foreach($groups as $group)
{
if($this->config->edition == 'open' && $group->grade == 1) continue;
$pivotID = $this->pivot->getPivotID($group->id);
if($pivotID) return array('show', "groupID={$group->id}&pivotID={$pivotID}");
}
$firstDimension = $this->loadModel('dimension')->getFirst();
if($dimensionID != $firstDimension->id) return array('', '');
if(empty($this->lang->pivotList->{$currentGroup->collector}->lists)) return array('', '');
foreach($this->lang->pivotList->{$currentGroup->collector}->lists as $item)
{
$items = explode('|', $item);
if(count($items) != 3) continue;
$method = $items[2];
if(common::hasPriv('pivot', $method)) return array($method, '');
}
return array('', '');
}
/**
* 获取侧边栏菜单。
* Get sidebar menus of pivot.
*
* @param int $dimensionID
* @param object $groupID
* @access protected
* @return array
*/
protected function getSidebarMenus(int $dimensionID, int $groupID): array
{
$currentGroup = $this->loadModel('tree')->getByID($groupID);
if(empty($currentGroup) || $currentGroup->grade != 1) return array();
$groups = $this->pivot->getGroupsByDimensionAndPath($dimensionID, $currentGroup->path);
if(!$groups) return array();
$menus = array();
foreach($groups as $group)
{
if($this->config->edition == 'open' && $group->grade == 1) continue;
$pivots = $this->pivot->getAllPivotByGroupID($group->id);
if(empty($group->collector) && empty($pivots)) continue;
if($group->grade > 1) $menus[] = (object)array('id' => $group->id, 'parent' => 0, 'name' => $group->name);
if($pivots) $pivots = $this->pivot->processPivot($pivots, false);
foreach($pivots as $pivot)
{
$params = helper::safe64Encode("groupID={$group->id}&pivotID={$pivot->id}");
$url = inlink('preview', "dimension={$dimensionID}&group={$currentGroup->id}&method=show&params={$params}");
$menus[] = (object)array('id' => $group->id . '_' . $pivot->id, 'parent' => $group->grade > 1 ? $group->id : 0, 'name' => $pivot->name, 'url' => $url);
}
}
$firstDimension = $this->loadModel('dimension')->getFirst();
if($dimensionID != $firstDimension->id) return $menus;
$builtinMenus = $this->getBuiltinMenus($dimensionID, $currentGroup);
return array_merge($menus, $builtinMenus);
}
/**
* 在第一个维度上显示内置透视表。
* Display the built-in pivots in the first dimension.
*
* @param int $dimensionID
* @param object $currengGroup
* @access protected
* @return array
*/
protected function getBuiltinMenus(int $dimensionID, object $currentGroup): array
{
$collector = $currentGroup->collector;
if(empty($this->lang->pivotList->$collector->lists)) return array();
$menus = array();
ksort($this->lang->pivotList->$collector->lists);
foreach($this->lang->pivotList->$collector->lists as $item)
{
$items = explode('|', $item);
if(count($items) != 3) continue;
$label = $items[0];
$method = $items[2];
if(!common::hasPriv('pivot', $method)) continue;
$url = inlink('preview', "dimension={$dimensionID}&group={$currentGroup->id}&method={$method}");
$menus[] = (object)array('id' => $method, 'parent' => 0, 'name' => $label, 'url' => $url);
}
return $menus;
}
/**
* Preview pivots of a group.
*
* @param int $groupID
* @param int $pivotID
* @access public
* @return void
*/
public function show(int $groupID, int $pivotID): void
{
$pivot = $this->pivot->getByID($pivotID);
if(isset($_POST['filterValues']) and $_POST['filterValues'])
{
foreach($this->post->filterValues as $key => $value) $pivot->filters[$key]['default'] = $value;
}
if(isset($_POST['summary']) and $_POST['summary']) $pivot->settings['summary'] = $this->post->summary;
list($sql, $filterFormat) = $this->pivot->getFilterFormat($pivot->sql, $pivot->filters);
$tables = $this->loadModel('chart')->getTables($sql);
$sql = $tables['sql'];
$fields = json_decode(json_encode($pivot->fieldSettings), true);
$langs = json_decode($pivot->langs, true) ?? array();
if(isset($pivot->settings['summary']) and $pivot->settings['summary'] == 'notuse')
{
list($data, $configs) = $this->pivot->genOriginSheet($fields, $pivot->settings, $sql, $filterFormat, $langs);
}
else
{
list($data, $configs) = $this->pivot->genSheet($fields, $pivot->settings, $sql, $filterFormat, $langs);
}
$this->view->pivotName = $pivot->name;
$this->view->title = $pivot->name;
$this->view->currentMenu = $groupID . '_' . $pivot->id;
$this->view->currentGroup = $groupID;
$this->view->pivot = $pivot;
$this->view->data = $data;
$this->view->configs = $configs;
}
/**
* 把自定义透视表的数据转换为数据表格可以使用的格式。
* Convert the data of custom pivot to the format that can be used by data table.
*
* @param object $data
* @param array $configs
* @access public
* @return array
*/
public function convertDataForDtable(object $data, array $configs): array
{
$columns = array();
$rows = array();
$cellSpan = array();
$columnMaxLen = array();
$headerRow1 = !empty($data->cols[0]) ? $data->cols[0] : array();
$headerRow2 = !empty($data->cols[1]) ? $data->cols[1] : array();
/* 定义数据表格的列配置。*/
/* Define the column configuration of the data table. */
$index = 0;
foreach($headerRow1 as $column)
{
/* 如果 colspan 属性不为空则表示该列包含切片字段。*/
/* If the colspan attribute is not empty, it means that the column contains slice fields. */
if(!empty($column->colspan) && $column->colspan > 1)
{
/* 找到实际切片的字段。*/
/* Find the actual sliced field. */
$colspan = 0;
while($colspan < $column->colspan)
{
$subColumn = array_shift($headerRow2);
$field = 'field' . $index;
$columns[$field]['name'] = $field;
$columns[$field]['title'] = $subColumn->label;
$columns[$field]['width'] = 16 * mb_strlen($subColumn->label);
$columns[$field]['minWidth'] = 128;
$columns[$field]['align'] = 'center';
$columnMaxLen[$field] = mb_strlen($column->label);
/* 把被切片的字段名设置为数据表格的列配置的 headerGroup 属性。*/
/* Set the sliced field name as the headerGroup attribute of the column configuration of the data table. */
$columns[$field]['headerGroup'] = $column->label;
/* 数据表格不支持表头第二行合并单元格,如果有这种情况把被合并的所有列视为一列,记录 colspan 属性并跳过其它列。*/
/* The data table does not support merging cells in the second row of the header. If this is the case, all the merged columns are regarded as one column, the colspan attribute is recorded and other columns are skipped. */
if(!empty($subColumn->colspan) && $subColumn->colspan > 1) $columns[$field]['colspan'] = $subColumn->colspan;
$colspan += $subColumn->colspan ?: 1;
$index++;
}
continue;
}
$field = 'field' . $index;
$columns[$field]['name'] = $field;
$columns[$field]['title'] = $column->label;
$columns[$field]['width'] = 16 * mb_strlen($column->label);
$columns[$field]['minWidth'] = 128;
$columns[$field]['align'] = 'center';
$columnMaxLen[$field] = mb_strlen($column->label);
// if(isset($data->groups[$index])) $columns[$field]['fixed'] = 'left';
$index++;
}
$lastRow = count($data->array) - 1;
foreach($data->array as $rowKey => $rowData)
{
$index = 0;
$rowData = array_values($rowData);
for($i = 0; $i < count($rowData); $i++)
{
$field = 'field' . $index;
$value = $rowData[$i];
if(!empty($columns[$field]['colspan']))
{
$colspan = $columns[$field]['colspan'];
$value = array_slice($rowData, $i, $colspan);
$i += $colspan - 1;
}
/* 定义数据表格的行数据。*/
/* Defind row data of the data table. */
$rows[$rowKey][$field] = $value;
$columnMaxLen[$field] = max($columnMaxLen[$field], mb_strlen($value));
/* 定义数据表格合并单元格的配置。*/
/* Define configuration to merge cell of the data table. */
if(isset($configs[$rowKey][$index]) && $configs[$rowKey][$index] > 1)
{
$rows[$rowKey][$field . '_rowspan'] = $configs[$rowKey][$index];
$cellSpan[$field]['rowspan'] = $field . '_rowspan';
}
if($i == 0 && !empty($data->groups) && !empty($data->columnTotal) && $rowKey == $lastRow)
{
$rows[$rowKey][$field . '_colspan'] = count($data->groups);
$cellSpan[$field]['colspan'] = $field . '_colspan';
}
$index++;
}
}
foreach($columns as $field => $column)
{
$columns[$field]['width'] = 16 * $columnMaxLen[$field];
}
return array($columns, $rows, $cellSpan);
}
/**
* Bug create pivot.
*
* @param string $begin
* @param string $end
* @param int $product
* @param int $execution
* @access public
* @return void
*/
public function bugCreate(string $begin = '', string $end = '', int $product = 0, int $execution = 0): void
{
$this->app->loadLang('bug');
$begin = date('Y-m-01', strtotime($begin ?:'last month'));
$end = date('Y-m-d', strtotime($end ?: 'now'));
$this->view->title = $this->lang->pivot->bugCreate;
$this->view->bugs = $this->pivot->getBugs($begin, $end, $product ? $product : 0, $execution ? $execution : 0);
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
$this->view->executions = $this->pivot->getProjectExecutions();
$this->view->products = $this->loadModel('product')->getPairs('', 0, '', 'all');
$this->view->begin = $begin;
$this->view->end = $end;
$this->view->execution = $execution;
$this->view->product = $product;
$this->view->currentMenu = 'bugcreate';
}
/**
* Bug assign pivot.
*
* @access public
* @return void
*/
public function bugAssign(): void
{
$this->session->set('productList', $this->app->getURI(true), 'product');
$this->view->title = $this->lang->pivot->bugAssign;
$this->view->bugs = $this->pivot->getBugAssign();
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
$this->view->currentMenu = 'bugassign';
}
/**
* Product information pivot.
*
* @params string $conditions
* @access public
* @return void
*/
public function productSummary(string $conditions = ''): void
{
$this->app->loadLang('story');
$this->app->loadLang('product');
$this->app->loadLang('productplan');
$this->session->set('productList', $this->app->getURI(true), 'product');
$products = $this->pivot->getProducts($conditions);
$this->view->title = $this->lang->pivot->productSummary;
$this->view->products = $this->processProductsForProductSummary($products);
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
$this->view->conditions = $conditions;
$this->view->currentMenu = 'productsummary';
}
/**
* 把计划数组展开为独立的产品对象并添加跨行合并属性。
* Expand the plans property to single product objects and add rowspan property.
*
* @params array $products
* @access public
* @return array
*/
public function processProductsForProductSummary(array $products): array
{
$productList = array();
foreach($products as $product)
{
if(!isset($product->plans))
{
$product->planTitle = '';
$product->planBegin = '';
$product->planEnd = '';
$product->storyDraft = 0;
$product->storyReviewing = 0;
$product->storyActive = 0;
$product->storyChanging = 0;
$product->storyClosed = 0;
$product->storyTotal = 0;
$productList[] = $product;
continue;
}
$first = true;
foreach($product->plans as $plan)
{
$newProduct = clone $product;
$newProduct->planTitle = $plan->title;
$newProduct->planBegin = $plan->begin == '2030-01-01' ? $this->lang->productplan->future : $plan->begin;
$newProduct->planEnd = $plan->end == '2030-01-01' ? $this->lang->productplan->future : $plan->end;
$newProduct->storyDraft = isset($plan->status['draft']) ? $plan->status['draft'] : 0;
$newProduct->storyReviewing = isset($plan->status['reviewing']) ? $plan->status['reviewing'] : 0;
$newProduct->storyActive = isset($plan->status['active']) ? $plan->status['active'] : 0;
$newProduct->storyChanging = isset($plan->status['changing']) ? $plan->status['changing'] : 0;
$newProduct->storyClosed = isset($plan->status['closed']) ? $plan->status['closed'] : 0;
$newProduct->storyTotal = $newProduct->storyDraft + $newProduct->storyReviewing + $newProduct->storyActive + $newProduct->storyChanging + $newProduct->storyClosed;
if($first) $newProduct->rowspan = count($newProduct->plans);
$productList[] = $newProduct;
$first = false;
}
}
return $productList;
}
/**
* Project deviation pivot.
*
* @param string $begin
* @param string $end
* @access public
* @return void
*/
public function projectDeviation(string $begin = '', string $end = ''): void
{
$this->session->set('executionList', $this->app->getURI(true), 'execution');
$begin = $begin ? date('Y-m-d', strtotime($begin)) : date('Y-m-01');
$end = $end ? date('Y-m-d', strtotime($end)) : date('Y-m-d', strtotime(date('Y-m-01', strtotime('next month')) . ' -1 day'));
$this->view->title = $this->lang->pivot->projectDeviation;
$this->view->executions = $this->pivot->getExecutions($begin, $end);
$this->view->begin = $begin;
$this->view->end = $end;
$this->view->currentMenu = 'projectdeviation';
}
/**
* 组织透视表。
* Workload pivot.
*
* @param string $begin
* @param string $end
* @param int $days
* @param float $workhour
* @param int $dept
* @param string $assign
* @access public
* @return void
*/
public function workload(string $begin = '', string $end = '', int $days = 0, float $workhour= 0, int $dept = 0, string $assign = 'assign'): void
{
$this->app->loadConfig('execution');
$this->session->set('executionList', $this->app->getURI(true), 'execution');
$begin = $begin ? strtotime($begin) : time();
$end = $end ? strtotime($end) : time() + (7 * 24 * 3600);
$end += 24 * 3600;
$beginWeekDay = date('w', $begin);
$begin = date('Y-m-d', $begin);
$end = date('Y-m-d', $end);
if(empty($workhour)) $workhour = $this->config->execution->defaultWorkhours;
$diffDays = helper::diffDate($end, $begin);
if($days > $diffDays) $days = $diffDays;
if(empty($days))
{
$weekDay = $beginWeekDay;
$days = $diffDays;
for($i = 0; $i < $diffDays; $i++, $weekDay++)
{
$weekDay = $weekDay % 7;
if(($this->config->execution->weekend == 2 && $weekDay == 6) || $weekDay == 0) $days--;
}
}
$allHour = $workhour * $days;
$users = $this->loadModel('user')->getPairs('noletter|noclosed');
$this->view->title = $this->lang->pivot->workload;
$this->view->workload = $this->pivot->getWorkload($dept, $assign, $users, $allHour);
$this->view->depts = $this->loadModel('dept')->getOptionMenu();
$this->view->users = $users;
$this->view->dept = $dept;
$this->view->begin = $begin;
$this->view->end = date('Y-m-d', strtotime($end) - 24 * 3600);
$this->view->days = $days;
$this->view->workhour = $workhour;
$this->view->assign = $assign;
$this->view->currentMenu = 'workload';
}
}