diff --git a/api/src/org/labkey/api/ApiModule.java b/api/src/org/labkey/api/ApiModule.java index 6e3828608f7..def6dcec40c 100644 --- a/api/src/org/labkey/api/ApiModule.java +++ b/api/src/org/labkey/api/ApiModule.java @@ -217,6 +217,9 @@ public class ApiModule extends CodeOnlyModule private static final String CORS_PREFIX = "cors."; private static final String CORS_FILTER_NAME = "CorsFilter"; + public static final String EXTJS_3_REQUIRED = "ExtJs3Required"; + public static final String EXTJS_3_API_REQUIRED = "ExtJs3ApiRequired"; + @Override protected void init() { @@ -245,6 +248,22 @@ protected void init() false, OptionalFeatureService.FeatureType.Optional )); + OptionalFeatureService.get().addFeatureFlag(new OptionalFeatureFlag( + EXTJS_3_REQUIRED, + "Require that ExtJS v3.4.1 is loaded on every page", + "This option will be removed in LabKey Server 26.11", + false, + false, + FeatureType.Deprecated + )); + OptionalFeatureService.get().addFeatureFlag(new OptionalFeatureFlag( + EXTJS_3_API_REQUIRED, + "Require that ExtJS v3.x-based Client API is loaded on every page", + "This option will be removed in LabKey Server 26.11", + false, + false, + FeatureType.Deprecated + )); } @NotNull diff --git a/api/src/org/labkey/api/Constants.java b/api/src/org/labkey/api/Constants.java index 9be1c4dc437..8440d771b1f 100644 --- a/api/src/org/labkey/api/Constants.java +++ b/api/src/org/labkey/api/Constants.java @@ -56,7 +56,7 @@ public static double getEarliestUpgradeVersion() */ public static String getDocumentationVersion() { - return "26.3"; + return "26.7"; } /** diff --git a/api/src/org/labkey/api/settings/AppProps.java b/api/src/org/labkey/api/settings/AppProps.java index 69fd3815109..9f45bb43cfc 100644 --- a/api/src/org/labkey/api/settings/AppProps.java +++ b/api/src/org/labkey/api/settings/AppProps.java @@ -174,10 +174,6 @@ static WriteableAppProps getWriteableInstance() int getMaxBLOBSize(); - boolean isExt3Required(); - - boolean isExt3APIRequired(); - ExceptionReportingLevel getExceptionReportingLevel(); /** diff --git a/api/src/org/labkey/api/settings/AppPropsImpl.java b/api/src/org/labkey/api/settings/AppPropsImpl.java index 4d35a2378e4..c3458f11262 100644 --- a/api/src/org/labkey/api/settings/AppPropsImpl.java +++ b/api/src/org/labkey/api/settings/AppPropsImpl.java @@ -327,18 +327,6 @@ public int getMaxBLOBSize() return lookupIntValue(maxBLOBSize, 50_000_000); } - @Override - public boolean isExt3Required() - { - return lookupBooleanValue(ext3Required, false); - } - - @Override - public boolean isExt3APIRequired() - { - return lookupBooleanValue(ext3APIRequired, false); - } - @Override public boolean isSelfReportExceptions() { diff --git a/api/src/org/labkey/api/settings/SiteSettingsProperties.java b/api/src/org/labkey/api/settings/SiteSettingsProperties.java index 50e2b5b09eb..ce450b74436 100644 --- a/api/src/org/labkey/api/settings/SiteSettingsProperties.java +++ b/api/src/org/labkey/api/settings/SiteSettingsProperties.java @@ -98,22 +98,6 @@ public void setValue(WriteableAppProps writeable, String value) writeable.setMaxBLOBSize(Integer.parseInt(value)); } }, - ext3Required("Require ExtJS v3.4.1 be loaded on each page (DEPRECATED)") - { - @Override - public void setValue(WriteableAppProps writeable, String value) - { - writeable.setExt3Required(Boolean.parseBoolean(value)); - } - }, - ext3APIRequired("Require ExtJS v3.x based Client API be loaded on each page (DEPRECATED)") - { - @Override - public void setValue(WriteableAppProps writeable, String value) - { - writeable.setExt3APIRequired(Boolean.parseBoolean(value)); - } - }, sslRequired("Require SSL connections (users must connect via SSL)") { @Override diff --git a/api/src/org/labkey/api/settings/WriteableAppProps.java b/api/src/org/labkey/api/settings/WriteableAppProps.java index bfad2735215..f7cbf248cdd 100644 --- a/api/src/org/labkey/api/settings/WriteableAppProps.java +++ b/api/src/org/labkey/api/settings/WriteableAppProps.java @@ -106,16 +106,6 @@ public void setSelfReportExceptions(boolean selfReport) storeBooleanValue(selfReportExceptions, selfReport); } - public void setExt3Required(boolean required) - { - storeBooleanValue(ext3Required, required); - } - - public void setExt3APIRequired(boolean required) - { - storeBooleanValue(ext3APIRequired, required); - } - public void setBLASTServerBaseURL(String blastServerBaseURL) { storeStringValue(BLASTBaseURL, blastServerBaseURL); diff --git a/api/src/org/labkey/api/util/PageFlowUtil.java b/api/src/org/labkey/api/util/PageFlowUtil.java index 4cb4e9a679c..520a6c2d171 100644 --- a/api/src/org/labkey/api/util/PageFlowUtil.java +++ b/api/src/org/labkey/api/util/PageFlowUtil.java @@ -39,6 +39,7 @@ import org.json.JSONObject; import org.junit.Assert; import org.junit.Test; +import org.labkey.api.ApiModule; import org.labkey.api.action.UrlProvider; import org.labkey.api.action.UrlProviderOverrideHandler; import org.labkey.api.action.UrlProviderService; @@ -67,6 +68,7 @@ import org.labkey.api.settings.AppProps; import org.labkey.api.settings.CustomLabelService; import org.labkey.api.settings.LookAndFeelProperties; +import org.labkey.api.settings.OptionalFeatureService; import org.labkey.api.settings.ResourceURL; import org.labkey.api.settings.TemplateResourceHandler; import org.labkey.api.settings.Theme; @@ -1661,9 +1663,9 @@ private static SafeToRender _getStandardIncludes(ViewContext context, @Nullable if (includeDefaultResources) { // Respect App Properties regarding Ext3 configuration - if (AppProps.getInstance().isExt3APIRequired()) + if (OptionalFeatureService.get().isFeatureEnabled(ApiModule.EXTJS_3_API_REQUIRED)) resources.add(ClientDependency.fromPath("clientapi/ext3")); - else if (AppProps.getInstance().isExt3Required()) + else if (OptionalFeatureService.get().isFeatureEnabled(ApiModule.EXTJS_3_REQUIRED)) resources.add(ClientDependency.fromPath("Ext3")); // TODO: Turn this into a lib.xml diff --git a/core/src/org/labkey/core/admin/AdminController.java b/core/src/org/labkey/core/admin/AdminController.java index 1c6cd22fdc5..b4da6864ac2 100644 --- a/core/src/org/labkey/core/admin/AdminController.java +++ b/core/src/org/labkey/core/admin/AdminController.java @@ -1410,8 +1410,6 @@ public boolean handlePost(SiteSettingsForm form, BindException errors) throws Ex props.setMemoryUsageDumpInterval(form.getMemoryUsageDumpInterval()); props.setReadOnlyHttpRequestTimeout(form.getReadOnlyHttpRequestTimeout()); props.setMaxBLOBSize(form.getMaxBLOBSize()); - props.setExt3Required(form.isExt3Required()); - props.setExt3APIRequired(form.isExt3APIRequired()); props.setSelfReportExceptions(form.isSelfReportExceptions()); props.setAdminOnlyMessage(form.getAdminOnlyMessage()); @@ -2348,8 +2346,6 @@ public static class SiteSettingsForm private boolean _sslRequired; private boolean _adminOnlyMode; private boolean _showRibbonMessage; - private boolean _ext3Required; - private boolean _ext3APIRequired; private boolean _selfReportExceptions; private String _adminOnlyMessage; private String _ribbonMessage; @@ -2401,26 +2397,6 @@ public void setSslRequired(boolean sslRequired) _sslRequired = sslRequired; } - public boolean isExt3Required() - { - return _ext3Required; - } - - public void setExt3Required(boolean ext3Required) - { - _ext3Required = ext3Required; - } - - public boolean isExt3APIRequired() - { - return _ext3APIRequired; - } - - public void setExt3APIRequired(boolean ext3APIRequired) - { - _ext3APIRequired = ext3APIRequired; - } - public int getSslPort() { return _sslPort; diff --git a/core/src/org/labkey/core/admin/customizeSite.jsp b/core/src/org/labkey/core/admin/customizeSite.jsp index 78968524841..9efb83ab14e 100644 --- a/core/src/org/labkey/core/admin/customizeSite.jsp +++ b/core/src/org/labkey/core/admin/customizeSite.jsp @@ -308,21 +308,13 @@ Click the Save button at any time to accept the current settings and continue.