From 3e4756221b03343bcef5c0cdd2fd2d3f5f1e544f Mon Sep 17 00:00:00 2001 From: sunhao Date: Thu, 28 Nov 2024 14:15:10 +0800 Subject: [PATCH] * [refac] change docContent->html to docContent->content. --- db/standard/zentao21.2.sql | 2 +- db/update21.2.sql | 2 +- db/zentao.sql | 2 +- lib/zin/wg/docapp/js/v1.js | 8 +++---- module/doc/config/form.php | 6 ++--- module/doc/control.php | 2 ++ module/doc/model.php | 49 ++++++++++++++++++++++---------------- 7 files changed, 41 insertions(+), 30 deletions(-) diff --git a/db/standard/zentao21.2.sql b/db/standard/zentao21.2.sql index f4bba6e16a..ef0cf0d34d 100644 --- a/db/standard/zentao21.2.sql +++ b/db/standard/zentao21.2.sql @@ -1413,7 +1413,7 @@ CREATE TABLE `zt_doccontent` ( `title` varchar(255) NOT NULL DEFAULT '', `digest` varchar(255) NOT NULL DEFAULT '', `content` longtext DEFAULT NULL, - `html` longtext DEFAULT NULL, + `rawContent` longtext DEFAULT NULL, `files` text DEFAULT NULL, `type` varchar(10) NOT NULL DEFAULT '', `version` smallint(6) unsigned NOT NULL DEFAULT 0, diff --git a/db/update21.2.sql b/db/update21.2.sql index 1b16a02f6c..38b1ae3874 100644 --- a/db/update21.2.sql +++ b/db/update21.2.sql @@ -1 +1 @@ -ALTER TABLE `zt_doccontent` ADD `html` longtext DEFAULT NULL AFTER `content`; +ALTER TABLE `zt_doccontent` ADD `rawContent` longtext DEFAULT NULL AFTER `content`; diff --git a/db/zentao.sql b/db/zentao.sql index bd0bcdeb2b..f72299ba33 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -801,7 +801,7 @@ CREATE TABLE IF NOT EXISTS `zt_doccontent` ( `title` varchar(255) NOT NULL DEFAULT '', `digest` varchar(255) NOT NULL DEFAULT '', `content` longtext NULL, - `html` longtext DEFAULT NULL, + `rawContent` longtext DEFAULT NULL, `files` text NULL, `type` varchar(10) NOT NULL DEFAULT '', `version` smallint(6) unsigned NOT NULL DEFAULT '0', diff --git a/lib/zin/wg/docapp/js/v1.js b/lib/zin/wg/docapp/js/v1.js index c09c64ca66..4f711e22d9 100644 --- a/lib/zin/wg/docapp/js/v1.js +++ b/lib/zin/wg/docapp/js/v1.js @@ -243,8 +243,8 @@ function submitNewDoc(doc, spaceID, libID, moduleID, formData) const url = $.createLink('doc', 'create', `objectType=${spaceType}&objectID=${Math.max(spaceID, 0)}&libID=${libID}&moduleID=${moduleID}`); const docData = { - content : doc.content, - html : doc.html, + rawContent : doc.content, + content : doc.html, status : doc.status || 'normal', contentType: doc.contentType, type : 'text', @@ -319,7 +319,7 @@ function handleSaveDoc(doc) const moduleID = docApp.signals.moduleID.value; const url = $.createLink('doc', 'edit', `docID=${doc.id}`); const docData = { - content : doc.content, + rawContent : doc.content, status : doc.status || 'normal', contentType: doc.contentType, type : 'text', @@ -328,7 +328,7 @@ function handleSaveDoc(doc) title : doc.title, keywords : doc.keywords, acl : doc.acl, - html : doc.html, + content : doc.html, space : spaceType, uid : (doc.uid || `doc${doc.id}`), }; diff --git a/module/doc/config/form.php b/module/doc/config/form.php index 8b3b71c4cc..33fa0fd0c3 100644 --- a/module/doc/config/form.php +++ b/module/doc/config/form.php @@ -55,7 +55,7 @@ $config->doc->form->create['users'] = array('type' => 'array', 'requir $config->doc->form->create['mailto'] = array('type' => 'array', 'required' => false, 'default' => '', 'filter' => 'join'); $config->doc->form->create['contentType'] = array('type' => 'string', 'required' => false, 'default' => 'doc'); $config->doc->form->create['content'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor', 'skipRequired' => true); -$config->doc->form->create['html'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor', 'skipRequired' => true); +$config->doc->form->create['rawContent'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor', 'skipRequired' => true); $config->doc->form->create['template'] = array('type' => 'string', 'required' => false, 'default' => ''); $config->doc->form->create['templateType'] = array('type' => 'string', 'required' => false, 'default' => ''); $config->doc->form->create['chapterType'] = array('type' => 'string', 'required' => false, 'default' => ''); @@ -70,9 +70,9 @@ $config->doc->form->edit['status'] = array('type' => 'string', 'required' $config->doc->form->edit['type'] = array('type' => 'string', 'required' => false, 'default' => ''); $config->doc->form->edit['keywords'] = array('type' => 'string', 'required' => false, 'default' => '', 'skipRequired' => true); $config->doc->form->edit['acl'] = array('type' => 'string', 'required' => false, 'default' => ''); -$config->doc->form->edit['contentType']= array('type' => 'string', 'required' => false, 'default' => 'html'); +$config->doc->form->edit['contentType']= array('type' => 'string', 'required' => false, 'default' => 'doc'); $config->doc->form->edit['content'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor', 'skipRequired' => true); -$config->doc->form->edit['html'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor', 'skipRequired' => true); +$config->doc->form->edit['rawContent'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor', 'skipRequired' => true); $config->doc->form->edit['groups'] = array('type' => 'array', 'required' => false, 'default' => '', 'filter' => 'join'); $config->doc->form->edit['users'] = array('type' => 'array', 'required' => false, 'default' => '', 'filter' => 'join'); $config->doc->form->edit['mailto'] = array('type' => 'array', 'required' => false, 'default' => '', 'filter' => 'join'); diff --git a/module/doc/control.php b/module/doc/control.php index 472fb24151..06a3d22325 100755 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -1680,10 +1680,12 @@ class doc extends control $doc->object = $object; } + if(!empty($doc->rawContent)) $doc->content = $doc->rawContent; if($doc->contentType === 'doc' && is_string($doc->content)) $doc->content = htmlspecialchars_decode($doc->content); if(is_string($doc->title)) $doc->title = htmlspecialchars_decode($doc->title); if(!empty($doc->keywords) && is_string($doc->keywords)) $doc->keywords = htmlspecialchars_decode($doc->keywords); + unset($doc->rawContent); if($docID) $this->doc->createAction($docID, 'view'); $this->send($doc); diff --git a/module/doc/model.php b/module/doc/model.php index 54f965d81d..2b057a3443 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -811,7 +811,7 @@ class docModel extends model foreach($docs as $doc) { - if(empty($doc->html) && !empty($doc->content)) $ids[] = $doc->id; + if(empty($doc->rawContent) && !empty($doc->content)) $ids[] = $doc->id; } return $ids; } @@ -826,7 +826,15 @@ class docModel extends model */ public function migrateDoc(int $docID, int $version, string $html): bool { - $this->dao->update(TABLE_DOCCONTENT)->set('html')->eq($html)->where('doc')->eq($docID)->andWhere('version')->eq($version)->exec(); + $docContent = $this->dao->select('*')->from(TABLE_DOCCONTENT)->where('doc')->eq($docID)->andWhere('version')->eq($version)->fetch(); + if(empty($docContent)) return false; + + $rawContent = empty($docContent->rawContent) ? $docContent->content : $docContent->rawContent; + $this->dao->update(TABLE_DOCCONTENT) + ->set('rawContent')->eq($rawContent) + ->set('content')->eq($html) + ->where('id')->eq($docContent->id) + ->exec(); if(dao::isError()) return false; return true; @@ -1113,6 +1121,7 @@ class docModel extends model $doc->title = isset($docContent->title) ? $docContent->title : $doc->title; $doc->digest = isset($docContent->digest) ? $docContent->digest : ''; $doc->content = isset($docContent->content) ? $docContent->content : ''; + $doc->rawContent = isset($docContent->rawContent) ? $docContent->rawContent : ''; $doc->contentType = isset($docContent->type) ? $docContent->type : ''; $doc->contentVersion = isset($docContent->version) ? $docContent->version : $version; if($doc->type != 'url' && $doc->contentType != 'markdown' && $doc->contentType != 'doc') $doc = $this->loadModel('file')->replaceImgURL($doc, 'content,draft'); @@ -1414,7 +1423,7 @@ class docModel extends model $docContent->digest = ''; $docContent->version = 1; unset($doc->contentType); - unset($doc->html); + unset($doc->rawContent); return $this->insertSeperateDocs($doc, $docContent, $files); } @@ -1493,15 +1502,15 @@ class docModel extends model $doc->project = $lib->project; $doc->execution = $lib->execution; - $docContent = new stdclass(); - $docContent->title = $doc->title; - $docContent->content = $doc->content; - $docContent->type = $doc->contentType; - $docContent->html = isset($doc->html) ? $doc->html : ''; - $docContent->digest = ''; - $docContent->version = 1; + $docContent = new stdclass(); + $docContent->title = $doc->title; + $docContent->content = $doc->content; + $docContent->type = $doc->contentType; + $docContent->rawContent = isset($doc->rawContent) ? $doc->rawContent : ''; + $docContent->digest = ''; + $docContent->version = 1; unset($doc->contentType); - unset($doc->html); + unset($doc->rawContent); $requiredFields = $this->config->doc->create->requiredFields; if($doc->status == 'draft') $requiredFields = 'title'; @@ -1566,15 +1575,15 @@ class docModel extends model if($changed) { - $docContent = new stdclass(); - $docContent->doc = $oldDoc->id; - $docContent->title = $doc->title; - $docContent->content = isset($doc->content) ? $doc->content : ''; - $docContent->files = $oldDocContent->files; - $docContent->type = isset($doc->contentType) ? $doc->contentType : $oldDocContent->type; + $docContent = new stdclass(); + $docContent->doc = $oldDoc->id; + $docContent->title = $doc->title; + $docContent->content = isset($doc->content) ? $doc->content : ''; + $docContent->files = $oldDocContent->files; + $docContent->type = isset($doc->contentType) ? $doc->contentType : $oldDocContent->type; if($files) $docContent->files .= ',' . join(',', array_keys($files)); - $docContent->html = isset($doc->html) ? $doc->html : ''; - $docContent->files = trim($docContent->files, ','); + $docContent->rawContent = isset($doc->rawContent) ? $doc->rawContent : ''; + $docContent->files = trim($docContent->files, ','); if(isset($doc->digest)) $docContent->digest = $doc->digest; if($oldDoc->status == 'draft') $this->dao->update(TABLE_DOCCONTENT)->data($docContent)->where('id')->eq($oldDocContent->id)->exec(); @@ -1587,7 +1596,7 @@ class docModel extends model } unset($doc->contentType); - unset($doc->html); + unset($doc->rawContent); $doc->draft = isset($doc->content) ? $doc->content : ''; $this->dao->update(TABLE_DOC)->data($doc, 'content') ->autoCheck()