From 7bb53ec47f71c04b96b5773854068d2a46efd5c0 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 26 Apr 2024 13:59:03 +0800 Subject: [PATCH] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit b9e9f86d39d4e0c4eef3419deb895c983bfc80db Author: caoyanyi Date: Fri Apr 26 13:35:56 2024 +0800 * Adjust mr actions style. commit 1ddb2067b23117ffa0a6c980a69e603b5124d051 Author: hufangzhou Date: Fri Apr 26 13:24:05 2024 +0800 * Fix bug #48463. commit 94528ed5b0df9da374167fa8fdcc135cb59c32b7 Author: xieqiyu Date: Fri Apr 26 13:17:29 2024 +0800 * Fix bug#48410. commit d1b38c54f9dfbac806bfee58a753bf3a9934e971 Author: caoyanyi Date: Fri Apr 26 13:13:38 2024 +0800 - Remove mr repos switch block. commit c94da3e17a6090abe81e5e6557afdeb12c2bad82 Author: sunhao Date: Fri Apr 26 11:30:43 2024 +0800 * my: optimize UI of manage contacts page. commit 2e74f33d222caba6dea966884a981ba47ee27191 Author: 宋辰轩 Date: Fri Apr 26 11:13:16 2024 +0800 * Fix bug #48317. commit 45b6beccae498520ad084741c1e004fe1dfd654c Author: liwenrui Date: Fri Apr 26 11:13:06 2024 +0800 * handle direct client download without selecting os. commit 82be78538f4be0eec707d23155df1862c6dae733 Author: wangyuting Date: Fri Apr 26 10:43:42 2024 +0800 * Fix ipd project only one execution bug. commit faa6c605fcb929cf1c3e1eb7e3990e9d97a783ca Author: liumengyi Date: Fri Apr 26 10:42:25 2024 +0800 * Fix bug #48499, modify the icon. commit 51347367796ddf62ff7f65d90de8ce7a166c2ed9 Author: xieqiyu Date: Fri Apr 26 10:41:35 2024 +0800 * Fix bug#48167. commit 5ca23cd76f39572a5a88d70df58dbc3673e93032 Author: liumengyi Date: Fri Apr 26 10:30:02 2024 +0800 * Fix bug #48453. commit 23cde4b38ed767dca1a048ba501193d3104c0945 Author: sunhao Date: Fri Apr 26 10:19:28 2024 +0800 * tutorial: fix tutorial start modal style. commit 1d710e10bd5d1fae096c48a7e1fe22ba5448513f Author: sunhao Date: Fri Apr 26 10:18:40 2024 +0800 * zin: fix batch-form style in old iframe modal. commit c9092603f067ec55afdac2ab4c63893ebcbe2f83 Author: liumengyi Date: Fri Apr 26 10:15:27 2024 +0800 * Fix bug #48495. commit c0aeb9f69d3140ee71bfd7b70c2d210953d5202b Author: sunguangming Date: Fri Apr 26 10:12:39 2024 +0800 * Fix bug #48431. commit 4348fd543a63d541508ebb5f17de2b69bc0f3b5c Author: 宋辰轩 Date: Fri Apr 26 10:11:45 2024 +0800 * Fix bug #48445. commit c9df08b1a13346eb1c200e9a628a663f6d764f1d Author: 宋辰轩 Date: Fri Apr 26 10:07:01 2024 +0800 * Fix bug for screen browse. commit ebc469c0a4c6422d93af5c356a5003e189ea589d Author: wangyuting Date: Fri Apr 26 09:55:44 2024 +0800 * Adjust recentproject block css. commit 9337fa109ac3e548d5da69bb884679aeb5bfd166 Author: wangyuting Date: Fri Apr 26 09:50:34 2024 +0800 * Adjust recentproject block css. commit 07903733bf529ec48bbb4e1c4c8c5c5a914288ba Author: 王怡栋 Date: Fri Apr 26 09:33:39 2024 +0800 * Fix bug #48473. commit a347de8354aba7b7d9776638b747d5334f3da781 Author: wangyuting Date: Fri Apr 26 09:34:29 2024 +0800 * Add progress to recentproject block. task #116976. commit e6e6c6047eba85e40e35fe814193cd3fd3431874 Author: xieqiyu Date: Fri Apr 26 09:29:12 2024 +0800 * Modify the problem of code review. commit a53a577b69d2cfe055035bfc8826bcdd90cbd0de Author: sunguangming Date: Fri Apr 26 09:13:43 2024 +0800 * Finish task #45906. commit 774cb4efbc03249509b0d407a6d4f53c099b3931 Author: wangyuting Date: Fri Apr 26 09:03:42 2024 +0800 * Adjust review by me data to DAO search. commit 976ef156b6e13820d4fe1add47f7c08a05380da2 Author: tianshujie Date: Fri Apr 26 09:00:51 2024 +0800 * Add class for copy project button. commit 36f2c24a97f6ffbcd9ab9bee6bf8ba3b29e07bad Author: tianshujie Date: Fri Apr 26 09:00:39 2024 +0800 * Fix bug #48480. commit ae9ef456214fd514166bd541096c51465d682ab9 Author: xieqiyu Date: Thu Apr 25 21:12:27 2024 +0800 * Optimated code. commit 20eefb90dc1edc9df0c15ff88c4d52bf6fd376b6 Author: sunhao Date: Thu Apr 25 19:42:50 2024 +0800 * zin: optimize UI for loading old pages. commit 56006bca4f07b889bf49f5e4b29d59d6c2fbab51 Author: sunhao Date: Thu Apr 25 18:18:24 2024 +0800 * theme: update themes for old pages. commit 0dd32057e46387270337d2af185a43dce676dba7 Author: liumengyi Date: Thu Apr 25 17:15:25 2024 +0800 * Modify style of productplan desc. commit 272cdc4a61126cd1df775a2165a16add6dd3efcb Author: liumengyi Date: Thu Apr 25 17:03:07 2024 +0800 * Fix bug #48413, replace executionLang with productplanLang. commit 1f0b96aab2ec444a2e48c19cebacacc64a7a78ca Author: tanghucheng Date: Thu Apr 25 16:59:05 2024 +0800 * Program in the product lines can be empty. commit fb6bb48ee6cbe2d8e81c98eda078ca0913bbaf7a Author: 宋辰轩 Date: Thu Apr 25 17:02:29 2024 +0800 * Remove update bi guide img file. commit 66bcb2145507d0f6660048cac718a534d994fbf7 Author: liumengyi Date: Thu Apr 25 16:48:22 2024 +0800 * Fix bug #48464, set icon by project model. commit c5738c412916f96cb56892eadda90bb2e4f03660 Author: 宋辰轩 Date: Thu Apr 25 16:47:41 2024 +0800 * Fix bug for preview pivot. commit cc0a8aabce436644e797712aea729f16ec935a39 Author: hufangzhou Date: Thu Apr 25 16:39:20 2024 +0800 + Add the or vision image. commit 73d70324fdcdd1e34175381e30dc97d46bb17a61 Author: hufangzhou Date: Thu Apr 25 16:34:31 2024 +0800 * Change lang item. commit a54780438a93bdac16f1d05bdd1c6b359591bf1c Author: liumengyi Date: Thu Apr 25 16:33:11 2024 +0800 * Modify the style of bugSteps. commit ff5be095b42aaf54bed418f0e7776a61baefcf73 Author: tianshujie Date: Thu Apr 25 16:32:24 2024 +0800 * Fix bug #48453. commit 04325541436529c9937f3b1d66b65feb95aa8770 Author: tianshujie Date: Thu Apr 25 16:21:52 2024 +0800 + Add comment. commit 9155a82131f359a83f46a5be404f3332dcd23133 Author: caoyanyi Date: Thu Apr 25 16:07:55 2024 +0800 * Adjust jenkins job form style. commit dc272445cf4b9d6538da982c2c58860c38e9f49b Author: liumengyi Date: Thu Apr 25 15:59:31 2024 +0800 * Fix bug if the execution doesn't have the products. commit 1fce0df29bfd42d6e13766c2aed647505973ca29 Author: caoyanyi Date: Thu Apr 25 15:48:41 2024 +0800 * Adjust app create tips. commit a48e48394eeb8d5b96840cab6d59699593f1d1ef Author: liumengyi Date: Thu Apr 25 15:47:09 2024 +0800 * Fix bug #48452. commit c500f9ce58df010a03fad503c8b2907fb86e42cb Author: tianshujie Date: Thu Apr 25 15:27:17 2024 +0800 * Fix bug #48449. commit 076b33652c19e2948ec7746618b4aa3af0d8ea13 Author: liumengyi Date: Thu Apr 25 15:11:57 2024 +0800 * Fix bug #48429, don't append relatedBugs to excludeBugs when linking bugs. commit bf59668dffdd5244cf91324fc1985be658182a20 Author: caoyanyi Date: Fri Apr 19 11:22:22 2024 +0800 + Add page data for repo code view. commit 91e83ce12b6420abb3082c5377f49c477855ee25 Author: caoyanyi Date: Thu Apr 25 15:10:34 2024 +0800 * Adjust repo branch switch style. commit 16147ac595505163bd883774e13ec439450fd29b Author: tianshujie Date: Thu Apr 25 15:09:44 2024 +0800 * Fix bug #48444. commit da77572ec8e60e5f41ed90a444c7f55a38575cdb Author: wangyuting Date: Thu Apr 25 15:06:20 2024 +0800 * Adjust executionstatistic block burn. task #116977. commit 73235c93c8739adde20a700450d793c0f2bdd969 Author: liumengyi Date: Thu Apr 25 15:03:45 2024 +0800 * Fix bug #48436, add ztfRun to the actions in execution::testcase. commit 248b65ba6a9c65baaadc32291c1a97bbcb975dd6 Author: xieqiyu Date: Thu Apr 25 15:02:39 2024 +0800 * Fix bug#48420. commit 388f54b5ec35648f46241cc821303d26b1e3dd95 Author: xieqiyu Date: Thu Apr 25 15:01:03 2024 +0800 * Fix bug#48427. commit 2c4122b084771fa8b0657586d0dc506cd4d40ee3 Author: liumengyi Date: Thu Apr 25 14:58:02 2024 +0800 * Fix bug #48441, keep in current tab when changing the stepsType. commit c9b094b3abf0039a8b9edee8d4f8e340b9ba09f8 Author: tianshujie Date: Thu Apr 25 14:58:13 2024 +0800 * Fix bug #48438. commit ae10a1c686483eb2b2cab666abc0388586790b28 Author: liumengyi Date: Thu Apr 25 14:54:28 2024 +0800 * Fix bug #48435, replace `$this->session` with `$app->session`. commit c81031dab98f01ed0d9831f96c30156f44bc6ee1 Author: liumengyi Date: Thu Apr 25 14:49:42 2024 +0800 * Fix bug #48430, replace `{runID}`. commit 0635779f1f513c73b2c4b0e5c418c3be5623491a Author: 王怡栋 Date: Thu Apr 25 14:48:58 2024 +0800 * Fix bug #48419. commit 2b1358fb756f911903c270c7ec13c9b7a83545cc Author: zhouxin Date: Thu Apr 25 14:46:08 2024 +0800 * Fix bug #47408. commit aef64e2c85dfe4fbad8035f7b10f9dbd6adccdf4 Author: liumengyi Date: Thu Apr 25 14:45:30 2024 +0800 * Fix bug #48423, replace `
` with `

