MediaWiki:Common.css and Manual:Extension/ContentStabilization: Difference between pages

(Difference between pages)
No edit summary
 
No edit summary
 
Line 1: Line 1:
/* Das folgende CSS wird für alle Benutzeroberflächen geladen. */
{{DISPLAYTITLE:Page approvals (Acceptance)}}
{{BSVersion|bsvFrom=4.3|bsvTo=|bsvFeature=ContentStabilization|info=Up to version 4.2, approvals are handled by the extension [[Manual:Extension/FlaggedRevs|FlaggedRevs]].}}


/*Standard content table bg color */
The '''ContentStabilization''' extension is a MediaWiki extension that activates an approval mechanism. New versions of a page are initially marked as drafts. These remain in place until a user with approval rights reviews and approves the page.
table.contenttable thead tr, table.contenttable th {background-color: #e9e9ee; vertical-align:top}
==Enable page approval==
table.contenttable td {vertical-align:top}
Drafts are activated via the namespace administration. A user with administrator rights checks whether A''pproval'' is enabled for a namespace. This is done under ''Global Actions > Administration > Namespaces''.


Click the edit icon (wrench) in the ''Actions'' column. The namespace dialog opens. Select approval and click ''Done''.
[[File:Manual:approval-namespace.png|alt=Namespace settings screen|center|thumb|450x450px|Activated Approval feature for a namespace]]


/*pdf noexport without highlighting*/
===Existing Pages===
.bs-universalexport-exportexclude {
After ''Approval'' is activated for a namespace, all existing pages in the namespace appear in  draft mode. The pages now show the status ''First draft.''
    background-color:transparent;
[[File:Manual:flaggedrevs-firstdraft.png|alt=First draft indicator in the title area|center|thumb|250x250px|First draft]]
    border:none;
}


/*Discussions and attachments currently not in use in the helpdesk, therfore hiding for no */
.icon-bluespice-logo:before {
    font-family: 'icomoon' !important;
    content: "\e910";
}


/*hide spans from templates in TOC text
.toctext span {display:none!important}*/


/* bootstrap icons in blue and big */
By default, the page status is displayed in the title area of every page with approval function .
.bi-big {font-size: 2rem; color: #2b80ea}


/*images in a list*/
Alternatively, the status info can be moved below the page content from the [[Manual:Extension/BlueSpiceConfigManager#Positioning of skin elements|Config manager]].
#content li figure, #content li .floatnone, #content li  img:first-child, #content li .thumb, content li .thumb img:first-child
{
    margin-top:1.5em; margin-bottom:1.5em;
}
#content li.ve-ce-branchNode .thumb img:first-child, #content li.ve-ce-branchNode figure img:first-child, #content li.ve-ce-branchNode img.ve-ce-chimera {
    margin-top:0;
}
#content li .thumb {
    margin-bottom:0
}


===First drafts===
When a new page is created and saved for the first time, it will appear as '''first draft'''. By default, first drafts are visible to all users with read permissions. However,  this can be restricted to individual user groups from the [[Manual:Extension/BlueSpiceConfigManager#ContentStabilization|Config manager.]]
===Drafts===
If a page is edited and saved multiple times in draft mode, each edit is logged in the page history:
[[File:Manual:flaggedrevs-revisions.png|alt=Highlighted revisions in the page history|center|thumb|550x550px|Drafts are shown in the revision history]]
<br />


#data-after-content {display: none;}
Drafts are highlighted in color in the version history. In addition, they are marked with "Release pending".
.wikitable > tr > th, .wikitable > tr > td, .wikitable > * > tr > th, .wikitable > * > tr > td {padding: 0.8em 0.4em;}
span.new::after { content: 'neu!'; vertical-align: super; background: #64b334; margin-left: 3px;font-size: 10px;padding: 2px 5px; border-radius: 50%;
color:#ffffff;}
.flexbox{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:stretch;align-content:stretch;}
.flexbox div{margin:5px;padding:2px 8px;text-align:center;background:#ececec}
.center > div.thumb {margin-top:2em}
#content .toctitle h2 {margin-right: 1em; display: inline;font-size: 1.4rem;}
.qtip {font-size: 1em;line-height: 1.4em;}


/*Related links */
==Accepting a page==
h2#relatedinfo
A user with [[Manual:Extension/BlueSpicePermissionManager|reviewer permissions]] can approve the page  from the status message in the title area of the page. The approval comment is logged in the page's version history.<br />
{border-left: solid 4px #d8d8d9;
[[File:Manual:flaggedrevs-acceptdraft.png|alt=approval feature in the title area|center|thumb|250x250px|Approval from the title area]]
background:#f1f3f9;
The new approval status is shown accordingly in the title area.
color: #868585;
[[File:Manual:flagged-revs-accepted.png|alt=Approval status indication|center|thumb|Approved page status]]
margin-top: 3rem;
<br />
margin-bottom:0 !important;
padding: 20px 10px 2px 30px;
}
.relatedtopics {
display:flex;
flex-wrap: wrap;
border-left: solid 4px #d8d8d9;
background:#f1f3f9;
padding: 2em !important;
margin:0  !important;
}
.relatedtopics .col{flex-basis: 50%; flex-grow: 1; flex-shrink: 1;}


/*Themen*/
==Configuration==
.flexbox.themenhd div {background:#fff; border:1px solid #d8d8d9; padding:10px 20px; flex-basis:24%; text-align:left}
The following settings are made in the [[Manual:Extension/BlueSpiceConfigManager#ContentStabilization|Config manager]in combination with namespace settings.
.flexbox.themenhd div [class*=" bi-"]::before {font-size: 1.6em; vertical-align: middle;background-color: #fff; padding: 6px; border-radius: 50%;}
.flexbox.themenhd div [class*=" bi-"]::before {font-size:2em; vertical-align:middle; background-color:#f1f3f9; padding: 10px; }
.themenhd div a {display:block}
.themenhd div:hover {background:rgb(233,233,238,0.5)}
ul.smw-format.ul-format.alltopics-col {column-count: 3;}


/*Tours */
===Changes to templates, embedded files and transclusions===
.nextstep {display: inline-block;padding: 6px;background: #36c;border-radius: 2px;color: #ffffff;font-weight: bold;}
If a page uses templates or contains other files such as images and embedded PDFs, or if content from other pages is transcluded and modified after the page was approved, those changes must also be approved. There are two mechanisms to accomplish the approval:
#mw-content-text .nextstep a:not(.new), [class^="mw-content-"] .nextstep a:not(.new), #mw-content-text .nextstep a:link:not(.new), [class^="mw-content-"] .nextstep a:link:not(.new) {
    color: #ffffff;    font-weight: bold;}
#mw-content-text .nextstep a:not(.new):hover, #mw-content-text .nextstep a:link:not(.new):hover, [class^="mw-content-"] .nextstep a:link:not(.new):hover {
    color: #efefef;}
.nextstep a:not(.new)::after, .nextstep a:link:not(.new)::after {content: " \25B6";}


/*Main page*/
#'''The embedded resource is in a namespace without approval mechanism:''' If the embedded resource is in a namespace without its own approval function, the approved version of the page shows the resource version that was embedded at the time of the page approval. An implicit draft version shows the most recent version of the embedded resource. <br />
.flexbox-portal div > h2 span::before {vertical-align: text-bottom; size:1.1em;}
#'''The embedded resource is in a namespace with approval mechanism:''' The approval is done directly for the resource itself to avoid approval on all affected content pages.
.mw-parser-output .flexbox-portal.col3 > div:nth-child(3n) {margin-right:0 !important}
{{Messagebox|boxtype=important|icon=|Note text= If the approval mechanism is activated in a resource namespace (e.g. Template, File) in retrospect, all existing pages are then in first draft. If the wiki is configured so that not all users can see drafts, the resources may need to be initially approved via server script if this cannot be accomplished manually.<br><br>[[Manual:Extension/FlaggedRevs/Server script|About approvals via server script.]]|bgcolor=}}
#maintopics ul {list-style: none!important;}
{| class="contenttable" style="width: 100%;"
#maintopics li {padding-bottom:0.6em!important;margin-left: 12px!important;}
!'''Setting'''
#mpbanner {margin-top:-55px; background:#fff url(/w/nsfr_img_auth.php/f/fa/BlueSpice-Demo_Header.jpg) -90px no-repeat; background-size: 1000px 122px;}
!Behaviour of the approved content page -
h1#mpbanner-byline {font-size:1.8em; color:#3e5389;line-height: 1em; padding-top: 20px;}
'''No resource approval mechanism'''[[File:CS namespace resource no approval.png|alt=Namespace settings dialog|center|thumb|450x450px|Resource without approval feature]]
#mpbanner-title {font-size:3.4rem; color:#3e5389; line-height:1.2em; font-weight: 900;letter-spacing: 1px; display:block}
! style="width:500px;" |Behaviour of  the approved content page -
#maintopics h2 span::before {vertical-align: text-bottom;padding-bottom: 2px;}
'''Approval mechanism via resource namespace'''[[File:CS namespace resource with approval.png|alt=Namespace manager settings|center|thumb|450x450px|Resource with approval feature]]
|-
!Approved version
(Default)
| style="background-color:#f2f3f9;" class="" |'''This setting has no effect if the resource itself has no approval mechanism.'''


/** Cards **/
Same behavior as "Time-bound version" (see below).
.cards {display:flex; flex-wrap:wrap;  justify-content: space-between; gap:20px}
.cards > div {flex-basis:290px; margin-bottom:50px; border-top: 1px solid #f0f0f0; box-shadow: 0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);
    transition: all .3s cubic-bezier(.25,.8,.25,1); cursor: pointer; text-align:center}
.cards > div:hover {
    box-shadow: 0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22);
}
.cards a.image img {max-width:600px}
.cards .screenshot {width:300px;height:200px; overflow:hidden; border-top:14px solid #eee; border-bottom:14px solid #eee}
#content #bodyContent .cards h2 {margin:10px; padding:0; font-size:1.1rem; font-color:#444; border:none; text-align:center}
.cards h2 .mw-editsection {display:none}
.cards .text {font-size:0.85rem; padding:20px 10px; text-align:center; font-weight:bold;}
#mw-content-text text a:not(.new), [class^="mw-content-"] .text a:not(.new), #mw-content-text .text a:link:not(.new), [class^="mw-content-"] .text a:link:not(.new), #mw-content-text .text a:not(.new):visited, [class^="mw-content-"] .text a:not(.new):visited, #mw-content-text .text a:link:not(.new):visited, [class^="mw-content-"] .text a:link:not(.new):visited
{color:#444;}
.cards .emptycard, .cards > div.emptycard:hover
{border: 0;
box-shadow: none;}
@media only screen and (max-width: 768px)
{.cards > div {flex-basis:98%; }
.cards .screenshot {width:auto; text-align:center}
}
.getButton {
    display: inline-block;
    background-color: #4CAF50;
    border: none;
    color: white;
    padding: 8px 20px;
    text-align: center;
    text-decoration: none;
    font-size: 16px;
    margin: 0 0 10px 0;
    -webkit-transition-duration: 0.4s;
    transition-duration: 0.4s;
    border-radius: 8px;}


#mw-content-text .getButton a:not(.new), [class^="mw-content-"] .getButton  a:not(.new), #mw-content-text .getButton  a:link:not(.new), [class^="mw-content-"] .getButton  a:link:not(.new), #mw-content-text .getButton a:not(.new):visited, [class^="mw-content-"] a:not(.new):visited, #mw-content-text .getButton a:link:not(.new):visited, [class^="mw-content-"] .getButton a:link:not(.new):visited
| style="width:500px;" |'''Resource display:'''
{color:#ffffff;}
*the '''approved version''' of the resource is shown.[[File:CS resource yes stable standard.png|alt=Approved page with currently approved version of the resource.|center|thumb|450x450px|The currently approved version of the resource is shown.]]
.getButton:hover {
'''Resource approval:'''
box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19);
*takes place exclusively via the resource itself. The page contains no indication whether a draft version of the resource exists.
color:'f5f5f5';
|-
}
!Time-bound version
.getButton:active {
|'''Resource display:'''
position:relative;
*the '''embedded version at the time of approval''' is shown:[[File:CS resource yes stable1.png|alt=screenshot of the approved page with the frozen resource|center|thumb|450x450px|Approved page version with the version of the resource that was valid at the time of page approval]]
top:1px;
*an implicit draft with the latest version of the resource exists:
}
[[File:CS resource yes stable0.png|alt=Page draft with preview of changed resource and resource change banner|center|thumb|450x450px|Page draft due to change of embedded resource]]'''Resource approval:'''
.getButton a:before {font-family: 'fontawesome';
*the implicit draft '''must be approved on the content page'''. If the resource is embedded/linked on multiple pages in the wiki, all pages must be approved separately.
content: '\f019 ';
| style="width:500px;" |'''Resource display:'''
font-size: 1.3em;
* the '''embedded version at the time of approval''' is shown:[[File:CS resource yes stable1.png|alt=screenshot of the approved page with the frozen resource|center|thumb|450x450px|Approved page version with the version of the resource that was valid at the time of page approval]]
vertical-align: middle;
*an implicit draft with the latest version of the resource exists:[[File:CS resource yes stable0.png|alt=Page draft with preview of changed resource and resource change banner|center|thumb|450x450px|Page draft due to change of embedded resource]]
margin-right: 10px;
'''Resource approval:'''
}
*''Case A:'' the implicit draft '''can be approved on the content page'''. If the resource is embedded on multiple pages in the wiki, all pages must be released separately.
*''<span class="col-turquoise">'''Case B (expected case):'''</span>'' when '''the resource itself is approved,''' '''the implicit draft is removed from all affected content pages. These no longer have to be approved separately.'''
|-
!Current version
|'''Resource display:'''
*'''the current version''' of the resource is shown:
[[File:CS resource yes current.png|alt=Approved page with approved status|center|thumb|450x450px|Approved page with the current version of the resource]]'''Resource approval:'''


.cart a:before {font-family: 'fontawesome';
*the resource itself cannot be approved
content: '\f217 ';
| style="background-color:#f2f3f9;" class="" |'''Resource display:'''
}
*'''the current version''' of the resource is shown:
[[File:CS resource yes current.png|alt=Approved page with approved status|center|thumb|450x450px|Approved page with the current version of the resource]]'''Resource approval:'''
*The approval status of the resource has no effect on the page and should therefore not be used in combination with an activated approval mechanism in the resource namespace.


.downloadarea {
|}
text-align:center;
display: inline-block;
float: right;
margin: 0 0 20px 40px;
padding: 10px;
background: #efefef;
background: linear-gradient(270deg, rgb(240, 240, 240) 0%, rgb(224, 224, 224) 52%, rgb(240, 240, 240) 100%);
}
.downloadarea p {margin:0}
@media only screen and (max-width: 768px)
{.cards > div {flex-basis:98%; }
}
.oo-ui-panelLayout-framed {border: 0;}
.oo-ui-tabSelectWidget-framed {border-bottom: 1px solid #d3d5da;}


===Reading permissions for drafts===
By default, all users can see a page's drafts, including users with only read permissions.


To hide drafts from users, the ''user'' group must be removed from the configuration. This setting then applies to the entire wiki and cannot be further restricted to specific namespaces.


/*HP Aktuelles */
An administrator changes the groups that can see drafts in the ''Show draft versions for the following groups'' box.''<br />{{Messagebox|boxtype=warning|icon=|Note text=If the group ''user'' is off is removed from the configuration, users in this group cannot see draft versions even if they are assigned a workflow task.|bgcolor=}}After removing the group ''user'', the desired group(s ), e.g. B. the group ''editor'', can be added to the configuration and saved.
#aktuelles {background: rgba(201, 224, 143, .3); padding:10px; margin:20px 0}
#aktuelles h2::before {font-family:'fontawesome'; font-size:0.8em; content:'\f02e'; color: #64b334; margin-right:10px}
#aktuelles h2 {margin: 8px 0 8px 24px; color: #454545; font-size: 1.4em; border-bottom: none; }
#aktuelles table {margin: 0 8px 15px 37px}
#aktuelles td {padding:3px 10px}


{{Messagebox|boxtype=note|icon=|Note text=If no user groups are specified in the configuration field, even users with share rights and sysop users will not see a visual status indicator of the page. Instead, you have access to drafts through the page's history.


table.padded td, table.padded th {padding:8px}


/*Quiz*/
In order for administrators to see the status directly on the page, they must be added to a group listed here in the configuration.|bgcolor=}}
.quiz .question{margin-bottom:3em;}
=== Read permissions for first drafts===
.questionText{font-weight:700;margin-bottom:1.2em;}
By default, first drafts are visible to all users who have read permissions in a namespace. However, if first drafts are only visible to those users who can generally view page drafts, this can be done in the configuration management by selecting ''Allow viewing of first draft version for users who can normally not see drafts''  to be disabled.
.question .header{background:#fff0e1;padding:1px 6px;}
===Summary: Read Permissions for Draft Pages===
span.questionText{display:block;}
'''Define groups:'''
.question td{background:#f6f6f6;border-bottom:2px solid #fff;padding:8px 6px 6px;}
*'''Group ''user''''': Only the user groups that have been given this right in the configuration management can see first drafts and other drafts. By default, this is the user group (=all users who are logged into the wiki and have the appropriate reading rights in a namespace)'''.'''
.question th{background:#f6f6f6;border-bottom:2px solid #fff;padding:8px 6px 6px;}
*'''Adjust groups:''' In the configuration management, the reading rights for (first) drafts can be restricted to other groups.
.quiz table{width:100%;}
*'''Group ''sysop'':''' Users in group ''sysop'' can always view drafts through the history. The sysop group can therefore not be set explicitly in the configuration. If ''sysop'' users can directly see the approval status on the page, they need to be added to a group with read permissions for drafts.
.quizQuestions .question .sign{width:26px;}
'''Export draft pages:'''
.quiz table.settings{margin-left:30px!important;}
*'''Single page export:''' Users with reading rights on a draft page can print it directly as a PDF.
.mw-content-ltr .quiz .question .border{border-width:0 0 0 12px !important;}
*'''Book export:''' Only approved pages are exported. If there is only a first draft of a page, it will be exported. '''Exception:''' If the book is printed by a user who does not have access to the first draft, the first draft will not be printed out in the book. Instead, the PDF shows the following message:[[File:CS first draft export.png|alt=Error message in the PDF|center|thumb|550x550px|Permissions error PDF export]]
.quiz .margin.right{background-color:#8ed27d!important;}
.quiz .margin.NA{background-color:#337ecc!important;}
.quiz .margin.wrong{background-color:#ff5c64!important;}
.quiz .question .border.right{border-color:#8ed27d!important;}
.quiz .question .border.NA{border-color:#337ecc!important;}
.quiz .question .border.wrong{border-color:#ff5c64!important;}
.quiz .question .check.right{outline:3px solid #8ed27d!important;}
.quiz .question .check.NA{outline:3px solid #337ecc!important;}
.quiz .question .check.wrong{outline:3px solid #ff5c64!important;}
.quizForm input[value="Submit"]{background:#36c;border:none;color:#FFF;margin-right:10px;margin-left:30px;padding:6px 12px;}
.quizForm input:hover[value="Submit"]{background:#2551aa;}
.quizForm input[value="Reset"]{background:#a4a4a4;border:none;color:#FFF;margin-right:10px;padding:6px 12px;}
.quizForm input:hover[value="Reset"]{background:#858585;}
.quiz .correction{background-color:#ffe4c9;display:block;font-weight:700;margin:10px 0 30px 28px;padding:20px;}


.bi {
    display: inline-block;
    vertical-align: -0.125em;
}
/* Styles for section cards */
.sectionflex {display: flex; flex-wrap: wrap; justify-content:space-between; gap:10px}
.sectionflex.col1 > div {flex-basis:100%; padding:10px 20px; }
.sectionflex.col2 > div {flex-basis:48%; padding:10px 20px; }
.sectionflex.col3 > div {flex-basis:31%; padding:10px 20px;}
.sectionflex.col4 > div {flex-basis:23%; padding:10px 20px;}
.sectionflex > div.empty {border:none; background:none}
#mw-content-text .sectionflex > div h2 {margin:0 0 1em 0; font-size:1.3em}
.sectionflex.frame > div {border: 1px solid #e7e7e7}
.sectionflex.background> div {background: #f1f3f9}
.sectionflex .ve-ce-branchNode-slug, .sectionflex span.mw-editsection {display:none}
.sectionflex.linked a {display:block}
.sectionflex.center {text-align:left !important;}
.sectionflex.center > div {text-align:center;}


/*Themen*/
.sectionflex.themenhd div [class*=" bi-"]::before {font-size: 1.6em; vertical-align: middle; padding: 6px; border-radius: 50%;}
.sectionflex.themenhd  div [class*=" bi-"]::before {font-size:2em; vertical-align:middle; background-color:#f1f3f9; padding: 10px; }
.sectionflex.themenhd.background  div [class*=" bi-"]::before {font-size:2em; vertical-align:middle; background-color:#fff; padding: 10px; }
.themenhd div a {display:block}
.themenhd div:hover {background:rgb(233,233,238,0.5)}
ul.smw-format.ul-format.alltopics-col {column-count: 3;}
@media (max-width: 767px) {.sectionflex.col2 > div, .sectionflex.col3 > div {flex-basis:100%; margin-top:2em}}


/*Präsentationen*/
Effects on Semantic MediaWiki properties
* {
-webkit-print-color-adjust: exact !important;  /* Chrome, Safari */
color-adjust: exact !important;                /*Firefox*/
}


.bs-data-after-content, .mw-lingo-tooltip {display:none}
If a namespace has SemanticMediaWiki [[Manual:Semantic_MediaWiki|Semantic MediaWiki]] activated, the following SMW queries are available depending on the approval status of the page:
.slideNav {font-size:1rem}
{| class="wikitable" style="width:950px;"
.slideNext::after {font-family:"fontawesome"; content:"\f061"; color:blue; margin-left: 5px;}
! style="background-color:rgb(234, 236, 240);text-align:center;box-sizing:inherit;padding:0.2em 0.4em;border:1px solid rgb(162, 169, 177);" class="" |Document state
.slidePrevious::before {font-family:"fontawesome"; content:"\f060"; color:blue; margin-right:5px;}
! style="background-color:rgb(234, 236, 240);text-align:center;box-sizing:inherit;padding:0.2em 0.4em;border:1px solid rgb(162, 169, 177);" class="" |Available properties
.slideHd h1 {border-bottom: 1px solid #e5e5e5;}
|- style="box-sizing: inherit;"
.main-footer {display:none;}
| style="box-sizing:inherit;padding:0.2em 0.4em;border:1px solid rgb(162, 169, 177);" |First draft
.slideBoxes {
| style="box-sizing:inherit;padding:0.2em 0.4em;border:1px solid rgb(162, 169, 177);" |Current values
    display: flex;
|- style="box-sizing: inherit;"
    flex-direction: row;
| style="box-sizing:inherit;padding:0.2em 0.4em;border:1px solid rgb(162, 169, 177);" |Approved
    flex-wrap: wrap;
| style="box-sizing:inherit;padding:0.2em 0.4em;border:1px solid rgb(162, 169, 177);" |Values of the approved (stable) version
    justify-content: center;
|- style="box-sizing: inherit;"
    align-items: stretch;
| style="box-sizing:inherit;padding:0.2em 0.4em;border:1px solid rgb(162, 169, 177);" |Draft
}
| style="box-sizing:inherit;padding:0.2em 0.4em;border:1px solid rgb(162, 169, 177);" |Values of the approved (stable) version (default setting)
.slideBoxes > div {
|- style="box-sizing: inherit;"
    width: 45%;
| style="box-sizing:inherit;padding:0.2em 0.4em;border:1px solid rgb(162, 169, 177);" |Implicit draft<ref>An approved page has an implicit draft, if there have been changes to embedded resources (e.g., a template or an image) since the last page approval.</ref>
    color: #242424;
| style="box-sizing:inherit;padding:0.2em 0.4em;border:1px solid rgb(162, 169, 177);" |Values of the approved (stable) version
    background-color: #f2f2f2;
|}
    border-radius: 20px;
The availability of the semantic properties is determined by the following configuration setting:
    padding: 4px 30px;
$bsgFlaggedRevsConnectorStabilizeSMWPropertyValues = true;
    margin: 15px;
The value for this setting can be set to ''false'' in the ''LocalSettings.php'' <span>of the server file system</span>. If set to ''false,'' the property values of the draft version are used for semantic queries instead of the values for the stable version.
    justify-content:center;
}
.slideBoxes > div.empty {background:none;}
.slideBoxes.hdOnly > div.haslink {transition: all .3s cubic-bezier(.25,.8,.25,1); cursor: pointer;}
.slideBoxes.hdOnly > div.haslink:hover {box-shadow: 0 14px 28px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.22);}
.slideBoxes.hdOnly > div {padding:10px;}
.slideBoxes.col3 > div {width:30%;}
.slideBoxes.col1 > div {width:90%;}
#content #bodyContent .slideBoxes h2 {
font-size:1.375rem;
border-bottom: 0px;
padding-bottom: 0;
margin-top: 10px;
margin-bottom: 0px;
font-weight:bold;  
color: #242424;
position:relative;
}
#content #bodyContent #mw-content-text .slideBoxes h2 {padding-left:68px; display:block; min-height:2em;}
#content #bodyContent #mw-content-text .slideBoxes.noicon h2 {padding-left:0;}
#content #bodyContent #mw-content-text .slideBoxes h2 a {color: #242424 !important;}


#content #bodyContent .slideBoxes p {
==Quality management overview==
margin-top:0.5em;
The Special page ''Special:Quality_management_overview'' allows all users  with ''reviewer'' permissions to view and filter a list of wiki pages and their review status. Pages for which a user does not have read permissions are not shown.
font-size:1.2em;
[[File:QM overview page.png|center|thumb|650x650px|Special page "Quality management overview"]]
}
.slideBoxes .fas,.slideBoxes .fab, .slideBoxes .fa {
    margin-right: 20px;
    vertical-align: sub;
    font-size:1.7em;
    margin-left:-56px;
}
.slidetext, .slidetext p, .slidetext div, .slidetext h3 {font-size:1.3rem;}
#slidecollection {width:100%;}
#slidecollection .slideNav {display:none;}
#slidecollection .slide {padding-top:30px;
background:url('https://de.wiki.bluespice.com/w/nsfr_img_auth.php/6/60/BlueSpice_Logo_v2020-steel-150.png')top right no-repeat !important;
background-size:50px;}


.collapsers h2 {background:#e7e7e7; border:0; padding:10px; color:#333}
== Approving a page when the title area is hidden ==
When the title area is hidden, you can approve the page from the .<code>..all actions</code> menu:


/*Referenz Seiten */
# '''Switch''' to the draft version of the page (this not necessary when  the page is in ''First draft'' status).{{Bsvs|bsvFrom=4.3.2}}[[File:ContentStabilization hidetitle-firstdraft.png|thumb|550x550px|alt=all actions dialog|center|Switching to first draft url]]<br/>Before v.4.3.2, this switch-link is not available. In that case, go to the page history and click on the latest time stamp to switch to the draft version of the page.[[File:ContentStabilization pagehistory.png|alt=page history screenshot|center|thumb|550x550px|The latest time stamp in the page history links to the draft page.]]
.extension-infobox {width:25em;font-size:90%;background-color:#f1f3f9;color:black;margin-bottom:0.5em;margin-left:1em;padding:0.2em;float:right;clear:right;text-align:left;}
#Approve the page via <code>...all actions -> Approve page</code> .
.extension-infobox-header{text-align:center;background-color:#2e6096;padding:8px; color:#ffffff;}
.extension-infobox-headertext{font-size:larger;color:#FFFFFF;}
.extension-infobox-description{font-weight:normal!important;text-align:left;background-color:#f1f3f9;padding:20px 10px 20px 10px!important;}
.extension-infobox-first-row{vertical-align:top;padding:20px 10px 0 10px;}
.extension-infobox-row{vertical-align:top;padding:0 10px;}
.extension-infobox-last-row{vertical-align:top;padding:0 10px 20px 10px;}
.extension-infobox-helppage{font-weight:normal;text-align:center;vertical-align:top;padding-left:10px;padding-top:10px;padding-bottom:10px;background-color:#eeeeee;}
.extension-infobox.fullwidth {width:100%; float:none;  font-size:1em; margin-left:0;}
.extension-infobox.fullwidth th {text-align:right; }
.extension-infobox-header, .extension-infobox-helppage {text-align:center !important; font-size:1.1em}
.extension-infobox.fullwidth th, .extension-infobox.fullwidth td {padding:8px;width:100px; border: 1px solid #ffffff;}
.extension-infobox.fullwidth td {width:300px; }
.extension-infobox-helppage { background-color: #eaecf0;}
#content #bodyContent #importdata h3 {margin:1em 0 1.4em;}
#importdata .flexbox {justify-content: space-between; margin-top: 2em;}
#mw-content-text #importdata .flexbox h3, [class^="mw-content-"] #importdata .flexbox h3 {background:#d8d8d9; margin:0 0  12px 0; padding:8px; font-size:1em !important; font-weight:bold}
#importdata .mw ul, .bs ul {margin:0}
#importdata .mw li {margin-left:0;list-style-type:none; padding-left:30px; background:  no-repeat left 1px top 3px / 18px url('/w/nsfr_img_auth.php/c/c6/MediaWiki-2020-small-icon.svg');}
#importdata .bs li {margin-left:0;list-style-type:none; padding-left:30px; background:  no-repeat left 2px top 4px / 15px url('/w/nsfr_img_auth.php/c/c4/Bluespice_Icon.svg');}
#importdata .flexbox div {background:#f1f3f9; text-align:left; margin:0; flex-basis:33%; padding:0}
#importdata table.wikitable > tr > th, #importdata table.wikitable > * > tr > th,  table.wikitable.reference > tr > th, .importdata .wikitable.reference > * > tr > th {background-color: #eaecf0;text-align: left;padding:8px; border: 1px solid #ffffff}
#importdata  table.wikitable > tr > td, #importdata  table.wikitable > * > tr > td, #importdata  table.wikitable.reference > tr > td, #importdata  table.wikitable.reference > * > tr > td {padding:8px;  border: 1px solid #ffffff;}
#importdata div .inner {padding:8px 12px}
#importdata .bs p {font-size: 0.9rem; margin-left: 2.1em; display:list-item;}


[[File:BlueSpiceHideTitle-pageapproval.png|thumb|center|550x550px|All actions menu with approval link highlighted]]
{{Box Links-en
|Topic1=[[Manual:Quality_management|Quality management tools]]
|Topic2=[[Reference:FlaggedRevs]]
|Topic3=[[Reference:BlueSpiceFlaggedRevsConnector]]|Topic4=[[Manual:Semantic MediaWiki]]}}
{{translation}}


/*404 system message badaccess-groups*/
<references />
#system404-error {text-align:center;}
[[Category:Quality]]
#system404-error div.floatnone a.image img {padding:0; margin:0;}
#system404-error hr {
    margin-top: 0px;
    margin-bottom: 2rem;
    border: 0;
    max-width: 600px;
    border-top: 3px dotted #ddd;
}
 
 
 
#content .toc li {margin-bottom: 0.1em;}
 
/* Icon in boxes on reference pages */
.questionmark-icon::before {
  content: '\f059';
  font-family: 'fontawesome';
  color:#6f6969;
  vertical-align: -0.1em;
}
 
/*revert font size in Quick Search - original title info should be smaller */
.bs-extendedsearch-autocomplete-popup .bs-extendedsearch-autocomplete-popup-primary {
    font-size: 0.95rem;}
.bs-extendedsearch-result-original-title label {font-size:0.8rem;}
 
 
/*Accessibility form*/
div[data-form="Pagedraft:AccessibilityReport"] .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {width:12em !important;  text-align:right; padding-right:0 !important; border-bottom:1px solid #d0cece}
 
div[data-form="Pagedraft:AccessibilityReport"] .oo-ui-fieldLayout-body >  .oo-ui-fieldLayout-field {width:40em !important}
 
 
 
/*Release notes TOC */
.page-Setup_Release_Notes .customtoc ul >  li.toclevel-1  {display:inline-block}
.page-Setup_Release_Notes .customtoc ul  ul {display:none}
.page-Setup_Release_Notes .customtoc  ul > li.toclevel-1:after {content:'|'; padding-left:10px}
.page-Setup_Release_Notes .customtoc .toc {width:100%;}
 
/*popImg template */
 
  div.tright { margin-left:0;}
.tippy-content-container .thumbinner a > img {width: 100%;}
 
/*Numbered and unordered lists*/
#mw-content-text ol ::marker {
    content: counters(list-item,'.')". ";
}
#mw-content-text ol li::before { 
    content:"\00a0\00a0"
 
}
#mw-content-text ol {
    margin-left:1.4em;
}
#mw-content-text ol ol {
    margin-left:2.6em;
}
/*Number footnotes separately */
#mw-content-text  .references ::marker {
    content: " ";
}
#mw-content-text  ol.references {
    counter-reset:ref; list-style-type:none;
}
#mw-content-text  ol.references li:before{
    counter-increment:ref;
    content:counter(ref) ". ";
    float: left;
    margin-right: 1em;
}
#mw-content-text  ol > li li {
    margin-left:-0.3em;
}
.tabs
{
 
    list-style-type: none;
    margin:0!important;
    border-bottom: 1px solid #e9e9ee;
}
 
    .tabs li
    {  display: inline-block;
        font-size: 1em;
        font-weight: bold;
        padding: 11px 20px;
        border-radius:4px 4px 0 0;
        border: 1px solid #e9e9ee;
        border-bottom:0;
        margin:0
   
    }
 
.tabs li:hover {background: #f2f3f9;}
 
.tabs li.current {background: #f2f3f9; border:none; padding: 10px 20px; }
.cards.startpages {gap:28px}
.cards.startpages div {width:350px;}
.cards.startpages .screenshot {width:100%; height:420px}
 
/*page forms*/
#pfForm .createboxInput,#pfForm input {width:auto;}
 
 
/*Quick Search */
 
.bs-extendedsearch-autocomplete-popup.compact .bs-extendedsearch-autocomplete-popup-primary {
    font-size: 1em;
    width: 100%;
    padding-bottom: 5px;
    text-align:left;
    overflow: hidden;
    border-bottom:10px solid #f1f3f9; border-top:0
}
.bs-extendedsearch-autocomplete-popup.compact .bs-extendedsearch-autocomplete-popup-primary .bs-extendedsearch-autocomplete-popup-primary-item  {
    padding: 6px;
    height: fit-content;
    max-height: unset!important;   
    background:#f1f3f9;
    margin:3px;
}
#bs-extendedsearch-box .bs-extendedsearch-autocomplete-popup .bs-extendedsearch-autocomplete-popup-primary .bs-extendedsearch-autocomplete-popup-primary-item .bs-extendedsearch-autocomplete-popup-primary-item-header {
    width: 100%;
    color:#444;
    font-size:1.1em;
}
.bs-extendedsearch-result-original-title {
    font-size:0.85em
}
 
 
/*temporary language switcher*/
.ddlistwrapper {display:inline-block; padding:8px 10px 4px 10px!important; text-align:right; background:#f1f3f9; vertical-align:middle; float:right}
.ddlist .dropdown-menu {left: 2px!important;}
 
/*table type Content*/
table.contenttable thead tr, table.contenttable th {
    background-color: #f1f3f9;
    border: 1px solid #d3d5da;
font-weight:400;
}
 
/*Glossar als Tabelle formatieren */
 
#glossar h2 {font-size:1.4em; margin:0}
#glossar dl {
  border: 1px solid #d8d8d9;
  display: grid;
  grid-template-columns: 200px 1fr;
}
 
#glossar dt,
#glossar dd {
  border-bottom: 1px solid #aeaeae;
  padding: 8px;
  margin:0;
}
 
#glossar dt:last-of-type,
#glossar dd:last-of-type {
  border-bottom: none;
}
 
#glossar dt{
  font-weight: bold;
}
 
#glossar dd {
  border-left: 1px solid #aeaeae;
  margin-left: 0;
}
 
/* TOC auf der Glossar-Seite als Sprunglinks anzeigen.*/
 
.page-Glossar .tocnumber {display:none} /*hide numbering if set*/
.page-Glossar .toctext {padding-left:10px;}  /*adds left-padding if no numbers are shown*/
.page-Glossar .toctitle {display:none} /*hide title if set*/
.page-Glossar #toc {background:#efefef}
.page-Glossar ul >  li.toclevel-1  {display:inline-block}
.page-Glossar  ul  ul {display:none}
.page-Glossar ul > li.toclevel-1:after {content:'|'; padding-left:10px}
.page-Glossar ul > li.toclevel-1:last-child:after {content:''; padding-left:10px}
.page-Glossar .toc {width:100%;}

Revision as of 14:50, 24 January 2024

ContentStabilization is available from BlueSpice 4.3. Up to version 4.2, approvals are handled by the extension FlaggedRevs.


The ContentStabilization extension is a MediaWiki extension that activates an approval mechanism. New versions of a page are initially marked as drafts. These remain in place until a user with approval rights reviews and approves the page.

Enable page approval

Drafts are activated via the namespace administration. A user with administrator rights checks whether Approval is enabled for a namespace. This is done under Global Actions > Administration > Namespaces.

Click the edit icon (wrench) in the Actions column. The namespace dialog opens. Select approval and click Done.

Namespace settings screen
Activated Approval feature for a namespace

Existing Pages

After Approval is activated for a namespace, all existing pages in the namespace appear in draft mode. The pages now show the status First draft.

First draft indicator in the title area
First draft


By default, the page status is displayed in the title area of every page with approval function .

Alternatively, the status info can be moved below the page content from the Config manager.

First drafts

When a new page is created and saved for the first time, it will appear as first draft. By default, first drafts are visible to all users with read permissions. However, this can be restricted to individual user groups from the Config manager.

Drafts

If a page is edited and saved multiple times in draft mode, each edit is logged in the page history:

Highlighted revisions in the page history
Drafts are shown in the revision history


Drafts are highlighted in color in the version history. In addition, they are marked with "Release pending".

Accepting a page

A user with reviewer permissions can approve the page from the status message in the title area of the page. The approval comment is logged in the page's version history.

approval feature in the title area
Approval from the title area

The new approval status is shown accordingly in the title area.

Approval status indication
Approved page status


Configuration

The following settings are made in the Config manager in combination with namespace settings.

Changes to templates, embedded files and transclusions

If a page uses templates or contains other files such as images and embedded PDFs, or if content from other pages is transcluded and modified after the page was approved, those changes must also be approved. There are two mechanisms to accomplish the approval:

  1. The embedded resource is in a namespace without approval mechanism: If the embedded resource is in a namespace without its own approval function, the approved version of the page shows the resource version that was embedded at the time of the page approval. An implicit draft version shows the most recent version of the embedded resource.
  2. The embedded resource is in a namespace with approval mechanism: The approval is done directly for the resource itself to avoid approval on all affected content pages.
Important!If the approval mechanism is activated in a resource namespace (e.g. Template, File) in retrospect, all existing pages are then in first draft. If the wiki is configured so that not all users can see drafts, the resources may need to be initially approved via server script if this cannot be accomplished manually.

About approvals via server script.
Setting Behaviour of the approved content page - No resource approval mechanism
Namespace settings dialog
Resource without approval feature
Behaviour of the approved content page - Approval mechanism via resource namespace
Namespace manager settings
Resource with approval feature
Approved version

(Default)

This setting has no effect if the resource itself has no approval mechanism.

Same behavior as "Time-bound version" (see below).

Resource display:
  • the approved version of the resource is shown.
    Approved page with currently approved version of the resource.
    The currently approved version of the resource is shown.

Resource approval:

  • takes place exclusively via the resource itself. The page contains no indication whether a draft version of the resource exists.
Time-bound version Resource display:
  • the embedded version at the time of approval is shown:
    screenshot of the approved page with the frozen resource
    Approved page version with the version of the resource that was valid at the time of page approval
  • an implicit draft with the latest version of the resource exists:
Page draft with preview of changed resource and resource change banner
Page draft due to change of embedded resource
Resource approval:
  • the implicit draft must be approved on the content page. If the resource is embedded/linked on multiple pages in the wiki, all pages must be approved separately.
Resource display:
  • the embedded version at the time of approval is shown:
    screenshot of the approved page with the frozen resource
    Approved page version with the version of the resource that was valid at the time of page approval
  • an implicit draft with the latest version of the resource exists:
    Page draft with preview of changed resource and resource change banner
    Page draft due to change of embedded resource

Resource approval:

  • Case A: the implicit draft can be approved on the content page. If the resource is embedded on multiple pages in the wiki, all pages must be released separately.
  • Case B (expected case): when the resource itself is approved, the implicit draft is removed from all affected content pages. These no longer have to be approved separately.
Current version Resource display:
  • the current version of the resource is shown:
Approved page with approved status
Approved page with the current version of the resource
Resource approval:
  • the resource itself cannot be approved
Resource display:
  • the current version of the resource is shown:
Approved page with approved status
Approved page with the current version of the resource
Resource approval:
  • The approval status of the resource has no effect on the page and should therefore not be used in combination with an activated approval mechanism in the resource namespace.

Reading permissions for drafts

By default, all users can see a page's drafts, including users with only read permissions.

To hide drafts from users, the user group must be removed from the configuration. This setting then applies to the entire wiki and cannot be further restricted to specific namespaces.

An administrator changes the groups that can see drafts in the Show draft versions for the following groups box.

Warning!If the group user is off is removed from the configuration, users in this group cannot see draft versions even if they are assigned a workflow task.

After removing the group user, the desired group(s ), e.g. B. the group editor, can be added to the configuration and saved.

Note:If no user groups are specified in the configuration field, even users with share rights and sysop users will not see a visual status indicator of the page. Instead, you have access to drafts through the page's history.


In order for administrators to see the status directly on the page, they must be added to a group listed here in the configuration.

Read permissions for first drafts

By default, first drafts are visible to all users who have read permissions in a namespace. However, if first drafts are only visible to those users who can generally view page drafts, this can be done in the configuration management by selecting Allow viewing of first draft version for users who can normally not see drafts to be disabled.

Summary: Read Permissions for Draft Pages

Define groups:

  • Group user: Only the user groups that have been given this right in the configuration management can see first drafts and other drafts. By default, this is the user group (=all users who are logged into the wiki and have the appropriate reading rights in a namespace).
  • Adjust groups: In the configuration management, the reading rights for (first) drafts can be restricted to other groups.
  • Group sysop: Users in group sysop can always view drafts through the history. The sysop group can therefore not be set explicitly in the configuration. If sysop users can directly see the approval status on the page, they need to be added to a group with read permissions for drafts.

Export draft pages:

  • Single page export: Users with reading rights on a draft page can print it directly as a PDF.
  • Book export: Only approved pages are exported. If there is only a first draft of a page, it will be exported. Exception: If the book is printed by a user who does not have access to the first draft, the first draft will not be printed out in the book. Instead, the PDF shows the following message:
    Error message in the PDF
    Permissions error PDF export


Effects on Semantic MediaWiki properties

If a namespace has SemanticMediaWiki Semantic MediaWiki activated, the following SMW queries are available depending on the approval status of the page:

Document state Available properties
First draft Current values
Approved Values of the approved (stable) version
Draft Values of the approved (stable) version (default setting)
Implicit draft[1] Values of the approved (stable) version

The availability of the semantic properties is determined by the following configuration setting:

$bsgFlaggedRevsConnectorStabilizeSMWPropertyValues = true;

The value for this setting can be set to false in the LocalSettings.php of the server file system. If set to false, the property values of the draft version are used for semantic queries instead of the values for the stable version.

Quality management overview

The Special page Special:Quality_management_overview allows all users with reviewer permissions to view and filter a list of wiki pages and their review status. Pages for which a user does not have read permissions are not shown.

Special page "Quality management overview"

Approving a page when the title area is hidden

When the title area is hidden, you can approve the page from the ...all actions menu:

  1. Switch to the draft version of the page (this not necessary when the page is in First draft status).  v4.3.2+
    all actions dialog
    Switching to first draft url

    Before v.4.3.2, this switch-link is not available. In that case, go to the page history and click on the latest time stamp to switch to the draft version of the page.
    page history screenshot
    The latest time stamp in the page history links to the draft page.
  2. Approve the page via ...all actions -> Approve page .
All actions menu with approval link highlighted

Related info

  1. An approved page has an implicit draft, if there have been changes to embedded resources (e.g., a template or an image) since the last page approval.