From 5442caa8c0dd07134762b225e116acb01902bd9f Mon Sep 17 00:00:00 2001 From: "David E. Jones" Date: Mon, 25 Apr 2022 11:06:38 -0700 Subject: [PATCH 01/26] Updates for Gradle 6+ related to moqui-framework branch java11 (#196) * Comment out eriwen/gradle-js-plugin and tasks that use it, temporary change to go along with newer gradle use in the moqui-framework java11 branch, so will at least build, pending new solution * In webroot/build.gradle use gradle-minify-plugin to minify JS files, plus cleanup code because it behaves annoyingly with sub-directory recursion, plus little custom code to combine files; now works in Gradle 5 and more recent (tested with Gradle 7) --- base-component/webroot/build.gradle | 129 ++++++++++++---------------- 1 file changed, 55 insertions(+), 74 deletions(-) diff --git a/base-component/webroot/build.gradle b/base-component/webroot/build.gradle index bcdd15056..7069bca1a 100644 --- a/base-component/webroot/build.gradle +++ b/base-component/webroot/build.gradle @@ -19,20 +19,12 @@ buildscript { mavenCentral() maven { url "https://plugins.gradle.org/m2/" } } - dependencies { classpath 'com.github.ben-manes:gradle-versions-plugin:0.28.0' } -} - -/* gradle.js plugin getting warning with Gradle 5+, incompatible with Gradle 6: - - Internal API constructor FactoryNamedDomainObjectContainerConstructor AbstractNamedDomainObjectContainer(Class, Instantiator) - has been deprecated. This is scheduled to be removed in Gradle 6.0. Don't use internal API - - see https://github.com/eriwen/gradle-js-plugin/issues/168 - */ -plugins { - id "com.eriwen.gradle.js" version "2.14.1" + dependencies { + classpath 'com.github.ben-manes:gradle-versions-plugin:0.42.0' + classpath "org.gradle-webtools.minify:gradle-minify-plugin:1.3.1" + } } - +apply plugin: "org.gradlewebtools.minify" apply plugin: 'com.github.ben-manes.versions' dependencyUpdates.resolutionStrategy = { componentSelection { rules -> rules.all { ComponentSelection selection -> boolean rejected = ['alpha', 'beta', 'rc', 'cr', 'm', 'b'].any { qualifier -> selection.candidate.version ==~ /(?i).*[.-]${qualifier}[.\d-].*/ } @@ -155,7 +147,6 @@ baseJs.add(libsPath + '/jquery-validate/jquery.validate.min.js') baseJs.add(libsPath + '/jquery-validate/additional-methods.min.js') // Date/Time (Moment, bootstrap-datetimepicker) baseJs.add(libsPath + '/moment.js/moment-with-locales.min.js') -//baseJs.add(libsPath + '/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js') baseJs.add(webrootPath + '/js/bootstrap-datetimepicker.min.js') // Drop-down (Select2, Selectivity) baseJs.add(webrootPath + '/js/select2.min.js') @@ -185,78 +176,68 @@ vuetJs.add(webrootPath + '/js/http-vue-loader/httpVueLoader.js') // Vue root component instance, in footer so runs after page loaded vuetJs.add(webrootPath + '/js/WebrootVue.min.js') - -task minifySelect2(type: com.eriwen.gradle.js.tasks.MinifyJsTask) { - source = file("${webrootPath}/js/select2/select2.js") - dest = file("${webrootPath}/js/select2.min.js") - closure { compilerOptions.setOutputCharset(StandardCharsets.UTF_8) } -} -task minifyDateTimePicker(type: com.eriwen.gradle.js.tasks.MinifyJsTask) { - source = file("${webrootPath}/js/bootstrap-datetimepicker/bootstrap-datetimepicker.js") - dest = file("${webrootPath}/js/bootstrap-datetimepicker.min.js") - closure { compilerOptions.setOutputCharset(StandardCharsets.UTF_8) } -} -/* using pre-minified version -task minifyQzTray(type: com.eriwen.gradle.js.tasks.MinifyJsTask) { - source = file("${webrootPath}/js/qz-tray/qz-tray.js") - dest = file("${webrootPath}/js/qz-tray.min.js") - closure { compilerOptions.setOutputCharset(StandardCharsets.UTF_8); warningLevel = 'QUIET' } -} -*/ -task minifyMoquiLib(type: com.eriwen.gradle.js.tasks.MinifyJsTask) { - source = file("${webrootPath}/js/MoquiLib.js") - dest = file("${webrootPath}/js/MoquiLib.min.js") - closure { compilerOptions.setOutputCharset(StandardCharsets.UTF_8) } +task minifyJsDir(type: org.gradlewebtools.minify.JsMinifyTask) { + // see: https://github.com/gradle-webtools/gradle-minify-plugin + // NOTE: JsMinifyTask (and the css one, etc) always recursively minify in sub-directories, no way to disable! (based on source review 2022-04-05) + srcDir = file(webrootPath + "/js") + dstDir = file(webrootPath + "/js") + options.ignoreMinFiles = true + options.emitUseStrict = false + options.strictModeInput = false + options.compilationLevel = com.google.javascript.jscomp.CompilationLevel.SIMPLE_OPTIMIZATIONS + options.env = com.google.javascript.jscomp.CompilerOptions.Environment.BROWSER + options.warningLevel = com.google.javascript.jscomp.WarningLevel.QUIET + options.charset = StandardCharsets.UTF_8 + // because all sub-directories are processed for js files to minify, move and remove manually to clean up here... + doLast { + // move the two min files we want + file(webrootPath + '/js/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js') + .renameTo(file(webrootPath + '/js/bootstrap-datetimepicker.min.js')) + file(webrootPath + '/js/select2/select2.min.js') + .renameTo(file(webrootPath + '/js/select2.min.js')) + // delete the min files we don't need/want + file(webrootPath + '/js/http-vue-loader/httpVueLoader.min.js').delete() + file(webrootPath + '/js/qz-tray/MoquiQzComponent.min.js').delete() + } } -task combineBaseJs(type: com.eriwen.gradle.js.tasks.CombineJsTask) { +task combineBaseJs { dependsOn downloadFiles - dependsOn minifySelect2 - dependsOn minifyDateTimePicker - dependsOn minifyMoquiLib - encoding = "UTF-8" - source = baseJs - dest = file("${webrootPath}/js/CombinedBase.min.js") -} -// moment.js and many others have lots of comments, etc that make it very large so re-minify -/* issues have been found in certain browsers on certain operating systems with this, see https://github.com/moqui/moqui-runtime/issues/76 -task minifyCombinedBase(type: com.eriwen.gradle.js.tasks.MinifyJsTask) { - dependsOn combineBaseJs - source = file("${webrootPath}/js/CombinedBase.min.js") - dest = file("${webrootPath}/js/CombinedBaseMin.min.js") - closure { - warningLevel = 'QUIET' - compilerOptions.setOutputCharset(StandardCharsets.UTF_8) + dependsOn minifyJsDir + // dependsOn minifySelect2 + // dependsOn minifyDateTimePicker + doLast { + def destFile = file("${webrootPath}/js/CombinedBase.min.js") + destFile.write("") + baseJs.each({ + destFile.append(file(it).getText("UTF-8")) + destFile.append("\n") + }) } } -*/ - -task minifyWebrootVue(type: com.eriwen.gradle.js.tasks.MinifyJsTask) { - source = file("${webrootPath}/js/WebrootVue.js") - dest = file("${webrootPath}/js/WebrootVue.min.js") - closure { compilerOptions.setOutputCharset(StandardCharsets.UTF_8) } -} -task combineVuetJs(type: com.eriwen.gradle.js.tasks.CombineJsTask) { +task combineVuetJs { dependsOn downloadFiles - dependsOn minifyWebrootVue - encoding = "UTF-8" - source = vuetJs - dest = file("${webrootPath}/js/CombinedVuet.min.js") -} - -task minifyWebrootVueQvt(type: com.eriwen.gradle.js.tasks.MinifyJsTask) { - source = file("${webrootPath}/js/WebrootVue.qvt.js") - dest = file("${webrootPath}/js/WebrootVue.qvt.min.js") - closure { compilerOptions.setOutputCharset(StandardCharsets.UTF_8) } + dependsOn minifyJsDir + doLast { + def destFile = file("${webrootPath}/js/CombinedVuet.min.js") + destFile.write("") + vuetJs.each({ + destFile.append(file(it).getText("UTF-8")) + destFile.append("\n") + }) + } } -task clean { doLast { delete fileTree(dir: "${webrootPath}/js", include: '*.min.js') }} task build { dependsOn downloadFiles + + dependsOn minifyJsDir + dependsOn combineBaseJs - // issues seen with this on Windows, disabling for now: dependsOn minifyCombinedBase dependsOn combineVuetJs - dependsOn minifyWebrootVueQvt } +task clean { doLast { + delete fileTree(dir: "${webrootPath}/js", include: '*.min.js') +}} task cleanAll { doLast { delete file(libsPath) } } From bb2a6af6ea10da77c60077168b58bc25e866fe3f Mon Sep 17 00:00:00 2001 From: David E Jones Date: Thu, 5 May 2022 10:49:26 -0700 Subject: [PATCH 02/26] Add opensearch* directories to git ignore, like elasticsearch* --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index aae06b5b2..06b1758f3 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ /db/orientdb/databases/ /db/snapshot/ /elasticsearch*/ +/opensearch*/ /jackrabbit/jackrabbit/ /log/ /sessions/ From 6eaeeed2cf6ee41b55fd20cbeaae578c410f255d Mon Sep 17 00:00:00 2001 From: "David E. Jones" Date: Tue, 31 May 2022 12:03:41 -0700 Subject: [PATCH 03/26] Release 3.0.0 changes (#197) * Update XML files to use new XSD references for the 3.0.0 release series * Add more release notes from review of commits since last release, update year in AUTHORS --- AUTHORS | 4 +-- ReleaseNotes.md | 29 ++++++++++++++++--- base-component/tools/MoquiConf.xml | 2 +- base-component/tools/component.xml | 2 +- base-component/tools/screen/System.xml | 2 +- .../tools/screen/System/ArtifactHitBins.xml | 2 +- .../screen/System/ArtifactHitSummary.xml | 2 +- .../tools/screen/System/AuditLog.xml | 2 +- base-component/tools/screen/System/Cache.xml | 2 +- .../screen/System/Cache/CacheElements.xml | 2 +- .../tools/screen/System/Cache/CacheList.xml | 2 +- .../tools/screen/System/DataDocument.xml | 2 +- .../tools/screen/System/DataDocument/Edit.xml | 2 +- .../DataDocument/Edit/DataDocFields.xml | 2 +- .../Edit/DataDocFields/FieldList.xml | 2 +- .../DataDocument/Edit/EditDataDocument.xml | 2 +- .../DataDocument/Edit/FindDataDocument.xml | 2 +- .../DataDocument/Edit/ViewDataDocument.xml | 2 +- .../screen/System/DataDocument/Export.xml | 2 +- .../screen/System/DataDocument/Index.xml | 2 +- .../screen/System/DataDocument/Search.xml | 2 +- .../System/DataDocument/ViewDocument.xml | 2 +- .../tools/screen/System/EntitySync.xml | 2 +- .../System/EntitySync/EntitySyncDetail.xml | 2 +- .../System/EntitySync/EntitySyncHistory.xml | 2 +- .../System/EntitySync/EntitySyncList.xml | 2 +- .../tools/screen/System/Instance.xml | 2 +- .../screen/System/Instance/InstanceDetail.xml | 2 +- .../screen/System/Instance/InstanceList.xml | 2 +- .../tools/screen/System/Localization.xml | 2 +- .../System/Localization/EntityFields.xml | 2 +- .../screen/System/Localization/Messages.xml | 2 +- .../tools/screen/System/LogViewer.xml | 2 +- base-component/tools/screen/System/Print.xml | 2 +- .../tools/screen/System/Print/PrintJob.xml | 2 +- .../System/Print/PrintJob/PrintJobDetail.xml | 2 +- .../System/Print/PrintJob/PrintJobList.xml | 2 +- .../tools/screen/System/Print/Printer.xml | 2 +- .../System/Print/Printer/PrinterList.xml | 2 +- .../tools/screen/System/Resource.xml | 2 +- .../tools/screen/System/Resource/ElFinder.xml | 2 +- .../tools/screen/System/Security.xml | 2 +- .../screen/System/Security/ActiveUsers.xml | 2 +- .../screen/System/Security/ArtifactGroup.xml | 2 +- .../ArtifactGroup/ArtifactGroupDetail.xml | 2 +- .../ArtifactGroup/ArtifactGroupList.xml | 2 +- .../screen/System/Security/UserAccount.xml | 2 +- .../UserAccount/UserAccountDetail.xml | 2 +- .../UserAccountDetail/VerifyEmail.xml | 2 +- .../UserAccountDetail/VerifySms.xml | 2 +- .../UserAccountDetail/VerifyTotp.xml | 2 +- .../Security/UserAccount/UserAccountList.xml | 2 +- .../screen/System/Security/UserGroup.xml | 2 +- .../System/Security/UserGroup/GroupUsers.xml | 2 +- .../Security/UserGroup/UserGroupDetail.xml | 2 +- .../Security/UserGroup/UserGroupList.xml | 2 +- .../tools/screen/System/ServiceJob.xml | 2 +- .../screen/System/ServiceJob/JobRuns.xml | 2 +- .../ServiceJob/JobRuns/JobRunDetail.xml | 2 +- .../System/ServiceJob/JobRuns/JobRunList.xml | 2 +- .../tools/screen/System/ServiceJob/Jobs.xml | 2 +- .../ServiceJob/Jobs/ServiceJobDetail.xml | 2 +- .../System/ServiceJob/Jobs/ServiceJobList.xml | 2 +- .../tools/screen/System/SystemMessage.xml | 2 +- .../screen/System/SystemMessage/Message.xml | 2 +- .../Message/SystemMessageDetail.xml | 2 +- .../SystemMessageDetail/EditMessageText.xml | 2 +- .../Message/SystemMessageList.xml | 2 +- .../screen/System/SystemMessage/Remote.xml | 2 +- .../Remote/MessageRemoteDetail.xml | 2 +- .../Remote/MessageRemoteList.xml | 2 +- .../screen/System/SystemMessage/Type.xml | 2 +- .../SystemMessage/Type/MessageTypeDetail.xml | 2 +- .../SystemMessage/Type/MessageTypeList.xml | 2 +- .../tools/screen/System/ThreadList.xml | 2 +- base-component/tools/screen/System/Visit.xml | 2 +- .../tools/screen/System/Visit/VisitDetail.xml | 2 +- .../tools/screen/System/Visit/VisitList.xml | 2 +- .../tools/screen/System/dashboard.xml | 2 +- base-component/tools/screen/Tools.xml | 2 +- .../tools/screen/Tools/ArtifactStats.xml | 2 +- .../tools/screen/Tools/AutoScreen.xml | 2 +- .../screen/Tools/AutoScreen/AutoEdit.xml | 2 +- .../AutoScreen/AutoEdit/AutoEditDetail.xml | 4 +-- .../AutoScreen/AutoEdit/AutoEditMaster.xml | 4 +-- .../screen/Tools/AutoScreen/AutoFind.xml | 4 +-- .../Tools/AutoScreen/MainEntityList.xml | 2 +- .../tools/screen/Tools/DataView.xml | 2 +- .../screen/Tools/DataView/EditDbView.xml | 2 +- .../screen/Tools/DataView/FindDbView.xml | 2 +- .../screen/Tools/DataView/ViewDbView.xml | 2 +- base-component/tools/screen/Tools/Entity.xml | 2 +- .../tools/screen/Tools/Entity/DataEdit.xml | 2 +- .../Tools/Entity/DataEdit/EntityDataEdit.xml | 2 +- .../Tools/Entity/DataEdit/EntityDataFind.xml | 2 +- .../Tools/Entity/DataEdit/EntityDetail.xml | 2 +- .../Tools/Entity/DataEdit/EntityList.xml | 2 +- .../tools/screen/Tools/Entity/DataExport.xml | 2 +- .../tools/screen/Tools/Entity/DataImport.xml | 2 +- .../screen/Tools/Entity/DataSnapshot.xml | 2 +- .../tools/screen/Tools/Entity/QueryStats.xml | 2 +- .../tools/screen/Tools/Entity/SpeedTest.xml | 2 +- .../tools/screen/Tools/Entity/SqlRunner.xml | 2 +- .../tools/screen/Tools/Entity/TableStats.xml | 2 +- .../tools/screen/Tools/GroovyShell.xml | 2 +- base-component/tools/screen/Tools/Service.xml | 2 +- .../screen/Tools/Service/ServiceDetail.xml | 2 +- .../screen/Tools/Service/ServiceReference.xml | 2 +- .../tools/screen/Tools/Service/ServiceRun.xml | 2 +- .../tools/screen/Tools/dashboard.xml | 2 +- base-component/tools/screen/toolstatic.xml | 2 +- base-component/tools/service/moqui.rest.xml | 2 +- base-component/webroot/component.xml | 2 +- base-component/webroot/screen/webroot.xml | 2 +- .../webroot/screen/webroot/ChangePassword.xml | 2 +- .../webroot/screen/webroot/Login.xml | 2 +- .../webroot/screen/webroot/SecondFactor.xml | 2 +- .../webroot/screen/webroot/apps.xml | 2 +- .../webroot/screen/webroot/apps/AppList.xml | 2 +- .../screen/webroot/apps/ScreenTree.xml | 2 +- .../apps/ScreenTree/ScreenTreeNested.xml | 2 +- .../webroot/screen/webroot/echopath.xml | 2 +- .../webroot/screen/webroot/error.xml | 2 +- .../screen/webroot/error/Forbidden.xml | 2 +- .../screen/webroot/error/InternalError.xml | 2 +- .../webroot/screen/webroot/error/NotFound.xml | 2 +- .../webroot/screen/webroot/error/TooMany.xml | 2 +- .../screen/webroot/error/Unauthorized.xml | 2 +- .../webroot/screen/webroot/qapps.xml | 2 +- .../webroot/screen/webroot/rest.xml | 2 +- base-component/webroot/screen/webroot/rpc.xml | 2 +- .../webroot/screen/webroot/vapps.xml | 2 +- .../service/webroot/LocaleServices.xml | 2 +- .../template/screen/BasicTransitions.xml | 2 +- .../template/screen/BasicWidgetTemplates.xml | 2 +- conf/MoquiDevConf.xml | 2 +- conf/MoquiLoadTestConf.xml | 2 +- conf/MoquiProductionConf.xml | 2 +- 138 files changed, 166 insertions(+), 145 deletions(-) diff --git a/AUTHORS b/AUTHORS index 3087600f5..88f33f1b9 100644 --- a/AUTHORS +++ b/AUTHORS @@ -34,7 +34,7 @@ that are otherwise encumbered. Signed by git commit adding my legal name and git username: -Written in 2010-2020 by David E. Jones - jonesde +Written in 2010-2022 by David E. Jones - jonesde Written in 2021-2021 by D. Michael Jones - acetousk Written in 2014-2015 by Solomon Bessire - sbessire Written in 2014-2015 by Jacopo Cappellato - jacopoc @@ -75,7 +75,7 @@ litigation is filed. Signed by git commit adding my legal name and git username: -Written in 2010-2020 by David E. Jones - jonesde +Written in 2010-2022 by David E. Jones - jonesde Written in 2021-2021 by D. Michael Jones - acetousk Written in 2014-2015 by Solomon Bessire - sbessire Written in 2014-2015 by Jacopo Cappellato - jacopoc diff --git a/ReleaseNotes.md b/ReleaseNotes.md index a95aa126c..11de99592 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,9 +1,22 @@ # Moqui Runtime Release Notes -## Release 3.0.0 - Not Yet Released +## Release 3.0.0 - 31 May 2022 -Moqui Runtime 2.1.2 is a patch level new feature and bug fix release, in parallel with the release of Moqui Framework. +Moqui Runtime 3.0.0 is a major new feature and bug fix release with some changes that are not backward compatible, +in parallel with the release of Moqui Framework. + +In this release there is a new render mode (qvt) and apps screen wrapper (/qapps) that is like vuet and /vapps but uses +the Quasar project, a Vue JS component library based on Google Material Design. The new Vue JS component library in Moqui +(in WebrootVue.qvt.js) takes a big step toward more client rendering and better use of Vue JS components and events, +making it far easier to extend with dynamic behavior (vs the vuet and html render modes). + +There are various small improvements to the System and Tools apps, and some new screens like an interactive Groovy Shell +screen and a Table Stats screen that shows the number of records in each entity's table. + +This is a brief summary of the changes since the last release, for a complete list see the commit log: + +https://github.com/moqui/moqui-runtime/compare/v2.1.3...v3.0.0 ### Non Backward Compatible Changes @@ -11,9 +24,17 @@ Moqui Runtime 2.1.2 is a patch level new feature and bug fix release, in paralle - moquiSessionToken: for security reasons, it opened a vector in a CSRF attack to acquire the session token at any time - api_key: there is no good use case, just use cases that are less secure and poorly thought through -For a complete list of changes see: +### New Features -https://github.com/moqui/moqui-runtime/compare/v2.1.3...v3.0.0 +- MFA support for login and update password in screens and REST API with factors including authc code by email and SMS, + TOTP code (via authenticator app), backup codes; can set a flag on UserGroup to require second factor for all users in + the group, and if any user has any additional factor enable then a second factor will be required +- Saved Find dialog (in form-list) improvements to show options for scheduled screen render, to send regular reports to + users by email (simple email with CSV or XSLT attachment) +- Groovy Shell screen added to the Tools app (with special permission), an interactive Groovy Console for testing in + various environments and for fixing certain production issues +- Update Swagger UI to 4.1.3 with JS/CSS files loaded from cdnjs instead of locally to avoid having files in the repos + making it easier to update over time, along with cleaning up an old mess and a few CVE and WS security issues ## Release 2.1.3 - 07 Dec 2019 diff --git a/base-component/tools/MoquiConf.xml b/base-component/tools/MoquiConf.xml index 12aa715e5..e1dc584b2 100644 --- a/base-component/tools/MoquiConf.xml +++ b/base-component/tools/MoquiConf.xml @@ -1,6 +1,6 @@ - + diff --git a/base-component/tools/component.xml b/base-component/tools/component.xml index ce1567196..385570cbc 100644 --- a/base-component/tools/component.xml +++ b/base-component/tools/component.xml @@ -1,3 +1,3 @@ - diff --git a/base-component/tools/screen/System.xml b/base-component/tools/screen/System.xml index 0366c58b9..7b5a85fea 100644 --- a/base-component/tools/screen/System.xml +++ b/base-component/tools/screen/System.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/ArtifactHitBins.xml b/base-component/tools/screen/System/ArtifactHitBins.xml index 43566773b..688822f06 100644 --- a/base-component/tools/screen/System/ArtifactHitBins.xml +++ b/base-component/tools/screen/System/ArtifactHitBins.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/ArtifactHitSummary.xml b/base-component/tools/screen/System/ArtifactHitSummary.xml index 913120512..0dcc651dd 100644 --- a/base-component/tools/screen/System/ArtifactHitSummary.xml +++ b/base-component/tools/screen/System/ArtifactHitSummary.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/AuditLog.xml b/base-component/tools/screen/System/AuditLog.xml index 45a7d9b7b..3e4971aca 100644 --- a/base-component/tools/screen/System/AuditLog.xml +++ b/base-component/tools/screen/System/AuditLog.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Cache.xml b/base-component/tools/screen/System/Cache.xml index 24215ec28..a042ea836 100644 --- a/base-component/tools/screen/System/Cache.xml +++ b/base-component/tools/screen/System/Cache.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Cache/CacheElements.xml b/base-component/tools/screen/System/Cache/CacheElements.xml index 6f71075c5..7e2124abf 100644 --- a/base-component/tools/screen/System/Cache/CacheElements.xml +++ b/base-component/tools/screen/System/Cache/CacheElements.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> + xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/xml-screen-3.xsd"> diff --git a/base-component/tools/screen/System/Cache/CacheList.xml b/base-component/tools/screen/System/Cache/CacheList.xml index 2a4236435..ac1e22780 100644 --- a/base-component/tools/screen/System/Cache/CacheList.xml +++ b/base-component/tools/screen/System/Cache/CacheList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> + xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/xml-screen-3.xsd"> diff --git a/base-component/tools/screen/System/DataDocument.xml b/base-component/tools/screen/System/DataDocument.xml index 3db795e6e..be3b3c384 100644 --- a/base-component/tools/screen/System/DataDocument.xml +++ b/base-component/tools/screen/System/DataDocument.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/DataDocument/Edit.xml b/base-component/tools/screen/System/DataDocument/Edit.xml index 07c476baf..6c5d9eb08 100644 --- a/base-component/tools/screen/System/DataDocument/Edit.xml +++ b/base-component/tools/screen/System/DataDocument/Edit.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/DataDocument/Edit/DataDocFields.xml b/base-component/tools/screen/System/DataDocument/Edit/DataDocFields.xml index 00f2076dc..2670a8eff 100644 --- a/base-component/tools/screen/System/DataDocument/Edit/DataDocFields.xml +++ b/base-component/tools/screen/System/DataDocument/Edit/DataDocFields.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/DataDocument/Edit/DataDocFields/FieldList.xml b/base-component/tools/screen/System/DataDocument/Edit/DataDocFields/FieldList.xml index 7f608d2ef..79863dcc7 100644 --- a/base-component/tools/screen/System/DataDocument/Edit/DataDocFields/FieldList.xml +++ b/base-component/tools/screen/System/DataDocument/Edit/DataDocFields/FieldList.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/DataDocument/Edit/EditDataDocument.xml b/base-component/tools/screen/System/DataDocument/Edit/EditDataDocument.xml index b62d79e40..5fc95266f 100644 --- a/base-component/tools/screen/System/DataDocument/Edit/EditDataDocument.xml +++ b/base-component/tools/screen/System/DataDocument/Edit/EditDataDocument.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/DataDocument/Edit/FindDataDocument.xml b/base-component/tools/screen/System/DataDocument/Edit/FindDataDocument.xml index 259a72bf4..f5fde4971 100644 --- a/base-component/tools/screen/System/DataDocument/Edit/FindDataDocument.xml +++ b/base-component/tools/screen/System/DataDocument/Edit/FindDataDocument.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/DataDocument/Edit/ViewDataDocument.xml b/base-component/tools/screen/System/DataDocument/Edit/ViewDataDocument.xml index ec0c5b120..374bb7618 100644 --- a/base-component/tools/screen/System/DataDocument/Edit/ViewDataDocument.xml +++ b/base-component/tools/screen/System/DataDocument/Edit/ViewDataDocument.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/DataDocument/Export.xml b/base-component/tools/screen/System/DataDocument/Export.xml index b03c7d063..c75f4ca67 100644 --- a/base-component/tools/screen/System/DataDocument/Export.xml +++ b/base-component/tools/screen/System/DataDocument/Export.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/DataDocument/Index.xml b/base-component/tools/screen/System/DataDocument/Index.xml index 5aa56626f..b96219696 100644 --- a/base-component/tools/screen/System/DataDocument/Index.xml +++ b/base-component/tools/screen/System/DataDocument/Index.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/DataDocument/Search.xml b/base-component/tools/screen/System/DataDocument/Search.xml index af1c45eef..f659436f5 100644 --- a/base-component/tools/screen/System/DataDocument/Search.xml +++ b/base-component/tools/screen/System/DataDocument/Search.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/DataDocument/ViewDocument.xml b/base-component/tools/screen/System/DataDocument/ViewDocument.xml index 0ec7971e9..cdd76c0c9 100644 --- a/base-component/tools/screen/System/DataDocument/ViewDocument.xml +++ b/base-component/tools/screen/System/DataDocument/ViewDocument.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/EntitySync.xml b/base-component/tools/screen/System/EntitySync.xml index c585a4879..d4b46e906 100644 --- a/base-component/tools/screen/System/EntitySync.xml +++ b/base-component/tools/screen/System/EntitySync.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/EntitySync/EntitySyncDetail.xml b/base-component/tools/screen/System/EntitySync/EntitySyncDetail.xml index f05632006..e07a0ad1c 100644 --- a/base-component/tools/screen/System/EntitySync/EntitySyncDetail.xml +++ b/base-component/tools/screen/System/EntitySync/EntitySyncDetail.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/EntitySync/EntitySyncHistory.xml b/base-component/tools/screen/System/EntitySync/EntitySyncHistory.xml index a028e3ae5..2f5c2c6bb 100644 --- a/base-component/tools/screen/System/EntitySync/EntitySyncHistory.xml +++ b/base-component/tools/screen/System/EntitySync/EntitySyncHistory.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/EntitySync/EntitySyncList.xml b/base-component/tools/screen/System/EntitySync/EntitySyncList.xml index 44166c55c..bc1e64c02 100644 --- a/base-component/tools/screen/System/EntitySync/EntitySyncList.xml +++ b/base-component/tools/screen/System/EntitySync/EntitySyncList.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Instance.xml b/base-component/tools/screen/System/Instance.xml index cb68a30b0..585193dbd 100644 --- a/base-component/tools/screen/System/Instance.xml +++ b/base-component/tools/screen/System/Instance.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Instance/InstanceDetail.xml b/base-component/tools/screen/System/Instance/InstanceDetail.xml index d29e569f0..dd9ca1232 100644 --- a/base-component/tools/screen/System/Instance/InstanceDetail.xml +++ b/base-component/tools/screen/System/Instance/InstanceDetail.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Instance/InstanceList.xml b/base-component/tools/screen/System/Instance/InstanceList.xml index 84fb1b19a..13a3f7f17 100644 --- a/base-component/tools/screen/System/Instance/InstanceList.xml +++ b/base-component/tools/screen/System/Instance/InstanceList.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Localization.xml b/base-component/tools/screen/System/Localization.xml index 06c532475..01fc5e5ef 100644 --- a/base-component/tools/screen/System/Localization.xml +++ b/base-component/tools/screen/System/Localization.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Localization/EntityFields.xml b/base-component/tools/screen/System/Localization/EntityFields.xml index 3595d3aaa..89b50d793 100644 --- a/base-component/tools/screen/System/Localization/EntityFields.xml +++ b/base-component/tools/screen/System/Localization/EntityFields.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Localization/Messages.xml b/base-component/tools/screen/System/Localization/Messages.xml index 61a5cff1a..fb172d4e3 100644 --- a/base-component/tools/screen/System/Localization/Messages.xml +++ b/base-component/tools/screen/System/Localization/Messages.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/LogViewer.xml b/base-component/tools/screen/System/LogViewer.xml index 5a285956c..fbd0ba730 100644 --- a/base-component/tools/screen/System/LogViewer.xml +++ b/base-component/tools/screen/System/LogViewer.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Print.xml b/base-component/tools/screen/System/Print.xml index 30a696d07..571ba9412 100644 --- a/base-component/tools/screen/System/Print.xml +++ b/base-component/tools/screen/System/Print.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Print/PrintJob.xml b/base-component/tools/screen/System/Print/PrintJob.xml index 9dfec6ea6..b53a1f119 100644 --- a/base-component/tools/screen/System/Print/PrintJob.xml +++ b/base-component/tools/screen/System/Print/PrintJob.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Print/PrintJob/PrintJobDetail.xml b/base-component/tools/screen/System/Print/PrintJob/PrintJobDetail.xml index 838e019e3..5b1d480da 100644 --- a/base-component/tools/screen/System/Print/PrintJob/PrintJobDetail.xml +++ b/base-component/tools/screen/System/Print/PrintJob/PrintJobDetail.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Print/PrintJob/PrintJobList.xml b/base-component/tools/screen/System/Print/PrintJob/PrintJobList.xml index 46043af1a..ddc22d863 100644 --- a/base-component/tools/screen/System/Print/PrintJob/PrintJobList.xml +++ b/base-component/tools/screen/System/Print/PrintJob/PrintJobList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Print/Printer.xml b/base-component/tools/screen/System/Print/Printer.xml index 734c49f95..a21d24352 100644 --- a/base-component/tools/screen/System/Print/Printer.xml +++ b/base-component/tools/screen/System/Print/Printer.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Print/Printer/PrinterList.xml b/base-component/tools/screen/System/Print/Printer/PrinterList.xml index b85e00d35..668f6f7ce 100644 --- a/base-component/tools/screen/System/Print/Printer/PrinterList.xml +++ b/base-component/tools/screen/System/Print/Printer/PrinterList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Resource.xml b/base-component/tools/screen/System/Resource.xml index 445d1eb50..536fe532e 100644 --- a/base-component/tools/screen/System/Resource.xml +++ b/base-component/tools/screen/System/Resource.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Resource/ElFinder.xml b/base-component/tools/screen/System/Resource/ElFinder.xml index beda6d050..e522f2db2 100644 --- a/base-component/tools/screen/System/Resource/ElFinder.xml +++ b/base-component/tools/screen/System/Resource/ElFinder.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security.xml b/base-component/tools/screen/System/Security.xml index bc412cd91..f9d6deec0 100644 --- a/base-component/tools/screen/System/Security.xml +++ b/base-component/tools/screen/System/Security.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Security/ActiveUsers.xml b/base-component/tools/screen/System/Security/ActiveUsers.xml index 71dd3efac..893a6bdb5 100644 --- a/base-component/tools/screen/System/Security/ActiveUsers.xml +++ b/base-component/tools/screen/System/Security/ActiveUsers.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Security/ArtifactGroup.xml b/base-component/tools/screen/System/Security/ArtifactGroup.xml index 57ebea2f7..0cadc4bba 100644 --- a/base-component/tools/screen/System/Security/ArtifactGroup.xml +++ b/base-component/tools/screen/System/Security/ArtifactGroup.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security/ArtifactGroup/ArtifactGroupDetail.xml b/base-component/tools/screen/System/Security/ArtifactGroup/ArtifactGroupDetail.xml index 8f3300c4b..547afa377 100644 --- a/base-component/tools/screen/System/Security/ArtifactGroup/ArtifactGroupDetail.xml +++ b/base-component/tools/screen/System/Security/ArtifactGroup/ArtifactGroupDetail.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security/ArtifactGroup/ArtifactGroupList.xml b/base-component/tools/screen/System/Security/ArtifactGroup/ArtifactGroupList.xml index 3dab226ea..883f8cdb0 100644 --- a/base-component/tools/screen/System/Security/ArtifactGroup/ArtifactGroupList.xml +++ b/base-component/tools/screen/System/Security/ArtifactGroup/ArtifactGroupList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security/UserAccount.xml b/base-component/tools/screen/System/Security/UserAccount.xml index 71848eb8b..b741cff96 100644 --- a/base-component/tools/screen/System/Security/UserAccount.xml +++ b/base-component/tools/screen/System/Security/UserAccount.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail.xml b/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail.xml index 244e72225..e9b11c63e 100644 --- a/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail.xml +++ b/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifyEmail.xml b/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifyEmail.xml index 2b1cad05f..8693e7b62 100644 --- a/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifyEmail.xml +++ b/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifyEmail.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifySms.xml b/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifySms.xml index b41fb53ab..b1e8a4aea 100644 --- a/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifySms.xml +++ b/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifySms.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifyTotp.xml b/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifyTotp.xml index 055010d36..9c225458b 100644 --- a/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifyTotp.xml +++ b/base-component/tools/screen/System/Security/UserAccount/UserAccountDetail/VerifyTotp.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security/UserAccount/UserAccountList.xml b/base-component/tools/screen/System/Security/UserAccount/UserAccountList.xml index a1295ff79..d8f2c8698 100644 --- a/base-component/tools/screen/System/Security/UserAccount/UserAccountList.xml +++ b/base-component/tools/screen/System/Security/UserAccount/UserAccountList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security/UserGroup.xml b/base-component/tools/screen/System/Security/UserGroup.xml index 52512f793..1d7633e50 100644 --- a/base-component/tools/screen/System/Security/UserGroup.xml +++ b/base-component/tools/screen/System/Security/UserGroup.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security/UserGroup/GroupUsers.xml b/base-component/tools/screen/System/Security/UserGroup/GroupUsers.xml index 5a73e9c11..816e7b8f5 100644 --- a/base-component/tools/screen/System/Security/UserGroup/GroupUsers.xml +++ b/base-component/tools/screen/System/Security/UserGroup/GroupUsers.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security/UserGroup/UserGroupDetail.xml b/base-component/tools/screen/System/Security/UserGroup/UserGroupDetail.xml index bf39c1a09..edd6a141b 100644 --- a/base-component/tools/screen/System/Security/UserGroup/UserGroupDetail.xml +++ b/base-component/tools/screen/System/Security/UserGroup/UserGroupDetail.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/Security/UserGroup/UserGroupList.xml b/base-component/tools/screen/System/Security/UserGroup/UserGroupList.xml index c93f587a4..be0ce6505 100644 --- a/base-component/tools/screen/System/Security/UserGroup/UserGroupList.xml +++ b/base-component/tools/screen/System/Security/UserGroup/UserGroupList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/ServiceJob.xml b/base-component/tools/screen/System/ServiceJob.xml index 068245b98..5110e9c7f 100644 --- a/base-component/tools/screen/System/ServiceJob.xml +++ b/base-component/tools/screen/System/ServiceJob.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/ServiceJob/JobRuns.xml b/base-component/tools/screen/System/ServiceJob/JobRuns.xml index 84ef67090..a36feb0c6 100644 --- a/base-component/tools/screen/System/ServiceJob/JobRuns.xml +++ b/base-component/tools/screen/System/ServiceJob/JobRuns.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/ServiceJob/JobRuns/JobRunDetail.xml b/base-component/tools/screen/System/ServiceJob/JobRuns/JobRunDetail.xml index 2c103c2c5..ea725ce20 100644 --- a/base-component/tools/screen/System/ServiceJob/JobRuns/JobRunDetail.xml +++ b/base-component/tools/screen/System/ServiceJob/JobRuns/JobRunDetail.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/ServiceJob/JobRuns/JobRunList.xml b/base-component/tools/screen/System/ServiceJob/JobRuns/JobRunList.xml index cd4115e0b..b56af9a18 100644 --- a/base-component/tools/screen/System/ServiceJob/JobRuns/JobRunList.xml +++ b/base-component/tools/screen/System/ServiceJob/JobRuns/JobRunList.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/ServiceJob/Jobs.xml b/base-component/tools/screen/System/ServiceJob/Jobs.xml index 78d1777b3..cc4ebd3f9 100644 --- a/base-component/tools/screen/System/ServiceJob/Jobs.xml +++ b/base-component/tools/screen/System/ServiceJob/Jobs.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/ServiceJob/Jobs/ServiceJobDetail.xml b/base-component/tools/screen/System/ServiceJob/Jobs/ServiceJobDetail.xml index 53a02ba7f..859b70770 100644 --- a/base-component/tools/screen/System/ServiceJob/Jobs/ServiceJobDetail.xml +++ b/base-component/tools/screen/System/ServiceJob/Jobs/ServiceJobDetail.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/ServiceJob/Jobs/ServiceJobList.xml b/base-component/tools/screen/System/ServiceJob/Jobs/ServiceJobList.xml index 2188d8f63..f21364293 100644 --- a/base-component/tools/screen/System/ServiceJob/Jobs/ServiceJobList.xml +++ b/base-component/tools/screen/System/ServiceJob/Jobs/ServiceJobList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/SystemMessage.xml b/base-component/tools/screen/System/SystemMessage.xml index 5b78d7360..48bcecbe6 100644 --- a/base-component/tools/screen/System/SystemMessage.xml +++ b/base-component/tools/screen/System/SystemMessage.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/SystemMessage/Message.xml b/base-component/tools/screen/System/SystemMessage/Message.xml index 840f847ff..a539efe54 100644 --- a/base-component/tools/screen/System/SystemMessage/Message.xml +++ b/base-component/tools/screen/System/SystemMessage/Message.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/SystemMessage/Message/SystemMessageDetail.xml b/base-component/tools/screen/System/SystemMessage/Message/SystemMessageDetail.xml index ac3cc3ee2..dd7fc9c25 100644 --- a/base-component/tools/screen/System/SystemMessage/Message/SystemMessageDetail.xml +++ b/base-component/tools/screen/System/SystemMessage/Message/SystemMessageDetail.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> + xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/xml-screen-3.xsd"> diff --git a/base-component/tools/screen/System/SystemMessage/Message/SystemMessageDetail/EditMessageText.xml b/base-component/tools/screen/System/SystemMessage/Message/SystemMessageDetail/EditMessageText.xml index cfedb552a..92f46dafc 100644 --- a/base-component/tools/screen/System/SystemMessage/Message/SystemMessageDetail/EditMessageText.xml +++ b/base-component/tools/screen/System/SystemMessage/Message/SystemMessageDetail/EditMessageText.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/SystemMessage/Message/SystemMessageList.xml b/base-component/tools/screen/System/SystemMessage/Message/SystemMessageList.xml index 5d90bf7bf..4800c1567 100644 --- a/base-component/tools/screen/System/SystemMessage/Message/SystemMessageList.xml +++ b/base-component/tools/screen/System/SystemMessage/Message/SystemMessageList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/SystemMessage/Remote.xml b/base-component/tools/screen/System/SystemMessage/Remote.xml index d40b40f6a..fea4d34be 100644 --- a/base-component/tools/screen/System/SystemMessage/Remote.xml +++ b/base-component/tools/screen/System/SystemMessage/Remote.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/SystemMessage/Remote/MessageRemoteDetail.xml b/base-component/tools/screen/System/SystemMessage/Remote/MessageRemoteDetail.xml index 3a082298b..cf070e9a4 100644 --- a/base-component/tools/screen/System/SystemMessage/Remote/MessageRemoteDetail.xml +++ b/base-component/tools/screen/System/SystemMessage/Remote/MessageRemoteDetail.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> + xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/xml-screen-3.xsd"> diff --git a/base-component/tools/screen/System/SystemMessage/Remote/MessageRemoteList.xml b/base-component/tools/screen/System/SystemMessage/Remote/MessageRemoteList.xml index b715c0f50..eba8397bd 100644 --- a/base-component/tools/screen/System/SystemMessage/Remote/MessageRemoteList.xml +++ b/base-component/tools/screen/System/SystemMessage/Remote/MessageRemoteList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/SystemMessage/Type.xml b/base-component/tools/screen/System/SystemMessage/Type.xml index 319a007af..a391e61e1 100644 --- a/base-component/tools/screen/System/SystemMessage/Type.xml +++ b/base-component/tools/screen/System/SystemMessage/Type.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/SystemMessage/Type/MessageTypeDetail.xml b/base-component/tools/screen/System/SystemMessage/Type/MessageTypeDetail.xml index dcc234016..4da03400e 100644 --- a/base-component/tools/screen/System/SystemMessage/Type/MessageTypeDetail.xml +++ b/base-component/tools/screen/System/SystemMessage/Type/MessageTypeDetail.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> + xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/xml-screen-3.xsd"> diff --git a/base-component/tools/screen/System/SystemMessage/Type/MessageTypeList.xml b/base-component/tools/screen/System/SystemMessage/Type/MessageTypeList.xml index c0068e431..2b432289a 100644 --- a/base-component/tools/screen/System/SystemMessage/Type/MessageTypeList.xml +++ b/base-component/tools/screen/System/SystemMessage/Type/MessageTypeList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/System/ThreadList.xml b/base-component/tools/screen/System/ThreadList.xml index 2a7456bec..f964589b2 100644 --- a/base-component/tools/screen/System/ThreadList.xml +++ b/base-component/tools/screen/System/ThreadList.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Visit.xml b/base-component/tools/screen/System/Visit.xml index 8ef8f5373..aa8e77450 100644 --- a/base-component/tools/screen/System/Visit.xml +++ b/base-component/tools/screen/System/Visit.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Visit/VisitDetail.xml b/base-component/tools/screen/System/Visit/VisitDetail.xml index ec14f9854..5bb4105fa 100644 --- a/base-component/tools/screen/System/Visit/VisitDetail.xml +++ b/base-component/tools/screen/System/Visit/VisitDetail.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/System/Visit/VisitList.xml b/base-component/tools/screen/System/Visit/VisitList.xml index 10a2c89ef..3ca3409e8 100644 --- a/base-component/tools/screen/System/Visit/VisitList.xml +++ b/base-component/tools/screen/System/Visit/VisitList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> + xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/xml-screen-3.xsd"> diff --git a/base-component/tools/screen/System/dashboard.xml b/base-component/tools/screen/System/dashboard.xml index 7d00c51ca..f15e34f24 100644 --- a/base-component/tools/screen/System/dashboard.xml +++ b/base-component/tools/screen/System/dashboard.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools.xml b/base-component/tools/screen/Tools.xml index fc685ae72..edad284e4 100644 --- a/base-component/tools/screen/Tools.xml +++ b/base-component/tools/screen/Tools.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/ArtifactStats.xml b/base-component/tools/screen/Tools/ArtifactStats.xml index 719b68c55..3045afd89 100644 --- a/base-component/tools/screen/Tools/ArtifactStats.xml +++ b/base-component/tools/screen/Tools/ArtifactStats.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/AutoScreen.xml b/base-component/tools/screen/Tools/AutoScreen.xml index f8aef58eb..6619f0ccd 100644 --- a/base-component/tools/screen/Tools/AutoScreen.xml +++ b/base-component/tools/screen/Tools/AutoScreen.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/AutoScreen/AutoEdit.xml b/base-component/tools/screen/Tools/AutoScreen/AutoEdit.xml index bfdc2ffd2..9518cb3fe 100644 --- a/base-component/tools/screen/Tools/AutoScreen/AutoEdit.xml +++ b/base-component/tools/screen/Tools/AutoScreen/AutoEdit.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/AutoScreen/AutoEdit/AutoEditDetail.xml b/base-component/tools/screen/Tools/AutoScreen/AutoEdit/AutoEditDetail.xml index b078174dc..3aecebf2a 100644 --- a/base-component/tools/screen/Tools/AutoScreen/AutoEdit/AutoEditDetail.xml +++ b/base-component/tools/screen/Tools/AutoScreen/AutoEdit/AutoEditDetail.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> @@ -34,7 +34,7 @@ along with this software (see the LICENSE.md file). If not, see StringBuilder xmlBuilder = new StringBuilder() xmlBuilder.append('\n') - MNode screenNode = new MNode("screen", ["xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation":"http://moqui.org/xsd/xml-screen-2.1.xsd"]) + MNode screenNode = new MNode("screen", ["xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation":"http://moqui.org/xsd/xml-screen-3.xsd"]) MNode createTransNode = screenNode.append("transition", [name:"create"]) createTransNode.append("service-call", [name:"create#${den}".toString()]) createTransNode.append("default-response", [url:"."]) diff --git a/base-component/tools/screen/Tools/AutoScreen/AutoEdit/AutoEditMaster.xml b/base-component/tools/screen/Tools/AutoScreen/AutoEdit/AutoEditMaster.xml index 9a8424646..723805cef 100644 --- a/base-component/tools/screen/Tools/AutoScreen/AutoEdit/AutoEditMaster.xml +++ b/base-component/tools/screen/Tools/AutoScreen/AutoEdit/AutoEditMaster.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> @@ -69,7 +69,7 @@ along with this software (see the LICENSE.md file). If not, see StringBuilder xmlBuilder = new StringBuilder() xmlBuilder.append('\n') - MNode screenNode = new MNode("screen", ["xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation":"http://moqui.org/xsd/xml-screen-2.1.xsd"]) + MNode screenNode = new MNode("screen", ["xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation":"http://moqui.org/xsd/xml-screen-3.xsd"]) MNode updateTransNode = screenNode.append("transition", [name:"update"]) updateTransNode.append("service-call", [name:"update#${aen}".toString()]) updateTransNode.append("default-response", [url:"."]) diff --git a/base-component/tools/screen/Tools/AutoScreen/AutoFind.xml b/base-component/tools/screen/Tools/AutoScreen/AutoFind.xml index 678116383..0d19667ae 100644 --- a/base-component/tools/screen/Tools/AutoScreen/AutoFind.xml +++ b/base-component/tools/screen/Tools/AutoScreen/AutoFind.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> @@ -32,7 +32,7 @@ along with this software (see the LICENSE.md file). If not, see StringBuilder xmlBuilder = new StringBuilder() xmlBuilder.append('\n') - MNode screenNode = new MNode("screen", ["xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation": "http://moqui.org/xsd/xml-screen-2.1.xsd"]) + MNode screenNode = new MNode("screen", ["xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation": "http://moqui.org/xsd/xml-screen-3.xsd"]) MNode actionsNode = screenNode.append("actions", null) actionsNode.append("entity-find", ["entity-name":aen, list:"entityValueList"]).append("search-form-inputs", null) MNode widgetsNode = screenNode.append("widgets", null) diff --git a/base-component/tools/screen/Tools/AutoScreen/MainEntityList.xml b/base-component/tools/screen/Tools/AutoScreen/MainEntityList.xml index 67648fa58..7fd440318 100644 --- a/base-component/tools/screen/Tools/AutoScreen/MainEntityList.xml +++ b/base-component/tools/screen/Tools/AutoScreen/MainEntityList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/DataView.xml b/base-component/tools/screen/Tools/DataView.xml index 449895979..0d9e25d20 100644 --- a/base-component/tools/screen/Tools/DataView.xml +++ b/base-component/tools/screen/Tools/DataView.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/DataView/EditDbView.xml b/base-component/tools/screen/Tools/DataView/EditDbView.xml index eedb58dad..3a717f795 100644 --- a/base-component/tools/screen/Tools/DataView/EditDbView.xml +++ b/base-component/tools/screen/Tools/DataView/EditDbView.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/DataView/FindDbView.xml b/base-component/tools/screen/Tools/DataView/FindDbView.xml index 159787cb5..34fcb33ae 100644 --- a/base-component/tools/screen/Tools/DataView/FindDbView.xml +++ b/base-component/tools/screen/Tools/DataView/FindDbView.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/DataView/ViewDbView.xml b/base-component/tools/screen/Tools/DataView/ViewDbView.xml index cca3a6ea9..0f1790338 100644 --- a/base-component/tools/screen/Tools/DataView/ViewDbView.xml +++ b/base-component/tools/screen/Tools/DataView/ViewDbView.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Entity.xml b/base-component/tools/screen/Tools/Entity.xml index 7d6ab22f9..43aeda602 100644 --- a/base-component/tools/screen/Tools/Entity.xml +++ b/base-component/tools/screen/Tools/Entity.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Entity/DataEdit.xml b/base-component/tools/screen/Tools/Entity/DataEdit.xml index 8cf50cc8f..b02dc01d2 100644 --- a/base-component/tools/screen/Tools/Entity/DataEdit.xml +++ b/base-component/tools/screen/Tools/Entity/DataEdit.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Entity/DataEdit/EntityDataEdit.xml b/base-component/tools/screen/Tools/Entity/DataEdit/EntityDataEdit.xml index 8eba0ca8d..4437ce01a 100644 --- a/base-component/tools/screen/Tools/Entity/DataEdit/EntityDataEdit.xml +++ b/base-component/tools/screen/Tools/Entity/DataEdit/EntityDataEdit.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Entity/DataEdit/EntityDataFind.xml b/base-component/tools/screen/Tools/Entity/DataEdit/EntityDataFind.xml index 62a379290..d51b98144 100644 --- a/base-component/tools/screen/Tools/Entity/DataEdit/EntityDataFind.xml +++ b/base-component/tools/screen/Tools/Entity/DataEdit/EntityDataFind.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Entity/DataEdit/EntityDetail.xml b/base-component/tools/screen/Tools/Entity/DataEdit/EntityDetail.xml index 568c6050b..a74f2c65f 100644 --- a/base-component/tools/screen/Tools/Entity/DataEdit/EntityDetail.xml +++ b/base-component/tools/screen/Tools/Entity/DataEdit/EntityDetail.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Entity/DataEdit/EntityList.xml b/base-component/tools/screen/Tools/Entity/DataEdit/EntityList.xml index 0927c8e07..8ad0cad8b 100644 --- a/base-component/tools/screen/Tools/Entity/DataEdit/EntityList.xml +++ b/base-component/tools/screen/Tools/Entity/DataEdit/EntityList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Entity/DataExport.xml b/base-component/tools/screen/Tools/Entity/DataExport.xml index e442a20d8..21e8eec83 100644 --- a/base-component/tools/screen/Tools/Entity/DataExport.xml +++ b/base-component/tools/screen/Tools/Entity/DataExport.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/Entity/DataImport.xml b/base-component/tools/screen/Tools/Entity/DataImport.xml index 0c8e5a771..89d7792f1 100644 --- a/base-component/tools/screen/Tools/Entity/DataImport.xml +++ b/base-component/tools/screen/Tools/Entity/DataImport.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/Entity/DataSnapshot.xml b/base-component/tools/screen/Tools/Entity/DataSnapshot.xml index 269fdbdd1..45740716c 100644 --- a/base-component/tools/screen/Tools/Entity/DataSnapshot.xml +++ b/base-component/tools/screen/Tools/Entity/DataSnapshot.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Entity/QueryStats.xml b/base-component/tools/screen/Tools/Entity/QueryStats.xml index 8317015de..1e2ce99e1 100644 --- a/base-component/tools/screen/Tools/Entity/QueryStats.xml +++ b/base-component/tools/screen/Tools/Entity/QueryStats.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Entity/SpeedTest.xml b/base-component/tools/screen/Tools/Entity/SpeedTest.xml index 561445fe7..6b116cedf 100644 --- a/base-component/tools/screen/Tools/Entity/SpeedTest.xml +++ b/base-component/tools/screen/Tools/Entity/SpeedTest.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Entity/SqlRunner.xml b/base-component/tools/screen/Tools/Entity/SqlRunner.xml index 454a600ca..5faa6589e 100644 --- a/base-component/tools/screen/Tools/Entity/SqlRunner.xml +++ b/base-component/tools/screen/Tools/Entity/SqlRunner.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/Entity/TableStats.xml b/base-component/tools/screen/Tools/Entity/TableStats.xml index 02bb52bb2..df0b2edfa 100644 --- a/base-component/tools/screen/Tools/Entity/TableStats.xml +++ b/base-component/tools/screen/Tools/Entity/TableStats.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/GroovyShell.xml b/base-component/tools/screen/Tools/GroovyShell.xml index 915d9eb73..d2014febe 100644 --- a/base-component/tools/screen/Tools/GroovyShell.xml +++ b/base-component/tools/screen/Tools/GroovyShell.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/Service.xml b/base-component/tools/screen/Tools/Service.xml index 5e8570fc9..ac908f634 100644 --- a/base-component/tools/screen/Tools/Service.xml +++ b/base-component/tools/screen/Tools/Service.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/Tools/Service/ServiceDetail.xml b/base-component/tools/screen/Tools/Service/ServiceDetail.xml index 3350a4de0..0e606f6c4 100644 --- a/base-component/tools/screen/Tools/Service/ServiceDetail.xml +++ b/base-component/tools/screen/Tools/Service/ServiceDetail.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Service/ServiceReference.xml b/base-component/tools/screen/Tools/Service/ServiceReference.xml index 16482d0b3..f793c9aaf 100644 --- a/base-component/tools/screen/Tools/Service/ServiceReference.xml +++ b/base-component/tools/screen/Tools/Service/ServiceReference.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/Service/ServiceRun.xml b/base-component/tools/screen/Tools/Service/ServiceRun.xml index 07c4a37da..cc37b88da 100644 --- a/base-component/tools/screen/Tools/Service/ServiceRun.xml +++ b/base-component/tools/screen/Tools/Service/ServiceRun.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/screen/Tools/dashboard.xml b/base-component/tools/screen/Tools/dashboard.xml index 19bc55a8d..d45b78de6 100644 --- a/base-component/tools/screen/Tools/dashboard.xml +++ b/base-component/tools/screen/Tools/dashboard.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/tools/screen/toolstatic.xml b/base-component/tools/screen/toolstatic.xml index 110ed138b..7aa7d78ef 100644 --- a/base-component/tools/screen/toolstatic.xml +++ b/base-component/tools/screen/toolstatic.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/tools/service/moqui.rest.xml b/base-component/tools/service/moqui.rest.xml index a19706226..26d523b0a 100644 --- a/base-component/tools/service/moqui.rest.xml +++ b/base-component/tools/service/moqui.rest.xml @@ -15,7 +15,7 @@ along with this software (see the LICENSE.md file). If not, see - diff --git a/base-component/webroot/component.xml b/base-component/webroot/component.xml index f0b3fc878..4edb8748a 100644 --- a/base-component/webroot/component.xml +++ b/base-component/webroot/component.xml @@ -1,3 +1,3 @@ - diff --git a/base-component/webroot/screen/webroot.xml b/base-component/webroot/screen/webroot.xml index 5cdb89ef2..da315c825 100644 --- a/base-component/webroot/screen/webroot.xml +++ b/base-component/webroot/screen/webroot.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/webroot/screen/webroot/ChangePassword.xml b/base-component/webroot/screen/webroot/ChangePassword.xml index 261f03ef4..c4ac86b39 100644 --- a/base-component/webroot/screen/webroot/ChangePassword.xml +++ b/base-component/webroot/screen/webroot/ChangePassword.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/webroot/screen/webroot/Login.xml b/base-component/webroot/screen/webroot/Login.xml index 2fca1b377..dbbd11501 100644 --- a/base-component/webroot/screen/webroot/Login.xml +++ b/base-component/webroot/screen/webroot/Login.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/webroot/screen/webroot/SecondFactor.xml b/base-component/webroot/screen/webroot/SecondFactor.xml index 3f071222a..737fa4028 100644 --- a/base-component/webroot/screen/webroot/SecondFactor.xml +++ b/base-component/webroot/screen/webroot/SecondFactor.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/webroot/screen/webroot/apps.xml b/base-component/webroot/screen/webroot/apps.xml index f5e4c6156..56b49a4b0 100644 --- a/base-component/webroot/screen/webroot/apps.xml +++ b/base-component/webroot/screen/webroot/apps.xml @@ -12,7 +12,7 @@ You should have received a copy of the CC0 Public Domain Dedication along with this software (see the LICENSE.md file). If not, see . --> - diff --git a/base-component/webroot/screen/webroot/apps/AppList.xml b/base-component/webroot/screen/webroot/apps/AppList.xml index e3c3139a8..d1a3ab4f1 100644 --- a/base-component/webroot/screen/webroot/apps/AppList.xml +++ b/base-component/webroot/screen/webroot/apps/AppList.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/webroot/screen/webroot/apps/ScreenTree.xml b/base-component/webroot/screen/webroot/apps/ScreenTree.xml index a757befbc..452810fb6 100644 --- a/base-component/webroot/screen/webroot/apps/ScreenTree.xml +++ b/base-component/webroot/screen/webroot/apps/ScreenTree.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/webroot/screen/webroot/apps/ScreenTree/ScreenTreeNested.xml b/base-component/webroot/screen/webroot/apps/ScreenTree/ScreenTreeNested.xml index 3d7b2ec6b..a8c1a4661 100644 --- a/base-component/webroot/screen/webroot/apps/ScreenTree/ScreenTreeNested.xml +++ b/base-component/webroot/screen/webroot/apps/ScreenTree/ScreenTreeNested.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/webroot/screen/webroot/echopath.xml b/base-component/webroot/screen/webroot/echopath.xml index 3c3ed968a..a35b4cab7 100644 --- a/base-component/webroot/screen/webroot/echopath.xml +++ b/base-component/webroot/screen/webroot/echopath.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> diff --git a/base-component/webroot/screen/webroot/error.xml b/base-component/webroot/screen/webroot/error.xml index d5b8015a0..7faf43928 100644 --- a/base-component/webroot/screen/webroot/error.xml +++ b/base-component/webroot/screen/webroot/error.xml @@ -13,7 +13,7 @@ along with this software (see the LICENSE.md file). If not, see . --> and not like (function umd(root,factory){ if(typeof module==='object' && typeof exports === 'object' ) module.exports=factory() From ec96882c9ce546e0f9c58ec85eb65d6d43a56721 Mon Sep 17 00:00:00 2001 From: David E Jones Date: Wed, 8 Jun 2022 17:23:10 -0700 Subject: [PATCH 06/26] Remove cronString from ServiceRun.xml, has not been supported since 2016 anyway --- base-component/tools/screen/Tools/Service/ServiceRun.xml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/base-component/tools/screen/Tools/Service/ServiceRun.xml b/base-component/tools/screen/Tools/Service/ServiceRun.xml index cc37b88da..aebca28c0 100644 --- a/base-component/tools/screen/Tools/Service/ServiceRun.xml +++ b/base-component/tools/screen/Tools/Service/ServiceRun.xml @@ -22,11 +22,7 @@ along with this software (see the LICENSE.md file). If not, see @@ -51,6 +52,8 @@ along with this software (see the LICENSE.md file). If not, see + + @@ -70,9 +73,10 @@ along with this software (see the LICENSE.md file). If not, see - + + - + From 18910e16180ab891a189d87c60bb926a64ff4742 Mon Sep 17 00:00:00 2001 From: David E Jones Date: Fri, 14 Oct 2022 21:56:46 -0700 Subject: [PATCH 14/26] Fix second factor info in /rest/login transition, web-send-json-response only works if service-call is directly under transition --- base-component/webroot/screen/webroot/rest.xml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/base-component/webroot/screen/webroot/rest.xml b/base-component/webroot/screen/webroot/rest.xml index 9542b2d64..cc2d58ccf 100644 --- a/base-component/webroot/screen/webroot/rest.xml +++ b/base-component/webroot/screen/webroot/rest.xml @@ -38,7 +38,7 @@ along with this software (see the LICENSE.md file). If not, see - + @@ -49,11 +49,13 @@ along with this software (see the LICENSE.md file). If not, see Authentication code is not valid - - - - + + + + + + From 787d06ff40ec3b165647ea0783cde2da849f0653 Mon Sep 17 00:00:00 2001 From: David E Jones Date: Sat, 15 Oct 2022 18:27:57 -0700 Subject: [PATCH 15/26] Add second factor support to qvt (/qapps) Re-Login in place functionality --- .../screen/includes/WebrootVue.qvt.ftl | 30 ++++++-- .../screen/webroot/js/WebrootVue.qvt.js | 72 ++++++++++++++----- 2 files changed, 79 insertions(+), 23 deletions(-) diff --git a/base-component/webroot/screen/includes/WebrootVue.qvt.ftl b/base-component/webroot/screen/includes/WebrootVue.qvt.ftl index 99a5d4f43..e51ed054a 100644 --- a/base-component/webroot/screen/includes/WebrootVue.qvt.ftl +++ b/base-component/webroot/screen/includes/WebrootVue.qvt.ftl @@ -149,7 +149,7 @@ along with this software (see the LICENSE.md file). If not, see ${ec.l10n.localize("Switch Dark/Light")} <#-- re-login button --> - Re-Login + Re-Login @@ -175,12 +175,28 @@ along with this software (see the LICENSE.md file). If not, see <#-- re-login dialog --> -
Please sign in to continue as user {{username}}
- - - - +
+
User {{username}} requires an authentication code, you have these options:
+
{{reLoginMfaData.factorTypeDescriptions.join(", ")}}
+ + + + +
+ +
+
+
+
Please sign in to continue as user {{username}}
+ + + + +
diff --git a/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js b/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js index 1bcb7f4c4..d73bc37fe 100644 --- a/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js +++ b/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js @@ -115,7 +115,8 @@ moqui.handleAjaxError = function(jqXHR, textStatus, errorThrown, responseText) { if (jqXHR.status === 401) { if (moqui.webrootVue) { // window.location.href = moqui.webrootVue.currentLinkUrl; - moqui.webrootVue.reLoginShow = true; + // instead of reloading the web page, show the Re-Login dialog + moqui.webrootVue.reLoginShowDialog(); } else { window.location.reload(true); } @@ -2080,7 +2081,8 @@ moqui.webrootVue = new Vue({ data: { basePath:"", linkBasePath:"", currentPathList:[], extraPathList:[], currentParameters:{}, bodyParameters:null, activeSubscreens:[], navMenuList:[], navHistoryList:[], navPlugins:[], accountPlugins:[], notifyHistoryList:[], lastNavTime:Date.now(), loading:0, currentLoadRequest:null, activeContainers:{}, urlListeners:[], - moquiSessionToken:"", appHost:"", appRootPath:"", userId:"", username:"", locale:"en", reLoginShow:false, reLoginPassword:null, + moquiSessionToken:"", appHost:"", appRootPath:"", userId:"", username:"", locale:"en", + reLoginShow:false, reLoginPassword:null, reLoginMfaData:null, reLoginOtp:null, notificationClient:null, qzVue:null, leftOpen:false, moqui:moqui }, methods: { setUrl: function(url, bodyParameters, onComplete) { @@ -2263,27 +2265,65 @@ moqui.webrootVue = new Vue({ return path; }, getQuasarColor: function(bootstrapColor) { return moqui.getQuasarColor(bootstrapColor); }, + // Re-Login Functions + getCsrfToken: function(jqXHR) { + // update the session token, new session after login (along with xhrFields:{withCredentials:true} for cookie) + var sessionToken = jqXHR.getResponseHeader("X-CSRF-Token"); + if (sessionToken && sessionToken.length && sessionToken !== this.moquiSessionToken) { + console.log("Updating session token") + this.moquiSessionToken = sessionToken; + } + }, + reLoginShowDialog: function() { + // make sure there is no MFA Data (would skip the login with password step) + moqui.webrootVue.reLoginMfaData = null; + moqui.webrootVue.reLoginOtp = null; + moqui.webrootVue.reLoginShow = true; + }, + reLoginPostLogin: function() { + // clear password/etc, hide relogin dialog + this.reLoginShow = false; + this.reLoginPassword = null; + this.reLoginOtp = null; + this.reLoginMfaData = null; + // show success notification, add to notify history + var msg = 'Background login successful'; + // show for 12 seconds because we want it to show longer than the no user authenticated notification which shows for 15 seconds (minus some password typing time) + moqui.webrootVue.$q.notify({ timeout:12000, type:'positive', message:msg }); + moqui.webrootVue.addNotify(msg, 'positive'); + }, reLoginSubmit: function() { $.ajax({ type:'POST', url:(this.appRootPath + '/rest/login'), error:moqui.handleAjaxError, success:this.reLoginHandleResponse, dataType:'json', headers:{Accept:'application/json'}, xhrFields:{withCredentials:true}, data:{ username:this.username, password:this.reLoginPassword } }); }, reLoginHandleResponse: function(resp, status, jqXHR) { + // console.warn("re-login response: " + JSON.stringify(resp)); + this.getCsrfToken(jqXHR); + if (resp.secondFactorRequired) { + this.reLoginMfaData = resp; + } else if (resp.loggedIn) { + this.reLoginPostLogin(); + } + }, + reLoginSendOtp: function(factorId) { + $.ajax({ type:'POST', url:(this.appRootPath + '/rest/sendOtp'), error:moqui.handleAjaxError, success:this.reLoginSendOtpResponse, + dataType:'json', headers:{Accept:'application/json'}, xhrFields:{withCredentials:true}, + data:{ moquiSessionToken:this.moquiSessionToken, factorId:factorId } }); + }, + reLoginSendOtpResponse: function(resp, status, jqXHR) { + // console.warn("re-login send otp response: " + JSON.stringify(resp)); + if (resp) moqui.notifyMessages(resp.messages, resp.errors, resp.validationErrors); + }, + reLoginVerifyOtp: function() { + $.ajax({ type:'POST', url:(this.appRootPath + '/rest/verifyOtp'), error:moqui.handleAjaxError, success:this.reLoginVerifyOtpResponse, + dataType:'json', headers:{Accept:'application/json'}, xhrFields:{withCredentials:true}, + data:{ moquiSessionToken:this.moquiSessionToken, code:this.reLoginOtp } }); + }, + reLoginVerifyOtpResponse: function(resp, status, jqXHR) { + this.getCsrfToken(jqXHR); if (resp.loggedIn) { - // update the session token, new session after login (along with xhrFields:{withCredentials:true} for cookie) - var sessionToken = jqXHR.getResponseHeader("X-CSRF-Token"); - if (sessionToken && sessionToken.length && sessionToken != this.moquiSessionToken) { - console.log("Updating session token") - this.moquiSessionToken = sessionToken; - } - // clear password, hide relogin dialog - this.reLoginPassword = null; - this.reLoginShow = false; - // show success notification, add to notify history - var msg = 'Background login successful'; - // show for 12 seconds because we want it to show longer than the no user authenticated notification which shows for 15 seconds (minus some password typing time) - moqui.webrootVue.$q.notify({ timeout:12000, type:'positive', message:msg }); - moqui.webrootVue.addNotify(msg, 'positive'); + this.reLoginPostLogin(); } } }, From b9cde9a158f0e1700195d6b71368e5e41629edd0 Mon Sep 17 00:00:00 2001 From: David E Jones Date: Mon, 17 Oct 2022 14:15:05 -0700 Subject: [PATCH 16/26] In qapps/qvt add Reload Page button for convenience when user wants to reload the page instead of trying to re-login in-place --- base-component/webroot/screen/includes/WebrootVue.qvt.ftl | 1 + base-component/webroot/screen/webroot/js/WebrootVue.qvt.js | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/base-component/webroot/screen/includes/WebrootVue.qvt.ftl b/base-component/webroot/screen/includes/WebrootVue.qvt.ftl index e51ed054a..6dbae04aa 100644 --- a/base-component/webroot/screen/includes/WebrootVue.qvt.ftl +++ b/base-component/webroot/screen/includes/WebrootVue.qvt.ftl @@ -195,6 +195,7 @@ along with this software (see the LICENSE.md file). If not, see + diff --git a/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js b/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js index d73bc37fe..d58db4143 100644 --- a/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js +++ b/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js @@ -2306,6 +2306,10 @@ moqui.webrootVue = new Vue({ this.reLoginPostLogin(); } }, + reLoginReload: function () { + if (confirm("Reload page? All changes will be lost.")) + window.location.href = this.currentLinkUrl; + }, reLoginSendOtp: function(factorId) { $.ajax({ type:'POST', url:(this.appRootPath + '/rest/sendOtp'), error:moqui.handleAjaxError, success:this.reLoginSendOtpResponse, dataType:'json', headers:{Accept:'application/json'}, xhrFields:{withCredentials:true}, From d93cc87adfda13d782371ad78ed095b4dc869fbd Mon Sep 17 00:00:00 2001 From: David E Jones Date: Fri, 28 Oct 2022 17:25:44 -0700 Subject: [PATCH 17/26] In rest.xml add userInfo transition (GET only), and restrict method on other login related transitions to POST --- .../webroot/screen/webroot/rest.xml | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/base-component/webroot/screen/webroot/rest.xml b/base-component/webroot/screen/webroot/rest.xml index cc2d58ccf..8fe227c39 100644 --- a/base-component/webroot/screen/webroot/rest.xml +++ b/base-component/webroot/screen/webroot/rest.xml @@ -29,7 +29,7 @@ along with this software (see the LICENSE.md file). If not, see --> - + @@ -62,14 +62,14 @@ along with this software (see the LICENSE.md file). If not, see - + - + + + + + + + + + + + + + + + + + + + From 66cdfbcb4b745ba063f1b3f861827e75f1531b62 Mon Sep 17 00:00:00 2001 From: Acetousk Date: Fri, 18 Nov 2022 14:57:26 -0700 Subject: [PATCH 22/26] Add ADMIN_ADV to EX_JOHN_DOE user --- base-component/webroot/data/WebrootSecurityDemoData.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/base-component/webroot/data/WebrootSecurityDemoData.xml b/base-component/webroot/data/WebrootSecurityDemoData.xml index 64eeb6685..2afe6c4c0 100644 --- a/base-component/webroot/data/WebrootSecurityDemoData.xml +++ b/base-component/webroot/data/WebrootSecurityDemoData.xml @@ -22,6 +22,7 @@ along with this software (see the LICENSE.md file). If not, see passwordHint="framework name, lowercase" currencyUomId="USD" locale="en_US" timeZone="US/Central" emailAddress="john.doe@moqui.org"/> + From c5626b913ee8f3f8851a5c2ae9e69c2f8334fd81 Mon Sep 17 00:00:00 2001 From: Yao Chunlin Date: Tue, 22 Nov 2022 09:20:54 +0000 Subject: [PATCH 23/26] Bugfix: background-hide-id not work in qvt mode --- base-component/webroot/screen/webroot/js/WebrootVue.qvt.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js b/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js index ebe1b02ca..08bc2657b 100644 --- a/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js +++ b/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js @@ -821,7 +821,7 @@ Vue.component('m-form', { if (resp.screenUrl && resp.screenUrl.length > 0) { this.$root.setUrl(resp.screenUrl); } else if (resp.redirectUrl && resp.redirectUrl.length > 0) { window.location.href = resp.redirectUrl; } } else { console.warn('m-form no response or non-JSON response: ' + JSON.stringify(resp)) } - var hideId = this.submitHideId; if (hideId && hideId.length > 0) { $('#' + hideId).modal('hide'); } + var hideId = this.submitHideId; if (hideId && hideId.length > 0) { this.$root.hideContainer(hideId); } var reloadId = this.submitReloadId; if (reloadId && reloadId.length > 0) { this.$root.reloadContainer(reloadId); } var subMsg = this.submitMessage; if (subMsg && subMsg.length) { @@ -2208,6 +2208,9 @@ moqui.webrootVue = new Vue({ if (contComp) { contComp.reload(); } else { console.error("Container with ID " + contId + " not found, not reloading"); }}, loadContainer: function(contId, url) { var contComp = this.activeContainers[contId]; if (contComp) { contComp.load(url); } else { console.error("Container with ID " + contId + " not found, not loading url " + url); }}, + hideContainer: function(contId) { + var contComp = this.activeContainers[contId]; + if (contComp) { contComp.hide(); } else { console.error("Container with ID " + contId + " not found, not hidding"); }}, addNavPlugin: function(url) { var vm = this; moqui.loadComponent(this.appRootPath + url, function(comp) { vm.navPlugins.push(comp); }) }, addNavPluginsWait: function(urlList, urlIndex) { if (urlList && urlList.length > urlIndex) { From cf81c1fca29957195b02a89547cf4da374c64d0e Mon Sep 17 00:00:00 2001 From: David E Jones Date: Mon, 19 Dec 2022 20:39:32 -0800 Subject: [PATCH 24/26] Add support for new link.@pass-through-parameters attribute, along with changes in moqui-framework --- template/screen-macro/DefaultScreenMacros.html.ftl | 5 +++-- template/screen-macro/DefaultScreenMacros.qvt.ftl | 2 ++ template/screen-macro/DefaultScreenMacros.vuet.ftl | 5 +++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/template/screen-macro/DefaultScreenMacros.html.ftl b/template/screen-macro/DefaultScreenMacros.html.ftl index 60359ba11..9e68d56da 100644 --- a/template/screen-macro/DefaultScreenMacros.html.ftl +++ b/template/screen-macro/DefaultScreenMacros.html.ftl @@ -401,6 +401,8 @@ ${sri.renderIncludeScreen(.node["@location"], .node["@share-scope"]!)} <#if linkText?has_content || linkNode["image"]?has_content || linkNode["@icon"]?has_content> <#if linkNode["@encode"]! != "false"><#assign linkText = linkText?html> <#assign urlInstance = sri.makeUrlByType(linkNode["@url"], linkNode["@url-type"]!"transition", linkNode, linkNode["@expand-transition-url"]!"true")> + <#if linkNode["@pass-through-parameters"]! == "true"> + <#assign urlInstance = urlInstance.addPassThroughParameters(sri.getScreenUrlInstance())> <#assign linkDivId><@nodeId .node/> <@linkFormForm linkNode linkDivId linkText urlInstance/> <@linkFormLink linkNode linkDivId linkText urlInstance/> @@ -593,8 +595,7 @@ ${sri.renderIncludeScreen(.node["@location"], .node["@share-scope"]!)} <#if lastUpdatedString?has_content> <#if formNode["@pass-through-parameters"]! == "true"> - <#assign currentFindUrl = sri.getScreenUrlInstance().cloneUrlInstance().removeParameter("moquiFormName").removeParameter("moquiSessionToken").removeParameter("lastStandalone").removeParameter("formListFindId")> - <#assign currentFindUrlParms = currentFindUrl.getParameterMap()> + <#assign currentFindUrlParms = sri.getScreenUrlInstance().getPassThroughParameterMap()> <#list currentFindUrlParms.keySet() as parmName><#if !formInstance.getFieldNode(parmName)??> diff --git a/template/screen-macro/DefaultScreenMacros.qvt.ftl b/template/screen-macro/DefaultScreenMacros.qvt.ftl index aa9d6593e..3ec5cfc17 100644 --- a/template/screen-macro/DefaultScreenMacros.qvt.ftl +++ b/template/screen-macro/DefaultScreenMacros.qvt.ftl @@ -224,6 +224,8 @@ ${sri.renderIncludeScreen(.node["@location"], .node["@share-scope"]!)} <#if linkText?has_content || linkNode["image"]?has_content || linkNode["@icon"]?has_content> <#if linkNode["@encode"]! != "false"><#assign linkText = linkText?html> <#assign urlInstance = sri.makeUrlByType(linkNode["@url"], linkNode["@url-type"]!"transition", linkNode, linkNode["@expand-transition-url"]!"true")> + <#if linkNode["@pass-through-parameters"]! == "true"> + <#assign urlInstance = urlInstance.addPassThroughParameters(sri.getScreenUrlInstance())> <#assign linkDivId><@nodeId .node/> <@linkFormForm linkNode linkDivId linkText urlInstance/> <@linkFormLink linkNode linkDivId linkText urlInstance/> diff --git a/template/screen-macro/DefaultScreenMacros.vuet.ftl b/template/screen-macro/DefaultScreenMacros.vuet.ftl index 62df76faf..c3ea2ce00 100644 --- a/template/screen-macro/DefaultScreenMacros.vuet.ftl +++ b/template/screen-macro/DefaultScreenMacros.vuet.ftl @@ -213,6 +213,8 @@ ${sri.renderIncludeScreen(.node["@location"], .node["@share-scope"]!)} <#if linkText?has_content || linkNode["image"]?has_content || linkNode["@icon"]?has_content> <#if linkNode["@encode"]! != "false"><#assign linkText = linkText?html> <#assign urlInstance = sri.makeUrlByType(linkNode["@url"], linkNode["@url-type"]!"transition", linkNode, linkNode["@expand-transition-url"]!"true")> + <#if linkNode["@pass-through-parameters"]! == "true"> + <#assign urlInstance = urlInstance.addPassThroughParameters(sri.getScreenUrlInstance())> <#assign linkDivId><@nodeId .node/> <@linkFormForm linkNode linkDivId linkText urlInstance/> <@linkFormLink linkNode linkDivId linkText urlInstance/> @@ -404,8 +406,7 @@ ${sri.renderIncludeScreen(.node["@location"], .node["@share-scope"]!)} <#if lastUpdatedString?has_content> <#if formSingleNode["@pass-through-parameters"]! == "true"> - <#assign currentFindUrl = sri.getScreenUrlInstance().cloneUrlInstance().removeParameter("moquiFormName").removeParameter("moquiSessionToken").removeParameter("lastStandalone").removeParameter("formListFindId")> - <#assign currentFindUrlParms = currentFindUrl.getParameterMap()> + <#assign currentFindUrlParms = sri.getScreenUrlInstance().getPassThroughParameterMap()> <#list currentFindUrlParms.keySet() as parmName><#if !formInstance.getFieldNode(parmName)??> From fc8a55b8d196064a0f4c64937ae711dbab8282b8 Mon Sep 17 00:00:00 2001 From: David E Jones Date: Sat, 24 Dec 2022 11:28:32 -0800 Subject: [PATCH 25/26] Comment out transition for /rest/userInfo endpoint so by default there is no way to get the session token after initial requests, a bit more secure; to support relogin across multiple tabs/windows use a BroadcastChannel to share updated session tokens following relogin; thanks to acetousk for sharing the BroadcastChannel idea --- .../screen/webroot/js/WebrootVue.qvt.js | 26 ++++++++++++++++--- .../webroot/screen/webroot/rest.xml | 5 ++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js b/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js index 08bc2657b..f820c0885 100644 --- a/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js +++ b/base-component/webroot/screen/webroot/js/WebrootVue.qvt.js @@ -2089,7 +2089,7 @@ moqui.webrootVue = new Vue({ lastNavTime:Date.now(), loading:0, currentLoadRequest:null, activeContainers:{}, urlListeners:[], moquiSessionToken:"", appHost:"", appRootPath:"", userId:"", username:"", locale:"en", reLoginShow:false, reLoginPassword:null, reLoginMfaData:null, reLoginOtp:null, - notificationClient:null, qzVue:null, leftOpen:false, moqui:moqui }, + notificationClient:null, sessionTokenBc:null, qzVue:null, leftOpen:false, moqui:moqui }, methods: { setUrl: function(url, bodyParameters, onComplete) { // cancel current load if needed @@ -2279,16 +2279,29 @@ moqui.webrootVue = new Vue({ // update the session token, new session after login (along with xhrFields:{withCredentials:true} for cookie) var sessionToken = jqXHR.getResponseHeader("X-CSRF-Token"); if (sessionToken && sessionToken.length && sessionToken !== this.moquiSessionToken) { - console.log("Updating session token") + console.log("Updating session token from jqXHR, sending to BroadcastChannel") + this.moquiSessionToken = sessionToken; + this.sessionTokenBc.postMessage(sessionToken); + } + }, + receiveBcCsrfToken: function(event) { + var sessionToken = event.data; + if (sessionToken && sessionToken.length && this.moquiSessionToken !== sessionToken) { + console.log("Updating session token from BroadcastChannel") this.moquiSessionToken = sessionToken; } }, reLoginCheckShow: function() { + this.reLoginShowDialog(); + /* NOTE DEJ-2022-12 removing use of the userInfo endpoint which is commented out for security reasons: // before showing the Re-Login dialog do a GET request without session token to see if there is a new one $.ajax({ type:'GET', url:(this.appRootPath + '/rest/userInfo'), error:this.reLoginCheckResponseError, success:this.reLoginCheckResponseSuccess, dataType:'json', headers:{Accept:'application/json'}, xhrFields:{withCredentials:true} }); + + */ }, + /* NOTE DEJ-2022-12 removing use of the userInfo endpoint which is commented out for security reasons: reLoginCheckResponseSuccess: function(resp, status, jqXHR) { if (resp.username && resp.sessionToken) { this.moquiSessionToken = resp.sessionToken; @@ -2307,7 +2320,7 @@ moqui.webrootVue = new Vue({ } else { var resp = responseText ? responseText : jqXHR.responseText; var respObj; - try { respObj = JSON.parse(resp); } catch (e) { /* ignore error, don't always expect it to be JSON */ } + try { respObj = JSON.parse(resp); } catch (e) { } // ignore error, don't always expect it to be JSON if (respObj && moqui.isPlainObject(respObj)) { moqui.notifyMessages(respObj.messageInfos, respObj.errors, respObj.validationErrors); } else if (resp && moqui.isString(resp) && resp.length) { @@ -2315,6 +2328,7 @@ moqui.webrootVue = new Vue({ } } }, + */ reLoginShowDialog: function() { // make sure there is no MFA Data (would skip the login with password step) this.reLoginMfaData = null; @@ -2477,6 +2491,9 @@ moqui.webrootVue = new Vue({ this.$q.dark.set(confDarkMode === "true"); this.notificationClient = new moqui.NotificationClient((location.protocol === 'https:' ? 'wss://' : 'ws://') + this.appHost + this.appRootPath + "/notws"); + // open BroadcastChannel to share session token between tabs/windows on the same domain (see https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API) + this.sessionTokenBc = new BroadcastChannel("SessionToken"); + this.sessionTokenBc.onmessage = this.receiveBcCsrfToken; var navPluginUrlList = []; $('.confNavPluginUrl').each(function(idx, el) { navPluginUrlList.push($(el).val()); }); @@ -2504,6 +2521,9 @@ moqui.webrootVue = new Vue({ } }); } + }, + beforeDestroy: function() { + this.sessionTokenBc.close(); } }); diff --git a/base-component/webroot/screen/webroot/rest.xml b/base-component/webroot/screen/webroot/rest.xml index 8fe227c39..cd747c603 100644 --- a/base-component/webroot/screen/webroot/rest.xml +++ b/base-component/webroot/screen/webroot/rest.xml @@ -91,6 +91,10 @@ along with this software (see the LICENSE.md file). If not, see +