diff --git a/lib/zin/wg/docapp/js/v1.js b/lib/zin/wg/docapp/js/v1.js index 0473a58c61..204987bc01 100644 --- a/lib/zin/wg/docapp/js/v1.js +++ b/lib/zin/wg/docapp/js/v1.js @@ -640,6 +640,7 @@ function handleSaveDoc(doc) space : spaceType, uid : (doc.uid || `doc${doc.id}`), }; + if(Array.isArray(doc.files)) docData.files = doc.files.map(f => typeof f === 'object' ? f.id : f).join(','); if(doc.fromVersion) docData.fromVersion = doc.fromVersion; if(savingDocData[doc.id]) diff --git a/module/doc/config/form.php b/module/doc/config/form.php index 59d86f2fd2..f8bd1d8649 100644 --- a/module/doc/config/form.php +++ b/module/doc/config/form.php @@ -66,27 +66,29 @@ $config->doc->form->create['chapterType'] = array('type' => 'string', 'requir $config->doc->form->createtemplate = $config->doc->form->create; $config->doc->form->createtemplate['templateDesc'] = array('type' => 'string', 'required' => false, 'default' => ''); -$config->doc->form->edit['title'] = array('type' => 'string', 'required' => true, 'default' => '', 'filter' => 'trim'); -$config->doc->form->edit['product'] = array('type' => 'int', 'required' => false, 'default' => 0); -$config->doc->form->edit['project'] = array('type' => 'int', 'required' => false, 'default' => 0); -$config->doc->form->edit['execution'] = array('type' => 'int', 'required' => false, 'default' => 0); -$config->doc->form->edit['module'] = array('type' => 'string', 'required' => false, 'default' => ''); -$config->doc->form->edit['lib'] = array('type' => 'int', 'required' => false, 'default' => 0, 'skipRequired' => true); -$config->doc->form->edit['status'] = array('type' => 'string', 'required' => false, 'default' => 'normal'); -$config->doc->form->edit['parent'] = array('type' => 'int', 'required' => false, 'default' => 0); -$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' => 'doc'); -$config->doc->form->edit['content'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor', 'skipRequired' => true); -$config->doc->form->edit['rawContent'] = array('type' => 'string', 'required' => false, 'default' => '', 'skipRequired' => true, 'specialchars' => 'no'); -$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['readGroups'] = array('type' => 'array', 'required' => false, 'default' => '', 'filter' => 'join'); -$config->doc->form->edit['readUsers'] = array('type' => 'array', 'required' => false, 'default' => '', 'filter' => 'join'); -$config->doc->form->edit['mailto'] = array('type' => 'array', 'required' => false, 'default' => '', 'filter' => 'join'); -$config->doc->form->edit['editedBy'] = array('type' => 'string', 'required' => false, 'default' => ''); -$config->doc->form->edit['editedDate'] = array('type' => 'datetime', 'required' => false, 'default' => $now); +$config->doc->form->edit['title'] = array('type' => 'string', 'required' => true, 'default' => '', 'filter' => 'trim'); +$config->doc->form->edit['product'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->doc->form->edit['project'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->doc->form->edit['execution'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->doc->form->edit['module'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->doc->form->edit['lib'] = array('type' => 'int', 'required' => false, 'default' => 0, 'skipRequired' => true); +$config->doc->form->edit['status'] = array('type' => 'string', 'required' => false, 'default' => 'normal'); +$config->doc->form->edit['parent'] = array('type' => 'int', 'required' => false, 'default' => 0); +$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' => 'doc'); +$config->doc->form->edit['content'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor', 'skipRequired' => true); +$config->doc->form->edit['rawContent'] = array('type' => 'string', 'required' => false, 'default' => '', 'skipRequired' => true, 'specialchars' => 'no'); +$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['readGroups'] = array('type' => 'array', 'required' => false, 'default' => '', 'filter' => 'join'); +$config->doc->form->edit['readUsers'] = array('type' => 'array', 'required' => false, 'default' => '', 'filter' => 'join'); +$config->doc->form->edit['mailto'] = array('type' => 'array', 'required' => false, 'default' => '', 'filter' => 'join'); +$config->doc->form->edit['editedBy'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->doc->form->edit['editedDate'] = array('type' => 'datetime', 'required' => false, 'default' => $now); +$config->doc->form->edit['fromVersion'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->doc->form->edit['files'] = array('type' => 'string', 'required' => false, 'default' => ''); $config->doc->form->edittemplate = $config->doc->form->edit; $config->doc->form->edittemplate['templateDesc'] = array('type' => 'string', 'required' => false, 'default' => ''); diff --git a/module/doc/model.php b/module/doc/model.php index 797d7d9453..1bf7b67df8 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -1678,8 +1678,9 @@ class docModel extends model $docContent->doc = $docID; $docContent->addedBy = $docContent->editedBy; $docContent->addedDate = $docContent->editedDate; - $docContent->files = implode(',', $files); + $docContent->files = (!empty($docData->files) && is_string($docData->files)) ? (',' . $docData->files) : implode(',', $files); $docContent->fromVersion = isset($docData->fromVersion) ? $docData->fromVersion : max(0, ($version - 1)); + $this->dao->insert(TABLE_DOCCONTENT)->data($docContent)->exec(); $docContent->id = $this->dao->lastInsertID(); } @@ -1752,6 +1753,7 @@ class docModel extends model $doc->path = $path; } + unset($doc->files); $this->dao->update(TABLE_DOC)->data($doc, 'content,contentType,rawContent,fromVersion') ->autoCheck() ->batchCheck($requiredFields, 'notempty')