We use cookies to ensure that we give you the best experience on our website. If you click 'Continue' we'll assume that you are happy to receive all cookies and you won't see this message again. Click 'Find out more' for information on how to change your cookie settings.
Preprint
29/05/2026
Long term follow-up, SARS-CoV-2, Randomized controlled trial, Primary Care, COVID-19
<rules xml:id="r0"> <notheme css:if-not-content="#visual-portal-wrapper" xml:id="r1"/> <theme href="++theme++bootstrap/themes/sublime/index.html" xml:id="r2"/> <rules css:if-content="#visual-portal-wrapper" xml:id="r3"> <rules xml:id="r4"> <!-- HTML header --> <!-- copy HTML and BODY attributes --> <copy attributes="*" css:theme="html" css:content="html" xml:id="r5"/> <copy attributes="*" css:theme="body" css:content="body" xml:id="r6"/> <!-- pull in Plone meta tags --> <before css:theme-children="head" css:content="meta:not([itemprop]):not([name='generator'])" xml:id="r7"/> <!-- replace title --> <replace css:theme="head title" css:content="head title" xml:id="r8"/> <!-- 1 haiku config --> <before css:theme="#bootstrap-barceloneta" css:content="head script[id='haiku-config']" xml:id="r9"/> <!-- 2 cover pages --> <before css:theme="#bootstrap-barceloneta" css:content="head link[href*='collective.cover']" xml:id="r10"/> <before css:theme="#bootstrap-barceloneta" css:content="head script[src*='collective.cover']" xml:id="r11"/> <!-- 3 registered resources --> <after css:theme="title" css:content="head link[href*='++webresource++']:not([href$='custom.css'])" xml:id="r12"/> <after css:theme="title" css:content="head script[src*='++webresource++']" xml:id="r13"/> <!-- 4 un-registered resources --> <after css:theme-children="head" css:content="head link:not([href*='++webresource++']):not(link[href*='collective.cover'])" xml:id="r14"/> <after css:theme-children="head" css:content="head style:not([id='global-extra-css'])" xml:id="r15"/> <after css:theme-children="head" css:content="head script:not([src*='++webresource++']):not(script[src*='collective.cover']):not([id='haiku-config'])" xml:id="r16"/> <!-- 5 theme custom --> <after css:theme-children="head" css:content="link[href$='custom.css']" xml:id="r17"/> <!-- 6 Haiku custom (JS is deployed a the bootom, see: page-bottom.xml) --> <after css:theme-children="head" css:content="style[id='global-extra-css']" xml:id="r18"/> </rules> <rules xml:id="r19"> <!-- edit bar rules copied from Barcelonetta theme --> <replace css:theme="#portal-toolbar" css:content="#edit-bar" css:if-not-content=".ajax_load" css:if-content=".userrole-authenticated" xml:id="r20"/> <drop css:theme="#portal-toolbar" css:if-content=".userrole-anonymous" xml:id="r21"/> <replace css:theme="#anonymous-actions" css:content-children="#portal-personaltools-wrapper" css:if-not-content=".ajax_load" css:if-content=".userrole-anonymous" xml:id="r22"/> <!-- Add label to History action link --> <replace css:content="#edit-bar a.nav-link:not(.dropdown-toggle)" xml:id="r23"> <a class="nav-link"> <xsl:copy-of select="@*"/> <xsl:attribute name="title"> <xsl:if test=".//time">History</xsl:if> <xsl:value-of select="normalize-space(./span/text())"/> </xsl:attribute> <xsl:apply-templates/> </a> </replace> <!-- Remove ID from 'Add new item...' links to not interfere with tabbed search tabs --> <replace css:content="#edit-bar li#plone-contentmenu-factories a.dropdown-item" xml:id="r24"> <a class="nav-link"> <xsl:copy-of select="@*[not(name()='id')]"/> <xsl:apply-templates/> </a> </replace> <!-- Add some margin to SVG icons --> <replace css:content="#edit-bar svg" xml:id="r25"> <svg> <xsl:copy-of select="@*"/> <xsl:attribute name="class"> <xsl:value-of select="concat(@class,' me-1')"/> </xsl:attribute> <xsl:apply-templates/> </svg> </replace> </rules> <rules xml:id="r26"> <!-- site header with edit bar, logo and global nav --> <rules xml:id="r27"> <!-- haiku mmenu: http://mmenu.frebsite.nl --> <replace css:theme=".navbar-header button" css:if-content="#haiku-mmenu" xml:id="r28"> <a href="#mmenu" class="navbar-toggle btn btn-default btn-block"> <span>Menu</span> </a> </replace> </rules> <rules xml:id="r29"> <!-- parent site navigation --> <replace css:content="#site-parent__header" css:theme="#site-parent__header" xml:id="r30"/> </rules> <rules xml:id="r31"> <!-- replaces primary site logo --> <replace css:content="#primary-logo" css:theme="#site-logo" xml:id="r32"/> <replace css:content-children="#secondary-logo" css:theme="#secondary-logo" xml:id="r33"/> </rules> <rules xml:id="r34"> <copy css:content="div#portal-searchbox form" css:theme="div#site-header form#site-search" attributes="action" xml:id="r35"/> </rules> <rules xml:id="r36"> <!-- site actions container e.g., 'Add new...', 'Display' etc.. --> <replace css:content="#site-actions" css:theme="#site-actions" xml:id="r37"/> </rules> <rules xml:id="r38"> <!-- global navigation --> <replace css:content="#site-bar" css:theme="#site-bar" xml:id="r39"/> </rules> </rules> <rules xml:id="r40"> <append css:theme="#site-messages" css:content-children="#global_statusmessage" xml:id="r41"/> <append css:theme="#site-messages" css:content="#haiku-notifications" xml:id="r42"/> <append css:theme="#site-messages" css:content="#plone-lock-status" xml:id="r43"/> <!-- old Plone alerts --> <replace content="dl[contains(@class, 'portalMessage')]" xml:id="r44"> <div> <xsl:attribute name="class"> <xsl:choose> <xsl:when test="self::node()[contains(@class, 'info')]">alert alert-info</xsl:when> <xsl:when test="self::node()[contains(@class, 'error')]">alert alert-danger</xsl:when> <xsl:when test="self::node()[contains(@class, 'success')]">alert alert-success</xsl:when> <xsl:otherwise>alert alert-warning</xsl:otherwise> </xsl:choose> </xsl:attribute> <xsl:attribute name="id"> <xsl:value-of select="@id"/> </xsl:attribute> <strong> <xsl:apply-templates select="dt/text()"/> <xsl:text> </xsl:text> </strong> <xsl:for-each select="dd"> <xsl:apply-templates/> </xsl:for-each> </div> </replace> </rules> <rules xml:id="r45"> <!-- Site wide breadcrumbs (below main navigation) --> <replace css:theme="#site-breadcrumbs" css:content="#portal-breadcrumbs" xml:id="r46"/> <drop css:theme="#site-breadcrumbs" css:if-not-content="#portal-breadcrumbs" xml:id="r47"/> <replace content="//*[@id='portal-breadcrumbs']" xml:id="r48"> <xsl:variable name="crumbs" select="//*[@id='portal-breadcrumbs']//ol/li"/> <xsl:if test="count($crumbs) > 1"> <ol class="breadcrumb" id="site-breadcrumbs"> <xsl:for-each css:select="#portal-breadcrumbs ol > li"> <xsl:if test="position()=1"> <li class="breadcrumb-item"> <a title="Home"> <xsl:attribute name="href"><xsl:value-of select="a/@href"/></xsl:attribute> <svg width="16" height="16" fill="currentColor" class="bi bi-house-door-fill" viewBox="0 0 16 16"> <path d="M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5"/> </svg> </a> </li> </xsl:if> <xsl:if test="position()>1"> <li class="breadcrumb-item"> <xsl:if test="position()=last()"> <xsl:attribute name="class">active breadcrumb-item</xsl:attribute> <xsl:attribute name="aria-current">page</xsl:attribute> </xsl:if> <xsl:apply-templates select="./a|text()"/> </li> </xsl:if> </xsl:for-each> </ol> </xsl:if> </replace> </rules> <rules xml:id="r49"> <!-- hero unit --> <before css:theme="#content" css:content-children="#hero-wrapper" mode="raw" xml:id="r50"/> <drop css:content="#content #hero-wrapper" xml:id="r51"/> <!-- elements inside page content area --> <replace css:content-children="#portal-column-content" css:theme-children="#content" css:if-content="#portal-column-content" xml:id="r52"/> <merge attributes="class" css:content="#portal-column-content" css:theme="#content" xml:id="r53"/> <rules xml:id="r54"> <!-- page header --> <replace content="//div[not(contains(@class, 'modal-body'))]//h1[contains(@class, 'documentFirstHeading')]" xml:id="r55"> <div class="row"> <div class="col-md-12"> <div class="page-header"> <h1> <xsl:apply-templates/> </h1> </div> </div> </div> </replace> </rules> <rules xml:id="r56"> <!-- page description --> <replace content="//*[contains(@class, 'documentDescription')]" xml:id="r57"> <p class="lead"> <xsl:copy-of select="node()"/> </p> </replace> </rules> <rules xml:id="r58"> <!-- remove #content ID duplicates --> <replace content="//*[@id='content']" xml:id="r59"> <div class="row"> <div class="col-md-12"> <xsl:apply-templates/> </div> </div> </replace> </rules> <rules xml:id="r60"> <!-- remove Manage Portlets action --> <drop css:content=".managePortlets-row" xml:id="r61"/> </rules> <rules xml:id="r62"> <!-- TinyMCE images --> <!-- Updated resolveuid filter instead <replace content="//div[contains(@class, 'rich-text')]//img"> <span class="figure {@class}"> <xsl:attribute name="style">width:<xsl:value-of select="@*[name()='width']" />px;</xsl:attribute> <img> <xsl:copy-of select="@*[not(name()='height' or name()='width' or name()='class')]" /> </img> <xsl:if test="@data-copyright"> <small> <xsl:attribute name="class"> <xsl:value-of select="@data-copyright-style" /> </xsl:attribute> <xsl:text disable-output-escaping="yes"><![CDATA[©]]> </xsl:text> <xsl:value-of select="@data-copyright" /> </small> </xsl:if> <xsl:if test=".//figcaption"> <span class="image-caption"> <strong><xsl:copy-of select=".//figcaption/node()" /></strong> </span> </xsl:if> </span> </replace>--> </rules> <!-- TODO review <xi:include href="/++theme++bootstrap/rules/components/typography.xml" /> --> <rules xml:id="r63"> <!-- labels for workflow states --> <replace content="span[contains(@class, 'state-')]" xml:id="r64"> <span> <xsl:attribute name="class">label label-state-<xsl:value-of select="substring-after(@class,'state-')"/></xsl:attribute> <xsl:copy-of select="text()"/> </span> </replace> </rules> <rules xml:id="r65"> <!-- Page information viewlet including modified date, page author and link to page history view --> <replace content="//*[@id='section-byline']" xml:id="r66"/> </rules> <rules xml:id="r67"> <!-- Keywords viewlet for content items, showing tags --> <replace content="//*[@id='section-category']" xml:id="r68"/> </rules> <!-- TODO review <xi:include href="/++theme++bootstrap/rules/components/commenting.xml" /> --> <!-- analytics body part (haiku.analytics) --> <before css:theme-children="body" css:content-children="#haiku-analytics-body" xml:id="r69"/> </rules> <rules xml:id="r70"> <!-- site footer --> <replace css:content="#site-footer" css:theme="#site-footer" xml:id="r71"/> </rules> <rules xml:id="r72"> <!-- elements just before body tag closing --> <!-- site bottom actions e.g., Google Analytics --> <after theme-children="/html/body" css:content="#site-bottom" xml:id="r73"/> <!-- haiku mmenu: http://mmenu.frebsite.nl --> <after theme-children="/html/body" css:content="#haiku-mmenu" xml:id="r74"/> <!-- google analytics --> <after theme-children="/html/body" css:content-children="#google-analytics" xml:id="r75"/> <!-- social sharing --> <after theme-children="/html/body" css:content-children="#social-sharing-code" xml:id="r76"/> <!-- haiku feedback tab --> <after theme-children="/html/body" css:content="#haiku-feedback-tab" xml:id="r77"/> <!-- bottom js customizations --> <after theme-children="/html/body" css:content-children="#bottom-js" xml:id="r78"/> <!-- extra resources js --> <after theme-children="/html/body" css:content-children="#extra-resources-js" xml:id="r79"/> <!-- cookielaw js --> <after theme-children="/html/body" css:content-children="#cookielaw-deleter" xml:id="r80"/> </rules> <rules xml:id="r81"> <!-- form elements --> <rules xml:id="r82"> <!-- ********** General ********** --> <!-- SUCCESS --> <!-- Add/Apply/Approve/Comment/Done/Enable/Export/Import/Install/Log in/Modify/Publish/Reply/Save/Send/Upload --> <replace content="button[@value='Add' or @value='Apply' or @value='Approve' or @value='Comment' or @value='Done' or @value='Enable' or @value='Export' or @value='Import' or @value='Install' or @value='Log in' or @value='Modify' or @value='Publish' or @value='Rename' or @value='Reply' or @value='Save' or @value='Send' or @value='Upload']" xml:id="r83"> <button class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="button[text()='Add' or text()='Apply' or text()='Approve' or text()='Comment' or text()='Done' or text()='Enable' or text()='Export' or text()='Import' or text()='Install' or text()='Log in' or text()='Modify' or text()='Publish' or text()='Rename' or text()='Reply' or text()='Save' or text()='Send' or text()='Upload']" xml:id="r84"> <button class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="input[@value='Add' or @value='Apply' or @value='Approve' or @value='Comment' or @value='Done' or @value='Export' or @value='Enable' or @value='Import' or @value='Install' or @value='Log in' or @value='Modify' or @value='Publish' or @value='Rename' or @value='Reply' or @value='Save' or @value='Send' or @value='Upload']" xml:id="r85"> <input class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> </input> <xsl:text> </xsl:text> </replace> <!-- Easy Forms --> <replace css:content=".easyformForm .formControls #form-buttons-submit" xml:id="r86"> <button class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace css:content=".easyformForm .formControls #form-buttons-reset" xml:id="r87"> <button class="btn btn-warning"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- INFO --> <!-- Edit/Filter/Install--> <replace content="button[@value='Edit' or @value='Filter']" xml:id="r88"> <button class="btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="button[text()='Edit' or text()='Filter']" xml:id="r89"> <button class="btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="input[@value='Edit' or @value='Filter']" xml:id="r90"> <input class="btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> </input> <xsl:text> </xsl:text> </replace> <!-- WARNING --> <!-- Cancel/Disable--> <replace content="button[@value='Cancel' or @value='Disable']" xml:id="r91"> <button class="btn btn-warning"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="button[text()='Cancel' or text()='Disable']" xml:id="r92"> <button class="btn btn-warning"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="input[@value='Cancel' or @value='Disable']" xml:id="r93"> <input class="btn btn-warning"> <xsl:copy-of select="@*[not(name()='class')]"/> </input> <xsl:text> </xsl:text> </replace> <!-- DANGER --> <!-- Delete/Remove --> <replace content="button[@value='Delete' or @value='Remove']" xml:id="r94"> <button class="btn btn-danger"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="button[text()='Delete' or text()='Remove']" xml:id="r95"> <button class="btn btn-danger"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="input[@value='Delete' or @value='Remove']" xml:id="r96"> <input class="btn btn-danger"> <xsl:copy-of select="@*[not(name()='class')]"/> </input> <xsl:text> </xsl:text> </replace> <!-- ********** UI elements ********** --> <!-- Edit bar -> Rules /@@manage-content-rules --> <replace content="//body[contains(@class, 'template-manage-content-rules')]//button[@name='form.button.NoBubble']" xml:id="r97"> <button class="btn btn-warning"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'template-manage-content-rules')]//button[@name='form.button.Bubble']" xml:id="r98"> <button class="btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Edit bar -> Rules RULE/@@manage-elements --> <replace content="//body[contains(@class, 'template-manage-elements')]//a[@class='pat-plone-modal btn btn-sm btn-primary']" xml:id="r99"> <a class="pat-plone-modal btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </a> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'template-manage-elements')]//button[@class='context btn btn-sm btn-primary']" xml:id="r100"> <button class="context btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Edit bar -> Notifications /@@manage_haiku_context_notifications --> <replace content="//body[contains(@class, 'template-manage_haiku_context_notifications')]//a[@class='btn btn-info btn-sm pat-plone-modal']" xml:id="r101"> <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy> </replace> <replace content="//body[contains(@class, 'template-manage_haiku_context_notifications')]//button[@value='delete']" xml:id="r102"> <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy> </replace> <!-- ********** Control Panel ********** --> <!-- Site setup -> Portal actions /@@actions-controlpanel --> <replace content="//body[contains(@class, 'template-actions-controlpanel')]//a[@class='pat-plone-modal btn btn-sm btn-primary standalone']" xml:id="r103"> <a class="pat-plone-modal btn btn-info standalone"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </a> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Add-ons /prefs_install_products_form --> <replace content="//body[contains(@class, 'template-prefs_install_products_form')]//button[@value='Install']" xml:id="r104"> <button class="btn btn-sm btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Mail Settings /@@mail-controlpanel --> <replace content="//body[contains(@class, 'template-mail-controlpanel')]//button[@value='Save and send test e-mail']" xml:id="r105"> <button class="btn btn-info submit-widget button-field"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Content Rules /@@rules-controlpanel --> <replace content="//body[contains(@class, 'template-rules-controlpanel')]//a[@class='btn btn-sm btn-primary']" xml:id="r106"> <a class="btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </a> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'template-rules-controlpanel')]//a[@class='btn btn-sm btn-secondary']" xml:id="r107"> <a class="btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </a> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Content Types /@@dexterity-types --> <replace content="//body[contains(@class, 'section-dexterity-types')]//button[@class='btn btn-primary']" xml:id="r108"> <button class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'section-dexterity-types')]//button[@value='Clone']" xml:id="r109"> <button class="btn btn-info submit-widget button-field"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Inspect relations /@@inspect-relations --> <replace content="//body[contains(@class, 'template-inspect-relations')]//button[text()='Inspect']" xml:id="r110"> <button class="context btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Groups /@@usergroup-groupprefs --> <replace content="//body[contains(@class, 'template-usergroup-groupprefs')]//a[@id='add-group']" xml:id="r111"> <a class="pat-plone-modal btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </a> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'template-usergroup-groupprefs')]//button[@name='form.button.Search']" xml:id="r112"> <button class="btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'template-usergroup-groupprefs')]//button[@name='form.button.FindAll']" xml:id="r113"> <button class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Group: XXX @@usergroup-groupmembership?groupname=XXX --> <replace content="//body[contains(@class, 'template-usergroup-groupmembership')]//button[@name='form.button.Search']" xml:id="r114"> <button class="btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'template-usergroup-groupmembership')]//button[@name='form.button.FindAll']" xml:id="r115"> <button class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Groups /@@usergroup-groupprefs --> <replace content="//body[contains(@class, 'template-usergroup-userprefs')]//a[@id='add-user']" xml:id="r116"> <a class="pat-plone-modal btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </a> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'template-usergroup-userprefs')]//button[@name='form.button.Search']" xml:id="r117"> <button class="btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'template-usergroup-userprefs')]//button[@name='form.button.FindAll']" xml:id="r118"> <button class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Import caching profiles /@@caching-controlpanel-import --> <replace content="//body[contains(@class, 'template-caching-controlpanel-import')]//button[text()='Import']" xml:id="r119"> <button class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Purge caching proxy /@@caching-controlpanel-purge --> <replace content="//body[contains(@class, 'template-caching-controlpanel-purge')]//button[text()='Purge']" xml:id="r120"> <button class="btn btn-warning"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Site setup -> RAM cache statistics /@@caching-controlpanel-ramcache --> <replace content="//body[contains(@class, 'template-caching-controlpanel-ramcache')]//button[text()='Purge']" xml:id="r121"> <button class="btn btn-warning"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- Site setup -> Configuration Registry /portal_registry --> <replace content="//body[contains(@class, 'section-portal_registry')]//div[@class='input-group-append']" xml:id="r122"> <xsl:apply-templates/> </replace> <replace content="//body[contains(@class, 'section-portal_registry')]//button[text()='Clear filter']" xml:id="r123"> <button class="btn btn-warning"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'section-portal_registry')]//button[text()='Export Now']" xml:id="r124"> <button class="btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'section-portal_registry')]//button[text()='Import File']" xml:id="r125"> <button class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <replace content="//body[contains(@class, 'section-portal_registry')]//button[text()='Add field']" xml:id="r126"> <button class="btn btn-success"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </button> <xsl:text> </xsl:text> </replace> <!-- exclude tabs from transformation --> <replace content="button[@role='tab']" xml:id="r127"> <button> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </button> </replace> </rules> <rules xml:id="r128"> <!-- Add Bootstrap 5 'is-invalid' validation CSS class and attribute 'aria-labelledby' for screen readers to inputs --> <replace content="div[contains(@class, 'error')]//input" xml:id="r129"> <input> <xsl:copy-of select="@*"/> <xsl:attribute name="class"> <xsl:value-of select="concat(@class,' is-invalid')"/> </xsl:attribute> <xsl:attribute name="aria-labelledby"> <xsl:value-of select="concat(@id, '-error')"/> </xsl:attribute> <xsl:apply-templates/> </input> </replace> <replace content="div[contains(@class, 'error')]//div[@class='invalid-feedback']" xml:id="r130"> <xsl:variable name="prev" select="preceding-sibling::input[1]"/> <div> <xsl:copy-of select="@*"/> <xsl:if test="$prev"> <xsl:attribute name="id"> <xsl:value-of select="concat($prev/@id, '-error')"/> </xsl:attribute> </xsl:if> <xsl:apply-templates/> </div> </replace> </rules> <!-- remove HTML5 required --> <replace content="select" xml:id="r131"> <select> <xsl:copy-of select="@*[not(name()='required')]"/> <xsl:apply-templates/> </select> </replace> <replace content="textarea[@id='form-widgets-comment-text']" xml:id="r132"> <textarea> <xsl:copy-of select="@*[not(name()='required')]"/> <xsl:apply-templates/> </textarea> </replace> <!-- remove autofocus from commenting form--> <replace content="div[@id='commenting']//form" xml:id="r133"> <form class="rowlike pat-formunloadalert pat-validation"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:apply-templates/> </form> </replace> </rules> <rules xml:id="r134"> <rules xml:id="r135"> <before css:content="div#cookienotification" theme-children="/html/body" xml:id="r136"/> </rules> <rules xml:id="r137"> <!-- cover pages --> <replace css:content=".cover-fluid > .row" xml:id="r138"> <div> <xsl:copy-of select="@*"/> <div class="row-content"> <xsl:apply-templates/> </div> </div> </replace> <replace css:content="body.template-layoutedit #tile-configure" xml:id="r139"> <!-- drop 'hide' class from the div --> <div id="tile-configure" class="modal"/> </replace> <replace css:content="body.template-layoutedit #export-layout" xml:id="r140"> <!-- drop 'hide' class from the div --> <div id="export-layout" class="modal"><xsl:apply-templates/></div> </replace> <replace css:content="body.template-compose #internalpath" xml:id="r141"> <!-- originally contains .formHelp but that's replaced by .help-block in widgets.xml and id attribute is removed. We need it to make javascript work --> <div id="internalpath"/> </replace> <replace css:content="body.template-compose #internalpath" xml:id="r142"> <!-- originally contains .formHelp but that's replaced by .help-block in widgets.xml and id attribute is removed. We need it to make javascript work --> <div id="internalpath"/> </replace> <replace css:content="a.edit-tile-link" xml:id="r143"> <a class="{@class} btn btn-info"> <xsl:copy-of select="@*[not(name()='class')]"/> <xsl:value-of select="text()"/> </a> </replace> <replace css:content="body.template-haiku-coverpage div#formfield-form-widgets-template_layout" xml:id="r144"> <div class="form-group" id="{@id}"> <xsl:apply-templates/> </div> </replace> </rules> <rules xml:id="r145"> <!-- social sharing buttons --> <after css:theme="#site-actions" css:content="#portal-header .social-following" xml:id="r146"/> <after css:theme="#site-footer" css:content="#portal-footer .social-following" xml:id="r147"/> </rules> <!-- TODO review <xi:include href="/++theme++bootstrap/rules/components/cover-page.xml" /> --> </rules> </rules> </rules>