Skip to content

Commit

Permalink
Conflict (#13)
Browse files Browse the repository at this point in the history
* Add sessionId field to list screen for debugging

* Changed header color to make it more obviously not production

* Added Page Size to Log Viewer

* In WebrootVue.qvt.css, updated rule for drawer background to only come into effect in non-mobile layouts.

* In DefaultScreenMacros for vuet and qvt add paginate support to section-include when included section is a section-iterate with paginate=true; in qvt js don't show pagination widget if there is only one result

* In WebrootVue.qvt.js add qLayoutMinHeight method to calculate a full height, useful for certain types of screens with particular or bottom instead of top focused layouts

* In qvt macros for form-list fix issue with first/second/last row and hidden parameters

* In qvt screen macros first pass on working support for first, second, and last row forms

* In vuet and qvt widgetTextValue macro handle case with drop-down that has dynamic-options plus list-options for pre-loaded values

* Update vue to 2.7.14, quasar to 1.22.10; all seems to work well in partial tests of existing screens, minor version updates are hopefully backward compatible but worth keeping an eye out for issues

* In qvt default screen macros add support for text-area.@autogrow attribute

* Small updates to webroot build.gradle: update gradle-versions and gradle-minify plugins

* Currency (moqui#217)

* Add currency-hide-symbol attribute as a comlement to currency-unit-field, displaying the value without the currency symbol

* Update AUTHORS file

* Update ElFinder client to 2.1.62 and jqueryui to 1.13.2, there is a security notice for ElFinder for versions 2.1.61 and earlier, but it appears to only for the server-side PHP code which is not used in moqui; also updated jquery to 3.7.1 while at it

* Fix submit on select drop down where there is one result (moqui#219)

* Fix submit on select drop down where there is one result

* Changes required for new Moqui SSO component (moqui#222)

* In Login.ftl, added SSO tab and forms. This will only appear if SSO is configured.

* In webroot-layout.css, increased the width of the forms from 340 to 380 so SSO tab doesn't overflow to new line.

* In Qapps mode, add a expansion button to the ContainerBox (moqui#216)

* In Qapps mode, add a expansion button to the ContainerBox

* sign the AUTHORS file

* Enable accordion in form field-groups using qvt rendering (moqui#221)

* In qvt render mode fix m-form-column-config find parameter handling so they are passed through

* In qvt render mode FTL macros add empty column for first/second/last rows if row selection is used in a form-list; in popup card for row selection add spacing around m-container-dialog to match spacing used by default for a form-single with field-row-big so that dialog and direct form submit buttons line up

* For moqui-framework issue #623 add v-pre to vue template generated for label and link elements so that contents are not interpreted to avoid template injection from user-entered data

* In qvt and vuet screen macros add span v-pre around one more place in link macros, in qvt add span v-pre around all q-tooltip text

* More vue template injection, add to button text in linkFormForm for vuet, qvt

* In qvt render mode change button-menu macro to not render a q-item if the child node has a condition attribute and that attribute evaluates to false

* Form field change detection and in-field visual indicators, submit button visual indicator (moqui#225)

* For qvt mode add m-form field change tracking support, some initial use in text-area, much more needed before done

* In WebrootVue.qvt.js m-text-line pass through dense, outlined, and bg-color

* In qvt default screen macros add submit button highlighting (disable outlined mode), add placeholders for other field types that still need to be finished and tested

* More progress on form field change indicators: add support to m-form-link for find forms and such, add field change visual effects for drop-down, checkbox, radio, text-find; still more to do but now mostly for find forms which work but don't have visual indicators for all field types

* In qvt render mode improve form field change detection to handle nulls and empty strings and arrays, also add support for date-find field type

* In qvt render mode form change detection show visual indicator for remaining field types, improve empty/null compare; change detect and show visual indicator now initially complete

* Fix Vue template injection issue in vuet and qvt render modes for form-list find options parameter values, thanks to Taher for reporting this on the forum

* In qvt render mode add support for shift-click to row-selection checkboxes like in gmail to select a range of items, a bit of user tedium reduction

* Increase size of checkboxes

* Allow include of screen theme resource script footer

* Fix issue with changed field highlighting color in quasar dark mode

---------

Co-authored-by: Acetousk <[email protected]>
Co-authored-by: David E. Jones <[email protected]>
Co-authored-by: pandor4u <[email protected]>
Co-authored-by: aabiabdallah <[email protected]>
Co-authored-by: Jens Hardings <[email protected]>
Co-authored-by: acetousk <[email protected]>
Co-authored-by: newmann <[email protected]>
  • Loading branch information
8 people authored May 9, 2024
1 parent 8265978 commit 8de8a27
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 30 deletions.
4 changes: 4 additions & 0 deletions base-component/webroot/screen/includes/Footer.html.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ ${sri.getAfterScreenWriterText()}
<#assign srcUrl = sri.buildUrl(scriptLocation).url>
<script src="${srcUrl}<#if !scriptLocation?starts_with("http") && !srcUrl?contains("?")>?v=${ec.web.getResourceDistinctValue()}</#if>" type="text/javascript"></script>
</#list>
<#list sri.getThemeValues("STRT_SCRIPT_FOOTER") as scriptLocation>
<#assign srcUrl = sri.buildUrl(scriptLocation).url>
<script src="${srcUrl}<#if !scriptLocation?starts_with("http") && !srcUrl?contains("?")>?v=${ec.web.getResourceDistinctValue()}</#if>" type="text/javascript"></script>
</#list>
<#assign scriptText = sri.getScriptWriterText()>
<#if scriptText?has_content>
<script>
Expand Down
29 changes: 21 additions & 8 deletions base-component/webroot/screen/webroot/js/WebrootVue.qvt.js
Original file line number Diff line number Diff line change
Expand Up @@ -594,14 +594,27 @@ moqui.checkboxSetMixin = {
data: function() {
var checkboxStates = [];
for (var i = 0; i < this.checkboxCount; i++) checkboxStates[i] = false;
return { checkboxAllState:false, checkboxStates:checkboxStates }
return { checkboxAllState:false, checkboxLastIndex:null, checkboxLastChange:null, checkboxStates:checkboxStates }
},
methods: {
setCheckboxAllState: function(newState) {
this.checkboxAllState = newState;
var csSize = this.checkboxStates.length;
for (var i = 0; i < csSize; i++) this.checkboxStates[i] = newState;
},
clickCheckbox: function(event, index) {
console.warn("clickCheckbox idx " + index + " shift " + event.shiftKey + " lastIdx " + this.checkboxLastIndex + " lastChange " + this.checkboxLastChange);
if (event.shiftKey && (null != this.checkboxLastIndex) && (this.checkboxLastIndex !== index)) {
var dir = index > this.checkboxLastIndex ? 1 : -1;
var change = this.checkboxLastChange;
for (var i = this.checkboxLastIndex; i !== index; i += dir) {
this.checkboxStates[i] = change;
}
}
this.checkboxLastIndex = index;
// onclick is triggered before the default change hence the !
this.checkboxLastChange = !this.checkboxStates[index].checked;
},
getCheckboxValueArray: function() {
if (!this.checkboxValues) return [];
var valueArray = [];
Expand Down Expand Up @@ -641,7 +654,7 @@ Vue.component('m-checkbox-set', {
name: "mCheckboxSet",
mixins:[moqui.checkboxSetMixin],
template: '<span class="checkbox-set"><slot :checkboxAllState="checkboxAllState" :setCheckboxAllState="setCheckboxAllState"' +
' :checkboxStates="checkboxStates" :addCheckboxParameters="addCheckboxParameters"></slot></span>'
' :checkboxStates="checkboxStates" :clickCheckbox="clickCheckbox" :addCheckboxParameters="addCheckboxParameters"></slot></span>'
});

Vue.component('m-form', {
Expand All @@ -657,7 +670,7 @@ Vue.component('m-form', {
template:
'<q-form ref="qForm" @submit.prevent="submitForm" @reset.prevent="resetForm" autocapitalize="off" autocomplete="off">' +
'<slot :fields="fields" :checkboxAllState="checkboxAllState" :setCheckboxAllState="setCheckboxAllState"' +
' :checkboxStates="checkboxStates" :addCheckboxParameters="addCheckboxParameters"' +
' :checkboxStates="checkboxStates" :clickCheckbox="clickCheckbox" :addCheckboxParameters="addCheckboxParameters"' +
' :blurSubmitForm="blurSubmitForm" :hasFieldsChanged="hasFieldsChanged" :fieldChanged="fieldChanged"></slot>' +
'</q-form>',
methods: {
Expand Down Expand Up @@ -1341,10 +1354,10 @@ Vue.component('m-date-period', {
template:
'<div v-if="fromThruMode" class="row">' +
'<m-date-time :name="name+\'_from\'" :id="id+\'_from\'" :label="label+\' From\'" :form="form" :type="fromThruType"' +
' v-model="fields[name+\'_from\']" :bg-color="fieldChanged(name+\'_from\')?\'blue-1\':\'\'"></m-date-time>' +
' v-model="fields[name+\'_from\']" :bg-color="fieldChanged(name+\'_from\')?($q.dark.isActive?\'blue-10\':\'blue-1\'):\'\'"></m-date-time>' +
'<q-icon class="q-my-auto" name="remove"></q-icon>' +
'<m-date-time :name="name+\'_thru\'" :id="id+\'_thru\'" :label="label+\' Thru\'" :form="form" :type="fromThruType"' +
' v-model="fields[name+\'_thru\']" :bg-color="fieldChanged(name+\'_thru\')?\'blue-1\':\'\'">' +
' v-model="fields[name+\'_thru\']" :bg-color="fieldChanged(name+\'_thru\')?($q.dark.isActive?\'blue-10\':\'blue-1\'):\'\'">' +
'<template v-slot:after>' +
'<q-btn dense flat icon="calendar_view_day" @click="toggleMode"><q-tooltip>Period Select Mode</q-tooltip></q-btn>' +
'<q-btn dense flat icon="clear" @click="clearAll"><q-tooltip>Clear</q-tooltip></q-btn>' +
Expand All @@ -1353,14 +1366,14 @@ Vue.component('m-date-period', {
'</div>' +
'<div v-else class="row"><q-input dense outlined stack-label :label="label" v-model="fields[name+\'_pdate\']"' +
' mask="####-##-##" fill-mask :id="id" :name="name+\'_pdate\'" :form="form" style="max-width:max-content;"' +
' :bg-color="fieldChanged(name+\'_pdate\')?\'blue-1\':\'\'">' +
' :bg-color="fieldChanged(name+\'_pdate\')?($q.dark.isActive?\'blue-10\':\'blue-1\'):\'\'">' +
'<q-tooltip v-if="tooltip">{{tooltip}}</q-tooltip>' +
'<template v-slot:before>' +
'<q-select class="q-pr-xs" dense outlined options-dense emit-value map-options v-model="fields[name+\'_poffset\']"' +
' :name="name+\'_poffset\'" :bg-color="fieldChanged(name+\'_poffset\')?\'blue-1\':\'\'"' +
' :name="name+\'_poffset\'" :bg-color="fieldChanged(name+\'_poffset\')?($q.dark.isActive?\'blue-10\':\'blue-1\'):\'\'"' +
' stack-label label="Offset" :options="dateOffsets" :form="form" behavior="menu"></q-select>' +
'<q-select dense outlined options-dense emit-value map-options v-model="fields[name+\'_period\']"' +
' :name="name+\'_period\'" :bg-color="fieldChanged(name+\'_period\')?\'blue-1\':\'\'"' +
' :name="name+\'_period\'" :bg-color="fieldChanged(name+\'_period\')?($q.dark.isActive?\'blue-10\':\'blue-1\'):\'\'"' +
' stack-label label="Period" :options="datePeriods" :form="form" behavior="menu"></q-select>' +
'</template>' +
'<template v-slot:prepend>' +
Expand Down
Loading

0 comments on commit 8de8a27

Please sign in to comment.