Wiki source code of Public Web Site
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
1.2 | 1 | {{velocity}} |
| |
3.5 | 2 | #macro (displayPublicContent) |
| |
3.4 | 3 | #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) |
| 4 | {{html clean="false"}} | ||
| |
6.27 | 5 | |
| |
5.1 | 6 | <section class="hero hero-centered" aria-labelledby="hero-title"> |
| 7 | <div class="container hero-inner"> | ||
| |
12.25 | 8 | <h1 id="hero-title">Professional XWiki consulting and engineering</h1> |
| |
6.27 | 9 | |
| 10 | <p class="lead"> | ||
| |
12.20 | 11 | Agnease helps organizations upgrade, maintain, secure and extend production XWiki platforms with practical |
| 12 | engineering support, custom development, integrations and long-term care. | ||
| |
6.27 | 13 | </p> |
| 14 | |||
| |
3.89 | 15 | <ul class="benefits"> |
| |
12.20 | 16 | <li>XWiki LTS upgrades</li> |
| 17 | <li>Maintenance and support</li> | ||
| 18 | <li>Custom XWiki development</li> | ||
| 19 | <li>Migrations and integrations</li> | ||
| |
3.89 | 20 | </ul> |
| |
6.27 | 21 | |
| 22 | <div class="hero-actions"> | ||
| 23 | <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a consultation</a> | ||
| 24 | <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a> | ||
| |
3.4 | 25 | </div> |
| |
1.2 | 26 | </div> |
| |
3.4 | 27 | </section> |
| |
6.27 | 28 | |
| 29 | <section class="trust-strip" aria-label="Agnease experience"> | ||
| |
3.4 | 30 | <div class="container"> |
| |
6.27 | 31 | <ul> |
| 32 | <li><i class="fa fa-check-circle" aria-hidden="true"></i> 11+ years of XWiki experience</li> | ||
| 33 | <li><i class="fa fa-check-circle" aria-hidden="true"></i> Upgrades, support and custom development</li> | ||
| 34 | <li><i class="fa fa-check-circle" aria-hidden="true"></i> Security-aware maintenance</li> | ||
| 35 | <li><i class="fa fa-check-circle" aria-hidden="true"></i> Practical long-term collaboration</li> | ||
| 36 | </ul> | ||
| |
1.2 | 37 | </div> |
| |
3.4 | 38 | </section> |
| |
6.27 | 39 | |
| 40 | <section aria-labelledby="platform-title"> | ||
| |
3.4 | 41 | <div class="container"> |
| |
12.20 | 42 | <h2 id="platform-title">XWiki support for production knowledge platforms</h2> |
| |
6.27 | 43 | <p class="section-intro"> |
| |
12.20 | 44 | XWiki often grows from a documentation space into a business-critical knowledge platform. |
| |
12.24 | 45 | When it supports intranets, procedures, workflows, audits or integrations, it needs structured technical care |
| 46 | for upgrades, security, permissions and maintainability. | ||
| |
5.1 | 47 | </p> |
| |
1.1 | 48 | |
| |
6.27 | 49 | <div class="pathways"> |
| 50 | <article class="pathway-card"> | ||
| |
13.2 | 51 | <div class="card-heading"> |
| 52 | <div class="pathway-icon"> | ||
| 53 | <i class="fa fa-refresh" aria-hidden="true"></i> | ||
| 54 | </div> | ||
| 55 | <h3>Upgrade XWiki safely</h3> | ||
| |
6.27 | 56 | </div> |
| 57 | <p> | ||
| |
12.20 | 58 | Plan and execute XWiki LTS upgrades with compatibility checks, staging validation and rollback planning. |
| |
6.27 | 59 | </p> |
| 60 | <ul> | ||
| 61 | <li>LTS upgrade planning</li> | ||
| 62 | <li>Extension and custom code review</li> | ||
| |
12.20 | 63 | <li>Staging and production validation</li> |
| |
6.27 | 64 | </ul> |
| 65 | <p class="card-link"> | ||
| |
6.32 | 66 | <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a> |
| |
6.27 | 67 | </p> |
| 68 | </article> | ||
| |
5.1 | 69 | |
| |
6.27 | 70 | <article class="pathway-card"> |
| |
13.2 | 71 | <div class="card-heading"> |
| 72 | <div class="pathway-icon"> | ||
| 73 | <i class="fa fa-life-ring" aria-hidden="true"></i> | ||
| 74 | </div> | ||
| 75 | <h3>Maintain XWiki reliably</h3> | ||
| |
6.27 | 76 | </div> |
| 77 | <p> | ||
| |
12.20 | 78 | Keep production XWiki instances stable with troubleshooting, maintenance planning, recovery support and security-aware care. |
| |
6.27 | 79 | </p> |
| 80 | <ul> | ||
| 81 | <li>Troubleshooting and recovery</li> | ||
| 82 | <li>Performance and log analysis</li> | ||
| |
12.21 | 83 | <li>Upgrade and maintenance planning</li> |
| |
6.27 | 84 | </ul> |
| 85 | <p class="card-link"> | ||
| |
6.32 | 86 | <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a> |
| |
6.27 | 87 | </p> |
| 88 | </article> | ||
| 89 | |||
| 90 | <article class="pathway-card"> | ||
| |
13.2 | 91 | <div class="card-heading"> |
| 92 | <div class="pathway-icon"> | ||
| 93 | <i class="fa fa-cogs" aria-hidden="true"></i> | ||
| 94 | </div> | ||
| 95 | <h3>Extend XWiki for your processes</h3> | ||
| |
6.27 | 96 | </div> |
| 97 | <p> | ||
| |
12.22 | 98 | Build custom XWiki applications, workflows, dashboards and integrations around real business needs. |
| |
6.27 | 99 | </p> |
| 100 | <ul> | ||
| 101 | <li>Custom XWiki applications</li> | ||
| 102 | <li>Workflows and approvals</li> | ||
| |
12.22 | 103 | <li>APIs, SSO, LDAP and integrations</li> |
| |
6.27 | 104 | </ul> |
| 105 | <p class="card-link"> | ||
| |
6.32 | 106 | <a href="$xwiki.getURL('services.xwiki-development-integrations')">View development services</a> |
| |
6.27 | 107 | </p> |
| 108 | </article> | ||
| |
3.4 | 109 | </div> |
| |
1.2 | 110 | </div> |
| |
3.4 | 111 | </section> |
| |
6.27 | 112 | |
| 113 | <section class="split-section" aria-labelledby="why-title"> | ||
| |
3.4 | 114 | <div class="container"> |
| |
6.27 | 115 | <div class="split-grid"> |
| 116 | <div class="split-copy"> | ||
| |
12.22 | 117 | <h2 id="why-title">Why work with an XWiki specialist</h2> |
| |
6.27 | 118 | <p> |
| |
12.22 | 119 | XWiki projects often involve more than pages. Production platforms may include custom code, |
| 120 | extensions, authentication, permissions, workflows, integrations and business-critical content. | ||
| |
6.27 | 121 | </p> |
| 122 | <p> | ||
| |
12.22 | 123 | Agnease brings 11+ years of hands-on XWiki experience to help reduce risk, deliver practical improvements |
| 124 | and leave the platform easier to maintain after the work is complete. | ||
| |
6.27 | 125 | </p> |
| 126 | </div> | ||
| 127 | |||
| 128 | <ol class="process-list"> | ||
| 129 | <li> | ||
| |
12.22 | 130 | <strong>Review the XWiki environment</strong> |
| 131 | Version, extensions, infrastructure, authentication, permissions, custom code and critical features. | ||
| |
6.27 | 132 | </li> |
| 133 | <li> | ||
| |
12.22 | 134 | <strong>Define the safest next steps</strong> |
| 135 | Scope, risks, dependencies, effort, rollback options and validation requirements. | ||
| |
6.27 | 136 | </li> |
| 137 | <li> | ||
| |
12.22 | 138 | <strong>Implement, validate and document</strong> |
| 139 | Controlled changes, testing, production validation and notes for future maintenance. | ||
| |
6.27 | 140 | </li> |
| 141 | </ol> | ||
| 142 | </div> | ||
| 143 | </div> | ||
| 144 | </section> | ||
| 145 | |||
| |
10.38 | 146 | <section class="resource-strip homepage-resource-strip" aria-labelledby="resources-title"> |
| |
6.27 | 147 | <div class="container"> |
| |
12.22 | 148 | <h2 id="resources-title">XWiki resources for safer long-term maintenance</h2> |
| |
6.27 | 149 | <p class="section-intro"> |
| |
12.22 | 150 | Practical articles about XWiki upgrades, customization and production platform care. |
| |
3.4 | 151 | </p> |
| |
6.27 | 152 | |
| 153 | <div class="resource-grid"> | ||
| 154 | <article class="resource-card"> | ||
| 155 | <h4>Why upgrade your XWiki instance?</h4> | ||
| 156 | <p> | ||
| |
12.22 | 157 | Learn why regular XWiki upgrades reduce security exposure, compatibility issues and long-term maintenance risk. |
| |
6.27 | 158 | </p> |
| |
12.22 | 159 | <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Read the article</a> |
| |
6.27 | 160 | </article> |
| 161 | |||
| 162 | <article class="resource-card"> | ||
| 163 | <h4>XWiki upgrade services</h4> | ||
| 164 | <p> | ||
| |
12.22 | 165 | See how XWiki upgrades can be planned, tested and validated for production instances with customizations and integrations. |
| |
6.27 | 166 | </p> |
| |
12.22 | 167 | <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a> |
| |
6.27 | 168 | </article> |
| 169 | </div> | ||
| |
3.4 | 170 | </div> |
| 171 | </section> | ||
| |
3.16 | 172 | |
| |
6.27 | 173 | <section class="cta-section" aria-labelledby="contact-title"> |
| 174 | <div class="container"> | ||
| 175 | <div class="cta-panel"> | ||
| |
12.22 | 176 | <h2 id="contact-title">Need XWiki consulting or support?</h2> |
| |
6.27 | 177 | <p> |
| |
12.22 | 178 | Send your current XWiki version, the issue you are facing, or the type of project you want to build. |
| 179 | A short description is enough to define practical next steps. | ||
| |
6.27 | 180 | </p> |
| 181 | <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a> | ||
| |
3.16 | 182 | </div> |
| 183 | </div> | ||
| |
6.27 | 184 | </section> |
| 185 | |||
| 186 | {{/html}} | ||
| |
3.16 | 187 | #end |
| |
3.55 | 188 | |
| |
3.66 | 189 | #macro (stripHTMLMacro $displayOutput) |
| |
3.77 | 190 | $stringtool.removeEnd($stringtool.removeStart($displayOutput, '{{html clean="false" wiki="false"}}'), '{{/html}}').replace('Agnease.Code.Lead.LeadClass_0_', 'acl-') |
| |
3.66 | 191 | #end |
| 192 | |||
| |
3.55 | 193 | #macro (displayFormFromSheetCode) |
| |
3.61 | 194 | #set ($editing = true) |
| |
3.55 | 195 | ## The object to display. |
| |
3.65 | 196 | #set ($xobject = $doc.newObject('Agnease.Code.Lead.LeadClass')) |
| |
3.55 | 197 | ## The class that describes the object properties. |
| |
3.60 | 198 | #set ($xclass = $xwiki.getClass('Agnease.Code.Lead.LeadClass')) |
| |
3.55 | 199 | ## Make sure the following display* method calls use the right object. |
| 200 | #set ($discard = $doc.use($xobject)) | ||
| 201 | ## Using the xform vertical form layout. | ||
| |
3.70 | 202 | <div class="xform"> |
| |
3.55 | 203 | <dl> |
| 204 | #foreach ($property in $xclass.properties) | ||
| |
3.84 | 205 | #if ($property.name != 'status') |
| 206 | <dt #if (!$editing) | ||
| 207 | class="editableProperty" | ||
| 208 | #set ($xobjectPropertyReference = $xobject.getPropertyReference($property.name)) | ||
| 209 | data-property="$escapetool.xml($services.model.serialize($xobjectPropertyReference))" | ||
| 210 | data-property-type="object"#end> | ||
| 211 | ## This must match the id generated by the $doc.display() method below. | ||
| 212 | #set ($propertyId = "acl-$property.name") | ||
| 213 | <label#if ($editing) for="$escapetool.xml($propertyId)"#end> | ||
| 214 | $escapetool.xml($property.translatedPrettyName) | ||
| 215 | </label> | ||
| 216 | ## Support for specifying a translation key as hint in the property definition. | ||
| 217 | <span class="xHint">$!escapetool.xml($services.localization.render($property.hint))</span> | ||
| 218 | </dt> | ||
| 219 | #set ($displayOutput = $doc.display($property.name, 'edit')) | ||
| 220 | <dd>#stripHTMLMacro($displayOutput)</dd> | ||
| 221 | #end | ||
| |
3.55 | 222 | #end |
| 223 | #if (!$xclass.properties || $xclass.properties.size() == 0) | ||
| 224 | ## Keep the empty definition term in order to have valid HTML. | ||
| 225 | <dt></dt> | ||
| 226 | <dd>$escapetool.xml($services.localization.render('xclass.defaultObjectSheet.noProperties'))</dd> | ||
| 227 | #end | ||
| 228 | </dl> | ||
| 229 | </div> | ||
| 230 | #end | ||
| |
1.2 | 231 | {{/velocity}} |