gina 0.1.6-alpha.12 → 0.1.6-alpha.121
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.121}/LICENSE +1 -1
- package/framework/v0.1.6-alpha.121/VERSION +1 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/plugin/README.md +1 -0
- package/framework/v0.1.6-alpha.121/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/plugin/dist/vendor/gina/js/gina.js +619 -233
- package/framework/v0.1.6-alpha.121/core/asset/plugin/dist/vendor/gina/js/gina.min.js +778 -0
- package/framework/v0.1.6-alpha.121/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
- package/framework/v0.1.6-alpha.121/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
- package/framework/v0.1.6-alpha.121/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.121}/core/config.js +157 -74
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/index.js +108 -26
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/connector.v4.js +124 -22
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/controller/controller.js +683 -163
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/controller/index.js +2 -2
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/README.md +191 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/lib/index.js +57 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/lib/utils.js +596 -0
- package/framework/v0.1.6-alpha.121/core/deps/busboy-1.6.0/package.json +22 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/.travis.yml +4 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/LICENSE +21 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/bool.js +10 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/boolean_double.js +7 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/boolean_single.js +7 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/default_hash.js +8 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/default_singles.js +7 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/divide.js +8 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/line_count.js +20 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/line_count_options.js +29 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/line_count_wrap.js +29 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/nonopt.js +4 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/reflect.js +2 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/short.js +3 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/string.js +11 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/usage-options.js +19 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/example/xup.js +10 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/index.js +343 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/package.json +31 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/package.json.dist +39 -0
- package/framework/v0.1.6-alpha.121/core/deps/optimist-0.6.1/readme.markdown +513 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/HISTORY.md +498 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/LICENSE +7 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/README.md +88 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/bin/swig.js +161 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/bin/swig.js.dist +161 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/dist/swig.min.js.map +8 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/index.js +1 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/dateformatter.js +198 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/filters.js +630 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/lexer.js +306 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/loaders/filesystem.js +59 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/loaders/index.js +53 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/loaders/memory.js +63 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/parser.js +744 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/swig.js +740 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/autoescape.js +37 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/block.js +25 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/else.js +25 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/elseif.js +28 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/extends.js +19 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/filter.js +68 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/for.js +130 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/if.js +86 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/import.js +91 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/include.js +100 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/index.js +16 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/macro.js +79 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/parent.js +51 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/raw.js +23 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/set.js +109 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/tags/spaceless.js +42 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/lib/utils.js +184 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/package.json +57 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-1.4.2/package.json.dist +61 -0
- package/framework/v0.1.6-alpha.121/core/deps/swig-client/swig.js +5031 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/dev/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/dev/lib/factory.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/gna.js +104 -22
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/index.js +3 -3
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/src/make.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/mime.types +1 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/model/entity.js +5 -5
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/model/index.js +30 -26
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/model/template/entityFactory.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/model/template/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/index.js +3 -3
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/file/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/intl/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/storage/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/validator/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/validator/src/form-validator.js +39 -27
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/validator/src/main.js +390 -101
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/router.js +92 -47
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/server.isaac.js +91 -10
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/server.js +317 -130
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/status.codes +1 -11
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/command/gina.tpl +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/env.json +19 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/templates.json +4 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/console.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/context.js +29 -12
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/data/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/data/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/dateFormat.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/json/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/json/src/main.js +6 -4
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/path.js +31 -15
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/plugins/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/plugins/src/api-error.js +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/plugins/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/task.js +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/text.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/archiver/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/archiver/src/main.js +11 -11
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/add.js +2 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/start.js +21 -8
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/get.js +1 -1
- package/framework/v0.1.6-alpha.121/lib/cmd/env/help.js +30 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/build.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/dot.js +21 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/init.js +18 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/link-node-modules.js +2 -3
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/link.js +1 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/tail.js +28 -11
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/version.js +15 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/helper.js +6 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/index.js +1 -1
- package/framework/v0.1.6-alpha.121/lib/cmd/minion/help.txt +18 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/add.js +3 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/build.js +4 -4
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/list.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/protocol/list.js +71 -50
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/collection/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/collection/src/main.js +20 -14
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/config.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cron/package.json +2 -2
- package/framework/v0.1.6-alpha.121/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +15754 -0
- package/framework/v0.1.6-alpha.121/lib/domain/dist/public_suffix_list.dat +15754 -0
- package/framework/v0.1.6-alpha.121/lib/domain/exemples/backend.js +12 -0
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/domain/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/domain/src/main.js +20 -6
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/generator/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121/lib/inherits}/LICENSE +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/mq/listener.js +10 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/helper.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/math/index.js +1 -1
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/model.js +3 -3
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/proc.js +10 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/routing/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/routing/src/main.js +72 -25
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/session-store.js +3 -3
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/swig-filters/package.json +2 -2
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/swig-filters/src/main.js +70 -15
- package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/validator.js +2 -2
- package/framework/v0.1.6-alpha.121/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.121}/AUTHORS +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/html/static.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/asset/plugin/uuid.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.1.6-alpha.12/core/deps/busboy → v0.1.6-alpha.121/core/deps/busboy-1.6.0}/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/currency.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/src/resources/currency.csv +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/src/resources/region.csv +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/locales/src/resources/region.mapping.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/file/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/file/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/intl/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/intl/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/intl/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/server.express.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/_gitignore +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/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.121}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/package.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/data/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/json/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/helpers/prototypes.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/archiver/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/archiver/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.1.6-alpha.12/lib/cmd/env → v0.1.6-alpha.121/lib/cmd/minion}/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/collection/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/collection/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cron/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/domain/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/domain/exemples/frontend.html +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/example/inheriting_eventemitter.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/example/protected_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/example/simple_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/example/merge.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/example/merge_2_literal objects.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/example/merge_and_preserve_first.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/routing/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/routing/build.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/shell.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/url/README.md +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/url/index.js +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/url/mocks.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/url/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/lib/url/test.js +0 -0
package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.121}/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,9 @@
|
|
|
3378
3581
|
}
|
|
3379
3582
|
break;
|
|
3380
3583
|
// Shortcuts
|
|
3381
|
-
case 17: //CTRL
|
|
3382
|
-
case 91: //CMD
|
|
3383
|
-
console.debug("CMD hit");
|
|
3584
|
+
case 17: // CTRL
|
|
3585
|
+
case 91: // CMD
|
|
3586
|
+
console.debug("CMD, CTRL hit");
|
|
3384
3587
|
e.preventDefault();
|
|
3385
3588
|
break;
|
|
3386
3589
|
case 67: // to handle CMD+C (copy)
|
|
@@ -3427,15 +3630,18 @@
|
|
|
3427
3630
|
}
|
|
3428
3631
|
default:
|
|
3429
3632
|
// Replace selection
|
|
3633
|
+
if (e.key.length > 1) {
|
|
3634
|
+
break;
|
|
3635
|
+
}
|
|
3430
3636
|
if (posStart != posEnd) {
|
|
3431
|
-
$_el.value = str.
|
|
3637
|
+
$_el.value = str.substring(0, posStart) + e.key;
|
|
3432
3638
|
if (posEnd-1 < str.length) {
|
|
3433
3639
|
$_el.value += str.substring(posEnd)
|
|
3434
3640
|
}
|
|
3435
3641
|
} else if (posStart == 0) {
|
|
3436
3642
|
$_el.value = e.key + str.substring(posStart);
|
|
3437
3643
|
} else {
|
|
3438
|
-
$_el.value = str.
|
|
3644
|
+
$_el.value = str.substring(0, posStart) + e.key + str.substring(posEnd);
|
|
3439
3645
|
}
|
|
3440
3646
|
e.currentTarget.setAttribute('readonly', 'readonly');
|
|
3441
3647
|
// Force restore last caret position
|
|
@@ -3577,24 +3783,53 @@
|
|
|
3577
3783
|
}
|
|
3578
3784
|
|
|
3579
3785
|
/**
|
|
3580
|
-
* reBindForm
|
|
3786
|
+
* reBindForm
|
|
3787
|
+
* Allows form rebinding: it is like reseting validation
|
|
3581
3788
|
*
|
|
3582
|
-
*
|
|
3583
|
-
*
|
|
3584
|
-
*
|
|
3789
|
+
* E.g.:
|
|
3790
|
+
* $validator
|
|
3791
|
+
* .getFormById('my-form-id')
|
|
3792
|
+
* .reBind();
|
|
3793
|
+
*
|
|
3794
|
+
* @param {string} [formId]
|
|
3795
|
+
* @param {string} [rules]
|
|
3796
|
+
* @param {callback} [cb]
|
|
3585
3797
|
*/
|
|
3586
|
-
var reBindForm = function(
|
|
3587
|
-
|
|
3588
|
-
|
|
3798
|
+
var reBindForm = function(formId, rules, cb) {
|
|
3799
|
+
var $form = null
|
|
3800
|
+
, _id = null
|
|
3801
|
+
;
|
|
3802
|
+
if (
|
|
3803
|
+
typeof(this.target) != 'undefined'
|
|
3804
|
+
&& /FORM/i.test(this.target.tagName)
|
|
3805
|
+
) {
|
|
3806
|
+
_id = formId = this.target.getAttribute('id')
|
|
3807
|
+
} else if ( /string/i.test(typeof(formId)) ) {
|
|
3808
|
+
_id = formId
|
|
3809
|
+
}
|
|
3810
|
+
|
|
3811
|
+
if ( typeof(instance.$forms[_id]) != 'undefined') {
|
|
3812
|
+
$form = instance.$forms[_id];
|
|
3813
|
+
} else {
|
|
3814
|
+
throw new Error('form instance `'+ _id +'` not found');
|
|
3815
|
+
}
|
|
3816
|
+
|
|
3589
3817
|
// reset errors
|
|
3590
|
-
|
|
3818
|
+
resetErrorsDisplay(_id);
|
|
3819
|
+
// Unbind form
|
|
3820
|
+
unbindForm($form.target);
|
|
3591
3821
|
// Bind
|
|
3592
|
-
|
|
3822
|
+
if ( typeof(rule) != 'undefined' ) {
|
|
3823
|
+
bindForm($form.target, rules);
|
|
3824
|
+
} else {
|
|
3825
|
+
bindForm($form.target);
|
|
3826
|
+
}
|
|
3593
3827
|
|
|
3594
3828
|
if ( cb ) {
|
|
3595
|
-
return cb(
|
|
3829
|
+
return cb($form);
|
|
3596
3830
|
}
|
|
3597
|
-
|
|
3831
|
+
|
|
3832
|
+
return $form;
|
|
3598
3833
|
}
|
|
3599
3834
|
|
|
3600
3835
|
var unbindForm = function($target) {
|
|
@@ -3612,7 +3847,7 @@
|
|
|
3612
3847
|
|
|
3613
3848
|
} else if ( typeof($target.target) != 'undefined' ) {
|
|
3614
3849
|
$form = $target;
|
|
3615
|
-
_id = $form.id;
|
|
3850
|
+
_id = ( $target.getAttribute && $target.getAttribute('id') ) ? $form.getAttribute('id') : $form.id;
|
|
3616
3851
|
} else {
|
|
3617
3852
|
throw new Error('Validator::unbindForm($target): `$target` must be a DOM element\n'+err.stack )
|
|
3618
3853
|
}
|
|
@@ -3651,7 +3886,7 @@
|
|
|
3651
3886
|
// submit buttons
|
|
3652
3887
|
$elTMP = $form.target.getElementsByTagName('button');
|
|
3653
3888
|
if ( $elTMP.length > 0 ) {
|
|
3654
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3889
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3655
3890
|
// if button is != type="submit", you will need to provide : data-gina-form-submit
|
|
3656
3891
|
// TODO - On button binding, you can then provide data-gina-form-action & data-gina-form-method
|
|
3657
3892
|
$els.push($elTMP[i])
|
|
@@ -3661,7 +3896,7 @@
|
|
|
3661
3896
|
// submit links
|
|
3662
3897
|
$elTMP = $form.target.getElementsByTagName('a');
|
|
3663
3898
|
if ( $elTMP.length > 0 ) {
|
|
3664
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3899
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3665
3900
|
$els.push($elTMP[i])
|
|
3666
3901
|
}
|
|
3667
3902
|
}
|
|
@@ -3717,7 +3952,7 @@
|
|
|
3717
3952
|
// textarea
|
|
3718
3953
|
$elTMP = $form.target.getElementsByTagName('textarea');
|
|
3719
3954
|
if ( $elTMP.length > 0 ) {
|
|
3720
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3955
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3721
3956
|
$els.push( $elTMP[i] )
|
|
3722
3957
|
}
|
|
3723
3958
|
}
|
|
@@ -3726,7 +3961,7 @@
|
|
|
3726
3961
|
// forms inside main form
|
|
3727
3962
|
$elTMP = $form.target.getElementsByTagName('form');
|
|
3728
3963
|
if ( $elTMP.length > 0 ) {
|
|
3729
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3964
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3730
3965
|
$els.push( $elTMP[i] )
|
|
3731
3966
|
}
|
|
3732
3967
|
}
|
|
@@ -3811,8 +4046,10 @@
|
|
|
3811
4046
|
/**
|
|
3812
4047
|
* bindForm
|
|
3813
4048
|
*
|
|
3814
|
-
* @param {object} $target - DOM element
|
|
3815
|
-
* @param {object} [customRule]
|
|
4049
|
+
* @param {object} [$target] - DOM element
|
|
4050
|
+
* @param {object|string} [customRule]
|
|
4051
|
+
*
|
|
4052
|
+
* @return {object} bindedForm
|
|
3816
4053
|
* */
|
|
3817
4054
|
var bindForm = function($target, customRule) {
|
|
3818
4055
|
|
|
@@ -3821,23 +4058,32 @@
|
|
|
3821
4058
|
, rules = ( typeof(local.rules.count() > 0 ) ) ? local.rules : instance.rules
|
|
3822
4059
|
;
|
|
3823
4060
|
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
3827
|
-
|
|
3828
|
-
|
|
3829
|
-
|
|
3830
|
-
|
|
4061
|
+
if (
|
|
4062
|
+
typeof($target) == 'undefined'
|
|
4063
|
+
&& typeof(this.target) != 'undefined'
|
|
4064
|
+
&& /FORM/i.test(this.target.tagName)
|
|
4065
|
+
||
|
|
4066
|
+
!/object/i.test( typeof($target) )
|
|
4067
|
+
) {
|
|
4068
|
+
_id = this.target.id || this.target.getAttribute('id');
|
|
4069
|
+
} else if ( /string/i.test(typeof($target)) ) {
|
|
4070
|
+
_id = $target
|
|
4071
|
+
} else {
|
|
4072
|
+
_id = $target.getAttribute('id')
|
|
4073
|
+
}
|
|
3831
4074
|
|
|
4075
|
+
try {
|
|
4076
|
+
if ( typeof(instance.$forms[_id]) != 'undefined') {
|
|
4077
|
+
$form = instance.$forms[_id];
|
|
4078
|
+
if ( typeof($form.target) == 'undefined' ) {
|
|
4079
|
+
throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n');
|
|
4080
|
+
}
|
|
4081
|
+
$target = $form.target;
|
|
3832
4082
|
} else {
|
|
3833
|
-
throw new Error('
|
|
4083
|
+
throw new Error('form instance `'+ _id +'` not found');
|
|
3834
4084
|
}
|
|
3835
4085
|
} 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
|
|
4086
|
+
throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack );
|
|
3841
4087
|
}
|
|
3842
4088
|
|
|
3843
4089
|
console.debug('binding for: '+ _id);
|
|
@@ -4143,7 +4389,7 @@
|
|
|
4143
4389
|
} else if ( /img/i.test($els[i].tagName) ) {
|
|
4144
4390
|
$img = $els[i];
|
|
4145
4391
|
deleteLinkId = uploadTriggerId + '-'+index+'-delete-trigger';
|
|
4146
|
-
let file = $img.src.
|
|
4392
|
+
let file = $img.src.substring($img.src.lastIndexOf('/')+1);
|
|
4147
4393
|
$uploadTrigger.customFiles.push({
|
|
4148
4394
|
name: file,
|
|
4149
4395
|
deleteLinkId: deleteLinkId
|
|
@@ -4535,7 +4781,16 @@
|
|
|
4535
4781
|
validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
|
|
4536
4782
|
instance.$forms[formId].isValidating = false;
|
|
4537
4783
|
console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
|
|
4784
|
+
// Fixed on 2025-03-16
|
|
4538
4785
|
var isFormValid = gResult.isValid();
|
|
4786
|
+
if (!isFormValid) {
|
|
4787
|
+
instance.$forms[formId].errors = gResult.error;
|
|
4788
|
+
for (let eField in gResult.error) {
|
|
4789
|
+
// refreshWarning($gFields[eField]);
|
|
4790
|
+
handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
|
|
4791
|
+
}
|
|
4792
|
+
}
|
|
4793
|
+
|
|
4539
4794
|
updateSubmitTriggerState( $gForm, isFormValid);
|
|
4540
4795
|
once = false;
|
|
4541
4796
|
})
|
|
@@ -5129,6 +5384,25 @@
|
|
|
5129
5384
|
if (gina.events[_evt]) {
|
|
5130
5385
|
cancelEvent(event);
|
|
5131
5386
|
|
|
5387
|
+
// Fixed on 2025-03-05 - "last focus" vs "current focus"
|
|
5388
|
+
// To get active element: document.activeElement
|
|
5389
|
+
var formId = event.target.form.getAttribute('id') || event.currentTarget.getAttribute('id');
|
|
5390
|
+
var lastFocused = {
|
|
5391
|
+
id : $el.id,
|
|
5392
|
+
name: $el.name
|
|
5393
|
+
};
|
|
5394
|
+
if (!instance.$forms[formId].lastFocused.length) {
|
|
5395
|
+
instance.$forms[formId].lastFocused[0] = lastFocused;
|
|
5396
|
+
} else {
|
|
5397
|
+
instance.$forms[formId].lastFocused.splice(0,0,lastFocused);
|
|
5398
|
+
}
|
|
5399
|
+
lastFocused = ( typeof(instance.$forms[formId].lastFocused[1]) != 'undefined' ) ? instance.$forms[formId].lastFocused[1].id : null;
|
|
5400
|
+
|
|
5401
|
+
// cleanup
|
|
5402
|
+
instance.$forms[formId].lastFocused.splice(2);
|
|
5403
|
+
|
|
5404
|
+
// console.debug('lastFocused: ', lastFocused, ' VS current: ', $el.id);
|
|
5405
|
+
|
|
5132
5406
|
triggerEvent(gina, $el, _evt, event.detail);
|
|
5133
5407
|
}
|
|
5134
5408
|
});
|
|
@@ -5445,7 +5719,7 @@
|
|
|
5445
5719
|
;
|
|
5446
5720
|
$buttonsTMP = $target.getElementsByTagName('button');
|
|
5447
5721
|
if ( $buttonsTMP.length > 0 ) {
|
|
5448
|
-
for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5722
|
+
for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5449
5723
|
if ($buttonsTMP[b].type == 'submit') {
|
|
5450
5724
|
$buttons.push($buttonsTMP[b])
|
|
5451
5725
|
}
|
|
@@ -5455,7 +5729,7 @@
|
|
|
5455
5729
|
// binding links
|
|
5456
5730
|
$buttonsTMP = $target.getElementsByTagName('a');
|
|
5457
5731
|
if ( $buttonsTMP.length > 0 ) {
|
|
5458
|
-
for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5732
|
+
for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5459
5733
|
if ( $buttonsTMP[b].attributes.getNamedItem('data-gina-form-submit') ) {
|
|
5460
5734
|
$buttons.push($buttonsTMP[b])
|
|
5461
5735
|
} else if (
|
|
@@ -5712,7 +5986,8 @@
|
|
|
5712
5986
|
}
|
|
5713
5987
|
updateSubmitTriggerState( $form, result.isValid() );
|
|
5714
5988
|
});
|
|
5715
|
-
}
|
|
5989
|
+
}
|
|
5990
|
+
else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
|
|
5716
5991
|
updateSubmitTriggerState( $form , true );
|
|
5717
5992
|
}
|
|
5718
5993
|
|
|
@@ -6175,7 +6450,8 @@
|
|
|
6175
6450
|
if ( !/^form$/i.test($formOrElement.tagName) ) {
|
|
6176
6451
|
$currentForm = $formOrElement.form;
|
|
6177
6452
|
}
|
|
6178
|
-
var formId
|
|
6453
|
+
var formId = $currentForm.getAttribute('id');
|
|
6454
|
+
var isFormValid = null;
|
|
6179
6455
|
|
|
6180
6456
|
if (
|
|
6181
6457
|
hasParsedAllRules
|
|
@@ -6196,10 +6472,16 @@
|
|
|
6196
6472
|
if ( typeof(instance.$forms[formId].errors) == 'undefined' ) {
|
|
6197
6473
|
instance.$forms[formId].errors = {}
|
|
6198
6474
|
}
|
|
6475
|
+
// Fixed on 2025-03-16
|
|
6476
|
+
if ( typeof(cb._errors[field]) != 'undefined' ) {
|
|
6477
|
+
instance.$forms[formId].errors[field] = cb._errors[field];
|
|
6478
|
+
}
|
|
6479
|
+
console.debug('[A] Refreshing warning/error on field '+ field);
|
|
6480
|
+
if (
|
|
6481
|
+
!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)
|
|
6482
|
+
|| d[field].target.value != ''
|
|
6199
6483
|
|
|
6200
|
-
|
|
6201
|
-
|
|
6202
|
-
if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating) || d[field].target.value != '' ) {
|
|
6484
|
+
) {
|
|
6203
6485
|
refreshWarning($allFields[field]);
|
|
6204
6486
|
handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
|
|
6205
6487
|
updateSubmitTriggerState( $currentForm, isFormValid);
|
|
@@ -6207,8 +6489,9 @@
|
|
|
6207
6489
|
|
|
6208
6490
|
if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
|
|
6209
6491
|
// update toolbar
|
|
6210
|
-
if (!gina.forms.errors)
|
|
6492
|
+
if (!gina.forms.errors) {
|
|
6211
6493
|
gina.forms.errors = {};
|
|
6494
|
+
}
|
|
6212
6495
|
|
|
6213
6496
|
var objCallback = {
|
|
6214
6497
|
id : formId,
|
|
@@ -6225,13 +6508,13 @@
|
|
|
6225
6508
|
}
|
|
6226
6509
|
|
|
6227
6510
|
// is this the last or the only field to be validated ?
|
|
6228
|
-
var needsGlobalReValidation = false
|
|
6511
|
+
var needsGlobalReValidation = false;
|
|
6229
6512
|
if ( listedFields.length == 1 || listedFields[listedFields.length-1] == field) {
|
|
6230
6513
|
// trigger end of validation
|
|
6231
6514
|
// console.debug(field +' is the last element to be validated for formId: '+ formId, cb._errors, instance.$forms[formId].errors);
|
|
6232
6515
|
isFormValid = ( cb._errors.count() > 0 ) ? false : true;
|
|
6233
6516
|
if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)) {
|
|
6234
|
-
|
|
6517
|
+
console.debug('[1] Should update error display now ', cb._errors);
|
|
6235
6518
|
instance.$forms[formId].errors = merge(cb._errors, instance.$forms[formId].errors);
|
|
6236
6519
|
refreshWarning($allFields[field]);
|
|
6237
6520
|
handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
|
|
@@ -6263,8 +6546,6 @@
|
|
|
6263
6546
|
window.ginaToolbar.update('forms', objCallback);
|
|
6264
6547
|
}
|
|
6265
6548
|
|
|
6266
|
-
|
|
6267
|
-
|
|
6268
6549
|
handleErrorsDisplay($currentForm, gResult.error, gResult.data, field);
|
|
6269
6550
|
updateSubmitTriggerState( $currentForm, isFormValid);
|
|
6270
6551
|
})
|
|
@@ -6408,7 +6689,7 @@
|
|
|
6408
6689
|
|
|
6409
6690
|
for (var c in rules) {
|
|
6410
6691
|
if (!/^\_case\_/.test(c) ) continue;
|
|
6411
|
-
if ( typeof(rules[c].conditions) == 'undefined' ||
|
|
6692
|
+
if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
|
|
6412
6693
|
if ( typeof(rules[c].conditions[0].rules) == 'undefined' ) continue;
|
|
6413
6694
|
|
|
6414
6695
|
|
|
@@ -6590,7 +6871,14 @@
|
|
|
6590
6871
|
// filtering conditions
|
|
6591
6872
|
for (var _c = 0, _cLen = rules[c].conditions.length; _c < _cLen; ++_c) {
|
|
6592
6873
|
|
|
6593
|
-
if (
|
|
6874
|
+
if (
|
|
6875
|
+
Array.isArray(rules[c].conditions[_c].case)
|
|
6876
|
+
&& rules[c].conditions[_c].case.indexOf(caseValue) == -1
|
|
6877
|
+
||
|
|
6878
|
+
!Array.isArray(rules[c].conditions[_c].case)
|
|
6879
|
+
&& rules[c].conditions[_c].case != caseValue
|
|
6880
|
+
|
|
6881
|
+
) {
|
|
6594
6882
|
continue;
|
|
6595
6883
|
}
|
|
6596
6884
|
|
|
@@ -6735,7 +7023,8 @@
|
|
|
6735
7023
|
if (
|
|
6736
7024
|
conditions[c]['case'] === caseValue
|
|
6737
7025
|
||
|
|
6738
|
-
Array.isArray(conditions[c]['case'])
|
|
7026
|
+
Array.isArray(conditions[c]['case'])
|
|
7027
|
+
&& conditions[c]['case'].indexOf(caseValue) > -1
|
|
6739
7028
|
||
|
|
6740
7029
|
/^\//.test(conditions[c]['case'])
|
|
6741
7030
|
) {
|
|
@@ -6852,8 +7141,6 @@
|
|
|
6852
7141
|
}
|
|
6853
7142
|
--i;
|
|
6854
7143
|
}
|
|
6855
|
-
|
|
6856
|
-
|
|
6857
7144
|
} // EO for
|
|
6858
7145
|
}
|
|
6859
7146
|
|
|
@@ -6874,7 +7161,7 @@
|
|
|
6874
7161
|
}
|
|
6875
7162
|
|
|
6876
7163
|
if (isGFFCtx)
|
|
6877
|
-
$fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].
|
|
7164
|
+
$fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substring(0, fieldErrorsAttributes[field].length-1))
|
|
6878
7165
|
}
|
|
6879
7166
|
|
|
6880
7167
|
//calling back
|
|
@@ -6945,6 +7232,8 @@
|
|
|
6945
7232
|
'data' : formatData( _data )
|
|
6946
7233
|
});
|
|
6947
7234
|
removeListener(gina, event.target, 'validated.' + event.target.id);
|
|
7235
|
+
|
|
7236
|
+
|
|
6948
7237
|
return
|
|
6949
7238
|
}
|
|
6950
7239
|
});
|