`. commit 392a031495f5f3229477cc518793ddbc12d9c1b8 Author: tianshujie Date: Thu Apr 25 14:41:55 2024 +0800 * Show the product line when the program is not selected. commit 1449ea4d06983d63d788fafe4912b6003198ac2b Author: tanghucheng Date: Thu Apr 25 14:41:09 2024 +0800 * Fix bug #116431. commit 9ce8dfe3ee40ad0347b21259f85fef1f350a7cf7 Author: tianshujie Date: Thu Apr 25 14:31:03 2024 +0800 * Fix bug #48433. commit 62a87798061ea6712c53c33177d909c6897fc262 Author: sunguangming Date: Thu Apr 25 14:28:56 2024 +0800 * Add loadProductModules function. commit 8ec4efde623eab9cc6dc1ef7627acf20c59f8893 Author: liumengyi Date: Thu Apr 25 14:27:36 2024 +0800 * Add return type. commit 035f15b16e6652423c66978dfea08e4e7a538bbc Author: sunhao Date: Thu Apr 25 14:21:50 2024 +0800 * disable loading effect on loading modal with same url. commit 1b7aac3f6f5de89d091a5d526965abb0ba73b657 Author: zhouxin Date: Thu Apr 25 14:19:34 2024 +0800 * Fix bug #47654. commit 730ab12d86d73628e9fe5fa3317131edb9b4bab1 Author: sunhao Date: Thu Apr 25 13:59:51 2024 +0800 * zin: add favicon to base page. commit e7051b2d2f44f2ee1fbee305742ffaaa99b81102 Author: liumengyi Date: Thu Apr 25 13:58:51 2024 +0800 * Fix bug #48421, removes duplicate projects. commit 3089e950410d8c36f4b17b830107a2e59ff4d3e2 Author: liumengyi Date: Thu Apr 25 13:43:47 2024 +0800 * Fix bug #48176. commit 1409059467146d337ed9e4fac8f3bcfd0c6e7bc2 Author: tianshujie Date: Thu Apr 25 13:41:20 2024 +0800 * Fix bug #48418. commit 6934f36b9e07513078287cc948158fc48da7f3bd Author: zhouxin Date: Thu Apr 25 13:35:10 2024 +0800 * Remove useless method. commit 908f7dd0870e0c6bb3e4e1653944313aa3d6e7ad Author: wangyuting Date: Thu Apr 25 13:30:56 2024 +0800 * Adjust teamachievement block css. task #116978. commit abb2d04bd018d878475b208aee6b566d892d02c9 Author: zhouxin Date: Thu Apr 25 13:25:53 2024 +0800 * Optimize code. commit 042726dd6a452453ee68a19de18e23ebf684c1bf Author: tanghucheng Date: Thu Apr 25 11:16:45 2024 +0800 * Fix bug #48143, Add $config->story->dtable->fieldList['roadmap']['width']. commit b3b3a4884be65b8a2eed40a7b2eb50c50ceabbb1 Author: tanghucheng Date: Thu Apr 25 11:00:11 2024 +0800 * Fix bug #48415. commit b2878c8644d7b221b151eaedf0212356ead0a234 Author: liumengyi Date: Thu Apr 25 10:59:32 2024 +0800 - Remove `var_dump`. commit b8e22a544665038429fdcece0b44a0981c47b079 Author: liumengyi Date: Thu Apr 25 10:59:02 2024 +0800 * Optimize code for uploading files. commit 328cf2c605761b07dfdd10970f69753d132109f3 Author: tianshujie Date: Thu Apr 25 10:57:27 2024 +0800 - Remove unused style. commit 98f501ad66ea9376d9770b9d761ccafd0dcc9ef8 Author: sunhao Date: Thu Apr 25 10:57:18 2024 +0800 * zui: update zui3 lib. commit 138ae9b7bb226467e5a8bfaadaf02c5959a2d795 Author: caoyanyi Date: Thu Apr 25 10:55:12 2024 +0800 * Adjust repo page language. commit 2a4abbde8d501cfd96becb1ae575d4d123d49c0d Author: 宋辰轩 Date: Thu Apr 25 10:24:32 2024 +0800 * Fix bug #48350. commit c2c122b678e04858e79310781797cc118e19c768 Author: wangyuting Date: Thu Apr 25 10:22:08 2024 +0800 * Adjust welcome block css. task #116979. commit 1cba83c80f3bcbf6eb2b6eb9fc848b68fdeabc7d Author: sunhao Date: Thu Apr 25 10:21:24 2024 +0800 * kanban: optimize label style. commit a92ca103b9f7fe7b473749f7983884400be33aa2 Author: tianshujie Date: Thu Apr 25 10:18:16 2024 +0800 * Fix bug #48402. commit decae20945e15874db18b564bc5450bf936ee000 Author: tianshujie Date: Thu Apr 25 10:11:24 2024 +0800 * Adjust select execution title style. commit 8fc680ecc9d3666e080c68e84231a12699b8853e Author: 宋辰轩 Date: Thu Apr 25 10:03:04 2024 +0800 * Add delete file. commit 0c08073647d87086bb81ec300b1578ba6b637f2d Author: tianshujie Date: Thu Apr 25 09:39:41 2024 +0800 * The date field was not validated when fixing the bug import task. commit b6aa30da6f748aa1460d2dbe7625d538e6cdfefe Author: liyang Date: Thu Apr 25 09:41:02 2024 +0800 Add delete btn in import repo page. commit 188bdfff9069bdc747acb2c62f1bbbe30f1192d7 Author: liyang Date: Thu Apr 25 09:30:58 2024 +0800 Hide the hidden function of the imported code library page commit 22e899b21fde583ef51e7c596b7b34755f152d74 Author: sunguangming Date: Thu Apr 25 09:26:39 2024 +0800 * Fix bug #48372. commit dea8d5785a940391382a61bc9c6663a05b6e2561 Author: tianshujie Date: Thu Apr 25 09:25:57 2024 +0800 * Remove the box when it is out of focus. commit 94117eac4a3f564b51bfb3776ea13239d6b9c2e2 Author: liumengyi Date: Thu Apr 25 09:21:31 2024 +0800 * Modify testtask's order in qastatistic block. commit 16558b955dafcb04409f46902f9635846b904931 Author: 宋辰轩 Date: Thu Apr 25 09:18:46 2024 +0800 * Use ajaxGetOldDropMenu commit eb7f606fe575c9cd5e2d5a042ce4e5c1ac8f7d4f Author: hufangzhou Date: Thu Apr 25 09:07:24 2024 +0800 * Add todo-calendar privilege to or interface. commit 119fef4fae46ce6737507843697e17c5e37a888d Author: wangyuting Date: Thu Apr 25 09:06:33 2024 +0800 * Adjust closedSetting to closeSetting. commit 1179f36595d59dca599fa4782e6e51753812803b Author: tanghucheng Date: Thu Apr 25 08:58:31 2024 +0800 * Fix bug #47758, unset percent when disabled. commit b143356a55997fe11233f5a99b6d14e5bb143829 Author: sunguangming Date: Thu Apr 25 08:56:35 2024 +0800 * Fix bug #48379. commit e1ec1380586f047b75e962d88aaa5d15612f93ca Author: liumengyi Date: Thu Apr 25 08:52:51 2024 +0800 * Optimize code for bug #48271. commit 8ca008736a3ae984594057b73e82f679daf76787 Author: liwenrui Date: Thu Apr 25 08:49:31 2024 +0800 * tweak again, actually only wanted to add padding to the top. commit 388006b340d028a6bdebe311f79455aae9d9a830 Author: liwenrui Date: Thu Apr 25 08:49:05 2024 +0800 * tweak zeneditor to add some padding back. commit 0e0121b201685a777e1ff766bb1133b02038b709 Author: liwenrui Date: Thu Apr 25 08:27:23 2024 +0800 * update zeneditor and remove paragraph margin within. commit 5e3b42a9f3c84066f5a9ce95da0d8d0e5d01d73b Author: sunhao Date: Wed Apr 24 17:32:20 2024 +0800 * zui: update zui3 lib. commit 3e543c140390357de54a5219ec987a57fa4aac5f Author: wangyuting Date: Wed Apr 24 17:30:35 2024 +0800 * Optimize code. commit ce8e34849dd9a50ec00c647a29fb2a0a2f1fb1a1 Author: wangyuting Date: Wed Apr 24 17:29:17 2024 +0800 * Fix project menu bug. bug #48121. commit bff8da8abab008be267e752e47aaf55e5a381bdb Author: sunhao Date: Wed Apr 24 17:20:38 2024 +0800 * zin: sort fields after reload form. commit 01e15f66356e3216f8d472efb5cb2187a9265fbc Author: liumengyi Date: Wed Apr 24 16:53:10 2024 +0800 * Fix bug #46381. commit b89caabfcebe6cc85d9084c18da8493bf9886459 Author: hufangzhou Date: Wed Apr 24 16:53:21 2024 +0800 * Adjust the default filename for export execution. commit 17d5d65a17f26d31c03a539d8b35691ee524b50d Author: liumengyi Date: Wed Apr 24 16:47:28 2024 +0800 * Fix bug #48367, get linked bugs. commit 3ee2f3ea5cccd89ee1151963446c41a1b78e5ce0 Author: 宋辰轩 Date: Wed Apr 24 16:45:43 2024 +0800 * Fix bug for preview pivot menu. commit 2c00f9a657e471a71fcf6bea62b6a7002ee80d49 Author: xieqiyu Date: Wed Apr 24 16:29:25 2024 +0800 * Fix bug#48334. commit 484e24fd9d4288b621c81eecce109db9ccde300a Author: liumengyi Date: Wed Apr 24 16:24:24 2024 +0800 * Fix bug #48343. commit 1aa110645c5013bb5c477475822f944fc7d8e4b9 Author: liwenrui Date: Wed Apr 24 16:01:19 2024 +0800 * fix ai prompt menu injected multiple times, bug #48358. commit a2333979b5537c353d084b4534c1463f9810f5ab Author: zhouxin Date: Wed Apr 24 15:59:09 2024 +0800 * Fix height of project deviation pivot. commit 7a3b20222ff379f212b87abed1951ea2095528d9 Author: liumengyi Date: Wed Apr 24 15:54:16 2024 +0800 * Replace runID in testcase::browse. commit ab05d5630150357cd8c70a81e7839f681e6b0620 Author: tianshujie Date: Wed Apr 24 15:45:01 2024 +0800 * No iterative project hides execution column. commit dffcd9e5c799687217f96f51bf92e8c6daa92b82 Author: sunguangming Date: Wed Apr 24 15:46:18 2024 +0800 * Fix sql error. commit 22d89bb361a4cf82684b745cee97def0855ddfe7 Author: xieqiyu Date: Wed Apr 24 15:43:11 2024 +0800 * Fix bug#48349. commit 603195b1e1937612af3b8dc37cd5d38245ec7819 Author: tianshujie Date: Wed Apr 24 15:41:27 2024 +0800 * Adjust execution column style of the build list. commit 989f2b8ca52f0a714b1fe2a41b86388814e78d7c Author: liumengyi Date: Wed Apr 24 15:27:01 2024 +0800 * Fix bug #48344, set runID. commit 2db2a7f9dcdb7fc3ce58a4873a7d8e8aadd38cbe Author: caoyanyi Date: Wed Apr 24 15:25:54 2024 +0800 - Remove gitfox for 20.0. commit 3a1f824210230776aecd5cf89a684cca730f6254 Author: xieqiyu Date: Wed Apr 24 15:24:46 2024 +0800 * Fix bug#48351. commit af0b038283d6e0b85cc16064113cb5ea2402ae1f Author: tianshujie Date: Wed Apr 24 15:14:43 2024 +0800 * Fix bug #48348. commit d4dc98d6047184b3bee085ea474955a5eea5893c Author: tanghucheng Date: Wed Apr 24 15:13:00 2024 +0800 * Fix bug #48140, Enabled child stage for ipd project. commit 08e0f839417c22002b7aa53f728ba762c2712c98 Author: tianshujie Date: Wed Apr 24 15:07:36 2024 +0800 * Adjust height of the batchcreate stakeholder page. commit 8e1dfa7634261d9257a7525808ed50ab2730f7fc Author: tianshujie Date: Wed Apr 24 14:58:29 2024 +0800 * Fix bug #48345. commit 0562ebb542bd0eb8ab2b8a1bd2649bfccf4a3215 Author: sunguangming Date: Wed Apr 24 14:55:42 2024 +0800 * Add story pairs to search form. commit 2c062163a55dd039e6d34204d22a294472e6959f Author: tanghucheng Date: Wed Apr 24 14:40:10 2024 +0800 * Fix bug #48314. commit b81206930795b41af4b240283c67998dc9842692 Author: qixinzhi Date: Wed Apr 24 06:38:51 2024 +0000 * Auto column width with cell max value length. commit f9c1a3e8505e6b241febd265f6bd14c76227cc77 Author: qixinzhi Date: Wed Apr 24 06:38:04 2024 +0000 * Delete screen 3 scheme. commit 3ffa92734f40b93119c05e986fd1c6b8519ff0ce Author: hufangzhou Date: Wed Apr 24 14:35:14 2024 +0800 * Fix bug #48239. commit 99e1864ca88db1b4f539c965481fb11d222f94cf Author: liumengyi Date: Wed Apr 24 14:30:08 2024 +0800 * Fix bug #46381. commit 81c3ebaa0a62c9075aee625eb473718fc7a16bfc Author: caoyanyi Date: Wed Apr 24 14:28:26 2024 +0800 + Add time fliter for commit search. commit 14d5bf7cf0cb30aa12650906f5b9bf04d38152e7 Author: caoyanyi Date: Wed Apr 24 09:34:53 2024 +0800 * Adjust repo create page linkage. commit 6880ef70af6b955ce54de2909955404668c18946 Author: liumengyi Date: Wed Apr 24 14:22:28 2024 +0800 * Replace `->size` with `set::width` and `set::height` in echarts. commit b4ea64832a1aa59503dd2c9d3ce24829882c948e Author: caoyanyi Date: Wed Apr 24 14:15:13 2024 +0800 * Adjust job view repo name. commit 8168c98ba8a67eace38374ad8c5b83f1df06de55 Author: tianshujie Date: Wed Apr 24 14:13:53 2024 +0800 * Fix bug #48262. commit d480ef87bd683d8a7b12ffd640c04f943eeeecb4 Author: liumengyi Date: Wed Apr 24 13:51:05 2024 +0800 * Fix bug #48025, modify id. commit 003a73d5cbc90c1b9d4f6e60b356ff0b2576ebb7 Author: liumengyi Date: Wed Apr 24 13:49:12 2024 +0800 * Fix bug #48025, modify id. commit 3ad257eb532cb6ddbfdb85850689198cfbcd8a14 Author: daitingting Date: Wed Apr 24 05:43:53 2024 +0000 * Fix bug #48261. commit 77e6744f1df4a04749d771fbec5735ec5ab6cd59 Author: tianshujie Date: Wed Apr 24 13:42:13 2024 +0800 * Fix bug #48294. commit f10b3f5710c1395145475228fa2f3baee9277807 Author: tianshujie Date: Wed Apr 24 13:36:01 2024 +0800 * Reset code. commit 068f97bc3840b89d1ffc3a248a86fe982f2bf3df Author: liumengyi Date: Wed Apr 24 13:18:34 2024 +0800 * Fix bug #48308, set control of stage. commit 078d5667030811446bc60e1359304da55a6f034d Author: wangyuting Date: Wed Apr 24 13:18:41 2024 +0800 * Adjust edit feedback data toggle. commit 34738e42d9e7ac838483f4032fe562eba587b9a6 Author: zhouxin Date: Wed Apr 24 13:13:29 2024 +0800 * Adjust lang. commit eddba468d0af554e39981a4a44885a96f429b98c Author: liumengyi Date: Wed Apr 24 13:07:40 2024 +0800 * Fix bug #48310. commit fc673b76ce40b98ec5535bf0262e60673ad4b6c1 Author: liumengyi Date: Wed Apr 24 11:26:49 2024 +0800 * Fix bug #48310. commit 7840c1ab353ce89d207fb8f7ab3c370d173a1016 Author: sunguangming Date: Wed Apr 24 11:24:40 2024 +0800 * Remove dm driver from convert date. commit d47e91c07e1cf22331ac3eb6623a6eafec59183c Author: hufangzhou Date: Wed Apr 24 11:20:10 2024 +0800 * Fix bug #48293. commit d475b63a741fb7513bd739b5904ea5f391c45e1a Author: daitingting Date: Wed Apr 24 03:16:57 2024 +0000 * Fix bug #48261. commit 655cc652be294767b12d81840c35429512ff3470 Author: 王怡栋 Date: Wed Apr 24 11:14:54 2024 +0800 * Fix bug for select usage when install. commit 425fade71356c2833d25e30734ae546ec6ce3c4f Author: tianshujie Date: Wed Apr 24 11:14:19 2024 +0800 * Fix bug #48303. commit 723797107b71b927b0cc31f4ab7d2f756c981670 Author: tianshujie Date: Wed Apr 24 11:09:27 2024 +0800 * Fix bug #48303. commit 6740a4c69978855e5af85583820dfb025bccdd40 Author: tianshujie Date: Wed Apr 24 11:06:32 2024 +0800 * Fix bug #48306. commit c42f7ad83ee8accad6ac63230578adda5fd9f808 Author: zhouxin Date: Wed Apr 24 11:02:21 2024 +0800 * Fix bug #48073. commit e38f2f6531951dacfdf6b6301ec27803e1ebba12 Author: liumengyi Date: Wed Apr 24 10:42:42 2024 +0800 * Set search form open. commit 2cb511cf522531f94a5ff2f04c729bd331d5c841 Author: 王怡栋 Date: Wed Apr 24 10:07:43 2024 +0800 * Fix error for sso module. commit f8b093e0ebe3c8ea319d75d887ad25a73f1dac00 Author: xieqiyu Date: Wed Apr 24 10:21:37 2024 +0800 * Fix the bug of duration and BSA default value. commit c3e9c7d7cdd0c9b08a8f14e2b1a3b329da92fe20 Author: liumengyi Date: Wed Apr 24 10:20:25 2024 +0800 * Fix bug #48243. commit c7cf68be635279572418595978be0f10afe64c68 Author: hufangzhou Date: Wed Apr 24 10:17:03 2024 +0800 * Fix bug #48280, #48289. commit b9cdcf5bcd93b44e9d416d2161ba49a746df9952 Author: sunhao Date: Wed Apr 24 10:17:34 2024 +0800 * my: fix cannot update badges in main navbar. commit 3aa9609ce2b4f3158764f4f1a1782c5269e2e32b Author: tianshujie Date: Wed Apr 24 10:16:21 2024 +0800 * Fix bug #48294. commit fb26e627de42398d847f6a8215e4316860b3b3c5 Author: sunhao Date: Wed Apr 24 10:10:56 2024 +0800 Revert "* zin: fix cannot find page method on update." This reverts commit 367a4ae49da2ec701a14e216f555b3428a79ca66. commit 63a70421edc7ee7475a9edd552b8f46ecffdb811 Author: tianshujie Date: Wed Apr 24 09:45:07 2024 +0800 * Fix bug #48271. commit c1a66b708bb3fb57f653169ec7f5ff40632885b1 Author: sunguangming Date: Wed Apr 24 09:40:09 2024 +0800 * Modify upgrade method. commit c68b2170f999a78316c1a373eba5ce0a7830d2f1 Author: 王怡栋 Date: Wed Apr 24 09:18:09 2024 +0800 * Fix for sso login from zdoo. commit 580b4f170fcc8c16d7bbbd0218e7d7c24d5d9187 Author: liumengyi Date: Wed Apr 24 09:30:37 2024 +0800 * Fix bug #48272, update program's consumed, left and progress. commit 1d9791a55e6c77acb00e9a326cc9bb2a5d03cb01 Author: 王怡栋 Date: Tue Apr 23 17:27:07 2024 +0800 * Remove useless code. commit 40f0e10c1f6d2a3472f8df5af14e871d7a5e2b2e Author: caoyanyi 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 --- db/update20.0.beta2.sql | 1 + lib/zin/wg/contactlist/js/v1.js | 16 ++--- lib/zin/wg/contactlist/v1.php | 3 +- lib/zin/wg/formbatchpanel/v1.php | 1 + lib/zin/wg/linkedstorylist/v1.php | 2 +- lib/zin/wg/navbar/v1.php | 12 ++-- module/backup/control.php | 4 +- module/backup/js/index.ui.js | 5 +- module/backup/model.php | 13 ++-- module/backup/zen.php | 3 + module/block/config.php | 2 +- module/block/config/feedback.php | 2 +- module/block/ui/assigntomeblock.html.php | 1 + module/block/ui/recentprojectblock.html.php | 27 +++++-- module/block/zen.php | 23 ++---- module/common/model.php | 2 +- module/execution/js/kanban.ui.js | 1 + module/execution/js/taskkanban.ui.js | 1 + module/file/model.php | 2 +- module/index/js/ajaxiframemodal.ui.js | 2 +- module/kanban/js/view.ui.js | 8 ++- module/misc/js/downloadclient.ui.js | 2 + module/mr/ui/browsebyexecution.html.php | 32 +-------- module/mr/ui/view.html.php | 2 +- module/my/css/managecontacts.ui.css | 9 +-- module/my/js/managecontacts.ui.js | 15 ---- module/my/ui/managecontacts.html.php | 76 +++++++------------- module/pivot/ui/preview.html.php | 2 +- module/pivot/zen.php | 3 +- module/product/control.php | 4 +- module/product/tao.php | 2 +- module/product/ui/browse.html.php | 4 +- module/product/ui/manageline.html.php | 7 +- module/product/zen.php | 5 -- module/productplan/js/browse.ui.js | 2 +- module/project/model.php | 9 +-- module/project/ui/create.html.php | 10 +-- module/project/zen.php | 8 ++- module/repo/js/create.ui.js | 1 + module/screen/control.php | 3 +- module/story/model.php | 1 - module/task/js/batchcreate.ui.js | 6 +- module/tutorial/css/start.ui.css | 5 +- module/tutorial/ui/start.html.php | 2 + www/js/zui3/zen-editor/index.esm.js | 2 +- www/js/zui3/zen-editor/zen-editor.esm.js | 2 +- www/js/zui3/zin.js | 5 +- www/static/images/bi_guide_biz_en.png | Bin 156570 -> 0 bytes www/static/images/bi_guide_biz_zh.png | Bin 153239 -> 0 bytes www/static/images/bi_guide_pms_en.png | Bin 150317 -> 0 bytes www/static/images/bi_guide_pms_zh.png | Bin 138921 -> 0 bytes www/theme/blue/style.css | 4 +- www/theme/default/style.css | 27 ++++++- www/theme/green/style.css | 4 +- www/theme/purple/style.css | 4 +- www/theme/red/style.css | 4 +- 56 files changed, 183 insertions(+), 210 deletions(-) delete mode 100644 module/my/js/managecontacts.ui.js delete mode 100644 www/static/images/bi_guide_biz_en.png delete mode 100644 www/static/images/bi_guide_biz_zh.png delete mode 100644 www/static/images/bi_guide_pms_en.png delete mode 100644 www/static/images/bi_guide_pms_zh.png diff --git a/db/update20.0.beta2.sql b/db/update20.0.beta2.sql index de557b8de5..eae33ea0ac 100644 --- a/db/update20.0.beta2.sql +++ b/db/update20.0.beta2.sql @@ -25,3 +25,4 @@ UPDATE `zt_grouppriv` SET `method` = 'deleteWorkhour' WHERE `module` = 'task' AN ALTER TABLE `zt_demandreview` CHANGE `reviewDate` `reviewDate` datetime NULL; DELETE FROM `zt_lang` WHERE `module` = 'project' AND `section` = 'menuOrder'; +DELETE FROM `zt_config` WHERE `module` = 'bi' AND `key` IN ('update2BI','bizGuide','pmsGuide'); diff --git a/lib/zin/wg/contactlist/js/v1.js b/lib/zin/wg/contactlist/js/v1.js index a114ff9b0a..7f515e5554 100644 --- a/lib/zin/wg/contactlist/js/v1.js +++ b/lib/zin/wg/contactlist/js/v1.js @@ -22,27 +22,27 @@ renderContactList = function() * 选择联系人列表后加载联系人。 * Load contact users after selecting contact list. * - * @param string value + * @param string target * @access public * @return void */ -window.loadContactUsers = function(value) +window.loadContactUsers = function(target) { - const event = this.base; - const $picker = $(event).zui('picker'); + const picker = event.target; + const $picker = $(picker).zui('picker'); if($picker === undefined) { if(config.debug) console.log('[ZIN] Contact picker not found'); return; } - if(!value) return; + const listID = $picker.$.value; + if(!listID) return; - const link = $.createLink('user', 'ajaxGetContactUsers', 'listID=' + value); - const target = this.props.loadTarget === undefined ? '' : this.props.loadTarget; + const link = $.createLink('user', 'ajaxGetContactUsers', 'listID=' + listID); $.getJSON(link, function(users) { - const $target = target ? $("[name^='" + target + "']") : $(event).closest('span').prev(); + const $target = target ? $("[name^='" + target + "']") : $(picker).closest('#contactBox').prev(); const $targetPicker = $target.zui('picker'); if($targetPicker === undefined) { diff --git a/lib/zin/wg/contactlist/v1.php b/lib/zin/wg/contactlist/v1.php index b985e5f800..d3c8e8240a 100644 --- a/lib/zin/wg/contactlist/v1.php +++ b/lib/zin/wg/contactlist/v1.php @@ -63,8 +63,7 @@ class contactList extends wg set::name($this->prop('name')), set::items($items), set::placeholder($this->prop('placeholder')), - set::onChange(jsRaw('loadContactUsers')), - setData('loadTarget', $target) + on::change()->call('loadContactUsers', "{$target}") ), a ( diff --git a/lib/zin/wg/formbatchpanel/v1.php b/lib/zin/wg/formbatchpanel/v1.php index 320bd18bb6..656e28c560 100644 --- a/lib/zin/wg/formbatchpanel/v1.php +++ b/lib/zin/wg/formbatchpanel/v1.php @@ -51,6 +51,7 @@ class formBatchPanel extends formPanel .panel-form-batch > .panel-body {position: relative; padding: 0; margin: 0 -16px} .panel-form-batch .form {gap: 0} .panel-form-batch .form-batch-container {max-height: calc(100vh - 214px); padding: 0 16px 16px; flex: auto; min-height: 0; overflow: auto} + .modal-body .panel-form-batch .form-batch-container {max-height: unset;} .panel-form-batch .form-actions {left: 0; position: static; flex: none; padding: 24px 0; border-top: 1px solid var(--color-border)} CSS; } diff --git a/lib/zin/wg/linkedstorylist/v1.php b/lib/zin/wg/linkedstorylist/v1.php index 8c6f34a46e..71f8732724 100644 --- a/lib/zin/wg/linkedstorylist/v1.php +++ b/lib/zin/wg/linkedstorylist/v1.php @@ -90,7 +90,7 @@ class linkedStoryList extends storyList 'data-url' => str_replace('{id}', "$story->id", $this->unlinkUrl), 'data-params' => 'event', 'data-call' => 'unlinkStory', - 'hint' => $lang->story->unlinkStory + 'hint' => $story->type == 'requirement' ? str_replace($lang->SRCommon, $lang->URCommon, $lang->story->unlinkStory) : $lang->story->unlinkStory ); if(is_array($unlinkBtn)) $btn = array_merge($btn, $unlinkBtn); diff --git a/lib/zin/wg/navbar/v1.php b/lib/zin/wg/navbar/v1.php index 515ebdd153..0074215c47 100644 --- a/lib/zin/wg/navbar/v1.php +++ b/lib/zin/wg/navbar/v1.php @@ -19,14 +19,14 @@ class navbar extends wg $object = $app->dbh->query('SELECT project,type FROM ' . TABLE_EXECUTION . " WHERE `id` = '$executionID'")->fetch(); if(empty($object)) return; - $executionPairs = array(); - $userCondition = !$app->user->admin ? " AND `id` " . helper::dbIN($app->user->view->sprints) : ''; - $orderBy = $object->type == 'stage' ? 'ORDER BY `id` ASC' : 'ORDER BY `id` DESC'; - $executionList = $app->dbh->query("SELECT id,name,parent FROM " . TABLE_EXECUTION . " WHERE `project` = '{$object->project}' AND `deleted` = '0' $userCondition $orderBy")->fetchAll(); + $executionPairs = array(); + $userCondition = !$app->user->admin ? " AND `id` " . helper::dbIN($app->user->view->sprints) : ''; + $orderBy = $object->type == 'stage' ? 'ORDER BY `id` ASC' : 'ORDER BY `id` DESC'; + $executionList = $app->dbh->query("SELECT id,name,parent FROM " . TABLE_EXECUTION . " WHERE `project` = '{$object->project}' AND `deleted` = '0' $userCondition $orderBy")->fetchAll(); + $parentExecutions = array_flip(array_column($executionList, 'parent')); foreach($executionList as $execution) { - if(isset($executionPairs[$execution->parent])) unset($executionPairs[$execution->parent]); - if($execution->id == $executionID) continue; + if($execution->id == $executionID || isset($parentExecutions[$execution->id])) continue; $executionPairs[$execution->id] = $execution->name; } diff --git a/module/backup/control.php b/module/backup/control.php index 2d51eae0ae..ebb4ee9473 100644 --- a/module/backup/control.php +++ b/module/backup/control.php @@ -86,7 +86,7 @@ class backup extends control /** * Backup. * - * param string $reload yes|no + * @param string $reload yes|no * @access public * @return void */ @@ -306,6 +306,7 @@ class backup extends control if($attachFileName) { $log = $this->backup->getBackupDirProgress($attachFileName); + if(empty($log)) return print(''); $message = sprintf($this->lang->backup->progressAttach, zget($log, 'allCount', 0), zget($log, 'count', 0)); } @@ -313,6 +314,7 @@ class backup extends control if($codeFileName) { $log = $this->backup->getBackupDirProgress($codeFileName); + if(empty($log)) return print(''); $message = sprintf($this->lang->backup->progressCode, zget($log, 'allCount', 0), zget($log, 'count', 0)); } diff --git a/module/backup/js/index.ui.js b/module/backup/js/index.ui.js index 838b09e51e..2328cd3281 100644 --- a/module/backup/js/index.ui.js +++ b/module/backup/js/index.ui.js @@ -44,13 +44,13 @@ function backupData() { clearInterval(timeID); $('#message').append(data); - setTimeout(function(){return location.href = $.createLink('backup', 'index');}, 2000); + setTimeout(function(){return loadPage($.createLink('backup', 'index'));}, 2000); }, error: function(request, textstatus, error) { clearInterval(timeID); if(textstatus == 'timeout') $('#message').append("

" + backupTimeout + '

'); - setTimeout(function(){return location.href = $.createLink('backup', 'index');}, 2000); + setTimeout(function(){return loadPage($.createLink('backup', 'index'));}, 2000); } }); @@ -62,6 +62,7 @@ function backupData() { $.get($.createLink('backup', 'ajaxGetProgress'), function(data) { + if(data == '') return; $('#message').html(data); }); }, 1000); diff --git a/module/backup/model.php b/module/backup/model.php index 852d7f89be..f700a4386a 100644 --- a/module/backup/model.php +++ b/module/backup/model.php @@ -193,17 +193,18 @@ class backupModel extends model { $die = "\n"; $tmpFile = $fileName . '.tmp'; + rename($fileName, $tmpFile); - file_put_contents($tmpFile, $die); - $fh = fopen($fileName, 'r'); + file_put_contents($fileName, $die); + $fh = fopen($tmpFile, 'r'); $length = 2 * 1024 * 1024; while(!feof($fh)) { $buff = fread($fh, $length); - file_put_contents($tmpFile, $buff, FILE_APPEND); + file_put_contents($fileName, $buff, FILE_APPEND); } fclose($fh); - rename($tmpFile, $fileName); + unlink($tmpFile); return true; } @@ -331,7 +332,7 @@ class backupModel extends model $log = json_decode(file_get_contents($tmpLogFile), true); return empty($log) ? array() : $log; } - return array(); + return array('allCount' => 0, 'count' => 0); } /** @@ -401,7 +402,7 @@ class backupModel extends model /** * Get disk space. * - * @param int $backupPath + * @param string $backupPath * @access public * @return string */ diff --git a/module/backup/zen.php b/module/backup/zen.php index bf12057cae..3aaca6baaa 100644 --- a/module/backup/zen.php +++ b/module/backup/zen.php @@ -51,6 +51,7 @@ class backupZen extends backup * backupSQL * * @param string $fileName + * @param string $reload * @access protected * @return array */ @@ -83,6 +84,7 @@ class backupZen extends backup * Backup appendix file. * * @param string $fileName + * @param string $reload * @access protected * @return array */ @@ -110,6 +112,7 @@ class backupZen extends backup * Backup code * * @param string $fileName + * @param string $reload * @access protected * @return array */ diff --git a/module/block/config.php b/module/block/config.php index a1f3a108e8..aa4e89f462 100644 --- a/module/block/config.php +++ b/module/block/config.php @@ -296,7 +296,7 @@ $config->block->size['product']['releasestatistic'] = array(1 => 8, 2 => 5); $config->block->size['project']['overview'] = array(1 => 3); $config->block->size['project']['statistic'] = array(2 => 5, 1 => 8); -$config->block->size['project']['recentproject'] = array(2 => 4, 1 => 9); +$config->block->size['project']['recentproject'] = array(2 => 4, 1 => 10); $config->block->size['project']['project'] = array(2 => 6, 1 => 6); $config->block->size['scrumproject']['scrumoverview'] = array(2 => 5, 1 => 8); diff --git a/module/block/config/feedback.php b/module/block/config/feedback.php index dc764424c2..69497b3b71 100644 --- a/module/block/config/feedback.php +++ b/module/block/config/feedback.php @@ -8,7 +8,7 @@ if(in_array($config->edition, array('max', 'biz', 'ipd'))) $config->block->feedback->dtable = new stdclass(); $config->block->feedback->dtable->fieldList = array(); $config->block->feedback->dtable->fieldList['id'] = array('name' => 'id', 'title' => $lang->idAB, 'type' => 'id' , 'sort' => 'number'); - $config->block->feedback->dtable->fieldList['title'] = array('name' => 'title', 'title' => $lang->feedback->title, 'type' => 'title', 'sort' => true, 'flex' => 1, 'link' => array('module' => 'feedback', 'method' => 'adminView', 'params' => 'feedbackID={id}')); + $config->block->feedback->dtable->fieldList['title'] = array('name' => 'title', 'title' => $lang->feedback->title, 'type' => 'title', 'sort' => true, 'flex' => 1, 'link' => array('module' => 'feedback', 'method' => $config->vision == 'lite' ? 'view' : 'adminView', 'params' => 'feedbackID={id}')); $config->block->feedback->dtable->fieldList['product'] = array('name' => 'product', 'title' => $lang->feedback->product, 'type' => 'category', 'sort' => true); $config->block->feedback->dtable->fieldList['pri'] = array('name' => 'pri', 'title' => $lang->feedback->pri, 'type' => 'pri', 'sort' => true); $config->block->feedback->dtable->fieldList['status'] = array('name' => 'status', 'title' => $lang->feedback->status, 'type' => 'status', 'sort' => true, 'statusMap' => $lang->feedback->statusList); diff --git a/module/block/ui/assigntomeblock.html.php b/module/block/ui/assigntomeblock.html.php index 20412dd0aa..a99803e568 100644 --- a/module/block/ui/assigntomeblock.html.php +++ b/module/block/ui/assigntomeblock.html.php @@ -147,6 +147,7 @@ blockPanel div($contents), h::css ( + '.block-assigntome .panel-heading .panel-title {overflow: hidden; text-overflow: clip; white-space: nowrap; width : 40%}', '.block-assigntome .nav > .nav-item > a {padding: 0 16px; border-radius: 4px; height: 28px; color: var(--color-gray-700)}', '.block-assigntome .nav > .nav-item > a.active {font-weight: bold; color: var(--color-gray-900); background: var(--color-primary-50)}' ) diff --git a/module/block/ui/recentprojectblock.html.php b/module/block/ui/recentprojectblock.html.php index 41c25f4999..d6c9ea46cb 100644 --- a/module/block/ui/recentprojectblock.html.php +++ b/module/block/ui/recentprojectblock.html.php @@ -19,14 +19,14 @@ foreach($projects as $projectID => $project) $cards[] = cell ( - setClass('p-2', $longBlock ? 'w-1/3' : 'w-full h-40'), + setClass('p-2', $longBlock ? 'w-1/3' : 'w-full h-50'), div ( - setClass('border rounded-sm h-full px-4 hover:shadow hover:border-primary cursor-pointer open-url group', $longBlock ? 'py-4' : 'py-2'), + setClass('border rounded-sm h-full px-4 hover:shadow hover:border-primary cursor-pointer open-url group', $longBlock ? 'py-3' : 'py-2'), setData('url', $viewLink), div ( - setClass('mb-4'), + setClass('mb-2'), a ( setClass('font-bold text-fore text-md group-hover:text-primary'), @@ -55,9 +55,9 @@ foreach($projects as $projectID => $project) ), $project->end == LONG_TIME ? $lang->program->longTime : $project->end ), - ($project->multiple && $execution) ? array + div ( - div + $project->multiple && $execution ? div ( span ( @@ -74,8 +74,21 @@ foreach($projects as $projectID => $project) setClass('label warning-pale circle ml-2'), $lang->execution->statusList[$execution->status] ) - ), - ) : null + ) : div(setClass('h-5')) + ), + div + ( + setClass('flex items-center'), + span(setClass('num mr-1'), $project->progress . '%'), + progressBar + ( + setClass('progress flex-auto'), + set::height(8), + set::percent($project->progress), + set::color('var(--color-primary-300)'), + set::background('rgba(0,0,0,0.02)') + ) + ) ) ) ); diff --git a/module/block/zen.php b/module/block/zen.php index 31d51f36cc..5de5b44482 100644 --- a/module/block/zen.php +++ b/module/block/zen.php @@ -435,7 +435,7 @@ class blockZen extends block /* 获取昨日解决的Bug数。 */ $fixBug = 0; $fixBugGroup = $this->metric->getResultByCode('count_of_daily_fixed_bug_in_user', array('user' => $this->app->user->account, 'year' => date('Y', $yesterday), 'month' => date('m', $yesterday), 'day' => date('d', $yesterday))); - if(!empty($fixBug)) + if(!empty($fixBugGroup)) { $fixBugGroup = reset($fixBugGroup); $fixBug = zget($fixBugGroup, 'value', 0); @@ -469,27 +469,12 @@ class blockZen extends block $assignedGroup = reset($assignedGroup); $count = zget($assignedGroup, 'value', 0); } - $assignToMe[$field] = array('number' => $count, 'href' => helper::createLink('my', 'work', "mode=$field&type=$type")); + $assignToMe[$field] = array('number' => $count, 'href' => common::hasPriv('my', 'work') ? helper::createLink('my', 'work', "mode=$field&type=$type") : ''); } /* 生成待我审批的数据。 */ - $reviewByMe['reviewByMe']['number'] = 0; - $reviewByMe['reviewByMe']['href'] = helper::createLink('my', 'audit'); - foreach($this->lang->block->welcome->reviewList as $field => $label) - { - /* 根据不同的模块生成不同的度量项查询码。 */ - $code = "reviewing_{$field}"; - - /* 查询当前指派给当前用户的不同数据。 */ - $reviewingGroup = $this->metric->getResultByCode("count_of_{$code}_in_user", array('user' => $this->app->user->account)); - $count = 0; - if(!empty($reviewingGroup)) - { - $reviewingGroup = reset($reviewingGroup); - $count = zget($reviewingGroup, 'value', 0); - } - $reviewByMe['reviewByMe']['number'] += $count; - } + $reviewList = $this->loadModel('my')->getReviewingList('all'); + $reviewByMe['reviewByMe'] = array('number' => count($reviewList), 'href' => common::hasPriv('my', 'audit') ? helper::createLink('my', 'audit') : ''); $this->view->todaySummary = date(DT_DATE3, time()) . ' ' . $this->lang->datepicker->dayNames[date('w', time())]; // 当前年月日 星期几。 $this->view->welcomeType = $welcomeType; diff --git a/module/common/model.php b/module/common/model.php index 536b42e315..a737375d8a 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -947,7 +947,7 @@ class commonModel extends model } else { - if(strpos($sql, ' ORDER BY') !== false) $queryCondition = substr($sql, 0, strpos($sql, ' ORDER BY ')); + $queryCondition = strpos($sql, ' ORDER BY') !== false ? substr($sql, 0, strpos($sql, ' ORDER BY ')) : $sql; } $queryCondition = trim($queryCondition); if(empty($queryCondition)) $queryCondition = "1=1"; diff --git a/module/execution/js/kanban.ui.js b/module/execution/js/kanban.ui.js index b9a8de867b..c14e67bc88 100644 --- a/module/execution/js/kanban.ui.js +++ b/module/execution/js/kanban.ui.js @@ -193,6 +193,7 @@ window.getItem = function(info) info.item.title = info.item.title.replaceAll(searchValue, "" + searchValue + ""); info.item.title = {html: info.item.title}; } + info.item.titleAttrs = {'class': 'card-title clip'}; } window.renderAvatar = function(item) diff --git a/module/execution/js/taskkanban.ui.js b/module/execution/js/taskkanban.ui.js index 3f64df38e1..57ff3c958b 100644 --- a/module/execution/js/taskkanban.ui.js +++ b/module/execution/js/taskkanban.ui.js @@ -238,6 +238,7 @@ window.getItem = function(info) info.item.content = {html: content}; if(info.item.color && info.item.color != '#fff') info.item.className = 'color-' + info.item.color.replace('#', ''); + info.item.titleAttrs = {'class': 'card-title clip'}; } window.getItemActions = function(item) diff --git a/module/file/model.php b/module/file/model.php index c3fadb20fc..c1843d3a40 100755 --- a/module/file/model.php +++ b/module/file/model.php @@ -1109,7 +1109,7 @@ class fileModel extends model $objectType = zget($this->config->file->objectType, $file->objectType); - $html .= "
  • " . html::a($downloadLink, $fileTitle . " ({$fileSize})", '_blank', "id='fileTitle$file->id' onclick=\"return downloadFile($file->id, '$file->extension', $imageWidth, '$file->title')\""); + $html .= "
  • " . html::a($downloadLink, $fileTitle . " ({$fileSize})", '_blank', "id='fileTitle$file->id'"); if(strpos('view,edit', $method) !== false) { if(common::hasPriv($objectType, 'view', $object)) $html = $this->buildFileActions($html, $downloadLink, $imageWidth, $showEdit, $showDelete, $file, $object); diff --git a/module/index/js/ajaxiframemodal.ui.js b/module/index/js/ajaxiframemodal.ui.js index 9daae8413e..cb84dd3e36 100644 --- a/module/index/js/ajaxiframemodal.ui.js +++ b/module/index/js/ajaxiframemodal.ui.js @@ -32,7 +32,7 @@ $(function() function resizeModal() { - const $modal = $('body>.modal-dialog>.modal-content>.modal-body,.modal-body').first(); + const $modal = $('body>.modal-dialog>.modal-content,.modal-body').first(); const height = $modal.outerHeight(); $modal.closest('body').height(height); } diff --git a/module/kanban/js/view.ui.js b/module/kanban/js/view.ui.js index 59c1ea6ec1..eec4ed1cdd 100644 --- a/module/kanban/js/view.ui.js +++ b/module/kanban/js/view.ui.js @@ -182,6 +182,8 @@ window.getItem = function(info) renderGeneralItem(info); } if(info.item.color && info.item.color != '#fff') info.item.className = 'color-' + info.item.color.replace('#', ''); + + info.item.titleAttrs = {'class': 'card-title clip'}; } window.renderGeneralItem = function(info) @@ -283,11 +285,11 @@ window.renderProductplanItem = function(info) if(info.item.deleted == '0') { - statusBox = '' + executionLang.statusList[info.item.objectStatus] + ''; + statusBox = '' + productplanLang.statusList[info.item.objectStatus] + ''; } else { - statusBox = '' + executionLang.deleted + ''; + statusBox = '' + productplanLang.deleted + ''; } const today = zui.formatDate(new Date(), 'yyyy-MM-dd'); @@ -295,7 +297,7 @@ window.renderProductplanItem = function(info) const date = '' + info.item.begin.slice(5) + ' ' + productplanLang.to + ' ' + info.item.end.slice(5) + ''; info.item.content = {html: info.item.desc} - info.item.contentClass = 'text-gray'; + info.item.contentClass = 'text-gray clip mr-2'; info.item.footer = {html: statusBox + date} } window.renderTicketItem = function(info) diff --git a/module/misc/js/downloadclient.ui.js b/module/misc/js/downloadclient.ui.js index c662020d16..8ab8f1b0af 100644 --- a/module/misc/js/downloadclient.ui.js +++ b/module/misc/js/downloadclient.ui.js @@ -66,3 +66,5 @@ window.showPackageSize = () => } }); }; + +if(!$('#downloadClient input#os:not(.hidden)').length && !$('#downloadClient button.primary').length) getClient(); diff --git a/module/mr/ui/browsebyexecution.html.php b/module/mr/ui/browsebyexecution.html.php index fa4a9b080b..359fbee84f 100644 --- a/module/mr/ui/browsebyexecution.html.php +++ b/module/mr/ui/browsebyexecution.html.php @@ -10,10 +10,7 @@ declare(strict_types=1); */ namespace zin; -dropmenu -( - set::url(createLink('execution', 'ajaxGetDropMenu', "objectID=$objectID&module={$app->rawModule}&method={$app->rawMethod}")) -); +dropmenu(set::url(createLink('execution', 'ajaxGetDropMenu', "objectID=$objectID&module={$app->rawModule}&method={$app->rawMethod}"))); foreach($MRList as $index => $MR) { @@ -78,36 +75,11 @@ if(empty($repoID)) } $MRs = initTableData($MRList, $config->mr->dtable->fieldList, $this->mr); -$repoData = array(array( - 'text' => $lang->mr->statusList['all'], - 'data-app' => $app->tab, - 'url' => createLink('mr', 'browse', "repoID=0&mode={$mode}¶m={$param}&objectID={$objectID}"), - 'active' => !$repoID -)); -foreach($repoList as $repo) -{ - if(!in_array($repo->SCM, $this->config->repo->gitServiceTypeList)) continue; - - $repoData[] = array( - 'text' => $repo->name, - 'data-app' => $app->tab, - 'url' => createLink('mr', 'browse', "repoID={$repo->id}&mode={$mode}¶m={$param}&objectID={$objectID}"), - 'active' => $repo->id == $repoID - ); -} featureBar ( set::current($mode != 'status' ? $mode : $param), - set::linkParams("repoID={$repoID}&mode=status¶m={key}&objectID={$objectID}"), - count($repoPairs) > 1 ? to::leading( - dropdown - ( - btn(setClass('ghost'), zget($repoPairs, $repoID, $lang->mr->statusList['all'])), - set::items($repoData), - set::placement('bottom-end') - ) - ) : null + set::linkParams("repoID={$repoID}&mode=status¶m={key}&objectID={$objectID}") ); toolBar diff --git a/module/mr/ui/view.html.php b/module/mr/ui/view.html.php index 69e2148f53..aaad8e87a0 100644 --- a/module/mr/ui/view.html.php +++ b/module/mr/ui/view.html.php @@ -294,7 +294,7 @@ panel div ( - setClass('flex justify-center items-center pt-6'), + setClass('detail-actions center sticky mt-4 bottom-4 z-10'), floatToolbar ( set::object($MR), diff --git a/module/my/css/managecontacts.ui.css b/module/my/css/managecontacts.ui.css index 0b6455e1bf..61e143f619 100644 --- a/module/my/css/managecontacts.ui.css +++ b/module/my/css/managecontacts.ui.css @@ -1,9 +1,6 @@ -#mainContent .tab-pane li {height: 2rem; line-height: 2rem; cursor: pointer;} -#mainContent .tab-pane li.active {background-color: var(--color-gray-100);} -#mainContent .tab-pane li {color: rgba(var(--color-black-rgb),var(--tw-text-opacity));} -#mainContent .tab-pane li.active {font-weight: 600; color: rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));} -#mainContent .tab-pane li:hover {color: rgba(var(--color-primary-500-rgb),var(--tw-text-opacity));} -#manageContacts .tabs > .nav-tabs {margin-top: 1rem;} +#contactTab .listitem {color: inherit} +#contactTab .listitem.selected {color: var(--color-primary-500); font-weight: bold;} + #contactPanel .form-row .form-group {padding-left: 70px;} #contactPanel .form-row .form-group .form-label {padding-left: 0; justify-content: start; width: 80px;} #contactPanel .form-actions {margin-top: 0;} diff --git a/module/my/js/managecontacts.ui.js b/module/my/js/managecontacts.ui.js deleted file mode 100644 index b33dfa63d9..0000000000 --- a/module/my/js/managecontacts.ui.js +++ /dev/null @@ -1,15 +0,0 @@ -function createContact() -{ - $('#contactTab').find('.contact').removeClass('active'); - const url = $.createLink('my', 'manageContacts'); - loadPage(url, '#contactPanel'); -} - -function getContact(event) -{ - $('#contactTab').find('.contact').removeClass('active'); - const $li = $(event.target).addClass('active'); - const listID = $li.data('id'); - const url = $.createLink('my', 'manageContacts', 'listID=' + listID); - loadPage(url, '#contactPanel'); -} diff --git a/module/my/ui/managecontacts.html.php b/module/my/ui/managecontacts.html.php index cf35257ec9..84b7c22b65 100644 --- a/module/my/ui/managecontacts.html.php +++ b/module/my/ui/managecontacts.html.php @@ -12,27 +12,20 @@ namespace zin; $listID = isset($list->id) ? $list->id : 0; -$myContactList = array(); -$publicContactList = array(); +$myContactList = array(); +$publicContactList = array(); +$isActivePublicList = false; foreach($lists as $contactList) { + $selected = $listID == $contactList->id; if($contactList->account == $app->user->account) { - $myContactList[] = li - ( - setClass('contact ellipsis pl-2 ' . ($listID == $contactList->id ? 'active' : '')), - set('data-id', $contactList->id), - $contactList->listName - ); + $myContactList[] = array('text' => $contactList->listName, 'url' => createLink('my', 'manageContacts', "listID=$contactList->id"), 'selected' => $selected); } else if($contactList->public) { - $publicContactList[] = li - ( - setClass('contact ellipsis pl-2'), - set('data-id', $contactList->id), - $contactList->listName - ); + $publicContactList[] = array('text' => $contactList->listName, 'url' => createLink('my', 'manageContacts', "listID=$contactList->id"), 'selected' => $selected); + if($selected) $isActivePublicList = true; } } @@ -42,63 +35,49 @@ if(!empty($list->userList)) foreach(explode(',', $list->userList) as $account) $userList[] = zget($users, $account); } -panel +div ( - set::shadow(false), - setClass('panel-form px-4 mx-auto size-lg'), - on::click('#createContact', 'createContact'), - on::click('.contact', 'getContact'), + setClass('canvas shadow ring rounded mx-auto'), + style::maxWidth(1200), div ( setID('manageContacts'), - setClass('w-full flex'), + setClass('row'), cell ( - set::width('180px'), - setClass('border-r overflow-hidden'), - div + setClass('col flex-none p-4 gap-3 w-48 items-stretch'), + div(setClass('text-gray'), $lang->my->contactList), + btn ( - setClass('border-b py-3 pr-4'), - div(span(setClass('text-gray'), $lang->my->contactList)), - div - ( - setClass('pt-3'), - a - ( - setID('createContact'), - setClass('btn primary-pale bd-primary w-full'), - icon('plus'), - $lang->my->createContacts - ) - ) + set::type('primary-pale'), + set::icon('plus'), + set::url('my', 'manageContacts'), + setData('load', '#contactPanel'), + setClass('w-full'), + $lang->my->createContacts ), tabs ( setID('contactTab'), - setClass('pr-4'), tabPane ( - set::key('my'), set::title($lang->my->myContact), - set::active(true), - ul - ( - setClass('pl-0'), - $myContactList - ) + set::active(!$isActivePublicList), + simpleList(set::items($myContactList)), ), tabPane ( - set::key('public'), set::title($lang->my->publicContact), - ul($publicContactList) + set::active($isActivePublicList), + simpleList(set::items($publicContactList)), ) ) ), + divider(), cell ( setID('contactPanel'), - setClass('flex-1 px-8'), + setClass('flex-1 px-8 pb-8'), div ( set('class', 'panel-title text-lg flex w-full py-6'), @@ -120,6 +99,7 @@ panel ($mode == 'create' || $mode == 'edit') ? form ( set::actions(array()), + $listID ? null : on::init()->removeClass('#contactTab .selected', 'selected'), formRow ( formGroup @@ -196,5 +176,3 @@ panel ) ) ); - -render(); diff --git a/module/pivot/ui/preview.html.php b/module/pivot/ui/preview.html.php index ff3b5dd6fb..0ff819927c 100644 --- a/module/pivot/ui/preview.html.php +++ b/module/pivot/ui/preview.html.php @@ -79,7 +79,7 @@ sidebar $this->config->edition == 'open' ? div ( set::width(240), - setClass('bg-canvas px-4 py-2 module-menu shadow'), + setClass('bg-canvas px-4 py-2 module-menu'), html(empty($config->isINT) ? $lang->bizVersion : $lang->bizVersionINT) ) : null ) diff --git a/module/pivot/zen.php b/module/pivot/zen.php index 29f4ee4ee4..50f45a6930 100644 --- a/module/pivot/zen.php +++ b/module/pivot/zen.php @@ -67,10 +67,9 @@ class pivotZen extends pivot if($this->config->edition == 'open' && $group->grade == 1) continue; $pivots = $this->pivot->getAllPivotByGroupID($group->id); - if(empty($group->collector) && empty($pivots)) continue; - $menus[] = (object)array('id' => $group->id, 'parent' => 0, 'name' => $group->name); + if($group->grade > 1) $menus[] = (object)array('id' => $group->id, 'parent' => 0, 'name' => $group->name); if($pivots) $pivots = $this->pivot->processPivot($pivots, false); diff --git a/module/product/control.php b/module/product/control.php index e4003fe50d..b57b2bd9b2 100755 --- a/module/product/control.php +++ b/module/product/control.php @@ -663,7 +663,7 @@ class product extends control } $this->view->title = $this->lang->product->manageLine; - $this->view->programs = $this->loadModel('program')->getTopPairs('withDeleted'); + $this->view->programs = array(0 => $this->lang->null) + $this->loadModel('program')->getTopPairs('withDeleted'); $this->view->lines = $this->product->getLines(); $this->view->fields = $this->config->product->form->manageLine; $this->display(); @@ -1002,7 +1002,7 @@ class product extends control public function ajaxGetLine(int $programID, int $productID = 0) { $lines = array(); - if(empty($productID) or $programID) $lines = $this->product->getLinePairs($programID); + if(empty($productID) || $programID) $lines = $this->product->getLinePairs($programID, true); $items = array(); foreach($lines as $lineID => $lineName) $items[] = array('text' => $lineName, 'value' => $lineID); diff --git a/module/product/tao.php b/module/product/tao.php index 31593f36f0..60014545ad 100644 --- a/module/product/tao.php +++ b/module/product/tao.php @@ -325,7 +325,7 @@ class productTao extends productModel */ protected function createLine(int $programID, string $lineName): int|false { - if($programID <= 0) return false; + if($programID < 0) return false; if(empty($lineName)) return false; $line = new stdClass(); diff --git a/module/product/ui/browse.html.php b/module/product/ui/browse.html.php index 071b4c02e8..ed86e6fd99 100644 --- a/module/product/ui/browse.html.php +++ b/module/product/ui/browse.html.php @@ -172,8 +172,8 @@ $fnBuildLinkStoryButton = function() use($lang, $app, $product, $projectHasProdu ); } - if($canLinkStory && !$canlinkPlanStory) return item(set($linkItem + array('class' => 'btn primary link-story-btn', 'icon' => 'plus'))); - if($canlinkPlanStory && !$canLinkStory) return item(set($linkPlanItem + array('class' => 'btn primary', 'icon' => 'plus'))); + if($canLinkStory && !$canlinkPlanStory) return item(set($linkItem + array('class' => 'btn primary link-story-btn', 'icon' => 'link'))); + if($canlinkPlanStory && !$canLinkStory) return item(set($linkPlanItem + array('class' => 'btn primary', 'icon' => 'link'))); }; /* DataTable columns. */ diff --git a/module/product/ui/manageline.html.php b/module/product/ui/manageline.html.php index 6b9636ffe5..57c9dd8991 100644 --- a/module/product/ui/manageline.html.php +++ b/module/product/ui/manageline.html.php @@ -74,7 +74,7 @@ foreach($lines as $line) ( set::width('1/2'), set::className('ml-4'), - set::control(array('control' => 'picker', 'id' => "programs_id{$line->id}")), + set::control(array('control' => 'picker', 'id' => "programs_id{$line->id}", 'required' => true)), set::name("programs[id$line->id]"), set::items($programs), set::value($line->root), @@ -103,9 +103,10 @@ for($i = 0; $i <= 5; $i ++) ( set::width('1/2'), set::className('ml-4'), - set::control(array('control' => 'picker', 'id' => "programs_{$i}")), + set::control(array('control' => 'picker', 'id' => "programs_{$i}", 'required'=> true)), set::name("programs[$i]"), - set::items($programs) + set::items($programs), + set::value('0') ) : null ), cell diff --git a/module/product/zen.php b/module/product/zen.php index 7b3f8dd45e..67feb26433 100644 --- a/module/product/zen.php +++ b/module/product/zen.php @@ -639,11 +639,6 @@ class productZen extends product foreach($data->modules as $id => $name) { if(empty($name)) continue; - if(in_array($this->config->systemMode, array('ALM', 'PLM')) and empty($data->programs[$id])) - { - dao::$errors["programs[{$id}]"] = $this->lang->product->programEmpty; - return false; - } $programID = $data->programs[$id]; if(!isset($lines[$programID])) $lines[$programID] = array(); diff --git a/module/productplan/js/browse.ui.js b/module/productplan/js/browse.ui.js index 39df679684..81b7aa4327 100644 --- a/module/productplan/js/browse.ui.js +++ b/module/productplan/js/browse.ui.js @@ -235,7 +235,7 @@ window.getCol = function(col) window.getItem = function(info) { - if(info.item.delay) + if(info.item.delay && ['wait', 'doing'].includes(info.item.status)) { info.item.suffix = productplanLang.expired; info.item.suffixClass = 'label danger rounded-xl' + (info.item.status == 'doing' ? ' mr-8' : ''); diff --git a/module/project/model.php b/module/project/model.php index b1be0138df..71810dd36a 100755 --- a/module/project/model.php +++ b/module/project/model.php @@ -222,8 +222,8 @@ class projectModel extends model $this->app->loadClass('pager', true); foreach($projects as $projectID => $project) { - $orderBy = $project->model == 'waterfall' ? 'id_asc' : 'id_desc'; - $pager = $project->model == 'waterfall' ? null : new pager(0, 1, 1); + $orderBy = in_array($project->model, array('waterfall', 'ipd')) ? 'id_asc' : 'id_desc'; + $pager = in_array($project->model, array('waterfall', 'ipd')) ? null : new pager(0, 1, 1); $project->executions = $this->loadModel('execution')->getStatData($projectID, 'undone', 0, 0, false, '', $orderBy, $pager); $project->teamCount = isset($teamCount[$projectID]) ? $teamCount[$projectID] : 0; $project->estimate = isset($estimates[$projectID]) ? round($estimates[$projectID]->estimate, 2) : 0; @@ -925,10 +925,11 @@ class projectModel extends model * @param string $model all|scrum|waterfall|kanban * @param string $param noclosed * @param int $projectID + * @param bool $pairs * @access public * @return array array(projectID => projectName, ...) */ - public function getPairsByModel(string $model = 'all', string $param = '', int $projectID = 0): array + public function getPairsByModel(string $model = 'all', string $param = '', int $projectID = 0, bool $pairs = true): array { if(commonModel::isTutorialMode()) return $this->loadModel('tutorial')->getProjectPairs(); @@ -972,7 +973,7 @@ class projectModel extends model $projectPairs = array(); foreach($allProjects as $programID => $projects) { - foreach($projects as $project) $projectPairs[$project->id] = $project->name; + foreach($projects as $project) $projectPairs[$project->id] = $pairs ? $project->name : $project; } return $projectPairs; } diff --git a/module/project/ui/create.html.php b/module/project/ui/create.html.php index a4d2006456..94558f0b80 100644 --- a/module/project/ui/create.html.php +++ b/module/project/ui/create.html.php @@ -75,7 +75,7 @@ formGridPanel btn ( set::icon('copy'), - setClass('primary-ghost size-md'), + setClass('primary-ghost size-md copy-project-btn'), toggle::modal(array('target' => '#copyProjectModal', 'destoryOnHide' => true, 'size' => 'sm')), $lang->project->copy ), @@ -122,17 +122,17 @@ JS $copyProjectsBox = array(); if(!empty($copyProjects)) { - foreach($copyProjects as $id => $name) + foreach($copyProjects as $id => $project) { $copyProjectsBox[] = btn ( setClass('project-block justify-start'), setClass($copyProjectID == $id ? 'primary-outline' : ''), set('data-id', $id), - set('data-pinyin', zget($copyPinyinList, $name, '')), - icon(setClass('text-gray'), !empty($model) ? ($model == 'scrum' ? 'sprint' : $model) : $lang->icons['project']), + set('data-pinyin', zget($copyPinyinList, $project->name, '')), + icon(setClass('text-gray'), !empty($project->model) ? ($project->model == 'scrum' ? 'sprint' : $project->model) : $lang->icons['project']), on::click($toggleActiveProject), - span($name, set::title($name), setClass('text-left')) + span($project->name, set::title($project->name), setClass('text-left')) ); } } diff --git a/module/project/zen.php b/module/project/zen.php index 212294364d..10c2f7d205 100755 --- a/module/project/zen.php +++ b/module/project/zen.php @@ -316,6 +316,10 @@ class projectZen extends project } } + /* Get copy projects. */ + $copyProjects = $this->project->getPairsByModel($model, '', 0, false); + $copyProjectPairs = array_combine(array_keys($copyProjects), array_column($copyProjects, 'name')); + $this->view->title = $this->lang->project->create; $this->view->gobackLink = (isset($output['from']) && $output['from'] == 'global') ? $this->createLink('project', 'browse') : ''; $this->view->model = $model; @@ -326,8 +330,8 @@ class projectZen extends project $this->view->branchID = isset($output['branchID']) ? $output['branchID'] : 0; $this->view->allProducts = $allProducts; $this->view->multiBranchProducts = $this->product->getMultiBranchPairs((int)$topProgramID); - $this->view->copyProjects = $this->project->getPairsByModel($model); - $this->view->copyPinyinList = common::convert2Pinyin($this->view->copyProjects); + $this->view->copyProjects = $copyProjects; + $this->view->copyPinyinList = common::convert2Pinyin($copyProjectPairs); $this->view->copyProjectID = $copyProjectID; $this->view->parentProgram = $parentProgram; $this->view->programList = $this->program->getParentPairs(); diff --git a/module/repo/js/create.ui.js b/module/repo/js/create.ui.js index 0b8564e26c..98e991c358 100644 --- a/module/repo/js/create.ui.js +++ b/module/repo/js/create.ui.js @@ -128,6 +128,7 @@ function onScmChange() const $hostPicker = $('#serviceHost').zui('picker'); $hostPicker.render({items: data}); $hostPicker.$.clear(); + onHostChange(); }); } } diff --git a/module/screen/control.php b/module/screen/control.php index 372a4a3768..9279a3425a 100644 --- a/module/screen/control.php +++ b/module/screen/control.php @@ -26,7 +26,8 @@ class screen extends control */ public function browse(int $dimensionID = 0) { - $this->checkShowGuide(); + //$this->checkShowGuide(); + $this->view->showGuide = false; $dimensionID = $this->loadModel('dimension')->getDimension($dimensionID); diff --git a/module/story/model.php b/module/story/model.php index 36c9e20c38..4e3d81715b 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -3814,7 +3814,6 @@ class storyModel extends model $storyLang->legendLinkStories = str_replace($SRCommon, $URCommon, $storyLang->legendLinkStories); $storyLang->legendChildStories = str_replace($SRCommon, $URCommon, $storyLang->legendChildStories); $storyLang->legendSpec = str_replace($SRCommon, $URCommon, $storyLang->legendSpec); - $storyLang->unlinkStory = str_replace($SRCommon, $URCommon, $storyLang->unlinkStory); $storyLang->notice->closed = str_replace($SRCommon, $URCommon, $storyLang->notice->closed); $storyLang->notice->reviewerNotEmpty = str_replace($SRCommon, $URCommon, $storyLang->notice->reviewerNotEmpty); diff --git a/module/task/js/batchcreate.ui.js b/module/task/js/batchcreate.ui.js index d8f8c94a7c..06358a2505 100644 --- a/module/task/js/batchcreate.ui.js +++ b/module/task/js/batchcreate.ui.js @@ -54,7 +54,9 @@ function toggleZeroTaskStory() const $storyTd = $(this); $.getJSON(getStoryLink, function(stories) { - $storyTd.find('[name^=story]').zui('picker').render({items: stories}); + const $storyPicker = $storyTd.find('[name^=story]').zui('picker'); + $storyPicker.render({items: stories}); + $storyPicker.$.setValue(0); }); }); } @@ -87,7 +89,7 @@ function setStoryRelated(event) { const storyInfo = data['storyInfo']; - $module.zui('picker').$.setValue(parseInt(storyInfo.moduleID)); + $module.zui('picker').$.setValue(parseInt(storyInfo.moduleID), true); $storyEstimate.val(storyInfo.estimate); $storyPri.val(storyInfo.pri); $storyDesc.val(storyInfo.spec); diff --git a/module/tutorial/css/start.ui.css b/module/tutorial/css/start.ui.css index 31358686d8..c46a8d03a3 100644 --- a/module/tutorial/css/start.ui.css +++ b/module/tutorial/css/start.ui.css @@ -1,4 +1,5 @@ -#start {padding: 40px; text-align: center; color: #fff;} +#startModal {color: #fff;} +#start {padding: 40px; text-align: center;} .start-icon {position: relative; width: 140px; height: 140px; margin: 0 auto; line-height: 140px;} .start-icon .icon1{font-size: 140px; color: rgba(0,0,0,.1); text-shadow: 0 1px 7px rgb(0,0,0,.1); animation: -spin 15s linear infinite} .start-icon .icon2{font-size: 56px; position: absolute; top: 35px; left: 42px; color: #EBF2F9; z-index: 10; width: 70px; height: 70px; text-align: center; line-height: 70px; text-shadow: 0 1px 3px rgb(0,0,0,.15);} @@ -7,4 +8,4 @@ h1{font-size: 24px;} .btn-start-now{min-width: 120px; height: 42px;} .btn-lg{padding: 11px 16px; font-size: 14px; line-height: 18px; border-radius: 4px;} .btn-info{color: #2e7fff; background-color: #e6f0ff; border-color: transparent;} -.tutorial-start .modal-dialog .modal-content .modal-body {padding: 0; margin-top: 0;} +#startModal .modal-body {padding: 0; margin-top: 0;} diff --git a/module/tutorial/ui/start.html.php b/module/tutorial/ui/start.html.php index 1b000ab67b..8ca1aca59e 100644 --- a/module/tutorial/ui/start.html.php +++ b/module/tutorial/ui/start.html.php @@ -10,6 +10,8 @@ declare(strict_types=1); */ namespace zin; +setID('startModal'); + div ( setID('start'), diff --git a/www/js/zui3/zen-editor/index.esm.js b/www/js/zui3/zen-editor/index.esm.js index 3761589056..7f90d98498 100644 --- a/www/js/zui3/zen-editor/index.esm.js +++ b/www/js/zui3/zen-editor/index.esm.js @@ -1 +1 @@ -export{M as MonacoEditor,Z as ZenEditor}from"./p-38bd6d84.js";import"./p-1f29e0e0.js"; \ No newline at end of file +export{M as MonacoEditor,Z as ZenEditor}from"./p-898ed1c1.js";import"./p-b9d115dd.js"; \ No newline at end of file diff --git a/www/js/zui3/zen-editor/zen-editor.esm.js b/www/js/zui3/zen-editor/zen-editor.esm.js index 0862762793..293f2586cb 100644 --- a/www/js/zui3/zen-editor/zen-editor.esm.js +++ b/www/js/zui3/zen-editor/zen-editor.esm.js @@ -1 +1 @@ -import{p as e,b as o}from"./p-1f29e0e0.js";export{s as setNonce}from"./p-1f29e0e0.js";import"./p-49a055b9.js";(()=>{const o=import.meta.url,r={};return""!==o&&(r.resourcesUrl=new URL(".",o).href),e(r)})().then((e=>o([["p-a72657f3",[[65,"zen-editor",{name:[1],uploadUrl:[1,"upload-url"],placeholder:[1],fullscreenable:[4],resizable:[4],exposeEditor:[4,"expose-editor"],size:[1],hideMenubar:[4,"hide-menubar"],menubarMode:[1,"menubar-mode"],bubbleMenu:[4,"bubble-menu"],locale:[1],css:[1],collaborative:[4],hocuspocus:[1],docName:[1,"doc-name"],username:[1],userColor:[1,"user-color"],value:[1025],editor:[32],isFullscreen:[32],rendered:[32],setHTML:[64],getHTML:[64],getText:[64],focusEditor:[64],blurEditor:[64]},null,{css:["onCSSChange"]}],[1,"zen-editor-core",{name:[1],uploadUrl:[1,"upload-url"],placeholder:[1],initialContent:[1,"initial-content"],resizable:[4],exposeEditor:[4,"expose-editor"],size:[1],hideMenubar:[4,"hide-menubar"],menubarMode:[1,"menubar-mode"],extraMenubarItems:[1,"extra-menubar-items"],bubbleMenu:[4,"bubble-menu"],locale:[1],styles:[16],collaborative:[4],hocuspocus:[1],docName:[1,"doc-name"],username:[1],userColor:[1,"user-color"],updateInputValue:[16],fullscreenable:[4],toggleFullscreen:[16],isFullscreen:[4,"is-fullscreen"],value:[1],editor:[32],forceUpdateCounter:[32],isMonaco:[32]},null,{locale:["onLocaleChanage"]}],[2,"zen-editor-bubble-menu",{menuProps:[16],editor:[16],disabled:[4],element:[32]}],[1,"zen-editor-menubar",{editor:[16],menubarMode:[2,"menubar-mode"],extraMenubarItems:[1,"extra-menubar-items"],forceUpdateCounter:[2,"force-update-counter"],states:[8],toggleMonaco:[16],toggleFullscreen:[16],styles:[16]}],[0,"monaco-editor",{options:[8],initialValue:[1,"initial-value"],tiptapEditor:[16],updateInputValue:[16],setFocus:[64],getValue:[64]},null,{options:["onOptionsChange"]}],[1,"zen-editor-content",{editor:[16],styles:[16]},[[2,"click","handleClick"]]],[0,"zen-editor-menu-item",{itemProps:[8,"item-props"],menubarMode:[2,"menubar-mode"],styles:[16]}]]],["p-5330989c",[[0,"zen-editor-floating-menu",{menuProps:[16],editor:[16],element:[32]}]]],["p-1e3048b8",[[0,"zen-editor-footer",{editor:[16],forceUpdateCounter:[2,"force-update-counter"],toggleFullscreen:[16],showCharCount:[4,"show-char-count"]}]]]],e))); \ No newline at end of file +import{p as e,b as o}from"./p-b9d115dd.js";export{s as setNonce}from"./p-b9d115dd.js";import{g as r}from"./p-90d6b5f8.js";(()=>{const o=import.meta.url,r={};return""!==o&&(r.resourcesUrl=new URL(".",o).href),e(r)})().then((async e=>(await r(),o([["p-5306bec1",[[65,"zen-editor",{name:[1],readonly:[1028],uploadUrl:[1,"upload-url"],placeholder:[1],fullscreenable:[4],resizable:[4],exposeEditor:[4,"expose-editor"],size:[1],hideUI:[4,"hide-ui"],hideMenubar:[4,"hide-menubar"],menubarMode:[1,"menubar-mode"],bubbleMenu:[4,"bubble-menu"],preferHardBreak:[4,"prefer-hard-break"],locale:[1],css:[1],collaborative:[4],hocuspocus:[1],docName:[1,"doc-name"],username:[1],userColor:[1,"user-color"],value:[1025],editor:[32],isFullscreen:[32],rendered:[32],setHTML:[64],insertHTML:[64],getHTML:[64],getText:[64],focusEditor:[64],blurEditor:[64],setReadonly:[64]},null,{css:["onCSSChange"]}],[1,"zen-editor-core",{name:[1],readonly:[4],uploadUrl:[1,"upload-url"],placeholder:[1],initialContent:[1,"initial-content"],resizable:[4],exposeEditor:[4,"expose-editor"],size:[1],hideUI:[4,"hide-ui"],hideMenubar:[4,"hide-menubar"],menubarMode:[1,"menubar-mode"],extraMenubarItems:[1,"extra-menubar-items"],bubbleMenu:[4,"bubble-menu"],preferHardBreak:[4,"prefer-hard-break"],locale:[1],styles:[16],collaborative:[4],hocuspocus:[1],docName:[1,"doc-name"],username:[1],userColor:[1,"user-color"],updateInputValue:[16],fullscreenable:[4],toggleFullscreen:[16],isFullscreen:[4,"is-fullscreen"],value:[1],editor:[32],forceUpdateCounter:[32],isMonaco:[32]},null,{locale:["onLocaleChanage"]}],[2,"zen-editor-bubble-menu",{menuProps:[16],editor:[16],disabled:[4],element:[32]}],[1,"zen-editor-menubar",{editor:[16],menubarMode:[2,"menubar-mode"],extraMenubarItems:[1,"extra-menubar-items"],forceUpdateCounter:[2,"force-update-counter"],states:[8],toggleMonaco:[16],toggleFullscreen:[16],styles:[16]}],[0,"monaco-editor",{options:[8],initialValue:[1,"initial-value"],tiptapEditor:[16],updateInputValue:[16],setFocus:[64],getValue:[64]},null,{options:["onOptionsChange"]}],[1,"zen-editor-content",{editor:[16],styles:[16]},[[2,"click","handleClick"]]],[0,"zen-editor-menu-item",{itemProps:[8,"item-props"],menubarMode:[2,"menubar-mode"],styles:[16]}]]],["p-de75d67e",[[0,"zen-editor-floating-menu",{menuProps:[16],editor:[16],element:[32]}]]],["p-cd71f736",[[0,"zen-editor-footer",{editor:[16],forceUpdateCounter:[2,"force-update-counter"],toggleFullscreen:[16],showCharCount:[4,"show-char-count"]}]]]],e)))); \ No newline at end of file diff --git a/www/js/zui3/zin.js b/www/js/zui3/zin.js index d39aceaf16..0be36c5d22 100644 --- a/www/js/zui3/zin.js +++ b/www/js/zui3/zin.js @@ -630,19 +630,20 @@ { $page = $('
    ') .append($('