Changes for page xwiki-upgrades

Last modified by Alex Cotiugă on 2026/05/12 12:41

From version 1.1
edited by Alex Cotiugă
on 2026/05/01 12:00
Change comment: There is no comment for this version
To version 1.8
edited by Alex Cotiugă
on 2026/05/01 12:24
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,0 +1,110 @@
1 +{{velocity}}
2 +#set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 +{{html clean="false"}}
4 +
5 + ## COMPACT SERVICE HEADER
6 + <section class="service-header" aria-labelledby="hero-title">
7 + <div class="container service-header-grid">
8 + <div class="service-header-main">
9 + <p class="eyebrow">XWiki service</p>
10 + <h1 id="hero-title">XWiki Upgrades</h1>
11 + <p class="lead-left">
12 + Safe, planned upgrades for production XWiki instances, with compatibility checks,
13 + rollback planning, and post-upgrade validation.
14 + </p>
15 + <ul class="inline-benefits">
16 + <li>Latest LTS</li>
17 + <li>Security fixes</li>
18 + <li>Extension checks</li>
19 + <li>Minimal downtime</li>
20 + </ul>
21 + </div>
22 +
23 + <aside class="service-aside">
24 + <h3>Need an upgrade assessment?</h3>
25 + <p>
26 + Send your current XWiki version and a short description of your setup.
27 + Agnease will recommend the target version, estimated effort, and key risks to review.
28 + </p>
29 + <a class="service-cta" href="mailto:alex@agnease.com?subject=XWiki%20Upgrade%20Assessment">
30 + Request an assessment
31 + </a>
32 + </aside>
33 + </div>
34 + </section>
35 +
36 + ## VALUE CARDS
37 + #set ($upgradeCards = [{
38 + 'title': 'Stay secure',
39 + 'icon': 'shield',
40 + 'content': 'Reduce exposure to known vulnerabilities fixed in newer XWiki versions.'
41 + },{
42 + 'title': 'Upgrade safely',
43 + 'icon': 'refresh',
44 + 'content': 'Plan the upgrade with backups, validation, rollback options, and minimal downtime.'
45 + },{
46 + 'title': 'Avoid surprises',
47 + 'icon': 'puzzle-piece',
48 + 'content': 'Review extensions, custom code, authentication, PDF export, and infrastructure before production.'
49 + }])
50 +
51 + <section class="compact-section" aria-labelledby="why-title">
52 + <div class="container">
53 + <h2 id="why-title">Keep your XWiki platform current and reliable</h2>
54 + <div class="widgets compact-widgets">
55 + #foreach ($entry in $upgradeCards)
56 + <article class="widget">
57 + <div class="icon" aria-hidden="true">
58 + <i class="fa fa-$entry.icon"></i>
59 + <h4>$entry.title</h4>
60 + </div>
61 + <p>$entry.content</p>
62 + </article>
63 + #end
64 + </div>
65 + </div>
66 + </section>
67 +
68 + ## TWO COLUMN SUMMARY
69 + <section class="services compact-section" aria-labelledby="summary-title">
70 + <div class="container">
71 + <h2 id="summary-title">Upgrade support for real XWiki environments</h2>
72 +
73 + <div class="services-grid compact-grid">
74 + <article class="service">
75 + <div class="service-icon">
76 + <i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
77 + </div>
78 + <div class="service-body">
79 + <h4>When to consider an upgrade</h4>
80 + <ul>
81 + <li>Your instance is not on the latest suitable LTS version</li>
82 + <li>Your current version is more than one year old</li>
83 + <li>You use custom extensions, scripts, or workflows</li>
84 + <li>You rely on LDAP, SSO, OIDC, SAML, or MFA</li>
85 + <li>You want to reduce security and maintenance risk</li>
86 + </ul>
87 + </div>
88 + </article>
89 +
90 + <article class="service">
91 + <div class="service-icon">
92 + <i class="fa fa-check-square-o" aria-hidden="true"></i>
93 + </div>
94 + <div class="service-body">
95 + <h4>What Agnease handles</h4>
96 + <ul>
97 + <li>Current version and environment review</li>
98 + <li>Recommended target version</li>
99 + <li>Extension and customization checks</li>
100 + <li>Backup, staging, and rollback planning</li>
101 + <li>Production upgrade and post-upgrade validation</li>
102 + </ul>
103 + </div>
104 + </article>
105 + </div>
106 + </div>
107 + </section>
108 +
109 +{{/html}}
110 +{{/velocity}}
XWiki.StyleSheetExtension[0]
cache
... ... @@ -1,0 +1,1 @@
1 +long
code
... ... @@ -1,0 +1,112 @@
1 +/* ===== Service inner page header ===== */
2 +
3 +.service-header {
4 + padding: 28px 0;
5 + border-top: none;
6 + background:
7 + radial-gradient(42rem 12rem at 50% -20%, #E7FFF8 0%, transparent 65%);
8 +}
9 +
10 +.service-header-grid {
11 + display: grid;
12 + grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.8fr);
13 + gap: 32px;
14 + align-items: center;
15 +}
16 +
17 +.service-header-main {
18 + h1 {
19 + margin: 0 0 8px;
20 + font-size: 34px;
21 + line-height: 1.15;
22 + color: @text;
23 + }
24 +}
25 +
26 +.eyebrow {
27 + margin: 0 0 6px;
28 + color: @brand;
29 + font-size: 13px;
30 + font-weight: 700;
31 + text-transform: uppercase;
32 + letter-spacing: .04em;
33 +}
34 +
35 +.lead-left {
36 + margin: 0 0 12px;
37 + color: @muted;
38 + font-size: 18px;
39 + line-height: 1.45;
40 + max-width: 720px;
41 +}
42 +
43 +.inline-benefits {
44 + display: flex;
45 + flex-wrap: wrap;
46 + gap: 8px;
47 + list-style: none;
48 + padding: 0;
49 + margin: 0;
50 +
51 + li {
52 + color: @muted;
53 + font-size: 13px;
54 + background: fade(@brand, 8%);
55 + border: 1px solid fade(@brand, 18%);
56 + border-radius: 999px;
57 + padding: 4px 9px;
58 + }
59 +}
60 +
61 +.service-aside {
62 + background: #fff;
63 + border: 1px solid @line;
64 + border-radius: @radius;
65 + box-shadow: @shadow-sm;
66 + padding: 18px;
67 +
68 + h3 {
69 + margin: 0 0 8px;
70 + color: @text;
71 + font-size: 18px;
72 + }
73 +
74 + p {
75 + margin: 0 0 12px;
76 + color: @muted;
77 + line-height: 1.45;
78 + font-size: 14px;
79 + }
80 +}
81 +
82 +.service-cta {
83 + display: inline-block;
84 + color: #fff;
85 + background: @brand;
86 + border-radius: 8px;
87 + padding: 8px 12px;
88 + font-weight: 700;
89 + text-decoration: none;
90 +
91 + &:hover,
92 + &:focus {
93 + color: #fff;
94 + background: @brand-strong;
95 + text-decoration: none;
96 + }
97 +}
98 +
99 +@media (max-width: 767px) {
100 + .service-header-grid {
101 + grid-template-columns: 1fr;
102 + gap: 18px;
103 + }
104 +
105 + .service-header-main h1 {
106 + font-size: 28px;
107 + }
108 +
109 + .lead-left {
110 + font-size: 16px;
111 + }
112 +}
use
... ... @@ -1,0 +1,1 @@
1 +currentPage