├── .asf.yaml ├── .gitignore ├── .gitpod.Dockerfile ├── .gitpod.yml ├── .helmignore ├── .sling-module.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Jenkinsfile ├── LICENSE ├── NOTICE ├── README.md ├── api ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── apache │ │ └── sling │ │ └── cms │ │ ├── AuthorizableWrapper.java │ │ ├── CMSConstants.java │ │ ├── CMSJobManager.java │ │ ├── CMSUtils.java │ │ ├── Component.java │ │ ├── ComponentConfiguration.java │ │ ├── ComponentManager.java │ │ ├── ComponentPolicy.java │ │ ├── ComponentPolicyManager.java │ │ ├── ConfigurableJobExecutor.java │ │ ├── EditableResource.java │ │ ├── File.java │ │ ├── FileManager.java │ │ ├── FileMetadataExtractor.java │ │ ├── NameFilter.java │ │ ├── Page.java │ │ ├── PageManager.java │ │ ├── PageTemplate.java │ │ ├── PageTemplateManager.java │ │ ├── PublishableResource.java │ │ ├── Reference.java │ │ ├── References.java │ │ ├── ResourceTree.java │ │ ├── Site.java │ │ ├── SiteManager.java │ │ ├── i18n │ │ ├── I18NDictionary.java │ │ ├── I18NProvider.java │ │ └── package-info.java │ │ ├── insights │ │ ├── FileInsightRequest.java │ │ ├── Insight.java │ │ ├── InsightFactory.java │ │ ├── InsightProvider.java │ │ ├── InsightRequest.java │ │ ├── InsightsModel.java │ │ ├── Message.java │ │ ├── PageInsightRequest.java │ │ └── package-info.java │ │ ├── package-info.java │ │ ├── publication │ │ ├── INSTANCE_TYPE.java │ │ ├── IsPublishableResourceContainer.java │ │ ├── IsPublishableResourceType.java │ │ ├── PUBLICATION_MODE.java │ │ ├── PublicationEvent.java │ │ ├── PublicationException.java │ │ ├── PublicationManager.java │ │ ├── PublicationManagerFactory.java │ │ ├── PublicationType.java │ │ └── package-info.java │ │ ├── readability │ │ ├── ReadabilityService.java │ │ ├── ReadabilityServiceFactory.java │ │ ├── Sentence.java │ │ ├── Text.java │ │ ├── Word.java │ │ └── package-info.java │ │ └── usergenerated │ │ ├── UGCBucketConfig.java │ │ ├── UserGeneratedContentService.java │ │ └── package-info.java │ └── test │ ├── java │ └── org │ │ └── apache │ │ └── sling │ │ └── cms │ │ ├── ResourceTreeTest.java │ │ └── publication │ │ ├── IsPublishableResourceContainerTest.java │ │ ├── IsPublishableResourceTypeTest.java │ │ ├── PublicationEventTest.java │ │ └── PublicationExceptionTest.java │ └── resources │ └── content.json ├── archetype ├── pom.xml └── src │ └── main │ └── resources │ ├── META-INF │ └── maven │ │ └── archetype-metadata.xml │ └── archetype-resources │ ├── README.md │ ├── gulpfile.js │ ├── package.json │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── __packageInPathFormat__ │ │ │ ├── HelloWorldModel.java │ │ │ └── package-info.java │ └── resources │ │ └── jcr_root │ │ ├── apps │ │ └── __appName__ │ │ │ └── components │ │ │ ├── page.json │ │ │ └── page │ │ │ ├── body.jsp │ │ │ └── head.jsp │ │ └── conf │ │ └── __appName__.json │ └── test │ ├── java │ └── __package__ │ │ └── HelloWorldModelTest.java │ └── resources │ └── resource.json ├── core ├── bnd.bnd ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── sling │ │ │ └── cms │ │ │ └── core │ │ │ ├── i18n │ │ │ └── impl │ │ │ │ ├── I18NDictionaryImpl.java │ │ │ │ └── I18NProviderImpl.java │ │ │ ├── insights │ │ │ └── impl │ │ │ │ ├── BaseInsightProvider.java │ │ │ │ ├── FakeHttpSession.java │ │ │ │ ├── FakeRequest.java │ │ │ │ ├── FakeResponse.java │ │ │ │ ├── FileInsightRequestImpl.java │ │ │ │ ├── InsightFactoryImpl.java │ │ │ │ ├── InsightsWebConsole.java │ │ │ │ ├── PageInsightRequestImpl.java │ │ │ │ └── providers │ │ │ │ ├── HTMLValdiatorInsightProvider.java │ │ │ │ ├── PageSpeedInsightProvider.java │ │ │ │ └── ReadabilityInsightProvider.java │ │ │ ├── internal │ │ │ ├── CommonUtils.java │ │ │ ├── DefaultScriptBindingsValueProvider.java │ │ │ ├── FileMetadataExtractorImpl.java │ │ │ ├── IndexCreator.java │ │ │ ├── ResourceEditorAssociation.java │ │ │ ├── ResourceEditorAssociationConfig.java │ │ │ ├── ResourceEditorAssociationProvider.java │ │ │ ├── SimplePrincipal.java │ │ │ ├── bindings │ │ │ │ └── SightlyBindings.java │ │ │ ├── filters │ │ │ │ ├── CMSSecurityConfigInstance.java │ │ │ │ ├── CMSSecurityFilter.java │ │ │ │ ├── CMSSecurityFilterConfig.java │ │ │ │ ├── EditIncludeFilter.java │ │ │ │ └── LocaleFilter.java │ │ │ ├── jobs │ │ │ │ ├── FileMetadataExtractorConsumer.java │ │ │ │ ├── FileMetadataExtractorJob.java │ │ │ │ ├── OptimizeFilesJob.java │ │ │ │ ├── RemoveJobServlet.java │ │ │ │ └── StartJobServlet.java │ │ │ ├── listeners │ │ │ │ ├── AutoVersioningListener.java │ │ │ │ ├── AutoVersioningListenerConfig.java │ │ │ │ ├── FileMetadataExtractorListener.java │ │ │ │ └── RenditionCleaner.java │ │ │ ├── models │ │ │ │ ├── AuthorizableWrapperImpl.java │ │ │ │ ├── CMSJobManagerImpl.java │ │ │ │ ├── ComponentConfigurationImpl.java │ │ │ │ ├── ComponentImpl.java │ │ │ │ ├── ComponentManagerImpl.java │ │ │ │ ├── ComponentPolicyImpl.java │ │ │ │ ├── ComponentPolicyManagerImpl.java │ │ │ │ ├── EditableResourceImpl.java │ │ │ │ ├── FileImpl.java │ │ │ │ ├── FileManagerImpl.java │ │ │ │ ├── InsightsModelImpl.java │ │ │ │ ├── InternalCMSJobManager.java │ │ │ │ ├── PageImpl.java │ │ │ │ ├── PageInsightRequestModel.java │ │ │ │ ├── PageManagerImpl.java │ │ │ │ ├── PageTemplateImpl.java │ │ │ │ ├── PageTemplateManagerImpl.java │ │ │ │ ├── PublishableResourceImpl.java │ │ │ │ ├── ReadabilitySiteConfig.java │ │ │ │ ├── ReferenceOperation.java │ │ │ │ ├── ReferencesImpl.java │ │ │ │ ├── SiteImpl.java │ │ │ │ └── SiteManagerImpl.java │ │ │ ├── operations │ │ │ │ ├── BulkReplaceOperation.java │ │ │ │ ├── ChangePasswordOperation.java │ │ │ │ ├── CheckoutPostOperation.java │ │ │ │ ├── CheckpointOperation.java │ │ │ │ ├── CreateGroupOperation.java │ │ │ │ ├── CreateUserOperation.java │ │ │ │ ├── MembersOperation.java │ │ │ │ ├── MembershipOperation.java │ │ │ │ ├── PropertyHintNodeNameGenerator.java │ │ │ │ ├── TouchLastModifiedPostOperation.java │ │ │ │ ├── UpdateReferencesPostOperation.java │ │ │ │ └── UpdateStatusOperation.java │ │ │ ├── rewriter │ │ │ │ ├── ReferenceMappingTransformer.java │ │ │ │ ├── ReferenceMappingTransformerConfig.java │ │ │ │ └── ReferenceMappingTransformerFactory.java │ │ │ └── servlets │ │ │ │ ├── CMSPageServlet.java │ │ │ │ ├── CmsDefaultErrorHandlerServlet.java │ │ │ │ ├── DownloadFileServlet.java │ │ │ │ ├── PathSuggestionServlet.java │ │ │ │ ├── PathSuggestionServletConfig.java │ │ │ │ └── PreviewFileServlet.java │ │ │ ├── models │ │ │ ├── ContentBreadcrumb.java │ │ │ ├── LocaleList.java │ │ │ ├── LocaleResource.java │ │ │ ├── QueryDebugger.java │ │ │ ├── SearchResults.java │ │ │ ├── StartContent.java │ │ │ ├── VersionInfo.java │ │ │ ├── i18nHelper.java │ │ │ └── package-info.java │ │ │ ├── publication │ │ │ ├── BulkPublicationJob.java │ │ │ ├── ContentDistributionPublicationManager.java │ │ │ ├── ForwardAgentEndpointSynchronization.java │ │ │ ├── ForwardAgentEndpointSynchronizationConfig.java │ │ │ ├── PublicationConfig.java │ │ │ ├── PublicationManagerFactoryImpl.java │ │ │ ├── PublicationPropertyProvider.java │ │ │ ├── PublicationPropertyProviderConfig.java │ │ │ ├── PublishPostOperation.java │ │ │ ├── StandalonePublicationManager.java │ │ │ └── UnpublishPostOperation.java │ │ │ ├── readability │ │ │ └── impl │ │ │ │ ├── ReadabilityConfig.java │ │ │ │ ├── ReadabilityServiceFactoryImpl.java │ │ │ │ └── ReadabilityServiceImpl.java │ │ │ └── usergenerated │ │ │ └── impl │ │ │ ├── ApproveUGCOperation.java │ │ │ ├── UserGeneratedContentConfig.java │ │ │ └── UserGeneratedContentServiceImpl.java │ └── resources │ │ ├── OSGI-INF │ │ └── l10n │ │ │ └── bundle.properties │ │ └── res │ │ └── editinclude │ │ ├── delete.html │ │ ├── droptarget.html │ │ ├── edit.html │ │ ├── end.html │ │ ├── header.html │ │ ├── reorder.html │ │ └── start.html │ └── test │ ├── java │ └── org │ │ └── apache │ │ └── sling │ │ └── cms │ │ └── core │ │ ├── helpers │ │ └── SlingCMSTestHelper.java │ │ ├── internal │ │ ├── CommonUtilsTest.java │ │ ├── DefaultScriptBindingsValueProviderTest.java │ │ ├── FileMetadataExtractorImplTest.java │ │ ├── IndexCreatorTest.java │ │ ├── MockBindings.java │ │ ├── ResourceEditorAssociationTest.java │ │ ├── filters │ │ │ ├── CMSSecurityConfigInstanceTest.java │ │ │ ├── CMSSecurityFilterTest.java │ │ │ └── EditIncludeFilterTest.java │ │ ├── models │ │ │ ├── AuthorizableWrapperImplTest.java │ │ │ ├── FileImplTest.java │ │ │ ├── PageImplTest.java │ │ │ └── PublishableResourceImplTest.java │ │ ├── operations │ │ │ ├── ChangePasswordOperationTest.java │ │ │ ├── CheckoutPostOperationTest.java │ │ │ ├── CreateGroupOperationTest.java │ │ │ ├── CreateUserOperationTest.java │ │ │ ├── MembersOperationTest.java │ │ │ ├── MembershipOperationTest.java │ │ │ ├── PropertyHintNodeNameGeneratorTest.java │ │ │ └── UpdateStatusOperationTest.java │ │ └── servlets │ │ │ ├── CmsDefaultErrorHandlerServletTest.java │ │ │ ├── DownloadFileServletTest.java │ │ │ └── PreviewFileServletTest.java │ │ ├── models │ │ ├── ContentBreadcrumbTest.java │ │ ├── QueryDebuggerTest.java │ │ └── StartContentTest.java │ │ ├── publication │ │ ├── BulkPublicationJobTest.java │ │ ├── ContentDistributionPublicationManagerTest.java │ │ ├── ForwardAgentEndpointSynchronizationTest.java │ │ ├── PublicationManagerFactoryImplTest.java │ │ ├── PublicationPropertyProviderTest.java │ │ ├── PublishPostOperationTest.java │ │ ├── StandalonePublicationManagerTest.java │ │ └── UnpublishPostOperationTest.java │ │ └── readability │ │ └── impl │ │ └── ReadabilityServiceImplTest.java │ └── resources │ ├── apache.png │ ├── auth.json │ ├── conf.json │ ├── content.json │ ├── etc.json │ ├── generalcomponents.json │ ├── referencecomponents.json │ ├── source1.txt │ ├── source2.txt │ ├── source3.txt │ └── thumbnail.png ├── docker ├── README.md ├── cms │ ├── Dockerfile │ ├── config-author.json │ ├── config-renderer.json │ ├── config-standalone.json │ ├── download-dependencies.sh │ ├── settings.xml │ └── setup-composite.sh ├── docker-compose.yml └── webcache │ ├── Dockerfile │ ├── cms.conf │ └── site.conf ├── docs ├── admin-tools.md ├── administration.md ├── building.md ├── cms-apache-web.md ├── component-policy.md ├── configure-file-editor.md ├── configure-site.md ├── content-insights.md ├── creating-plugins.md ├── custom-components.md ├── deployment-models.md ├── developers.md ├── editor-field-types.md ├── email-configuration.md ├── error-pages.md ├── extending.md ├── image-transformations.md ├── img │ ├── add-config.png │ ├── add-taxonomy.png │ ├── add-template.png │ ├── bulk-replace.png │ ├── component-configurations.png │ ├── component-editor.png │ ├── configuration-fields.png │ ├── configure-readability-grade-range.jpg │ ├── configure-readability-service.jpg │ ├── configure-referrer-filter.png │ ├── configure-security-filter.png │ ├── container-add.png │ ├── content-packages.png │ ├── create-site-configuration.png │ ├── create-site-group.png │ ├── create-site.png │ ├── delete-dialog.png │ ├── edit-file-config.png │ ├── edit-site-configuration.png │ ├── edit-template.png │ ├── edit-transformation.png │ ├── editor-topbar.png │ ├── insights-modal.jpg │ ├── internationalization.png │ ├── load-content.png │ ├── manage-versions.png │ ├── mappings.png │ ├── move-copy.png │ ├── node-browser.png │ ├── osgi-console.png │ ├── sample-console.png │ ├── select-config-component-type.png │ ├── select-field-type.png │ ├── site-content.png │ ├── ugc-approval.png │ ├── ugc-console.png │ ├── use-taxonomy.png │ └── users-groups.png ├── intro.md ├── ldap.md ├── managing-content.md ├── managing-taxonomy.md ├── mongodb.md ├── page-editing.md ├── plugins.md ├── project-archetype.md ├── quickstart.md ├── reference.md ├── releases.md ├── securing.md ├── templates.md ├── user-generated-content.md └── users.md ├── feature ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── assembly │ │ └── standalone.xml │ ├── features │ │ ├── app │ │ │ ├── composum.json │ │ │ └── htl_repl.json │ │ ├── base-repoinit.txt │ │ ├── base.json │ │ ├── boot.json │ │ ├── caconfig-repoinit.txt │ │ ├── caconfig.json │ │ ├── cms │ │ │ ├── cms-repoinit.txt │ │ │ ├── cms.json │ │ │ ├── dependencies.json │ │ │ ├── distribution.json │ │ │ ├── feature.json │ │ │ ├── healthchecks.json │ │ │ ├── maintenance-config.json │ │ │ ├── reference.json │ │ │ └── thumbnails.json │ │ ├── discovery-repoinit.txt │ │ ├── discovery.json │ │ ├── event-repoinit.txt │ │ ├── event.json │ │ ├── groovy.json │ │ ├── healthcheck.json │ │ ├── maintenance.json │ │ ├── models-jacksonexporter.json │ │ ├── oak │ │ │ ├── node-store │ │ │ │ ├── composite-runtime.json │ │ │ │ ├── composite-seed.json │ │ │ │ └── segment.json │ │ │ └── oak_base.json │ │ ├── runmodes │ │ │ ├── author.json │ │ │ ├── renderer.json │ │ │ └── standalone.json │ │ ├── scripting.json │ │ ├── validation.json │ │ └── webconsole.json │ └── java │ │ └── org │ │ └── apache │ │ └── sling │ │ └── cms │ │ └── feature │ │ └── Main.java │ └── test │ └── java │ └── org │ └── apache │ └── sling │ └── cms │ └── feature │ ├── LaunchpadReadyRule.java │ ├── SmokeIT.java │ └── package-info.java ├── helm └── slingcms-standalone │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── deployment.yaml │ ├── ingress.yaml │ ├── persistentvolumeclaim.yaml │ ├── service.yaml │ ├── serviceaccount.yaml │ └── tests │ │ └── test-connection.yaml │ └── values.yaml ├── i18n-helper ├── README.md ├── i18n │ ├── de.json │ └── zh.json ├── package-lock.json ├── package.json └── src │ ├── index.js │ ├── languages.json │ └── messages.json ├── it ├── .gitignore ├── cypress.config.js ├── cypress │ ├── e2e │ │ ├── admin.cy.js │ │ ├── auth.cy.js │ │ ├── authoring.cy.js │ │ ├── editor.cy.js │ │ ├── reference │ │ │ ├── form.cy.js │ │ │ ├── general.cy.js │ │ │ └── utils.js │ │ ├── taxonomy.cy.js │ │ └── ugc.cy.js │ ├── lighthouse-cfg.json │ ├── ready.js │ ├── support │ │ └── e2e.js │ ├── util │ │ ├── component-test-helper.js │ │ └── test-helper.js │ └── utils.js ├── package-lock.json ├── package.json └── pom.xml ├── login ├── bnd.bnd ├── pom.xml └── src │ └── main │ └── resources │ └── org │ └── apache │ └── sling │ └── auth │ └── form │ └── impl │ └── custom_login.html ├── pom.xml ├── reference ├── bnd.bnd ├── libs │ └── sling-cms │ │ └── global.jsp ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── apache │ │ │ └── sling │ │ │ └── cms │ │ │ └── reference │ │ │ ├── SearchService.java │ │ │ ├── forms │ │ │ ├── FieldHandler.java │ │ │ ├── FormAction.java │ │ │ ├── FormActionResult.java │ │ │ ├── FormConstants.java │ │ │ ├── FormException.java │ │ │ ├── FormRequest.java │ │ │ ├── FormUtils.java │ │ │ ├── FormValueProvider.java │ │ │ ├── impl │ │ │ │ ├── FormHandler.java │ │ │ │ ├── FormRequestImpl.java │ │ │ │ ├── actions │ │ │ │ │ ├── CreateUserAction.java │ │ │ │ │ ├── DeleteUserGeneratedContentAction.java │ │ │ │ │ ├── RequestPasswordResetAction.java │ │ │ │ │ ├── ResetPasswordAction.java │ │ │ │ │ ├── SendEmailAction.java │ │ │ │ │ ├── UpdateProfileAction.java │ │ │ │ │ ├── UpdateUserGeneratedContentAction.java │ │ │ │ │ └── UserGeneratedContentAction.java │ │ │ │ ├── fields │ │ │ │ │ ├── HoneypotHandler.java │ │ │ │ │ ├── SelectionHandler.java │ │ │ │ │ ├── TextareaHandler.java │ │ │ │ │ └── TextfieldHandler.java │ │ │ │ └── providers │ │ │ │ │ ├── RequestParametersValueProvider.java │ │ │ │ │ ├── SuffixResourceFormValueProvider.java │ │ │ │ │ └── UserProfileFormValueProvider.java │ │ │ └── package-info.java │ │ │ ├── impl │ │ │ ├── IndexUpdate.java │ │ │ └── SearchServiceImpl.java │ │ │ ├── models │ │ │ ├── ItemList.java │ │ │ ├── Search.java │ │ │ └── package-info.java │ │ │ └── package-info.java │ └── resources │ │ ├── OSGI-INF │ │ └── l10n │ │ │ └── bundle.properties │ │ └── jcr_root │ │ ├── apps │ │ └── reference │ │ │ ├── components │ │ │ ├── forms │ │ │ │ ├── actions │ │ │ │ │ ├── createuser.json │ │ │ │ │ ├── createuser │ │ │ │ │ │ ├── createuser.jsp │ │ │ │ │ │ └── edit.json │ │ │ │ │ ├── deleteugc.json │ │ │ │ │ ├── deleteugc │ │ │ │ │ │ ├── deleteugc.jsp │ │ │ │ │ │ └── edit.json │ │ │ │ │ ├── requestpasswordreset │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── requestpasswordreset.jsp │ │ │ │ │ ├── resetpassword.json │ │ │ │ │ ├── resetpassword │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── resetpassword.jsp │ │ │ │ │ ├── sendemail.json │ │ │ │ │ ├── sendemail │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── sendemail.jsp │ │ │ │ │ ├── updateprofile.json │ │ │ │ │ ├── updateprofile │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── updateprofile.jsp │ │ │ │ │ ├── updateugc.json │ │ │ │ │ ├── updateugc │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── updateugc.jsp │ │ │ │ │ ├── usergeneratedcontent.json │ │ │ │ │ └── usergeneratedcontent │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── usergeneratedcontent.jsp │ │ │ │ ├── fields │ │ │ │ │ ├── honeypot.json │ │ │ │ │ ├── honeypot │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── honeypot.jsp │ │ │ │ │ ├── selection.json │ │ │ │ │ ├── selection │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── selection.jsp │ │ │ │ │ ├── textarea.json │ │ │ │ │ ├── textarea │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── textarea.jsp │ │ │ │ │ ├── textfield.json │ │ │ │ │ └── textfield │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── textfield.jsp │ │ │ │ ├── fieldset.json │ │ │ │ ├── fieldset │ │ │ │ │ ├── edit.json │ │ │ │ │ └── fieldset.jsp │ │ │ │ ├── form.json │ │ │ │ ├── form │ │ │ │ │ ├── config.json │ │ │ │ │ ├── edit.json │ │ │ │ │ └── form.jsp │ │ │ │ ├── login.json │ │ │ │ ├── login │ │ │ │ │ ├── edit.json │ │ │ │ │ └── login.jsp │ │ │ │ └── providers │ │ │ │ │ ├── requestparameters.json │ │ │ │ │ ├── requestparameters │ │ │ │ │ ├── edit.json │ │ │ │ │ └── requestparameters.jsp │ │ │ │ │ ├── suffixresource.json │ │ │ │ │ ├── suffixresource │ │ │ │ │ ├── edit.json │ │ │ │ │ └── suffixresource.jsp │ │ │ │ │ ├── userprofile.json │ │ │ │ │ └── userprofile │ │ │ │ │ ├── edit.json │ │ │ │ │ └── userprofile.jsp │ │ │ ├── general │ │ │ │ ├── breadcrumb │ │ │ │ │ ├── breadcrumb.jsp │ │ │ │ │ └── edit.json │ │ │ │ ├── codeblock.json │ │ │ │ ├── codeblock │ │ │ │ │ ├── codeblock.jsp │ │ │ │ │ └── edit.json │ │ │ │ ├── columncontrol.json │ │ │ │ ├── columncontrol │ │ │ │ │ ├── columncontrol.jsp │ │ │ │ │ ├── config.json │ │ │ │ │ ├── edit.json │ │ │ │ │ └── options.jsp │ │ │ │ ├── cta.json │ │ │ │ ├── cta │ │ │ │ │ ├── config.json │ │ │ │ │ ├── cta.jsp │ │ │ │ │ ├── edit.json │ │ │ │ │ └── options.jsp │ │ │ │ ├── iframe.json │ │ │ │ ├── iframe │ │ │ │ │ ├── config.json │ │ │ │ │ ├── edit.json │ │ │ │ │ ├── iframe.jsp │ │ │ │ │ └── options.jsp │ │ │ │ ├── image.json │ │ │ │ ├── image │ │ │ │ │ ├── config.json │ │ │ │ │ ├── edit.json │ │ │ │ │ ├── image.jsp │ │ │ │ │ ├── options.jsp │ │ │ │ │ └── transformations.jsp │ │ │ │ ├── list.json │ │ │ │ ├── list │ │ │ │ │ ├── config.json │ │ │ │ │ ├── edit.json │ │ │ │ │ ├── init.jsp │ │ │ │ │ ├── item.jsp │ │ │ │ │ ├── list.jsp │ │ │ │ │ └── pagination.jsp │ │ │ │ ├── reference.json │ │ │ │ ├── reference │ │ │ │ │ ├── config.json │ │ │ │ │ ├── edit.json │ │ │ │ │ ├── reference.jsp │ │ │ │ │ └── types.jsp │ │ │ │ ├── rss │ │ │ │ │ └── rss.xml.jsp │ │ │ │ ├── search.json │ │ │ │ ├── search │ │ │ │ │ ├── config.json │ │ │ │ │ ├── edit.json │ │ │ │ │ ├── pagination.jsp │ │ │ │ │ ├── result.jsp │ │ │ │ │ └── search.jsp │ │ │ │ ├── searchform.json │ │ │ │ ├── searchform │ │ │ │ │ ├── config.json │ │ │ │ │ ├── edit.json │ │ │ │ │ └── searchform.jsp │ │ │ │ ├── sitemap │ │ │ │ │ └── sitemap.xml.jsp │ │ │ │ ├── stylewrapper.json │ │ │ │ ├── stylewrapper │ │ │ │ │ ├── config.json │ │ │ │ │ ├── edit.json │ │ │ │ │ ├── options.jsp │ │ │ │ │ └── stylewrapper.jsp │ │ │ │ ├── suffixheader.json │ │ │ │ ├── suffixheader │ │ │ │ │ ├── edit.json │ │ │ │ │ └── suffixheader.jsp │ │ │ │ ├── tags.json │ │ │ │ └── tags │ │ │ │ │ ├── config.json │ │ │ │ │ ├── edit.json │ │ │ │ │ └── tags.jsp │ │ │ └── pages │ │ │ │ ├── base.json │ │ │ │ ├── base │ │ │ │ ├── base.jsp │ │ │ │ ├── body.jsp │ │ │ │ ├── content.jsp │ │ │ │ ├── edit.json │ │ │ │ └── head.jsp │ │ │ │ ├── post.json │ │ │ │ └── post │ │ │ │ ├── content.jsp │ │ │ │ └── edit.json │ │ │ └── i18n.json │ │ ├── conf │ │ └── asf.json │ │ ├── content.json │ │ ├── content │ │ └── apache.json │ │ ├── etc │ │ └── taxonomy │ │ │ └── reference.json │ │ └── static │ │ └── clientlibs │ │ └── reference │ │ ├── img │ │ ├── SupportApache-small.png │ │ ├── apache.png │ │ ├── favicon.ico │ │ └── sling.svg │ │ └── site.css │ └── test │ ├── java │ └── org │ │ └── apache │ │ └── sling │ │ └── cms │ │ └── reference │ │ ├── forms │ │ ├── FormActionResultTest.java │ │ └── impl │ │ │ ├── FormHandlerTest.java │ │ │ ├── FormRequestImplTest.java │ │ │ ├── MockMessageBuilder.java │ │ │ ├── SearchServiceTest.java │ │ │ ├── SlingContextHelper.java │ │ │ ├── actions │ │ │ ├── CreateUserActionTest.java │ │ │ ├── DeleteUserGeneratedContentActionTest.java │ │ │ ├── RequestPasswordResetActionTest.java │ │ │ ├── ResetPasswordActionTest.java │ │ │ ├── SendEmailActionTest.java │ │ │ ├── UpdateProfileActionTest.java │ │ │ ├── UpdateUserGeneratedContentActionTest.java │ │ │ └── UserGeneratedContentActionTest.java │ │ │ ├── fields │ │ │ ├── HoneypotHandlerTest.java │ │ │ ├── SelectionHandlerTest.java │ │ │ ├── TextareaHandlerTest.java │ │ │ └── TextfieldHandlerTest.java │ │ │ └── providers │ │ │ ├── RequestParametersValueProviderTest.java │ │ │ └── SuffixResourceFormValueProviderTest.java │ │ └── impl │ │ └── IndexUpdateTest.java │ └── resources │ ├── form-no-actions.json │ └── form.json ├── rules.xml ├── ui ├── .eslintrc.js ├── bnd.bnd ├── gulpfile.js ├── libs │ └── sling-cms │ │ └── global.jsp ├── package-lock.json ├── package.json ├── pom.xml └── src │ └── main │ ├── frontend │ ├── fonts │ │ ├── OpenSans-Bold-webfont.woff │ │ ├── OpenSans-Light-webfont.woff │ │ ├── OpenSans-Regular-webfont.woff │ │ └── OpenSans-Semibold-webfont.woff │ ├── img │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── asf-logo.svg │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── gradient.jpg │ │ ├── mstile-150x150.png │ │ ├── safari-pinned-tab.svg │ │ ├── site.webmanifest │ │ ├── sling-logo.png │ │ └── sling-logo.svg │ ├── js │ │ ├── cms.draggable.js │ │ ├── cms.fields.js │ │ ├── cms.form.js │ │ ├── cms.job.js │ │ ├── cms.js │ │ ├── cms.labelfield.js │ │ ├── cms.modal.js │ │ ├── cms.nav.js │ │ ├── cms.page.js │ │ ├── cms.pathfield.js │ │ ├── cms.toggle.js │ │ └── editor.js │ └── scss │ │ ├── _fonts.scss │ │ ├── _grid.scss │ │ ├── _overrides.scss │ │ ├── cms.scss │ │ ├── editor.scss │ │ └── starter.scss │ └── resources │ ├── SLING-INF │ └── nodetypes │ │ └── nodetypes.cnd │ ├── content │ └── startup │ │ └── index.html │ └── jcr_root │ ├── conf │ └── global.json │ ├── content.json │ ├── etc │ ├── i18n │ │ └── jcr%3Acontent.json │ └── taxonomy │ │ └── jcr%3Acontent.json │ ├── libs │ ├── sling-cms │ │ ├── components │ │ │ ├── caconfig │ │ │ │ ├── base │ │ │ │ │ └── base.jsp │ │ │ │ ├── component.json │ │ │ │ ├── component │ │ │ │ │ ├── component.jsp │ │ │ │ │ └── edit.json │ │ │ │ ├── edit │ │ │ │ │ └── edit.jsp │ │ │ │ ├── fileeditor.json │ │ │ │ ├── fileeditor │ │ │ │ │ ├── config.json │ │ │ │ │ ├── config │ │ │ │ │ │ ├── config.jsp │ │ │ │ │ │ └── edit.json │ │ │ │ │ └── fileeditor.jsp │ │ │ │ ├── policies.json │ │ │ │ ├── policies │ │ │ │ │ └── include.jsp │ │ │ │ ├── policy.json │ │ │ │ ├── policy │ │ │ │ │ ├── config.json │ │ │ │ │ ├── config │ │ │ │ │ │ ├── config.jsp │ │ │ │ │ │ └── edit.json │ │ │ │ │ └── policy.jsp │ │ │ │ ├── policymapping.json │ │ │ │ ├── policymapping │ │ │ │ │ ├── edit.json │ │ │ │ │ └── policymapping.jsp │ │ │ │ ├── readability.json │ │ │ │ ├── readability │ │ │ │ │ ├── config.json │ │ │ │ │ ├── config │ │ │ │ │ │ ├── config.jsp │ │ │ │ │ │ └── edit.json │ │ │ │ │ └── include.jsp │ │ │ │ ├── rewriter.json │ │ │ │ ├── rewriter │ │ │ │ │ ├── config.json │ │ │ │ │ ├── config │ │ │ │ │ │ ├── config.jsp │ │ │ │ │ │ └── edit.json │ │ │ │ │ └── include.jsp │ │ │ │ ├── scripts │ │ │ │ │ └── policyOptions.jsp │ │ │ │ ├── sitesettings.json │ │ │ │ ├── sitesettings │ │ │ │ │ ├── config.json │ │ │ │ │ ├── config │ │ │ │ │ │ ├── config.jsp │ │ │ │ │ │ └── edit.json │ │ │ │ │ └── include.jsp │ │ │ │ ├── template │ │ │ │ │ ├── config.json │ │ │ │ │ ├── config │ │ │ │ │ │ ├── config.jsp │ │ │ │ │ │ └── edit.json │ │ │ │ │ └── template.jsp │ │ │ │ ├── templates.json │ │ │ │ ├── templates │ │ │ │ │ └── templates.jsp │ │ │ │ ├── transformations.json │ │ │ │ └── transformations │ │ │ │ │ └── transformations.jsp │ │ │ ├── cms │ │ │ │ ├── actions │ │ │ │ │ ├── basic │ │ │ │ │ │ └── basic.jsp │ │ │ │ │ └── modal │ │ │ │ │ │ └── modal.jsp │ │ │ │ ├── availablecomponenttypes │ │ │ │ │ └── availablecomponenttypes.jsp │ │ │ │ ├── blank │ │ │ │ │ └── blank.jsp │ │ │ │ ├── columns │ │ │ │ │ ├── actions │ │ │ │ │ │ └── actions.jsp │ │ │ │ │ ├── lastmodified │ │ │ │ │ │ └── lastmodified.jsp │ │ │ │ │ ├── localetitle │ │ │ │ │ │ └── localetitle.jsp │ │ │ │ │ ├── name │ │ │ │ │ │ └── name.jsp │ │ │ │ │ ├── publish │ │ │ │ │ │ └── publish.jsp │ │ │ │ │ ├── static │ │ │ │ │ │ └── static.jsp │ │ │ │ │ └── text │ │ │ │ │ │ └── text.jsp │ │ │ │ ├── contentactions │ │ │ │ │ └── contentactions.jsp │ │ │ │ ├── contentbreadcrumb │ │ │ │ │ └── contentbreadcrumb.jsp │ │ │ │ ├── contentgrid │ │ │ │ │ └── contentgrid.jsp │ │ │ │ ├── contentlayout │ │ │ │ │ └── contentlayout.jsp │ │ │ │ ├── contenttable │ │ │ │ │ └── contenttable.jsp │ │ │ │ ├── fileeditorinclude │ │ │ │ │ └── fileeditorinclude.jsp │ │ │ │ ├── getform │ │ │ │ │ └── getform.jsp │ │ │ │ ├── i18ncontainer │ │ │ │ │ └── i18ncontainer.jsp │ │ │ │ ├── includeconfig │ │ │ │ │ └── includeconfig.jsp │ │ │ │ ├── includeeditor │ │ │ │ │ └── includeeditor.jsp │ │ │ │ ├── optimizefile │ │ │ │ │ └── optimizefile.jsp │ │ │ │ ├── pageeditbar │ │ │ │ │ ├── actions │ │ │ │ │ │ └── actions.jsp │ │ │ │ │ ├── pageeditbar.jsp │ │ │ │ │ └── propertieseditor │ │ │ │ │ │ └── propertieseditor.jsp │ │ │ │ ├── pageeditor │ │ │ │ │ └── pageeditor.jsp │ │ │ │ ├── pageproperties │ │ │ │ │ ├── include.jsp │ │ │ │ │ └── pageproperties.jsp │ │ │ │ ├── pagewrapper │ │ │ │ │ └── pagewrapper.jsp │ │ │ │ ├── parameter.json │ │ │ │ ├── querydebug │ │ │ │ │ └── querydebug.jsp │ │ │ │ ├── references │ │ │ │ │ └── references.jsp │ │ │ │ ├── scrollcontainer │ │ │ │ │ └── scrollcontainer.jsp │ │ │ │ ├── searchresults │ │ │ │ │ └── searchresults.jsp │ │ │ │ ├── sitenav.json │ │ │ │ ├── startcontent │ │ │ │ │ ├── search.jsp │ │ │ │ │ └── startcontent.jsp │ │ │ │ ├── staticnav │ │ │ │ │ └── staticnav.jsp │ │ │ │ ├── suffixproperty │ │ │ │ │ └── suffixproperty.jsp │ │ │ │ ├── suffixswitch │ │ │ │ │ └── suffixswitch.jsp │ │ │ │ ├── tilecard │ │ │ │ │ └── tilecard.jsp │ │ │ │ ├── tiles │ │ │ │ │ └── tiles.jsp │ │ │ │ ├── transformationredirect │ │ │ │ │ └── transformationredirect.jsp │ │ │ │ └── versionmanager │ │ │ │ │ └── versionmanager.jsp │ │ │ ├── editor │ │ │ │ ├── fields │ │ │ │ │ ├── auth │ │ │ │ │ │ ├── members.json │ │ │ │ │ │ ├── members │ │ │ │ │ │ │ ├── options.jsp │ │ │ │ │ │ │ └── values.jsp │ │ │ │ │ │ ├── membership.json │ │ │ │ │ │ ├── membership │ │ │ │ │ │ │ ├── options.jsp │ │ │ │ │ │ │ └── values.jsp │ │ │ │ │ │ └── status │ │ │ │ │ │ │ └── status.jsp │ │ │ │ │ ├── base │ │ │ │ │ │ └── base.jsp │ │ │ │ │ ├── button │ │ │ │ │ │ └── button.jsp │ │ │ │ │ ├── combobox.json │ │ │ │ │ ├── combobox │ │ │ │ │ │ ├── options.jsp │ │ │ │ │ │ └── values.jsp │ │ │ │ │ ├── file.json │ │ │ │ │ ├── file │ │ │ │ │ │ └── field.jsp │ │ │ │ │ ├── filemetadata.json │ │ │ │ │ ├── filemetadata │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── filemetadata.jsp │ │ │ │ │ ├── hidden.json │ │ │ │ │ ├── hidden │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── hidden.jsp │ │ │ │ │ ├── labelfield.json │ │ │ │ │ ├── labelfield │ │ │ │ │ │ ├── field.jsp │ │ │ │ │ │ ├── options.jsp │ │ │ │ │ │ └── values.jsp │ │ │ │ │ ├── namehint │ │ │ │ │ │ └── namehint.jsp │ │ │ │ │ ├── param │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── param.jsp │ │ │ │ │ ├── path.json │ │ │ │ │ ├── path │ │ │ │ │ │ └── path.jsp │ │ │ │ │ ├── publication.json │ │ │ │ │ ├── publication │ │ │ │ │ │ └── field.jsp │ │ │ │ │ ├── references │ │ │ │ │ │ └── references.jsp │ │ │ │ │ ├── repeating.json │ │ │ │ │ ├── repeating │ │ │ │ │ │ └── field.jsp │ │ │ │ │ ├── resourceparam │ │ │ │ │ │ └── resourceparam.jsp │ │ │ │ │ ├── richtext.json │ │ │ │ │ ├── richtext │ │ │ │ │ │ ├── field.jsp │ │ │ │ │ │ └── toolbar │ │ │ │ │ │ │ ├── button │ │ │ │ │ │ │ └── button.jsp │ │ │ │ │ │ │ ├── buttonbar │ │ │ │ │ │ │ └── buttonbar.jsp │ │ │ │ │ │ │ ├── buttongroup │ │ │ │ │ │ │ └── buttongroup.jsp │ │ │ │ │ │ │ ├── createlink │ │ │ │ │ │ │ └── createlink.jsp │ │ │ │ │ │ │ ├── default.json │ │ │ │ │ │ │ ├── insertimage │ │ │ │ │ │ │ └── insertimage.jsp │ │ │ │ │ │ │ ├── optionbutton │ │ │ │ │ │ │ └── optionbutton.jsp │ │ │ │ │ │ │ ├── textoptions │ │ │ │ │ │ │ └── textoptions.jsp │ │ │ │ │ │ │ ├── toolbar.jsp │ │ │ │ │ │ │ └── viewsource │ │ │ │ │ │ │ └── viewsource.jsp │ │ │ │ │ ├── select.json │ │ │ │ │ ├── select │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── field.jsp │ │ │ │ │ ├── siblingselect │ │ │ │ │ │ └── siblingselect.jsp │ │ │ │ │ ├── suffixlabel │ │ │ │ │ │ └── suffixlabel.jsp │ │ │ │ │ ├── taxonomy.json │ │ │ │ │ ├── taxonomy │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ ├── options.jsp │ │ │ │ │ │ └── values.jsp │ │ │ │ │ ├── text.json │ │ │ │ │ ├── text │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── field.jsp │ │ │ │ │ ├── textarea.json │ │ │ │ │ ├── textarea │ │ │ │ │ │ ├── edit.json │ │ │ │ │ │ └── field.jsp │ │ │ │ │ ├── thumbnail │ │ │ │ │ │ └── thumbnail.jsp │ │ │ │ │ └── well │ │ │ │ │ │ └── well.jsp │ │ │ │ ├── scripts │ │ │ │ │ ├── componentConfigOptions.jsp │ │ │ │ │ ├── configResourceTypeOptions.jsp │ │ │ │ │ ├── finalize.jsp │ │ │ │ │ ├── init.jsp │ │ │ │ │ ├── localeOptions.jsp │ │ │ │ │ ├── pageTemplateOptions.jsp │ │ │ │ │ ├── resourceTypeOptions.jsp │ │ │ │ │ └── transformations.jsp │ │ │ │ └── slingform │ │ │ │ │ └── slingform.jsp │ │ │ ├── general │ │ │ │ ├── container.json │ │ │ │ ├── container │ │ │ │ │ └── container.jsp │ │ │ │ ├── reloadcontainer.json │ │ │ │ ├── richtext.json │ │ │ │ ├── richtext │ │ │ │ │ ├── edit.json │ │ │ │ │ └── richtext.jsp │ │ │ │ ├── textelement.json │ │ │ │ └── textelement │ │ │ │ │ ├── edit.json │ │ │ │ │ └── textelement.jsp │ │ │ ├── insights │ │ │ │ ├── insight │ │ │ │ │ └── insight.jsp │ │ │ │ └── insightlist │ │ │ │ │ └── insightlist.jsp │ │ │ ├── jobs │ │ │ │ ├── configuration │ │ │ │ │ ├── configuration.jsp │ │ │ │ │ └── include.jsp │ │ │ │ ├── jobOptions.jsp │ │ │ │ ├── list │ │ │ │ │ └── list.jsp │ │ │ │ └── view │ │ │ │ │ └── view.jsp │ │ │ ├── pages │ │ │ │ ├── base.json │ │ │ │ ├── base │ │ │ │ │ ├── base.jsp │ │ │ │ │ ├── body.jsp │ │ │ │ │ ├── content.jsp │ │ │ │ │ ├── head.jsp │ │ │ │ │ ├── nav.jsp │ │ │ │ │ └── scripts.jsp │ │ │ │ ├── editor.json │ │ │ │ ├── editor │ │ │ │ │ ├── body.jsp │ │ │ │ │ └── editor.jsp │ │ │ │ ├── error.json │ │ │ │ ├── error │ │ │ │ │ ├── body.jsp │ │ │ │ │ ├── error.jsp │ │ │ │ │ └── nav.jsp │ │ │ │ ├── fragment.json │ │ │ │ ├── fragment │ │ │ │ │ ├── body.jsp │ │ │ │ │ ├── content.jsp │ │ │ │ │ ├── edit.json │ │ │ │ │ └── fragment.jsp │ │ │ │ ├── modal.json │ │ │ │ └── modal │ │ │ │ │ └── modal.jsp │ │ │ └── publication │ │ │ │ ├── agent │ │ │ │ └── agent.jsp │ │ │ │ ├── configuration │ │ │ │ └── configuration.jsp │ │ │ │ ├── configurationarray │ │ │ │ └── configurationarray.jsp │ │ │ │ ├── exporter │ │ │ │ └── exporter.jsp │ │ │ │ ├── home │ │ │ │ └── home.jsp │ │ │ │ ├── importer │ │ │ │ └── importer.jsp │ │ │ │ └── status │ │ │ │ └── status.jsp │ │ ├── config │ │ │ └── rewriter │ │ │ │ └── reference-mapping-rewriter.json │ │ ├── content.json │ │ ├── content │ │ │ ├── admin │ │ │ │ ├── bulkreplace.json │ │ │ │ ├── loadcontent.json │ │ │ │ └── querydebug.json │ │ │ ├── auth │ │ │ │ ├── group │ │ │ │ │ ├── create.json │ │ │ │ │ └── members.json │ │ │ │ ├── list.json │ │ │ │ ├── membership.json │ │ │ │ ├── newfolder.json │ │ │ │ └── user │ │ │ │ │ ├── create.json │ │ │ │ │ ├── password.json │ │ │ │ │ ├── profile.json │ │ │ │ │ └── status.json │ │ │ ├── branding.json │ │ │ ├── config │ │ │ │ ├── bucket.json │ │ │ │ ├── buckets.json │ │ │ │ ├── configs.json │ │ │ │ ├── create.json │ │ │ │ ├── edit.json │ │ │ │ └── metadata.json │ │ │ ├── content.json │ │ │ ├── editor │ │ │ │ ├── add.json │ │ │ │ ├── delete.json │ │ │ │ ├── edit.json │ │ │ │ └── reorder.json │ │ │ ├── file │ │ │ │ ├── addrendition.json │ │ │ │ ├── download.json │ │ │ │ ├── edit.json │ │ │ │ ├── optimize.json │ │ │ │ ├── preview.json │ │ │ │ ├── renditions.json │ │ │ │ └── upload.json │ │ │ ├── folder │ │ │ │ ├── create.json │ │ │ │ └── edit.json │ │ │ ├── i18n │ │ │ │ ├── dictionaries.json │ │ │ │ ├── dictionary.json │ │ │ │ ├── entry │ │ │ │ │ └── create.json │ │ │ │ └── language │ │ │ │ │ ├── create.json │ │ │ │ │ └── edit.json │ │ │ ├── jobs │ │ │ │ ├── delete.json │ │ │ │ ├── filemetadataextractor.json │ │ │ │ ├── list.json │ │ │ │ ├── optimizefiles.json │ │ │ │ ├── start.json │ │ │ │ └── view.json │ │ │ ├── mappings │ │ │ │ ├── create.json │ │ │ │ ├── edit.json │ │ │ │ └── list.json │ │ │ ├── page │ │ │ │ ├── create.json │ │ │ │ ├── edit.json │ │ │ │ ├── editproperties.json │ │ │ │ └── pagewrapper.json │ │ │ ├── publication │ │ │ │ ├── agent.json │ │ │ │ ├── agents.json │ │ │ │ ├── bulk.json │ │ │ │ ├── exporter.json │ │ │ │ ├── exporters.json │ │ │ │ ├── home.json │ │ │ │ ├── importer.json │ │ │ │ └── importers.json │ │ │ ├── shared │ │ │ │ ├── delete.json │ │ │ │ ├── insights.json │ │ │ │ ├── movecopy.json │ │ │ │ ├── publish.json │ │ │ │ ├── references.json │ │ │ │ ├── search.json │ │ │ │ ├── unpublish.json │ │ │ │ └── versions.json │ │ │ ├── site │ │ │ │ ├── content.json │ │ │ │ ├── create.json │ │ │ │ ├── creategroup.json │ │ │ │ ├── edit.json │ │ │ │ ├── editgroup.json │ │ │ │ └── sites.json │ │ │ ├── siteconfig │ │ │ │ └── editor.json │ │ │ ├── start.json │ │ │ ├── static │ │ │ │ └── content.json │ │ │ ├── taxonomy │ │ │ │ ├── create.json │ │ │ │ ├── edit.json │ │ │ │ └── list.json │ │ │ ├── template │ │ │ │ ├── create.json │ │ │ │ └── edit.json │ │ │ ├── transformations │ │ │ │ ├── create.json │ │ │ │ ├── edit.json │ │ │ │ ├── editor.json │ │ │ │ ├── user.json │ │ │ │ ├── useredit.json │ │ │ │ └── userredirect.json │ │ │ └── usergenerated │ │ │ │ ├── content.json │ │ │ │ └── review.json │ │ ├── global.jsp │ │ └── i18n.json │ └── sling │ │ └── thumbnails │ │ ├── transformation │ │ ├── config.json │ │ ├── config │ │ │ ├── config.jsp │ │ │ └── edit.json │ │ └── transformation.jsp │ │ └── transformers │ │ ├── colorize.json │ │ ├── colorize │ │ ├── colorize.jsp │ │ └── edit.json │ │ ├── crop.json │ │ ├── crop │ │ ├── crop.jsp │ │ └── edit.json │ │ ├── flip.json │ │ ├── flip │ │ ├── edit.json │ │ └── flip.jsp │ │ ├── greyscale.json │ │ ├── greyscale │ │ ├── edit.json │ │ └── greyscale.jsp │ │ ├── resize.json │ │ ├── resize │ │ ├── edit.json │ │ └── resize.jsp │ │ ├── rotate.json │ │ ├── rotate │ │ ├── edit.json │ │ └── rotate.jsp │ │ ├── scale │ │ ├── edit.json │ │ └── scale.jsp │ │ ├── transparency.json │ │ └── transparency │ │ ├── edit.json │ │ └── transparency.jsp │ └── static │ └── sling-cms │ ├── errorhandling │ ├── 401.json │ ├── 403.json │ ├── 404.json │ └── default.json │ ├── thumbnails.json │ └── thumbnails │ ├── bulk-publication.png │ ├── exporter.png │ ├── file.png │ ├── folder.png │ ├── importer.png │ ├── page.png │ ├── publish-agent.png │ └── site.png └── vagrant ├── Vagrantfile └── src ├── cache_disk.conf ├── cms.conf ├── init.sh ├── install-apache.sh ├── install-slingcms.sh ├── selinux ├── site.conf ├── start.sh └── stop.sh /.asf.yaml: -------------------------------------------------------------------------------- 1 | github: 2 | autolink_jira: 3 | - "SLING" 4 | - "OAK" 5 | - "JCR" 6 | - "JCRVLT" 7 | - "INFRA" 8 | - "FELIX" 9 | - "MNG" 10 | notifications: 11 | jira_options: "link" 12 | pullrequests_bot_sonarcloud: "commits@sling.apache.org" 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.jar 2 | .metadata 3 | RemoteSystemsTempFiles 4 | target 5 | .grunt 6 | .idea 7 | .classpath 8 | .project 9 | .settings 10 | bin 11 | .vlt 12 | .DS_Store 13 | .vlt-sync-config.properties 14 | .vlt-sync.log 15 | .brackets.json 16 | .metadata/ 17 | .vagrant/ 18 | *.iml 19 | node_modules/ 20 | node/ 21 | .vscode/ 22 | pom.xml.releaseBackup 23 | pom.xml.tag 24 | release.properties 25 | pom.xml.next 26 | .java-version -------------------------------------------------------------------------------- /.gitpod.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gitpod/workspace-full 2 | 3 | USER gitpod 4 | 5 | # Install custom tools, runtime, etc. using apt-get 6 | # For example, the command below would install "bastet" - a command line tetris clone: 7 | # 8 | # RUN sudo apt-get -q update && # sudo apt-get install -yq bastet && # sudo rm -rf /var/lib/apt/lists/* 9 | # 10 | # More information: https://www.gitpod.io/docs/42_config_docker/ 11 | RUN bash -c ". /home/gitpod/.sdkman/bin/sdkman-init.sh \ 12 | && sdk install java 11.0.9.hs-adpt" -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- 1 | tasks: 2 | - command: mvn install -DskipTests && java -jar feature/target/org.apache.sling.cms-*-SNAPSHOT.jar 3 | image: 4 | file: .gitpod.Dockerfile 5 | ports: 6 | - port: 8080 -------------------------------------------------------------------------------- /.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /.sling-module.json: -------------------------------------------------------------------------------- 1 | { 2 | "jenkins": { 3 | "jdks": [11, 17], 4 | "mavenGoal": "install", 5 | "operatingSystems": ["linux"] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Jenkinsfile: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | slingOsgiBundleBuild() 21 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Apache Sling App CMS 2 | Copyright 2019 The Apache Software Foundation 3 | 4 | This product includes software developed at 5 | The Apache Software Foundation (http://www.apache.org/). 6 | 7 | This product includes software developed at 8 | https://github.com/coobird/thumbnailator 9 | -------------------------------------------------------------------------------- /api/src/main/java/org/apache/sling/cms/i18n/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /** 21 | * Package for managing i18n in Sling CMS 22 | * 23 | * @since 0.10.0 24 | */ 25 | @org.osgi.annotation.versioning.Version("1.0.0") 26 | package org.apache.sling.cms.i18n; 27 | -------------------------------------------------------------------------------- /api/src/main/java/org/apache/sling/cms/insights/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /** 21 | * Support for Content Insights 22 | * 23 | * @version 0.10.2 24 | */ 25 | @org.osgi.annotation.versioning.Version("1.0.0") 26 | package org.apache.sling.cms.insights; 27 | -------------------------------------------------------------------------------- /api/src/main/java/org/apache/sling/cms/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /** 21 | * Package with all of the common models used to access content in the Sling 22 | * reference CMS 23 | * 24 | * @since 0.10.0 25 | */ 26 | @org.osgi.annotation.versioning.Version("2.1.1") 27 | package org.apache.sling.cms; 28 | -------------------------------------------------------------------------------- /api/src/main/java/org/apache/sling/cms/publication/INSTANCE_TYPE.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | package org.apache.sling.cms.publication; 18 | 19 | public enum INSTANCE_TYPE { 20 | STANDALONE, AUTHOR, RENDERER 21 | } 22 | -------------------------------------------------------------------------------- /api/src/main/java/org/apache/sling/cms/publication/PUBLICATION_MODE.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | package org.apache.sling.cms.publication; 18 | 19 | /** 20 | * The publication mode of the instance. 21 | */ 22 | public enum PUBLICATION_MODE { 23 | STANDALONE, CONTENT_DISTRIBUTION 24 | } 25 | -------------------------------------------------------------------------------- /api/src/main/java/org/apache/sling/cms/publication/PublicationType.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | package org.apache.sling.cms.publication; 18 | 19 | /** 20 | * The type of publication. If in standalone will return STANDALONE. 21 | */ 22 | public enum PublicationType { 23 | ADD, DELETE, NONE 24 | } 25 | -------------------------------------------------------------------------------- /api/src/main/java/org/apache/sling/cms/publication/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /** 21 | * Publication related APIs 22 | * 23 | * @since 0.16.2 24 | */ 25 | @org.osgi.annotation.versioning.Version("1.0.0") 26 | package org.apache.sling.cms.publication; 27 | -------------------------------------------------------------------------------- /api/src/main/java/org/apache/sling/cms/readability/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /** 21 | * Support for Content Insights 22 | * 23 | * @version 0.10.2 24 | */ 25 | @Version("1.0.0") 26 | package org.apache.sling.cms.readability; 27 | 28 | import org.osgi.annotation.versioning.Version; 29 | -------------------------------------------------------------------------------- /api/src/main/java/org/apache/sling/cms/usergenerated/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /** 21 | * Handling for User Generated Content 22 | * 23 | * @version 0.9.0 24 | */ 25 | @org.osgi.annotation.versioning.Version("0.9.2") 26 | package org.apache.sling.cms.usergenerated; 27 | -------------------------------------------------------------------------------- /archetype/src/main/resources/archetype-resources/gulpfile.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | var gulp = require('gulp'); 18 | 19 | gulp.task('css', function() { 20 | return gulp.src(['./node_modules/bootstrap/dist/css/bootstrap.min.css']) 21 | .pipe(gulp.dest('./target/dist/jcr_root/static/clientlibs/${appName}/css')); 22 | }); 23 | 24 | gulp.task('default', gulp.series('css')); 25 | -------------------------------------------------------------------------------- /archetype/src/main/resources/archetype-resources/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "${appName}-front-end", 3 | "version": "1.0.0", 4 | "description": "Scripts and Styles for ${appName}", 5 | "dependencies": { 6 | "bootstrap": "^4.3.1" 7 | }, 8 | "devDependencies": { 9 | "gulp": "^4.0.1" 10 | }, 11 | "license": "Apache-2.0" 12 | } 13 | -------------------------------------------------------------------------------- /archetype/src/main/resources/archetype-resources/src/main/java/__packageInPathFormat__/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /** 21 | * Models package for ${appName} 22 | * 23 | * @version ${version} 24 | */ 25 | @org.osgi.annotation.versioning.Version("1.0.0") 26 | package ${package}; 27 | -------------------------------------------------------------------------------- /archetype/src/main/resources/archetype-resources/src/main/resources/jcr_root/apps/__appName__/components/page.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType" : "sling:Component", 3 | "jcr:title": "${appName} - Page", 4 | "sling:resourceSuperType": "reference/components/pages/base", 5 | "componentType": "Page" 6 | } 7 | -------------------------------------------------------------------------------- /archetype/src/main/resources/archetype-resources/src/test/resources/resource.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured" 3 | } 4 | -------------------------------------------------------------------------------- /core/bnd.bnd: -------------------------------------------------------------------------------- 1 | # a lot of bundle header are generated from pom elements by default: https://github.com/bndtools/bnd/tree/master/maven/bnd-maven-plugin#default-bundle-headers 2 | Bundle-Category: sling 3 | # export all versioned packages except for conditional ones (https://github.com/bndtools/bnd/issues/3721#issuecomment-579026778) 4 | -exportcontents: ${removeall;${packages;VERSIONED};${packages;CONDITIONAL}} 5 | # see https://issues.apache.org/jira/browse/SLING-8980 6 | -snapshot: SNAPSHOT 7 | # reproducible builds (https://github.com/bndtools/bnd/issues/3521) 8 | -noextraheaders: true 9 | # we cannot let bnd-maven-plugin generate it automatically, as Maven applies some inheritance logic which is incorrect for Sling (https://issues.apache.org/jira/browse/SLING-8537) 10 | Bundle-DocURL: https://sling.apache.org 11 | 12 | Sling-Model-Packages: org.apache.sling.cms.core.models,org.apache.sling.cms.core.internal.models 13 | -------------------------------------------------------------------------------- /core/src/main/java/org/apache/sling/cms/core/models/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /** 21 | * Package with all of the core models used to support the Sling reference CMS 22 | */ 23 | @Version("5.1.0") 24 | package org.apache.sling.cms.core.models; 25 | 26 | import org.osgi.annotation.versioning.Version; 27 | -------------------------------------------------------------------------------- /core/src/main/resources/res/editinclude/droptarget.html: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /core/src/main/resources/res/editinclude/end.html: -------------------------------------------------------------------------------- 1 | 18 | 19 |${sling:encode(properties.code,'HTML_ATTR')}-------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/codeblock/edit.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/editor/slingform", 4 | "button": "Save Code Block", 5 | "fields": { 6 | "jcr:primaryType": "nt:unstructured", 7 | "sling:resourceType": "sling-cms/components/general/container", 8 | "code": { 9 | "jcr:primaryType": "nt:unstructured", 10 | "sling:resourceType": "sling-cms/components/editor/fields/textarea", 11 | "label": "Code", 12 | "name": "code", 13 | "required": true 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/columncontrol.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "sling:Component", 3 | "componentType": "General", 4 | "jcr:title": "Column Control" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/cta.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "sling:Component", 3 | "componentType": "General", 4 | "jcr:title": "Call to Action" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/cta/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/general/container", 4 | "ctaClasses": { 5 | "jcr:primaryType": "nt:unstructured", 6 | "sling:resourceType": "sling-cms/components/editor/fields/repeating", 7 | "label": "CTA Classes", 8 | "name": "ctaClasses", 9 | "type": "text", 10 | "required": true 11 | }, 12 | "ctaClassesTypeHint": { 13 | "jcr:primaryType": "nt:unstructured", 14 | "sling:resourceType": "sling-cms/components/editor/fields/hidden", 15 | "name": "ctaClasses@TypeHint", 16 | "value": "String[]" 17 | } 18 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/iframe.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType" : "sling:Component", 3 | "jcr:title": "IFrame", 4 | "componentType": "General" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/iframe/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/general/container", 4 | "wrapperClasses": { 5 | "jcr:primaryType": "nt:unstructured", 6 | "sling:resourceType": "sling-cms/components/editor/fields/repeating", 7 | "label": "Wrapper Classes", 8 | "name": "wrapperClasses", 9 | "type": "text", 10 | "required": true 11 | }, 12 | "wrapperClassesTypeHint": { 13 | "jcr:primaryType": "nt:unstructured", 14 | "sling:resourceType": "sling-cms/components/editor/fields/hidden", 15 | "name": "wrapperClasses@TypeHint", 16 | "value": "String[]" 17 | }, 18 | "iframeClass": { 19 | "jcr:primaryType": "nt:unstructured", 20 | "sling:resourceType": "sling-cms/components/editor/fields/text", 21 | "label": "IFrame Class", 22 | "name": "iframeClass", 23 | "required": true 24 | } 25 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/image.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType" : "sling:Component", 3 | "jcr:title": "Image", 4 | "componentType": "General" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/image/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/general/container", 4 | "imageClasses": { 5 | "jcr:primaryType": "nt:unstructured", 6 | "sling:resourceType": "sling-cms/components/editor/fields/repeating", 7 | "label": "Image Classes", 8 | "name": "imageClasses", 9 | "type": "text", 10 | "required": true 11 | }, 12 | "imageClassesTypeHint": { 13 | "jcr:primaryType": "nt:unstructured", 14 | "sling:resourceType": "sling-cms/components/editor/fields/hidden", 15 | "name": "imageClasses@TypeHint", 16 | "value": "String[]" 17 | } 18 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/list.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "sling:Component", 3 | "componentType": "General", 4 | "jcr:title": "List" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/list/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/general/container", 4 | "paginationClass": { 5 | "jcr:primaryType": "nt:unstructured", 6 | "sling:resourceType": "sling-cms/components/editor/fields/text", 7 | "label": "Pagination Class", 8 | "name": "paginationClass", 9 | "required": true 10 | }, 11 | "pageItemClass": { 12 | "jcr:primaryType": "nt:unstructured", 13 | "sling:resourceType": "sling-cms/components/editor/fields/text", 14 | "label": "Page Item Class", 15 | "name": "pageItemClass", 16 | "required": true 17 | }, 18 | "pageLinkClass": { 19 | "jcr:primaryType": "nt:unstructured", 20 | "sling:resourceType": "sling-cms/components/editor/fields/text", 21 | "label": "PageLink Class", 22 | "name": "pageLinkClass", 23 | "required": true 24 | } 25 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/reference.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "sling:Component", 3 | "componentType": "General", 4 | "jcr:title": "Reference" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/reference/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/general/container", 4 | "availableComponentTypes": { 5 | "jcr:primaryType": "nt:unstructured", 6 | "sling:resourceType": "sling-cms/components/cms/availablecomponenttypes" 7 | } 8 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/reference/edit.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/editor/slingform", 4 | "button": "Save Reference", 5 | "fields": { 6 | "jcr:primaryType": "nt:unstructured", 7 | "sling:resourceType": "sling-cms/components/general/container", 8 | "reference": { 9 | "jcr:primaryType": "nt:unstructured", 10 | "sling:resourceType": "sling-cms/components/editor/fields/path", 11 | "basePath": "/content", 12 | "label": "Reference Source", 13 | "name": "reference", 14 | "required": true 15 | }, 16 | "overrideType": { 17 | "jcr:primaryType": "nt:unstructured", 18 | "sling:resourceType": "sling-cms/components/editor/fields/select", 19 | "label": "Override Type", 20 | "name": "overrideType", 21 | "optionsScript": "/apps/reference/components/general/reference/types.jsp" 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/search.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "sling:Component", 3 | "componentType": "General", 4 | "jcr:title": "Search" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/search/edit.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/editor/slingform", 4 | "button": "Save", 5 | "fields": { 6 | "jcr:primaryType": "nt:unstructured", 7 | "sling:resourceType": "sling-cms/components/general/container", 8 | "limit": { 9 | "jcr:primaryType": "nt:unstructured", 10 | "sling:resourceType": "sling-cms/components/editor/fields/text", 11 | "label": "Limit", 12 | "name": "limit", 13 | "required": true, 14 | "type": "number" 15 | }, 16 | "basePath": { 17 | "jcr:primaryType": "nt:unstructured", 18 | "sling:resourceType": "sling-cms/components/editor/fields/text", 19 | "label": "Base Path", 20 | "name": "basePath", 21 | "required": true 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/searchform.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "sling:Component", 3 | "componentType": "General", 4 | "jcr:title": "Search Form" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/searchform/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/general/container", 4 | "formClass": { 5 | "jcr:primaryType": "nt:unstructured", 6 | "sling:resourceType": "sling-cms/components/editor/fields/text", 7 | "label": "Form Class", 8 | "name": "formClass", 9 | "type": "text" 10 | }, 11 | "buttonClass": { 12 | "jcr:primaryType": "nt:unstructured", 13 | "sling:resourceType": "sling-cms/components/editor/fields/text", 14 | "label": "Button Class", 15 | "name": "buttonClass", 16 | "type": "text" 17 | }, 18 | "inputClass": { 19 | "jcr:primaryType": "nt:unstructured", 20 | "sling:resourceType": "sling-cms/components/editor/fields/text", 21 | "label": "Input Class", 22 | "name": "inputClass", 23 | "type": "text" 24 | }, 25 | "searchPage": { 26 | "jcr:primaryType": "nt:unstructured", 27 | "sling:resourceType": "sling-cms/components/editor/fields/path", 28 | "label": "Search Page", 29 | "name": "searchPage", 30 | "type": "page" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/searchform/edit.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/editor/slingform", 4 | "button": "No Edit Needed", 5 | "fields": { 6 | "jcr:primaryType": "nt:unstructured", 7 | "sling:resourceType": "sling-cms/components/general/container" 8 | } 9 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/stylewrapper.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "sling:Component", 3 | "componentType": "General", 4 | "jcr:title": "Style Wrapper" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/stylewrapper/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/general/container", 4 | "styles": { 5 | "jcr:primaryType": "nt:unstructured", 6 | "sling:resourceType": "sling-cms/components/editor/fields/repeating", 7 | "label": "Style Options", 8 | "name": "styles", 9 | "type": "text", 10 | "required": true 11 | } 12 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/stylewrapper/edit.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/editor/slingform", 4 | "button": "Save", 5 | "fields": { 6 | "jcr:primaryType": "nt:unstructured", 7 | "sling:resourceType": "sling-cms/components/general/container", 8 | "style": { 9 | "jcr:primaryType": "nt:unstructured", 10 | "sling:resourceType": "sling-cms/components/editor/fields/combobox", 11 | "label": "Style Option", 12 | "name": "style", 13 | "optionsScript": "/apps/reference/components/general/stylewrapper/options.jsp" 14 | }, 15 | "styleTypeHint": { 16 | "jcr:primaryType": "nt:unstructured", 17 | "sling:resourceType": "sling-cms/components/editor/fields/hidden", 18 | "name": "style@TypeHint", 19 | "value": "String[]" 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/suffixheader.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "sling:Component", 3 | "componentType": "General", 4 | "jcr:title": "Suffix Header" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/tags.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "sling:Component", 3 | "componentType": "General", 4 | "jcr:title": "Tags" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/general/tags/edit.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType": "nt:unstructured", 3 | "sling:resourceType": "sling-cms/components/editor/slingform", 4 | "button": "No Need to Edit", 5 | "fields": { 6 | "jcr:primaryType": "nt:unstructured", 7 | "sling:resourceType": "sling-cms/components/general/container" 8 | } 9 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/pages/base.json: -------------------------------------------------------------------------------- 1 | { 2 | "jcr:primaryType" : "sling:Component", 3 | "jcr:title": "Reference - Base Page", 4 | "componentType": "Page" 5 | } -------------------------------------------------------------------------------- /reference/src/main/resources/jcr_root/apps/reference/components/pages/base/base.jsp: -------------------------------------------------------------------------------- 1 | <%-- /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ --%> 19 | <%@include file="/libs/sling-cms/global.jsp"%> 20 | 21 | 22 |