gina 0.1.6-alpha.12 → 0.1.6-alpha.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README-4Contributors.md +14 -8
- package/README.md +4 -4
- package/bin/cli +16 -2
- package/bin/gina +29 -1
- package/framework/{v0.1.6-alpha.12/lib/inherits → v0.1.6-alpha.120}/LICENSE +1 -1
- package/framework/v0.1.6-alpha.120/VERSION +1 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/plugin/README.md +1 -0
- package/framework/v0.1.6-alpha.120/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/plugin/dist/vendor/gina/js/gina.js +617 -233
- package/framework/v0.1.6-alpha.120/core/asset/plugin/dist/vendor/gina/js/gina.min.js +778 -0
- package/framework/v0.1.6-alpha.120/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
- package/framework/v0.1.6-alpha.120/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
- package/framework/v0.1.6-alpha.120/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/config.js +157 -74
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/index.js +108 -26
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/connector.v4.js +124 -22
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/controller/controller.js +683 -163
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/controller/index.js +2 -2
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/README.md +191 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/lib/index.js +57 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/lib/utils.js +596 -0
- package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/package.json +22 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/.travis.yml +4 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/LICENSE +21 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/bool.js +10 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/boolean_double.js +7 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/boolean_single.js +7 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/default_hash.js +8 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/default_singles.js +7 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/divide.js +8 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/line_count.js +20 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/line_count_options.js +29 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/line_count_wrap.js +29 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/nonopt.js +4 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/reflect.js +2 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/short.js +3 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/string.js +11 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/usage-options.js +19 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/xup.js +10 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/index.js +343 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/package.json +31 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/package.json.dist +39 -0
- package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/readme.markdown +513 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/HISTORY.md +498 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/LICENSE +7 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/README.md +88 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/bin/swig.js +161 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/bin/swig.js.dist +161 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/dist/swig.min.js.map +8 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/index.js +1 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/dateformatter.js +198 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/filters.js +630 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/lexer.js +306 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/loaders/filesystem.js +59 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/loaders/index.js +53 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/loaders/memory.js +63 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/parser.js +744 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/swig.js +740 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/autoescape.js +37 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/block.js +25 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/else.js +25 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/elseif.js +28 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/extends.js +19 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/filter.js +68 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/for.js +130 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/if.js +86 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/import.js +91 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/include.js +100 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/index.js +16 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/macro.js +79 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/parent.js +51 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/raw.js +23 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/set.js +109 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/spaceless.js +42 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/utils.js +184 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/package.json +57 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/package.json.dist +61 -0
- package/framework/v0.1.6-alpha.120/core/deps/swig-client/swig.js +5031 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/dev/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/dev/lib/factory.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/gna.js +104 -22
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/index.js +3 -3
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/src/make.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/mime.types +1 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/model/entity.js +5 -5
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/model/index.js +30 -26
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/model/template/entityFactory.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/model/template/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/index.js +3 -3
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/file/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/intl/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/storage/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/src/form-validator.js +39 -27
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/src/main.js +388 -101
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/router.js +92 -47
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/server.isaac.js +91 -10
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/server.js +317 -130
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/status.codes +1 -11
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/command/gina.tpl +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/env.json +19 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/templates.json +4 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/console.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/context.js +29 -12
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/data/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/data/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/dateFormat.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/json/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/json/src/main.js +6 -4
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/path.js +31 -15
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/plugins/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/plugins/src/api-error.js +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/plugins/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/task.js +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/text.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/archiver/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/archiver/src/main.js +11 -11
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/add.js +2 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/start.js +21 -8
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/get.js +1 -1
- package/framework/v0.1.6-alpha.120/lib/cmd/env/help.js +30 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/build.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/dot.js +21 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/init.js +18 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/link-node-modules.js +2 -3
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/link.js +1 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/tail.js +28 -11
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/version.js +15 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/helper.js +6 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/index.js +1 -1
- package/framework/v0.1.6-alpha.120/lib/cmd/minion/help.txt +18 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/add.js +3 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/build.js +4 -4
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/list.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/protocol/list.js +71 -50
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/collection/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/collection/src/main.js +20 -14
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/config.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cron/package.json +2 -2
- package/framework/v0.1.6-alpha.120/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +15754 -0
- package/framework/v0.1.6-alpha.120/lib/domain/dist/public_suffix_list.dat +15754 -0
- package/framework/v0.1.6-alpha.120/lib/domain/exemples/backend.js +12 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/domain/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/domain/src/main.js +20 -6
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/generator/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120/lib/inherits}/LICENSE +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/mq/listener.js +10 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/helper.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/math/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/model.js +3 -3
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/proc.js +10 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/routing/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/routing/src/main.js +72 -25
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/session-store.js +3 -3
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/swig-filters/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/swig-filters/src/main.js +70 -15
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/validator.js +2 -2
- package/framework/v0.1.6-alpha.120/package.json +11 -0
- package/package.json +3 -3
- package/resources/package.json.template +1 -1
- package/script/post_install.js +1 -1
- package/script/pre_install.js +1 -1
- package/utils/helper.js +33 -9
- package/framework/v0.1.6-alpha.12/VERSION +0 -1
- package/framework/v0.1.6-alpha.12/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +0 -1
- package/framework/v0.1.6-alpha.12/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -766
- package/framework/v0.1.6-alpha.12/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +0 -8
- package/framework/v0.1.6-alpha.12/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -7
- package/framework/v0.1.6-alpha.12/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +0 -8
- package/framework/v0.1.6-alpha.12/core/deps/busboy/.travis.yml +0 -17
- package/framework/v0.1.6-alpha.12/core/deps/busboy/README.md +0 -225
- package/framework/v0.1.6-alpha.12/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -73
- package/framework/v0.1.6-alpha.12/core/deps/busboy/deps/encoding/encoding.js +0 -2391
- package/framework/v0.1.6-alpha.12/core/deps/busboy/lib/main.js +0 -89
- package/framework/v0.1.6-alpha.12/core/deps/busboy/lib/types/multipart.js +0 -328
- package/framework/v0.1.6-alpha.12/core/deps/busboy/lib/types/urlencoded.js +0 -214
- package/framework/v0.1.6-alpha.12/core/deps/busboy/lib/utils.js +0 -191
- package/framework/v0.1.6-alpha.12/core/deps/busboy/package.json +0 -69
- package/framework/v0.1.6-alpha.12/lib/domain/dist/public_suffix_list.dat +0 -14186
- package/framework/v0.1.6-alpha.12/lib/domain/exemples/backend.js +0 -0
- package/framework/v0.1.6-alpha.12/package.json +0 -14
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/AUTHORS +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/html/static.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/plugin/uuid.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.1.6-alpha.12/core/deps/busboy → v0.1.6-alpha.120/core/deps/busboy-1.6.0}/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/currency.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/src/resources/currency.csv +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/src/resources/region.csv +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/src/resources/region.mapping.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/file/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/file/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/intl/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/intl/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/intl/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/server.express.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/_gitignore +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/package.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/data/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/json/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/prototypes.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/archiver/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/archiver/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.1.6-alpha.12/lib/cmd/env → v0.1.6-alpha.120/lib/cmd/minion}/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/collection/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/collection/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cron/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/domain/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/domain/exemples/frontend.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/example/inheriting_eventemitter.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/example/protected_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/example/simple_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/example/merge.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/example/merge_2_literal objects.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/example/merge_and_preserve_first.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/routing/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/routing/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/shell.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/url/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/url/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/url/mocks.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/url/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/url/test.js +0 -0
package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/src/main.js
RENAMED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* @param {object} [ data ] // from request
|
|
19
19
|
* @param {string} [ formId ]
|
|
20
20
|
* */
|
|
21
|
-
|
|
21
|
+
function ValidatorPlugin(rules, data, formId) {
|
|
22
22
|
|
|
23
23
|
this.plugin = 'validator';
|
|
24
24
|
|
|
@@ -128,6 +128,7 @@
|
|
|
128
128
|
'eventData' : {},
|
|
129
129
|
'target' : (isGFFCtx) ? document : null, // by default
|
|
130
130
|
'cachedErrors' : {},
|
|
131
|
+
'lastFocused' : (isGFFCtx) ? [] : null,
|
|
131
132
|
'binded' : false,
|
|
132
133
|
'unbinded' : false,
|
|
133
134
|
'withUserBindings' : false,
|
|
@@ -153,16 +154,16 @@
|
|
|
153
154
|
* */
|
|
154
155
|
var xhr = null;
|
|
155
156
|
var xhrOptions = {
|
|
156
|
-
'url'
|
|
157
|
-
'method'
|
|
158
|
-
'isSynchrone'
|
|
159
|
-
'withCredentials': false,
|
|
160
|
-
'
|
|
157
|
+
'url' : '',
|
|
158
|
+
'method' : 'GET',
|
|
159
|
+
'isSynchrone' : false,
|
|
160
|
+
'withCredentials' : false,
|
|
161
|
+
'withRateLimit' : true,
|
|
162
|
+
'headers' : {
|
|
161
163
|
// to upload, use `multipart/form-data` for `enctype`
|
|
162
164
|
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
|
163
165
|
// cross domain is enabled by default, but you need to setup `Access-Control-Allow-Origin`
|
|
164
166
|
'X-Requested-With': 'XMLHttpRequest' // in case of cross domain origin
|
|
165
|
-
|
|
166
167
|
}
|
|
167
168
|
};
|
|
168
169
|
|
|
@@ -229,6 +230,8 @@
|
|
|
229
230
|
var setOptions = function (options) {
|
|
230
231
|
options = merge(options, xhrOptions);
|
|
231
232
|
xhrOptions = options;
|
|
233
|
+
|
|
234
|
+
return this;
|
|
232
235
|
}
|
|
233
236
|
|
|
234
237
|
|
|
@@ -408,22 +411,34 @@
|
|
|
408
411
|
}
|
|
409
412
|
|
|
410
413
|
var refreshWarning = function($el) {
|
|
411
|
-
var formId = $el.form.getAttribute('id');
|
|
414
|
+
var formId = $el.form.id || $el.form.getAttribute('id');
|
|
415
|
+
var elName = $el.name || $el.form.getAttribute('name');
|
|
416
|
+
var currentElName = document.activeElement.name;
|
|
412
417
|
if ( /^true$/i.test(instance.$forms[formId].isValidating) ) {
|
|
413
418
|
return;
|
|
414
419
|
}
|
|
415
420
|
|
|
416
|
-
var $parent
|
|
417
|
-
|
|
421
|
+
var $parent = $el.parentNode
|
|
422
|
+
, isErrorMessageHidden = false
|
|
423
|
+
, $children = $parent.getElementsByTagName('div')
|
|
424
|
+
;
|
|
418
425
|
|
|
419
|
-
if ( /form\-item\-warning/.test($parent.className) ) {
|
|
426
|
+
if ( /form\-item\-warning/.test($parent.className) && currentElName != elName ) {
|
|
420
427
|
$parent.className = $parent.className.replace(/form\-item\-warning/, 'form-item-error');
|
|
421
428
|
|
|
422
|
-
} else if (/form\-item\-error/.test($parent.className) ) {
|
|
429
|
+
} else if (/form\-item\-error/.test($parent.className) && currentElName == elName ) {
|
|
423
430
|
$parent.className = $parent.className.replace(/form\-item\-error/, 'form-item-warning');
|
|
424
431
|
isErrorMessageHidden = true;
|
|
425
432
|
}
|
|
426
433
|
|
|
434
|
+
// Fixed on 2025-03-16
|
|
435
|
+
if (
|
|
436
|
+
/^true$/i.test(instance.$forms[formId].isValidating)
|
|
437
|
+
&& !isErrorMessageHidden
|
|
438
|
+
) {
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
|
|
427
442
|
|
|
428
443
|
for (var c = 0, cLen = $children.length; c<cLen; ++c) {
|
|
429
444
|
if ( /form\-item\-error\-message/.test($children[c].className) ) {
|
|
@@ -445,7 +460,7 @@
|
|
|
445
460
|
* @param {object} $form - Target (HTMLFormElement)
|
|
446
461
|
* @param {object} errors
|
|
447
462
|
* @param {object|null} data
|
|
448
|
-
* @param {
|
|
463
|
+
* @param {string|null} [fileName]
|
|
449
464
|
*/
|
|
450
465
|
var liveCheckErrors = {}; // Per Form & Per Element
|
|
451
466
|
var handleErrorsDisplay = function($form, errors, data, fieldName) {
|
|
@@ -476,7 +491,7 @@
|
|
|
476
491
|
if ( typeof(liveCheckErrors[formId]) == 'undefined') {
|
|
477
492
|
liveCheckErrors[formId] = {};
|
|
478
493
|
}
|
|
479
|
-
if (errors.count() > 0) {
|
|
494
|
+
if (errors && errors.count() > 0) {
|
|
480
495
|
// reset field name
|
|
481
496
|
liveCheckErrors[formId][fieldName] = {};
|
|
482
497
|
// override
|
|
@@ -486,8 +501,29 @@
|
|
|
486
501
|
}
|
|
487
502
|
errors = liveCheckErrors[formId];
|
|
488
503
|
// only if the form has not been sent yet
|
|
489
|
-
if (
|
|
504
|
+
if (
|
|
505
|
+
!instance.$forms[formId].sent
|
|
506
|
+
||
|
|
507
|
+
instance.$forms[formId].isValidating
|
|
508
|
+
) {
|
|
490
509
|
isWarning = true;
|
|
510
|
+
// Fixed on 2025-03-16
|
|
511
|
+
var lastFocused = instance.$forms[formId].lastFocused;
|
|
512
|
+
// console.debug('fieldName: '+ fieldName + '\nactiveElement: '+ document.activeElement.getAttribute('name') +'\nlastFocused: ', lastFocused);
|
|
513
|
+
if (
|
|
514
|
+
lastFocused.length > 0
|
|
515
|
+
&& typeof(lastFocused[1]) != 'undefined'
|
|
516
|
+
&& lastFocused[1].name == fieldName
|
|
517
|
+
||
|
|
518
|
+
lastFocused.length > 0
|
|
519
|
+
&& !lastFocused[1]
|
|
520
|
+
&& document.activeElement.getAttribute('name') != lastFocused[0].name
|
|
521
|
+
||
|
|
522
|
+
document.activeElement.getAttribute('name') != fieldName
|
|
523
|
+
) {
|
|
524
|
+
isWarning = false;
|
|
525
|
+
}
|
|
526
|
+
// console.debug('isWarning: '+isWarning);
|
|
491
527
|
}
|
|
492
528
|
} else {
|
|
493
529
|
if ( typeof(liveCheckErrors[formId][fieldName]) != 'undefined') {
|
|
@@ -551,7 +587,11 @@
|
|
|
551
587
|
|
|
552
588
|
if (!name) continue;
|
|
553
589
|
|
|
554
|
-
if (
|
|
590
|
+
if (
|
|
591
|
+
errors
|
|
592
|
+
&& typeof(errors[name]) != 'undefined'
|
|
593
|
+
&& !/(form\-item\-error|form\-item\-warning)/.test($parent.className)
|
|
594
|
+
) {
|
|
555
595
|
|
|
556
596
|
if (isWarning) {
|
|
557
597
|
// adding warning class
|
|
@@ -592,7 +632,24 @@
|
|
|
592
632
|
|
|
593
633
|
|
|
594
634
|
|
|
595
|
-
} else if (
|
|
635
|
+
} else if (
|
|
636
|
+
errors
|
|
637
|
+
&& typeof(errors[name]) == 'undefined'
|
|
638
|
+
&& /(form\-item\-error|form\-item\-warning)/.test($parent.className)
|
|
639
|
+
||
|
|
640
|
+
errors
|
|
641
|
+
&& typeof(errors[name]) != 'undefined' && errors[name].count() == 0
|
|
642
|
+
&& /(form\-item\-error|form\-item\-warning)/.test($parent.className)
|
|
643
|
+
) {
|
|
644
|
+
// Fixed on 2025-03-10
|
|
645
|
+
// targeted field must be the active element
|
|
646
|
+
// if (
|
|
647
|
+
// document.activeElement.getAttribute('name') != fieldName
|
|
648
|
+
// && errors.count() > 0
|
|
649
|
+
// ) {
|
|
650
|
+
// break
|
|
651
|
+
// }
|
|
652
|
+
console.debug('[handleErrorsDisplay] Resetting when not in error');
|
|
596
653
|
// reset when not in error
|
|
597
654
|
// remove child elements
|
|
598
655
|
var $children = $parent.getElementsByTagName('div');
|
|
@@ -606,16 +663,34 @@
|
|
|
606
663
|
|
|
607
664
|
$parent.className = $parent.className.replace(/(\s+form\-item\-error|form\-item\-error|\s+form\-item\-warning|form\-item\-warning)/, '');
|
|
608
665
|
|
|
609
|
-
} else if (
|
|
666
|
+
} else if (
|
|
667
|
+
errors.count() > 0
|
|
668
|
+
&& typeof(errors[name]) != 'undefined'
|
|
669
|
+
&& errAttr
|
|
670
|
+
) {
|
|
610
671
|
// refreshing already displayed error on msg update
|
|
611
672
|
var $divs = $parent.getElementsByTagName('div');
|
|
612
673
|
for (var d = 0, dLen = $divs.length; d<dLen; ++d) {
|
|
613
|
-
|
|
674
|
+
// Fixed on 2025-03-05: className can have more than one !!
|
|
675
|
+
let foundMessage = $divs[d].className.match("form-item-error-message");
|
|
676
|
+
if (
|
|
677
|
+
foundMessage
|
|
678
|
+
&& typeof(foundMessage.length) != 'undefined'
|
|
679
|
+
&& foundMessage.length > 0
|
|
680
|
+
) {
|
|
614
681
|
|
|
615
682
|
$divs[d].parentElement.removeChild($divs[d]);
|
|
616
683
|
$err = document.createElement('div');
|
|
617
684
|
$err.setAttribute('class', 'form-item-error-message');
|
|
618
685
|
|
|
686
|
+
// Fixed on 2025-03-09: className cleanup
|
|
687
|
+
if (
|
|
688
|
+
!isWarning
|
|
689
|
+
&& /(\s+form\-item\-warning|form\-item\-warning)/.test($parent.className)
|
|
690
|
+
) {
|
|
691
|
+
$parent.className = $parent.className.replace(/(\s+form\-item\-warning|form\-item\-warning)/, ' form-item-error');
|
|
692
|
+
}
|
|
693
|
+
|
|
619
694
|
// injecting error messages
|
|
620
695
|
// {
|
|
621
696
|
// field: {
|
|
@@ -640,12 +715,17 @@
|
|
|
640
715
|
}
|
|
641
716
|
}
|
|
642
717
|
|
|
643
|
-
if ($err && $target.type != 'hidden')
|
|
718
|
+
if ($err && $target.type != 'hidden') {
|
|
644
719
|
insertAfter($target, $err);
|
|
645
|
-
|
|
720
|
+
}
|
|
646
721
|
}
|
|
647
722
|
|
|
648
|
-
if (
|
|
723
|
+
if (
|
|
724
|
+
typeof(fieldName) != 'undefined'
|
|
725
|
+
&& fieldName === $el.name
|
|
726
|
+
) {
|
|
727
|
+
break;
|
|
728
|
+
}
|
|
649
729
|
}
|
|
650
730
|
|
|
651
731
|
|
|
@@ -840,7 +920,7 @@
|
|
|
840
920
|
*
|
|
841
921
|
*
|
|
842
922
|
* @param {object} data - FormData object (https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects)
|
|
843
|
-
* @param {object} [ options ] : { isSynchrone:
|
|
923
|
+
* @param {object} [ options ] : { isSynchrone: false, withCredentials: true, withRateLimit: true }
|
|
844
924
|
* */
|
|
845
925
|
var send = function(data, options) {
|
|
846
926
|
|
|
@@ -852,19 +932,28 @@
|
|
|
852
932
|
var isAttachment = null; // handle download
|
|
853
933
|
var hFormIsRequired = null;
|
|
854
934
|
|
|
935
|
+
options = (typeof (options) != 'undefined') ? merge(options, xhrOptions) : xhrOptions;
|
|
936
|
+
|
|
937
|
+
// Rate Limit to one request at the time
|
|
938
|
+
// Attention: this should be an option
|
|
939
|
+
// the request needs to be completed before another can be made
|
|
940
|
+
// TODO - Check same url
|
|
855
941
|
if (
|
|
856
|
-
|
|
942
|
+
/^true$/i.test(options.withRateLimit)
|
|
943
|
+
&& typeof($form.isSending) != 'undefined'
|
|
857
944
|
&& /^true$/i.test($form.isSending)
|
|
858
945
|
||
|
|
859
|
-
|
|
946
|
+
/^true$/i.test(options.withRateLimit)
|
|
947
|
+
&& typeof($form.sent) != 'undefined'
|
|
860
948
|
&& /^true$/i.test($form.sent)
|
|
861
949
|
) {
|
|
862
950
|
return;
|
|
863
951
|
}
|
|
952
|
+
|
|
864
953
|
instance.$forms[id].isSending = true;
|
|
865
954
|
|
|
866
955
|
|
|
867
|
-
|
|
956
|
+
|
|
868
957
|
// `x-gina-form`definition
|
|
869
958
|
//options.headers['X-Gina-Form-Location'] = gina.config.bundle;
|
|
870
959
|
if ( typeof($form.id) != 'undefined' ) {
|
|
@@ -974,14 +1063,15 @@
|
|
|
974
1063
|
$form.isSending = false;
|
|
975
1064
|
|
|
976
1065
|
// limit send trigger to 1 sec to prevent from double clicks
|
|
977
|
-
setTimeout( function onSent() {
|
|
978
|
-
|
|
979
|
-
}, 1000);
|
|
1066
|
+
// setTimeout( function onSent() {
|
|
1067
|
+
// $form.sent = false;
|
|
1068
|
+
// }, 1000); // 1000
|
|
980
1069
|
|
|
981
1070
|
// In case the user is also redirecting
|
|
982
1071
|
var redirectDelay = (/Google Inc/i.test(navigator.vendor)) ? 50 : 0;
|
|
983
1072
|
|
|
984
|
-
|
|
1073
|
+
// responseType interception
|
|
1074
|
+
if (xhr.readyState == 2) {
|
|
985
1075
|
isAttachment = ( /^attachment\;/.test( xhr.getResponseHeader("Content-Disposition") ) ) ? true : false;
|
|
986
1076
|
// force blob response type
|
|
987
1077
|
if ( !xhr.responseType && isAttachment ) {
|
|
@@ -1015,7 +1105,7 @@
|
|
|
1015
1105
|
var url = window.URL.createObjectURL(blob);
|
|
1016
1106
|
a.href = url;
|
|
1017
1107
|
var contentDisposition = xhr.getResponseHeader("Content-Disposition");
|
|
1018
|
-
a.download = contentDisposition.match('\=(.*)')[0].
|
|
1108
|
+
a.download = contentDisposition.match('\=(.*)')[0].substring(1);
|
|
1019
1109
|
//programatically click the link to trigger the download
|
|
1020
1110
|
a.click();
|
|
1021
1111
|
|
|
@@ -1034,7 +1124,9 @@
|
|
|
1034
1124
|
size : blob.size
|
|
1035
1125
|
}
|
|
1036
1126
|
|
|
1037
|
-
}
|
|
1127
|
+
}
|
|
1128
|
+
// normal case
|
|
1129
|
+
else {
|
|
1038
1130
|
result = xhr.responseText;
|
|
1039
1131
|
}
|
|
1040
1132
|
|
|
@@ -1043,9 +1135,14 @@
|
|
|
1043
1135
|
if ( /\/json/.test( contentType ) ) {
|
|
1044
1136
|
result = JSON.parse(xhr.responseText);
|
|
1045
1137
|
|
|
1046
|
-
if ( typeof(result.status) == 'undefined' )
|
|
1138
|
+
if ( typeof(result.status) == 'undefined' ) {
|
|
1047
1139
|
result.status = xhr.status;
|
|
1048
|
-
|
|
1140
|
+
}
|
|
1141
|
+
// Fixed on 2025-03-13 Allowing toolbar to ubdate after xhr results
|
|
1142
|
+
// TODO - Allowing to revert to previously loaded data via a close button
|
|
1143
|
+
if (gina && envIsDev && typeof(window.ginaToolbar) && typeof(result) != 'undefined') {
|
|
1144
|
+
window.ginaToolbar.update('data-xhr', result);
|
|
1145
|
+
}
|
|
1049
1146
|
}
|
|
1050
1147
|
|
|
1051
1148
|
if ( /\/html/.test( contentType ) ) {
|
|
@@ -1276,6 +1373,13 @@
|
|
|
1276
1373
|
// } else { // external - need to remove `X-Requested-With` from `options.headers`
|
|
1277
1374
|
result.location = (!/^http/.test(result.location) && !/^\//.test(result.location) ) ? location.protocol +'//' + result.location : result.location;
|
|
1278
1375
|
//}
|
|
1376
|
+
// isProxyHost ?
|
|
1377
|
+
if (
|
|
1378
|
+
result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:\/\//, '').split(/\//g)[0] == gina.config.hostname
|
|
1379
|
+
&& gina.config.hostname == window.location.host
|
|
1380
|
+
) {
|
|
1381
|
+
result.location = location.protocol + result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:/, '')
|
|
1382
|
+
}
|
|
1279
1383
|
|
|
1280
1384
|
return setTimeout(() => {
|
|
1281
1385
|
window.location.href = result.location;
|
|
@@ -1905,7 +2009,7 @@
|
|
|
1905
2009
|
filesToBeRemoved.push(childNodeFilePreview);
|
|
1906
2010
|
}
|
|
1907
2011
|
} else {
|
|
1908
|
-
let file = childNodes[i].src.
|
|
2012
|
+
let file = childNodes[i].src.substring(childNodes[i].src.lastIndexOf('/')+1);
|
|
1909
2013
|
childNodeFile = file;
|
|
1910
2014
|
filesToBeRemoved.push(childNodeFile);
|
|
1911
2015
|
}
|
|
@@ -2341,7 +2445,7 @@
|
|
|
2341
2445
|
for (let m = 0, mLen = mergingRules.length; m < mLen; m++) {
|
|
2342
2446
|
if ( re.test(mergingRules[m]) ) {
|
|
2343
2447
|
let tmpStr = JSON.stringify(rule);
|
|
2344
|
-
tmpStr = tmpStr.
|
|
2448
|
+
tmpStr = tmpStr.substring(1, tmpStr.length-1);// removing ->{ ... }<-
|
|
2345
2449
|
// is last ?
|
|
2346
2450
|
if (m < mLen-1) {
|
|
2347
2451
|
tmpStr += ','
|
|
@@ -3126,7 +3230,6 @@
|
|
|
3126
3230
|
} else {
|
|
3127
3231
|
handleErrorsDisplay(event.target.form, errors, null, event.target.name);
|
|
3128
3232
|
}
|
|
3129
|
-
//return cancelEvent(event);
|
|
3130
3233
|
}
|
|
3131
3234
|
|
|
3132
3235
|
|
|
@@ -3136,7 +3239,7 @@
|
|
|
3136
3239
|
|
|
3137
3240
|
instance.$forms[event.target.form.getAttribute('id')].isValidating = true;
|
|
3138
3241
|
validate(event.target, localField, $localField, $form.rules, function onLiveValidation(result){
|
|
3139
|
-
instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
|
|
3242
|
+
// instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
|
|
3140
3243
|
//console.debug('validation on processEvent(...) ', result);
|
|
3141
3244
|
|
|
3142
3245
|
var isFormValid = result.isValid();
|
|
@@ -3162,8 +3265,10 @@
|
|
|
3162
3265
|
instance.$forms[formId].isValidating = true;
|
|
3163
3266
|
validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
|
|
3164
3267
|
instance.$forms[formId].isValidating = false;
|
|
3165
|
-
console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
|
|
3268
|
+
console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
|
|
3269
|
+
// var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
|
|
3166
3270
|
var isFormValid = gResult.isValid();
|
|
3271
|
+
// var isFormValid = gResult.isValid();
|
|
3167
3272
|
if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
|
|
3168
3273
|
// update toolbar
|
|
3169
3274
|
if (!gina.forms.errors)
|
|
@@ -3178,6 +3283,27 @@
|
|
|
3178
3283
|
}
|
|
3179
3284
|
|
|
3180
3285
|
|
|
3286
|
+
if ( !isFormValid && gResult.error ) {
|
|
3287
|
+
// Fixed on 2025-03-16 - we need past and live errors
|
|
3288
|
+
instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
|
|
3289
|
+
// Fixed on 2025-03-16
|
|
3290
|
+
for (let eField in gResult.error) {
|
|
3291
|
+
refreshWarning($gFields[eField]);
|
|
3292
|
+
handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
|
|
3293
|
+
}
|
|
3294
|
+
}
|
|
3295
|
+
// Fixed on 2025-03-16
|
|
3296
|
+
// Eg.: input select change impacting another element: solve `no more errors`
|
|
3297
|
+
else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
|
|
3298
|
+
// recheck if valid
|
|
3299
|
+
//resetting error display
|
|
3300
|
+
instance.$forms[ formId ].errors = {};
|
|
3301
|
+
console.debug('resetting field: '+ $el.name);
|
|
3302
|
+
liveCheckErrors[formId] = {};
|
|
3303
|
+
// $form.dataset.ginaFormIsResetting = true;
|
|
3304
|
+
handleErrorsDisplay($gForm, {}, null, $el.name);
|
|
3305
|
+
}
|
|
3306
|
+
|
|
3181
3307
|
updateSubmitTriggerState( $gForm, isFormValid);
|
|
3182
3308
|
|
|
3183
3309
|
once = false;
|
|
@@ -3211,13 +3337,16 @@
|
|
|
3211
3337
|
// other inputs & textareas
|
|
3212
3338
|
else if ( /^focusin\./i.test(event.type) ) {
|
|
3213
3339
|
if ( /\-error/.test($el.parentNode.className) ) {
|
|
3214
|
-
console.debug('#1 you just focusin ....'+$el.id, $el.value);
|
|
3340
|
+
console.debug('#1 you just focusin ....'+$el.id, $el.value, instance.$forms[ $el.form.getAttribute('id') ].isValidating);
|
|
3215
3341
|
refreshWarning($el);
|
|
3216
3342
|
}
|
|
3217
3343
|
}
|
|
3218
3344
|
else if ( /^focusout\./i.test(event.type) ) {
|
|
3219
3345
|
if ( /\-warning/.test($el.parentNode.className) ) {
|
|
3220
3346
|
console.debug('#1 you just focusout ....'+$el.id, $el.value);
|
|
3347
|
+
// Removed on 2025-03-16
|
|
3348
|
+
instance.$forms[ $el.form.getAttribute('id') ].isValidating = false;
|
|
3349
|
+
|
|
3221
3350
|
refreshWarning($el);
|
|
3222
3351
|
// in case error context is changed by another task
|
|
3223
3352
|
handleErrorsDisplay($el.form, instance.$forms[ $el.form.getAttribute('id') ].errors, null, $el.name);
|
|
@@ -3226,12 +3355,86 @@
|
|
|
3226
3355
|
else if ( /^keyup\./i.test(event.type) ) {
|
|
3227
3356
|
$el.ginaFormValidatorTestedValue = $el.value;
|
|
3228
3357
|
liveCheckTimer = setTimeout( function onLiveCheckTimer() {
|
|
3229
|
-
//
|
|
3230
|
-
if ( ['91', '17'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
|
|
3358
|
+
// Do not trigger for copy/paste events
|
|
3359
|
+
if ( ['91', '17', '16'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
|
|
3231
3360
|
//console.debug('mapping ', keyboardMapping);
|
|
3232
3361
|
return;
|
|
3233
3362
|
}
|
|
3234
|
-
|
|
3363
|
+
|
|
3364
|
+
// Fixed on 2025-03-16:
|
|
3365
|
+
// Treat TAB as focus in/out
|
|
3366
|
+
// if ( ['9'].indexOf(''+event.keyCode) > -1 ) {
|
|
3367
|
+
|
|
3368
|
+
// console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"');
|
|
3369
|
+
// var $gForm = event.target.form, gFields = null, $gFields = null, gRules = null;
|
|
3370
|
+
// var gValidatorInfos = getFormValidationInfos($gForm, rules);
|
|
3371
|
+
// gFields = gValidatorInfos.fields;
|
|
3372
|
+
// $gFields = gValidatorInfos.$fields;
|
|
3373
|
+
// var formId = $gForm.getAttribute('id');
|
|
3374
|
+
// gRules = instance.$forms[formId].rules;
|
|
3375
|
+
// // Don't be tempted to revome fields that has already been validated
|
|
3376
|
+
// instance.$forms[formId].isValidating = true;
|
|
3377
|
+
// validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
|
|
3378
|
+
// instance.$forms[formId].isValidating = false;
|
|
3379
|
+
// console.debug('['+ formId +'] [9] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
|
|
3380
|
+
// var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
|
|
3381
|
+
// // var isFormValid = gResult.isValid();
|
|
3382
|
+
// if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
|
|
3383
|
+
// // update toolbar
|
|
3384
|
+
// if (!gina.forms.errors)
|
|
3385
|
+
// gina.forms.errors = {};
|
|
3386
|
+
|
|
3387
|
+
// var objCallback = {
|
|
3388
|
+
// id : formId,
|
|
3389
|
+
// errors : gResult.error || {}
|
|
3390
|
+
// };
|
|
3391
|
+
|
|
3392
|
+
// window.ginaToolbar.update('forms', objCallback);
|
|
3393
|
+
// }
|
|
3394
|
+
|
|
3395
|
+
|
|
3396
|
+
// if ( !isFormValid && gResult.error ) {
|
|
3397
|
+
// // Fixed on 2025-03-16 - we need past and live errors
|
|
3398
|
+
// instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
|
|
3399
|
+
// // Fixed on 2025-03-16
|
|
3400
|
+
// for (let eField in instance.$forms[ $el.form.getAttribute('id') ].errors) {
|
|
3401
|
+
// refreshWarning($gFields[eField]);
|
|
3402
|
+
// handleErrorsDisplay($gForm, instance.$forms[ $el.form.getAttribute('id') ].errors, gResult.data, eField);
|
|
3403
|
+
// }
|
|
3404
|
+
// }
|
|
3405
|
+
// // Fixed on 2025-03-16
|
|
3406
|
+
// // Eg.: input select change impacting another element: solve `no more errors`
|
|
3407
|
+
// else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
|
|
3408
|
+
// // recheck if valid
|
|
3409
|
+
// //resetting error display
|
|
3410
|
+
// instance.$forms[ formId ].errors = {};
|
|
3411
|
+
// console.debug('resetting field: '+ $el.name);
|
|
3412
|
+
// liveCheckErrors[formId] = {};
|
|
3413
|
+
// // $form.dataset.ginaFormIsResetting = true;
|
|
3414
|
+
// handleErrorsDisplay($gForm, {}, null, $el.name);
|
|
3415
|
+
// }
|
|
3416
|
+
|
|
3417
|
+
// updateSubmitTriggerState( $gForm, isFormValid);
|
|
3418
|
+
|
|
3419
|
+
// once = false;
|
|
3420
|
+
// });
|
|
3421
|
+
// // var $previeousEl = document.getElementById(instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id);
|
|
3422
|
+
// // var errors = instance.$forms[ $previeousEl.form.getAttribute('id') ].errors;
|
|
3423
|
+
// // var isFormValid = (!errors[$previeousEl.name]) ? true : false;
|
|
3424
|
+
// // console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"', "errors: ", errors);
|
|
3425
|
+
// // if (errors && errors.count() > 0 ) {
|
|
3426
|
+
// // instance.$forms[ $previeousEl.form.getAttribute('id') ].isValidating = false;
|
|
3427
|
+
// // isFormValid = false;
|
|
3428
|
+
// // }
|
|
3429
|
+
// // refreshWarning($previeousEl);
|
|
3430
|
+
// // // // in case error context is changed by another task
|
|
3431
|
+
// // handleErrorsDisplay($previeousEl.form, errors, null, $previeousEl.name);
|
|
3432
|
+
// // updateSubmitTriggerState( $el.form, isFormValid);
|
|
3433
|
+
// return;
|
|
3434
|
+
// }
|
|
3435
|
+
|
|
3436
|
+
|
|
3437
|
+
console.debug('[A]['+keyboardMapping.count()+'] keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
|
|
3235
3438
|
processEvent();
|
|
3236
3439
|
}, 1000);
|
|
3237
3440
|
}
|
|
@@ -3333,14 +3536,14 @@
|
|
|
3333
3536
|
case 46: //Delete
|
|
3334
3537
|
case 8: //Backspace
|
|
3335
3538
|
if (posStart != posEnd) {
|
|
3336
|
-
$_el.value = str.
|
|
3539
|
+
$_el.value = str.substring(0, posStart) + str.substring(posEnd);
|
|
3337
3540
|
if (posStart == 0) {
|
|
3338
|
-
$_el.value = str.
|
|
3541
|
+
$_el.value = str.substring(posEnd);
|
|
3339
3542
|
}
|
|
3340
3543
|
} else if (posStart == 0) {
|
|
3341
3544
|
$_el.value = str.substring(posStart+1);
|
|
3342
3545
|
} else {
|
|
3343
|
-
$_el.value = str.
|
|
3546
|
+
$_el.value = str.substring(0, posStart-1) + str.substring(posEnd);
|
|
3344
3547
|
}
|
|
3345
3548
|
|
|
3346
3549
|
e.currentTarget.setAttribute('readonly', 'readonly');
|
|
@@ -3378,9 +3581,10 @@
|
|
|
3378
3581
|
}
|
|
3379
3582
|
break;
|
|
3380
3583
|
// Shortcuts
|
|
3381
|
-
case 17: //CTRL
|
|
3382
|
-
case
|
|
3383
|
-
|
|
3584
|
+
case 17: // CTRL
|
|
3585
|
+
case 20: // CapsLock
|
|
3586
|
+
case 91: // CMD
|
|
3587
|
+
console.debug("CMD, CTRL or CapsLock hit");
|
|
3384
3588
|
e.preventDefault();
|
|
3385
3589
|
break;
|
|
3386
3590
|
case 67: // to handle CMD+C (copy)
|
|
@@ -3428,14 +3632,14 @@
|
|
|
3428
3632
|
default:
|
|
3429
3633
|
// Replace selection
|
|
3430
3634
|
if (posStart != posEnd) {
|
|
3431
|
-
$_el.value = str.
|
|
3635
|
+
$_el.value = str.substring(0, posStart) + e.key;
|
|
3432
3636
|
if (posEnd-1 < str.length) {
|
|
3433
3637
|
$_el.value += str.substring(posEnd)
|
|
3434
3638
|
}
|
|
3435
3639
|
} else if (posStart == 0) {
|
|
3436
3640
|
$_el.value = e.key + str.substring(posStart);
|
|
3437
3641
|
} else {
|
|
3438
|
-
$_el.value = str.
|
|
3642
|
+
$_el.value = str.substring(0, posStart) + e.key + str.substring(posEnd);
|
|
3439
3643
|
}
|
|
3440
3644
|
e.currentTarget.setAttribute('readonly', 'readonly');
|
|
3441
3645
|
// Force restore last caret position
|
|
@@ -3577,24 +3781,53 @@
|
|
|
3577
3781
|
}
|
|
3578
3782
|
|
|
3579
3783
|
/**
|
|
3580
|
-
* reBindForm
|
|
3784
|
+
* reBindForm
|
|
3785
|
+
* Allows form rebinding: it is like reseting validation
|
|
3581
3786
|
*
|
|
3582
|
-
*
|
|
3583
|
-
*
|
|
3584
|
-
*
|
|
3787
|
+
* E.g.:
|
|
3788
|
+
* $validator
|
|
3789
|
+
* .getFormById('my-form-id')
|
|
3790
|
+
* .reBind();
|
|
3791
|
+
*
|
|
3792
|
+
* @param {string} [formId]
|
|
3793
|
+
* @param {string} [rules]
|
|
3794
|
+
* @param {callback} [cb]
|
|
3585
3795
|
*/
|
|
3586
|
-
var reBindForm = function(
|
|
3587
|
-
|
|
3588
|
-
|
|
3796
|
+
var reBindForm = function(formId, rules, cb) {
|
|
3797
|
+
var $form = null
|
|
3798
|
+
, _id = null
|
|
3799
|
+
;
|
|
3800
|
+
if (
|
|
3801
|
+
typeof(this.target) != 'undefined'
|
|
3802
|
+
&& /FORM/i.test(this.target.tagName)
|
|
3803
|
+
) {
|
|
3804
|
+
_id = formId = this.target.getAttribute('id')
|
|
3805
|
+
} else if ( /string/i.test(typeof(formId)) ) {
|
|
3806
|
+
_id = formId
|
|
3807
|
+
}
|
|
3808
|
+
|
|
3809
|
+
if ( typeof(instance.$forms[_id]) != 'undefined') {
|
|
3810
|
+
$form = instance.$forms[_id];
|
|
3811
|
+
} else {
|
|
3812
|
+
throw new Error('form instance `'+ _id +'` not found');
|
|
3813
|
+
}
|
|
3814
|
+
|
|
3589
3815
|
// reset errors
|
|
3590
|
-
|
|
3816
|
+
resetErrorsDisplay(_id);
|
|
3817
|
+
// Unbind form
|
|
3818
|
+
unbindForm($form.target);
|
|
3591
3819
|
// Bind
|
|
3592
|
-
|
|
3820
|
+
if ( typeof(rule) != 'undefined' ) {
|
|
3821
|
+
bindForm($form.target, rules);
|
|
3822
|
+
} else {
|
|
3823
|
+
bindForm($form.target);
|
|
3824
|
+
}
|
|
3593
3825
|
|
|
3594
3826
|
if ( cb ) {
|
|
3595
|
-
return cb(
|
|
3827
|
+
return cb($form);
|
|
3596
3828
|
}
|
|
3597
|
-
|
|
3829
|
+
|
|
3830
|
+
return $form;
|
|
3598
3831
|
}
|
|
3599
3832
|
|
|
3600
3833
|
var unbindForm = function($target) {
|
|
@@ -3612,7 +3845,7 @@
|
|
|
3612
3845
|
|
|
3613
3846
|
} else if ( typeof($target.target) != 'undefined' ) {
|
|
3614
3847
|
$form = $target;
|
|
3615
|
-
_id = $form.id;
|
|
3848
|
+
_id = ( $target.getAttribute && $target.getAttribute('id') ) ? $form.getAttribute('id') : $form.id;
|
|
3616
3849
|
} else {
|
|
3617
3850
|
throw new Error('Validator::unbindForm($target): `$target` must be a DOM element\n'+err.stack )
|
|
3618
3851
|
}
|
|
@@ -3651,7 +3884,7 @@
|
|
|
3651
3884
|
// submit buttons
|
|
3652
3885
|
$elTMP = $form.target.getElementsByTagName('button');
|
|
3653
3886
|
if ( $elTMP.length > 0 ) {
|
|
3654
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3887
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3655
3888
|
// if button is != type="submit", you will need to provide : data-gina-form-submit
|
|
3656
3889
|
// TODO - On button binding, you can then provide data-gina-form-action & data-gina-form-method
|
|
3657
3890
|
$els.push($elTMP[i])
|
|
@@ -3661,7 +3894,7 @@
|
|
|
3661
3894
|
// submit links
|
|
3662
3895
|
$elTMP = $form.target.getElementsByTagName('a');
|
|
3663
3896
|
if ( $elTMP.length > 0 ) {
|
|
3664
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3897
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3665
3898
|
$els.push($elTMP[i])
|
|
3666
3899
|
}
|
|
3667
3900
|
}
|
|
@@ -3717,7 +3950,7 @@
|
|
|
3717
3950
|
// textarea
|
|
3718
3951
|
$elTMP = $form.target.getElementsByTagName('textarea');
|
|
3719
3952
|
if ( $elTMP.length > 0 ) {
|
|
3720
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3953
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3721
3954
|
$els.push( $elTMP[i] )
|
|
3722
3955
|
}
|
|
3723
3956
|
}
|
|
@@ -3726,7 +3959,7 @@
|
|
|
3726
3959
|
// forms inside main form
|
|
3727
3960
|
$elTMP = $form.target.getElementsByTagName('form');
|
|
3728
3961
|
if ( $elTMP.length > 0 ) {
|
|
3729
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3962
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3730
3963
|
$els.push( $elTMP[i] )
|
|
3731
3964
|
}
|
|
3732
3965
|
}
|
|
@@ -3811,8 +4044,10 @@
|
|
|
3811
4044
|
/**
|
|
3812
4045
|
* bindForm
|
|
3813
4046
|
*
|
|
3814
|
-
* @param {object} $target - DOM element
|
|
3815
|
-
* @param {object} [customRule]
|
|
4047
|
+
* @param {object} [$target] - DOM element
|
|
4048
|
+
* @param {object|string} [customRule]
|
|
4049
|
+
*
|
|
4050
|
+
* @return {object} bindedForm
|
|
3816
4051
|
* */
|
|
3817
4052
|
var bindForm = function($target, customRule) {
|
|
3818
4053
|
|
|
@@ -3821,23 +4056,32 @@
|
|
|
3821
4056
|
, rules = ( typeof(local.rules.count() > 0 ) ) ? local.rules : instance.rules
|
|
3822
4057
|
;
|
|
3823
4058
|
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
3827
|
-
|
|
3828
|
-
|
|
3829
|
-
|
|
3830
|
-
|
|
4059
|
+
if (
|
|
4060
|
+
typeof($target) == 'undefined'
|
|
4061
|
+
&& typeof(this.target) != 'undefined'
|
|
4062
|
+
&& /FORM/i.test(this.target.tagName)
|
|
4063
|
+
||
|
|
4064
|
+
!/object/i.test( typeof($target) )
|
|
4065
|
+
) {
|
|
4066
|
+
_id = this.target.id || this.target.getAttribute('id');
|
|
4067
|
+
} else if ( /string/i.test(typeof($target)) ) {
|
|
4068
|
+
_id = $target
|
|
4069
|
+
} else {
|
|
4070
|
+
_id = $target.getAttribute('id')
|
|
4071
|
+
}
|
|
3831
4072
|
|
|
4073
|
+
try {
|
|
4074
|
+
if ( typeof(instance.$forms[_id]) != 'undefined') {
|
|
4075
|
+
$form = instance.$forms[_id];
|
|
4076
|
+
if ( typeof($form.target) == 'undefined' ) {
|
|
4077
|
+
throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n');
|
|
4078
|
+
}
|
|
4079
|
+
$target = $form.target;
|
|
3832
4080
|
} else {
|
|
3833
|
-
throw new Error('
|
|
4081
|
+
throw new Error('form instance `'+ _id +'` not found');
|
|
3834
4082
|
}
|
|
3835
4083
|
} catch(err) {
|
|
3836
|
-
throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack )
|
|
3837
|
-
}
|
|
3838
|
-
|
|
3839
|
-
if ( typeof($form) != 'undefined' && $form.binded) {
|
|
3840
|
-
return false
|
|
4084
|
+
throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack );
|
|
3841
4085
|
}
|
|
3842
4086
|
|
|
3843
4087
|
console.debug('binding for: '+ _id);
|
|
@@ -4143,7 +4387,7 @@
|
|
|
4143
4387
|
} else if ( /img/i.test($els[i].tagName) ) {
|
|
4144
4388
|
$img = $els[i];
|
|
4145
4389
|
deleteLinkId = uploadTriggerId + '-'+index+'-delete-trigger';
|
|
4146
|
-
let file = $img.src.
|
|
4390
|
+
let file = $img.src.substring($img.src.lastIndexOf('/')+1);
|
|
4147
4391
|
$uploadTrigger.customFiles.push({
|
|
4148
4392
|
name: file,
|
|
4149
4393
|
deleteLinkId: deleteLinkId
|
|
@@ -4535,7 +4779,16 @@
|
|
|
4535
4779
|
validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
|
|
4536
4780
|
instance.$forms[formId].isValidating = false;
|
|
4537
4781
|
console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
|
|
4782
|
+
// Fixed on 2025-03-16
|
|
4538
4783
|
var isFormValid = gResult.isValid();
|
|
4784
|
+
if (!isFormValid) {
|
|
4785
|
+
instance.$forms[formId].errors = gResult.error;
|
|
4786
|
+
for (let eField in gResult.error) {
|
|
4787
|
+
// refreshWarning($gFields[eField]);
|
|
4788
|
+
handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
|
|
4789
|
+
}
|
|
4790
|
+
}
|
|
4791
|
+
|
|
4539
4792
|
updateSubmitTriggerState( $gForm, isFormValid);
|
|
4540
4793
|
once = false;
|
|
4541
4794
|
})
|
|
@@ -5129,6 +5382,25 @@
|
|
|
5129
5382
|
if (gina.events[_evt]) {
|
|
5130
5383
|
cancelEvent(event);
|
|
5131
5384
|
|
|
5385
|
+
// Fixed on 2025-03-05 - "last focus" vs "current focus"
|
|
5386
|
+
// To get active element: document.activeElement
|
|
5387
|
+
var formId = event.target.form.getAttribute('id') || event.currentTarget.getAttribute('id');
|
|
5388
|
+
var lastFocused = {
|
|
5389
|
+
id : $el.id,
|
|
5390
|
+
name: $el.name
|
|
5391
|
+
};
|
|
5392
|
+
if (!instance.$forms[formId].lastFocused.length) {
|
|
5393
|
+
instance.$forms[formId].lastFocused[0] = lastFocused;
|
|
5394
|
+
} else {
|
|
5395
|
+
instance.$forms[formId].lastFocused.splice(0,0,lastFocused);
|
|
5396
|
+
}
|
|
5397
|
+
lastFocused = ( typeof(instance.$forms[formId].lastFocused[1]) != 'undefined' ) ? instance.$forms[formId].lastFocused[1].id : null;
|
|
5398
|
+
|
|
5399
|
+
// cleanup
|
|
5400
|
+
instance.$forms[formId].lastFocused.splice(2);
|
|
5401
|
+
|
|
5402
|
+
// console.debug('lastFocused: ', lastFocused, ' VS current: ', $el.id);
|
|
5403
|
+
|
|
5132
5404
|
triggerEvent(gina, $el, _evt, event.detail);
|
|
5133
5405
|
}
|
|
5134
5406
|
});
|
|
@@ -5445,7 +5717,7 @@
|
|
|
5445
5717
|
;
|
|
5446
5718
|
$buttonsTMP = $target.getElementsByTagName('button');
|
|
5447
5719
|
if ( $buttonsTMP.length > 0 ) {
|
|
5448
|
-
for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5720
|
+
for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5449
5721
|
if ($buttonsTMP[b].type == 'submit') {
|
|
5450
5722
|
$buttons.push($buttonsTMP[b])
|
|
5451
5723
|
}
|
|
@@ -5455,7 +5727,7 @@
|
|
|
5455
5727
|
// binding links
|
|
5456
5728
|
$buttonsTMP = $target.getElementsByTagName('a');
|
|
5457
5729
|
if ( $buttonsTMP.length > 0 ) {
|
|
5458
|
-
for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5730
|
+
for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5459
5731
|
if ( $buttonsTMP[b].attributes.getNamedItem('data-gina-form-submit') ) {
|
|
5460
5732
|
$buttons.push($buttonsTMP[b])
|
|
5461
5733
|
} else if (
|
|
@@ -5712,7 +5984,8 @@
|
|
|
5712
5984
|
}
|
|
5713
5985
|
updateSubmitTriggerState( $form, result.isValid() );
|
|
5714
5986
|
});
|
|
5715
|
-
}
|
|
5987
|
+
}
|
|
5988
|
+
else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
|
|
5716
5989
|
updateSubmitTriggerState( $form , true );
|
|
5717
5990
|
}
|
|
5718
5991
|
|
|
@@ -6175,7 +6448,8 @@
|
|
|
6175
6448
|
if ( !/^form$/i.test($formOrElement.tagName) ) {
|
|
6176
6449
|
$currentForm = $formOrElement.form;
|
|
6177
6450
|
}
|
|
6178
|
-
var formId
|
|
6451
|
+
var formId = $currentForm.getAttribute('id');
|
|
6452
|
+
var isFormValid = null;
|
|
6179
6453
|
|
|
6180
6454
|
if (
|
|
6181
6455
|
hasParsedAllRules
|
|
@@ -6196,10 +6470,16 @@
|
|
|
6196
6470
|
if ( typeof(instance.$forms[formId].errors) == 'undefined' ) {
|
|
6197
6471
|
instance.$forms[formId].errors = {}
|
|
6198
6472
|
}
|
|
6473
|
+
// Fixed on 2025-03-16
|
|
6474
|
+
if ( typeof(cb._errors[field]) != 'undefined' ) {
|
|
6475
|
+
instance.$forms[formId].errors[field] = cb._errors[field];
|
|
6476
|
+
}
|
|
6477
|
+
console.debug('[A] Refreshing warning/error on field '+ field);
|
|
6478
|
+
if (
|
|
6479
|
+
!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)
|
|
6480
|
+
|| d[field].target.value != ''
|
|
6199
6481
|
|
|
6200
|
-
|
|
6201
|
-
|
|
6202
|
-
if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating) || d[field].target.value != '' ) {
|
|
6482
|
+
) {
|
|
6203
6483
|
refreshWarning($allFields[field]);
|
|
6204
6484
|
handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
|
|
6205
6485
|
updateSubmitTriggerState( $currentForm, isFormValid);
|
|
@@ -6207,8 +6487,9 @@
|
|
|
6207
6487
|
|
|
6208
6488
|
if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
|
|
6209
6489
|
// update toolbar
|
|
6210
|
-
if (!gina.forms.errors)
|
|
6490
|
+
if (!gina.forms.errors) {
|
|
6211
6491
|
gina.forms.errors = {};
|
|
6492
|
+
}
|
|
6212
6493
|
|
|
6213
6494
|
var objCallback = {
|
|
6214
6495
|
id : formId,
|
|
@@ -6225,13 +6506,13 @@
|
|
|
6225
6506
|
}
|
|
6226
6507
|
|
|
6227
6508
|
// is this the last or the only field to be validated ?
|
|
6228
|
-
var needsGlobalReValidation = false
|
|
6509
|
+
var needsGlobalReValidation = false;
|
|
6229
6510
|
if ( listedFields.length == 1 || listedFields[listedFields.length-1] == field) {
|
|
6230
6511
|
// trigger end of validation
|
|
6231
6512
|
// console.debug(field +' is the last element to be validated for formId: '+ formId, cb._errors, instance.$forms[formId].errors);
|
|
6232
6513
|
isFormValid = ( cb._errors.count() > 0 ) ? false : true;
|
|
6233
6514
|
if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)) {
|
|
6234
|
-
|
|
6515
|
+
console.debug('[1] Should update error display now ', cb._errors);
|
|
6235
6516
|
instance.$forms[formId].errors = merge(cb._errors, instance.$forms[formId].errors);
|
|
6236
6517
|
refreshWarning($allFields[field]);
|
|
6237
6518
|
handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
|
|
@@ -6263,8 +6544,6 @@
|
|
|
6263
6544
|
window.ginaToolbar.update('forms', objCallback);
|
|
6264
6545
|
}
|
|
6265
6546
|
|
|
6266
|
-
|
|
6267
|
-
|
|
6268
6547
|
handleErrorsDisplay($currentForm, gResult.error, gResult.data, field);
|
|
6269
6548
|
updateSubmitTriggerState( $currentForm, isFormValid);
|
|
6270
6549
|
})
|
|
@@ -6408,7 +6687,7 @@
|
|
|
6408
6687
|
|
|
6409
6688
|
for (var c in rules) {
|
|
6410
6689
|
if (!/^\_case\_/.test(c) ) continue;
|
|
6411
|
-
if ( typeof(rules[c].conditions) == 'undefined' ||
|
|
6690
|
+
if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
|
|
6412
6691
|
if ( typeof(rules[c].conditions[0].rules) == 'undefined' ) continue;
|
|
6413
6692
|
|
|
6414
6693
|
|
|
@@ -6590,7 +6869,14 @@
|
|
|
6590
6869
|
// filtering conditions
|
|
6591
6870
|
for (var _c = 0, _cLen = rules[c].conditions.length; _c < _cLen; ++_c) {
|
|
6592
6871
|
|
|
6593
|
-
if (
|
|
6872
|
+
if (
|
|
6873
|
+
Array.isArray(rules[c].conditions[_c].case)
|
|
6874
|
+
&& rules[c].conditions[_c].case.indexOf(caseValue) == -1
|
|
6875
|
+
||
|
|
6876
|
+
!Array.isArray(rules[c].conditions[_c].case)
|
|
6877
|
+
&& rules[c].conditions[_c].case != caseValue
|
|
6878
|
+
|
|
6879
|
+
) {
|
|
6594
6880
|
continue;
|
|
6595
6881
|
}
|
|
6596
6882
|
|
|
@@ -6735,7 +7021,8 @@
|
|
|
6735
7021
|
if (
|
|
6736
7022
|
conditions[c]['case'] === caseValue
|
|
6737
7023
|
||
|
|
6738
|
-
Array.isArray(conditions[c]['case'])
|
|
7024
|
+
Array.isArray(conditions[c]['case'])
|
|
7025
|
+
&& conditions[c]['case'].indexOf(caseValue) > -1
|
|
6739
7026
|
||
|
|
6740
7027
|
/^\//.test(conditions[c]['case'])
|
|
6741
7028
|
) {
|
|
@@ -6852,8 +7139,6 @@
|
|
|
6852
7139
|
}
|
|
6853
7140
|
--i;
|
|
6854
7141
|
}
|
|
6855
|
-
|
|
6856
|
-
|
|
6857
7142
|
} // EO for
|
|
6858
7143
|
}
|
|
6859
7144
|
|
|
@@ -6874,7 +7159,7 @@
|
|
|
6874
7159
|
}
|
|
6875
7160
|
|
|
6876
7161
|
if (isGFFCtx)
|
|
6877
|
-
$fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].
|
|
7162
|
+
$fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substring(0, fieldErrorsAttributes[field].length-1))
|
|
6878
7163
|
}
|
|
6879
7164
|
|
|
6880
7165
|
//calling back
|
|
@@ -6945,6 +7230,8 @@
|
|
|
6945
7230
|
'data' : formatData( _data )
|
|
6946
7231
|
});
|
|
6947
7232
|
removeListener(gina, event.target, 'validated.' + event.target.id);
|
|
7233
|
+
|
|
7234
|
+
|
|
6948
7235
|
return
|
|
6949
7236
|
}
|
|
6950
7237
|
});
|