// main configuration object
interface IeQMSConfig {
// option to render DOC, SIGN categories in main tree
renderInTree?:string[] // can be set to either one or both "DOC","SIGN"
// definition of document administrators. These can
// * change the release status of documents
// * modify any review comment
// * define who needs / got training / reading / has read
docAdmins?:string[] // list of user ids of document adminsitrators
workflow?:IDocWorkflow, // definition of workflow features (see below)
revision?: IDocRevisionInfo, // definition in which cell revision number can be found (see below)
captions?:ICaptions, // set to at least {} will enable captions for figures/tables (see below for more options)
templates?:IDocTemplate // if configured the user can instanciate templates from another project (see below)
mail?:IDocMailings // can be specified to define mail notification (buttons)
review?:IDocReview // set to at least {} to enable "document review" (see below for more options)
compare?:IDocCompare // must be set to at least {} to enable "document compare" (see below for more options)
documentOverview?:IDocOveriew[] // Optional documentation overview page (see below for more options)
}
// definition of formatting of captions and references to captions
interface ICaptions {
referenceStyle?:string, // optional: specify how references to captions are rendered (default italic)
captionStyle?:string // optional: specify how references to captions are rendered (default italic)
}
// definition of mail notification options
interface IDocMailings {
review?:IQMSMailing, // optional button to email people to ask to review a document
reading?:IQMSMailing, // optional button to email people to ask to read a document
training?:IQMSMailing, // optional button to email people to ask to get training
[key:string]:IQMSMailing // other templates for automatic emails
}
// definition of a mail notification content
// subject and body can contain these placeholders
// _id_ : the document if
// _link_: a hyperlink to the document
// _reviewer_: name
// _trainer_ : whoever is in the trainer field of a document
// _trainee_ : whoever needs a training (and has not yet been trained)
// _reader_: whoever needs read a document (and has not yet read it)
// _me.firstName__: first name of sender
// _me.lastName_ : last name of sender
interface IQMSMailing {
subject:string, // subject line
body:string // html body
buttonText?:string // optional button text
}
// definition of lifecycle states of a document
// all states must exist a label.
// labels must be defined as XOR
interface IDocWorkflow {
defaultStatus:string, // status after SIGNED was created, e.g. REVIEW. Meaning document must be reviewed and signed
rejectedStatus:string, // status if a document has been rejected by at least one user, e.g. REJECT
reviewedStatus:string, // status if a document has been signed by all stakeholders, e.g. RELEASE
useStatus:string[], // states of life of document e.g. LATEST, SUPERSEEDED, RETIRED
changes:IStatusChange[] // a list of triggered changes if the document status cahnges
}
// can be set to a project id from which user can pick signed documents
interface IDocTemplate {
project:string, // project name
filter?:string // define label which has to be set, e.g. LATEST
showAll?: boolean // set to true if filtered out documents should be shown in grey
categories?: string[]// can be set to show other categories than just SIGN
}
// option enabling inline comments for documents
interface IDocReview {
showAlways?:boolean, // whether it should be possible to do reviews (leaving inline comments to already signed documents)
allowModifyOthers?:boolean // set to true to allow normal users to modify other people's comments
}
// option to allow comparing documents with other version
interface IDocCompare {
// currently no additional options
}
// options for the project page, allows to show for example all releaed documents
interface IDocOveriew {
groupName:string; // display name in UI (heading)
filter:string; // filter (label to pick documents)
}
// specification how revision number is recogonized and increased
interface IDocRevisionInfo {
sectionType?:string, // optional type of table (should normally be audittrail)
sectionName?:string, // optional name of table alternative to sectionType
column:string, // id of column (default 'col1')
row:"first"|"last", // first or last row (default last)
autoDraft?:boolean // default false: create a new revision line with DRAFT after creating signed
askDraft?:boolean // default false: ask user if he really wants to create a SIGNED with DRAFT
}
// defines what happens when a lifecycle status of a SIGN changes (label change)
interface IStatusChange {
status?:string, // new status (label)
action?:string, // after some action
change?:{from:string,to:string}, // automatically change other SIGN derived from same DOC
mail?: IStatusChangeMail // send mail to users (body see mail config for placeholders)
}
// details whom to send which mail if status changes
interface IStatusChangeMail {
signCreator:boolean, // whether person who created the sign should get a status change mail
docAdmins:boolean, // whether doc admins should get a status change mail
template:string // which tempalte (IQMSMailing) to use
}
|