gina 0.1.6-alpha.13 → 0.1.6-alpha.131
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 +13 -4
- package/bin/cli +16 -2
- package/bin/gina +29 -1
- package/framework/{v0.1.6-alpha.13/lib/inherits → v0.1.6-alpha.131}/LICENSE +1 -1
- package/framework/v0.1.6-alpha.131/VERSION +1 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/plugin/README.md +1 -0
- package/framework/v0.1.6-alpha.131/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/plugin/dist/vendor/gina/js/gina.js +655 -235
- package/framework/v0.1.6-alpha.131/core/asset/plugin/dist/vendor/gina/js/gina.min.js +778 -0
- package/framework/v0.1.6-alpha.131/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
- package/framework/v0.1.6-alpha.131/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
- package/framework/v0.1.6-alpha.131/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/config.js +159 -76
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/connectors/couchbase/index.js +108 -26
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/connectors/couchbase/lib/connector.v4.js +124 -22
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/connectors/couchbase/lib/session-store.v4.js +5 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/controller/controller.js +762 -189
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/controller/index.js +2 -2
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/README.md +191 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/lib/index.js +57 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/lib/utils.js +596 -0
- package/framework/v0.1.6-alpha.131/core/deps/busboy-1.6.0/package.json +22 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/.travis.yml +4 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/LICENSE +21 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/bool.js +10 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/boolean_double.js +7 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/boolean_single.js +7 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/default_hash.js +8 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/default_singles.js +7 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/divide.js +8 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/line_count.js +20 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/line_count_options.js +29 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/line_count_wrap.js +29 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/nonopt.js +4 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/reflect.js +2 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/short.js +3 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/string.js +11 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/usage-options.js +19 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/example/xup.js +10 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/index.js +343 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/package.json +31 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/package.json.dist +39 -0
- package/framework/v0.1.6-alpha.131/core/deps/optimist-0.6.1/readme.markdown +513 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/HISTORY.md +498 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/LICENSE +7 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/README.md +88 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/bin/swig.js +161 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/bin/swig.js.dist +161 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/dist/swig.min.js.map +8 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/index.js +1 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/dateformatter.js +198 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/filters.js +630 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/lexer.js +306 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/loaders/filesystem.js +59 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/loaders/index.js +53 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/loaders/memory.js +63 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/parser.js +744 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/swig.js +740 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/autoescape.js +37 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/block.js +25 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/else.js +25 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/elseif.js +28 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/extends.js +19 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/filter.js +68 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/for.js +130 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/if.js +86 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/import.js +91 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/include.js +100 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/index.js +16 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/macro.js +79 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/parent.js +51 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/raw.js +23 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/set.js +109 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/tags/spaceless.js +42 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/lib/utils.js +184 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/package.json +57 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-1.4.2/package.json.dist +61 -0
- package/framework/v0.1.6-alpha.131/core/deps/swig-client/swig.js +5031 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/dev/index.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/dev/lib/factory.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/gna.js +104 -22
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/index.js +3 -3
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/src/make.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/mime.types +1 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/model/entity.js +5 -5
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/model/index.js +30 -26
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/model/template/entityFactory.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/model/template/index.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/index.js +3 -3
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/file/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/intl/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/storage/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/validator/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/validator/src/form-validator.js +39 -27
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/validator/src/main.js +419 -102
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/router.js +92 -47
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/server.isaac.js +92 -43
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/server.js +322 -133
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/status.codes +1 -11
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/command/gina.tpl +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/conf/env.json +19 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/conf/templates.json +4 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/console.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/context.js +29 -12
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/data/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/data/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/dateFormat.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/index.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/json/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/json/src/main.js +6 -4
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/path.js +31 -15
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/plugins/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/plugins/src/api-error.js +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/plugins/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/task.js +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/text.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/archiver/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/archiver/src/main.js +11 -11
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/add.js +2 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/start.js +21 -8
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/env/get.js +1 -1
- package/framework/v0.1.6-alpha.131/lib/cmd/env/help.js +30 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/build.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/dot.js +21 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/init.js +18 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/link-node-modules.js +2 -3
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/link.js +1 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/tail.js +28 -11
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/version.js +15 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/helper.js +6 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/index.js +1 -1
- package/framework/v0.1.6-alpha.131/lib/cmd/minion/help.txt +18 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/add.js +7 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/arguments.json +1 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/build.js +4 -4
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/help.txt +4 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/list.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/protocol/list.js +71 -50
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/collection/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/collection/src/main.js +20 -14
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/config.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cron/package.json +2 -2
- package/framework/v0.1.6-alpha.131/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +15754 -0
- package/framework/v0.1.6-alpha.131/lib/domain/dist/public_suffix_list.dat +15754 -0
- package/framework/v0.1.6-alpha.131/lib/domain/exemples/backend.js +12 -0
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/domain/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/domain/src/main.js +20 -6
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/generator/index.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/index.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131/lib/inherits}/LICENSE +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/inherits/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/inherits/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/src/containers/mq/listener.js +10 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/src/helper.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/math/index.js +1 -1
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/merge/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/model.js +3 -3
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/proc.js +10 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/routing/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/routing/src/main.js +79 -26
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/session-store.js +3 -3
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/swig-filters/package.json +2 -2
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/swig-filters/src/main.js +76 -15
- package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/validator.js +2 -2
- package/framework/v0.1.6-alpha.131/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.13/VERSION +0 -1
- package/framework/v0.1.6-alpha.13/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +0 -1
- package/framework/v0.1.6-alpha.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -766
- package/framework/v0.1.6-alpha.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +0 -8
- package/framework/v0.1.6-alpha.13/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -7
- package/framework/v0.1.6-alpha.13/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +0 -8
- package/framework/v0.1.6-alpha.13/core/deps/busboy/.travis.yml +0 -17
- package/framework/v0.1.6-alpha.13/core/deps/busboy/README.md +0 -225
- package/framework/v0.1.6-alpha.13/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -73
- package/framework/v0.1.6-alpha.13/core/deps/busboy/deps/encoding/encoding.js +0 -2391
- package/framework/v0.1.6-alpha.13/core/deps/busboy/lib/main.js +0 -89
- package/framework/v0.1.6-alpha.13/core/deps/busboy/lib/types/multipart.js +0 -328
- package/framework/v0.1.6-alpha.13/core/deps/busboy/lib/types/urlencoded.js +0 -214
- package/framework/v0.1.6-alpha.13/core/deps/busboy/lib/utils.js +0 -191
- package/framework/v0.1.6-alpha.13/core/deps/busboy/package.json +0 -69
- package/framework/v0.1.6-alpha.13/lib/domain/dist/public_suffix_list.dat +0 -14186
- package/framework/v0.1.6-alpha.13/lib/domain/exemples/backend.js +0 -0
- package/framework/v0.1.6-alpha.13/package.json +0 -14
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/AUTHORS +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/html/static.html +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/asset/plugin/uuid.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.1.6-alpha.13/core/deps/busboy → v0.1.6-alpha.131/core/deps/busboy-1.6.0}/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/currency.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/src/resources/currency.csv +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/src/resources/region.csv +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/locales/src/resources/region.mapping.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/file/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/file/build.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/intl/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/intl/build.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/intl/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/server.express.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/_gitignore +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/conf/package.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/data/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/json/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/helpers/prototypes.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/archiver/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/archiver/build.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.1.6-alpha.13/lib/cmd/env → v0.1.6-alpha.131/lib/cmd/minion}/help.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/collection/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/collection/build.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cron/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/domain/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/domain/exemples/frontend.html +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/inherits/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/inherits/example/inheriting_eventemitter.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/inherits/example/protected_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/inherits/example/simple_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/merge/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/merge/example/merge.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/merge/example/merge_2_literal objects.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/merge/example/merge_and_preserve_first.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/routing/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/routing/build.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/shell.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/url/README.md +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/url/index.js +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/url/mocks.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/url/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/lib/url/test.js +0 -0
package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.131}/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 += ','
|
|
@@ -3108,7 +3212,9 @@
|
|
|
3108
3212
|
|
|
3109
3213
|
var processEvent = function() {
|
|
3110
3214
|
|
|
3111
|
-
|
|
3215
|
+
if ( !/^(password)$/i.test(event.target.type) ) {
|
|
3216
|
+
console.debug('processing: ' + event.target.name+ '/'+ event.target.id);
|
|
3217
|
+
}
|
|
3112
3218
|
|
|
3113
3219
|
// Do not validate `onChange` if `input value` === `orignal value`
|
|
3114
3220
|
// Or else, you will get an endless loop
|
|
@@ -3126,7 +3232,6 @@
|
|
|
3126
3232
|
} else {
|
|
3127
3233
|
handleErrorsDisplay(event.target.form, errors, null, event.target.name);
|
|
3128
3234
|
}
|
|
3129
|
-
//return cancelEvent(event);
|
|
3130
3235
|
}
|
|
3131
3236
|
|
|
3132
3237
|
|
|
@@ -3136,7 +3241,7 @@
|
|
|
3136
3241
|
|
|
3137
3242
|
instance.$forms[event.target.form.getAttribute('id')].isValidating = true;
|
|
3138
3243
|
validate(event.target, localField, $localField, $form.rules, function onLiveValidation(result){
|
|
3139
|
-
instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
|
|
3244
|
+
// instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
|
|
3140
3245
|
//console.debug('validation on processEvent(...) ', result);
|
|
3141
3246
|
|
|
3142
3247
|
var isFormValid = result.isValid();
|
|
@@ -3162,8 +3267,10 @@
|
|
|
3162
3267
|
instance.$forms[formId].isValidating = true;
|
|
3163
3268
|
validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
|
|
3164
3269
|
instance.$forms[formId].isValidating = false;
|
|
3165
|
-
console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
|
|
3270
|
+
console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
|
|
3271
|
+
// var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
|
|
3166
3272
|
var isFormValid = gResult.isValid();
|
|
3273
|
+
// var isFormValid = gResult.isValid();
|
|
3167
3274
|
if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
|
|
3168
3275
|
// update toolbar
|
|
3169
3276
|
if (!gina.forms.errors)
|
|
@@ -3178,6 +3285,27 @@
|
|
|
3178
3285
|
}
|
|
3179
3286
|
|
|
3180
3287
|
|
|
3288
|
+
if ( !isFormValid && gResult.error ) {
|
|
3289
|
+
// Fixed on 2025-03-16 - we need past and live errors
|
|
3290
|
+
instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
|
|
3291
|
+
// Fixed on 2025-03-16
|
|
3292
|
+
for (let eField in gResult.error) {
|
|
3293
|
+
refreshWarning($gFields[eField]);
|
|
3294
|
+
handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
|
|
3295
|
+
}
|
|
3296
|
+
}
|
|
3297
|
+
// Fixed on 2025-03-16
|
|
3298
|
+
// Eg.: input select change impacting another element: solve `no more errors`
|
|
3299
|
+
else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
|
|
3300
|
+
// recheck if valid
|
|
3301
|
+
//resetting error display
|
|
3302
|
+
instance.$forms[ formId ].errors = {};
|
|
3303
|
+
console.debug('resetting field: '+ $el.name);
|
|
3304
|
+
liveCheckErrors[formId] = {};
|
|
3305
|
+
// $form.dataset.ginaFormIsResetting = true;
|
|
3306
|
+
handleErrorsDisplay($gForm, {}, null, $el.name);
|
|
3307
|
+
}
|
|
3308
|
+
|
|
3181
3309
|
updateSubmitTriggerState( $gForm, isFormValid);
|
|
3182
3310
|
|
|
3183
3311
|
once = false;
|
|
@@ -3211,13 +3339,16 @@
|
|
|
3211
3339
|
// other inputs & textareas
|
|
3212
3340
|
else if ( /^focusin\./i.test(event.type) ) {
|
|
3213
3341
|
if ( /\-error/.test($el.parentNode.className) ) {
|
|
3214
|
-
console.debug('#1 you just focusin ....'+$el.id, $el.value);
|
|
3342
|
+
console.debug('#1 you just focusin ....'+$el.id, $el.value, instance.$forms[ $el.form.getAttribute('id') ].isValidating);
|
|
3215
3343
|
refreshWarning($el);
|
|
3216
3344
|
}
|
|
3217
3345
|
}
|
|
3218
3346
|
else if ( /^focusout\./i.test(event.type) ) {
|
|
3219
3347
|
if ( /\-warning/.test($el.parentNode.className) ) {
|
|
3220
3348
|
console.debug('#1 you just focusout ....'+$el.id, $el.value);
|
|
3349
|
+
// Removed on 2025-03-16
|
|
3350
|
+
instance.$forms[ $el.form.getAttribute('id') ].isValidating = false;
|
|
3351
|
+
|
|
3221
3352
|
refreshWarning($el);
|
|
3222
3353
|
// in case error context is changed by another task
|
|
3223
3354
|
handleErrorsDisplay($el.form, instance.$forms[ $el.form.getAttribute('id') ].errors, null, $el.name);
|
|
@@ -3226,12 +3357,86 @@
|
|
|
3226
3357
|
else if ( /^keyup\./i.test(event.type) ) {
|
|
3227
3358
|
$el.ginaFormValidatorTestedValue = $el.value;
|
|
3228
3359
|
liveCheckTimer = setTimeout( function onLiveCheckTimer() {
|
|
3229
|
-
//
|
|
3230
|
-
if ( ['91', '17'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
|
|
3360
|
+
// Do not trigger for copy/paste events
|
|
3361
|
+
if ( ['91', '17', '16'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
|
|
3231
3362
|
//console.debug('mapping ', keyboardMapping);
|
|
3232
3363
|
return;
|
|
3233
3364
|
}
|
|
3234
|
-
|
|
3365
|
+
|
|
3366
|
+
// Fixed on 2025-03-16:
|
|
3367
|
+
// Treat TAB as focus in/out
|
|
3368
|
+
// if ( ['9'].indexOf(''+event.keyCode) > -1 ) {
|
|
3369
|
+
|
|
3370
|
+
// console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"');
|
|
3371
|
+
// var $gForm = event.target.form, gFields = null, $gFields = null, gRules = null;
|
|
3372
|
+
// var gValidatorInfos = getFormValidationInfos($gForm, rules);
|
|
3373
|
+
// gFields = gValidatorInfos.fields;
|
|
3374
|
+
// $gFields = gValidatorInfos.$fields;
|
|
3375
|
+
// var formId = $gForm.getAttribute('id');
|
|
3376
|
+
// gRules = instance.$forms[formId].rules;
|
|
3377
|
+
// // Don't be tempted to revome fields that has already been validated
|
|
3378
|
+
// instance.$forms[formId].isValidating = true;
|
|
3379
|
+
// validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
|
|
3380
|
+
// instance.$forms[formId].isValidating = false;
|
|
3381
|
+
// console.debug('['+ formId +'] [9] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
|
|
3382
|
+
// var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
|
|
3383
|
+
// // var isFormValid = gResult.isValid();
|
|
3384
|
+
// if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
|
|
3385
|
+
// // update toolbar
|
|
3386
|
+
// if (!gina.forms.errors)
|
|
3387
|
+
// gina.forms.errors = {};
|
|
3388
|
+
|
|
3389
|
+
// var objCallback = {
|
|
3390
|
+
// id : formId,
|
|
3391
|
+
// errors : gResult.error || {}
|
|
3392
|
+
// };
|
|
3393
|
+
|
|
3394
|
+
// window.ginaToolbar.update('forms', objCallback);
|
|
3395
|
+
// }
|
|
3396
|
+
|
|
3397
|
+
|
|
3398
|
+
// if ( !isFormValid && gResult.error ) {
|
|
3399
|
+
// // Fixed on 2025-03-16 - we need past and live errors
|
|
3400
|
+
// instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
|
|
3401
|
+
// // Fixed on 2025-03-16
|
|
3402
|
+
// for (let eField in instance.$forms[ $el.form.getAttribute('id') ].errors) {
|
|
3403
|
+
// refreshWarning($gFields[eField]);
|
|
3404
|
+
// handleErrorsDisplay($gForm, instance.$forms[ $el.form.getAttribute('id') ].errors, gResult.data, eField);
|
|
3405
|
+
// }
|
|
3406
|
+
// }
|
|
3407
|
+
// // Fixed on 2025-03-16
|
|
3408
|
+
// // Eg.: input select change impacting another element: solve `no more errors`
|
|
3409
|
+
// else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
|
|
3410
|
+
// // recheck if valid
|
|
3411
|
+
// //resetting error display
|
|
3412
|
+
// instance.$forms[ formId ].errors = {};
|
|
3413
|
+
// console.debug('resetting field: '+ $el.name);
|
|
3414
|
+
// liveCheckErrors[formId] = {};
|
|
3415
|
+
// // $form.dataset.ginaFormIsResetting = true;
|
|
3416
|
+
// handleErrorsDisplay($gForm, {}, null, $el.name);
|
|
3417
|
+
// }
|
|
3418
|
+
|
|
3419
|
+
// updateSubmitTriggerState( $gForm, isFormValid);
|
|
3420
|
+
|
|
3421
|
+
// once = false;
|
|
3422
|
+
// });
|
|
3423
|
+
// // var $previeousEl = document.getElementById(instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id);
|
|
3424
|
+
// // var errors = instance.$forms[ $previeousEl.form.getAttribute('id') ].errors;
|
|
3425
|
+
// // var isFormValid = (!errors[$previeousEl.name]) ? true : false;
|
|
3426
|
+
// // console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"', "errors: ", errors);
|
|
3427
|
+
// // if (errors && errors.count() > 0 ) {
|
|
3428
|
+
// // instance.$forms[ $previeousEl.form.getAttribute('id') ].isValidating = false;
|
|
3429
|
+
// // isFormValid = false;
|
|
3430
|
+
// // }
|
|
3431
|
+
// // refreshWarning($previeousEl);
|
|
3432
|
+
// // // // in case error context is changed by another task
|
|
3433
|
+
// // handleErrorsDisplay($previeousEl.form, errors, null, $previeousEl.name);
|
|
3434
|
+
// // updateSubmitTriggerState( $el.form, isFormValid);
|
|
3435
|
+
// return;
|
|
3436
|
+
// }
|
|
3437
|
+
|
|
3438
|
+
|
|
3439
|
+
console.debug('[A]['+keyboardMapping.count()+'] keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
|
|
3235
3440
|
processEvent();
|
|
3236
3441
|
}, 1000);
|
|
3237
3442
|
}
|
|
@@ -3331,16 +3536,42 @@
|
|
|
3331
3536
|
//console.debug('pressed: '+ e.key+'('+ e.keyCode+')', ' S:'+posStart, ' E:'+posEnd, ' MAP: '+ JSON.stringify(keyboardMapping));
|
|
3332
3537
|
switch (e.keyCode) {
|
|
3333
3538
|
case 46: //Delete
|
|
3539
|
+
if (posStart != posEnd) {
|
|
3540
|
+
$_el.value = str.substring(0, posStart) + str.substring(posEnd);
|
|
3541
|
+
if (posStart == 0) {
|
|
3542
|
+
$_el.value = str.substring(posEnd+1);
|
|
3543
|
+
}
|
|
3544
|
+
} else if (posStart == 0) {
|
|
3545
|
+
$_el.value = str.substring(posStart+1);
|
|
3546
|
+
} else {
|
|
3547
|
+
$_el.value = str.substring(0, posStart) + str.substring(posEnd+1);
|
|
3548
|
+
}
|
|
3549
|
+
|
|
3550
|
+
e.currentTarget.setAttribute('readonly', 'readonly');
|
|
3551
|
+
setTimeout(() => {
|
|
3552
|
+
$_el.removeAttribute('readonly');
|
|
3553
|
+
setTimeout(() => {
|
|
3554
|
+
if (posStart != posEnd) {
|
|
3555
|
+
setCaretToPos($_el, posStart);
|
|
3556
|
+
} else if (posStart == 0) {
|
|
3557
|
+
setCaretToPos($_el, posStart);
|
|
3558
|
+
} else {
|
|
3559
|
+
setCaretToPos($_el, posStart);
|
|
3560
|
+
}
|
|
3561
|
+
}, 0)
|
|
3562
|
+
|
|
3563
|
+
}, 0);
|
|
3564
|
+
break
|
|
3334
3565
|
case 8: //Backspace
|
|
3335
3566
|
if (posStart != posEnd) {
|
|
3336
|
-
$_el.value = str.
|
|
3567
|
+
$_el.value = str.substring(0, posStart) + str.substring(posEnd);
|
|
3337
3568
|
if (posStart == 0) {
|
|
3338
|
-
$_el.value = str.
|
|
3569
|
+
$_el.value = str.substring(posEnd);
|
|
3339
3570
|
}
|
|
3340
3571
|
} else if (posStart == 0) {
|
|
3341
3572
|
$_el.value = str.substring(posStart+1);
|
|
3342
3573
|
} else {
|
|
3343
|
-
$_el.value = str.
|
|
3574
|
+
$_el.value = str.substring(0, posStart-1) + str.substring(posEnd);
|
|
3344
3575
|
}
|
|
3345
3576
|
|
|
3346
3577
|
e.currentTarget.setAttribute('readonly', 'readonly');
|
|
@@ -3378,9 +3609,9 @@
|
|
|
3378
3609
|
}
|
|
3379
3610
|
break;
|
|
3380
3611
|
// Shortcuts
|
|
3381
|
-
case 17: //CTRL
|
|
3382
|
-
case 91: //CMD
|
|
3383
|
-
console.debug("CMD hit");
|
|
3612
|
+
case 17: // CTRL
|
|
3613
|
+
case 91: // CMD
|
|
3614
|
+
console.debug("CMD, CTRL hit");
|
|
3384
3615
|
e.preventDefault();
|
|
3385
3616
|
break;
|
|
3386
3617
|
case 67: // to handle CMD+C (copy)
|
|
@@ -3427,15 +3658,18 @@
|
|
|
3427
3658
|
}
|
|
3428
3659
|
default:
|
|
3429
3660
|
// Replace selection
|
|
3661
|
+
if (e.key.length > 1) {
|
|
3662
|
+
break;
|
|
3663
|
+
}
|
|
3430
3664
|
if (posStart != posEnd) {
|
|
3431
|
-
$_el.value = str.
|
|
3665
|
+
$_el.value = str.substring(0, posStart) + e.key;
|
|
3432
3666
|
if (posEnd-1 < str.length) {
|
|
3433
3667
|
$_el.value += str.substring(posEnd)
|
|
3434
3668
|
}
|
|
3435
3669
|
} else if (posStart == 0) {
|
|
3436
3670
|
$_el.value = e.key + str.substring(posStart);
|
|
3437
3671
|
} else {
|
|
3438
|
-
$_el.value = str.
|
|
3672
|
+
$_el.value = str.substring(0, posStart) + e.key + str.substring(posEnd);
|
|
3439
3673
|
}
|
|
3440
3674
|
e.currentTarget.setAttribute('readonly', 'readonly');
|
|
3441
3675
|
// Force restore last caret position
|
|
@@ -3577,24 +3811,53 @@
|
|
|
3577
3811
|
}
|
|
3578
3812
|
|
|
3579
3813
|
/**
|
|
3580
|
-
* reBindForm
|
|
3814
|
+
* reBindForm
|
|
3815
|
+
* Allows form rebinding: it is like reseting validation
|
|
3581
3816
|
*
|
|
3582
|
-
*
|
|
3583
|
-
*
|
|
3584
|
-
*
|
|
3817
|
+
* E.g.:
|
|
3818
|
+
* $validator
|
|
3819
|
+
* .getFormById('my-form-id')
|
|
3820
|
+
* .reBind();
|
|
3821
|
+
*
|
|
3822
|
+
* @param {string} [formId]
|
|
3823
|
+
* @param {string} [rules]
|
|
3824
|
+
* @param {callback} [cb]
|
|
3585
3825
|
*/
|
|
3586
|
-
var reBindForm = function(
|
|
3587
|
-
|
|
3588
|
-
|
|
3826
|
+
var reBindForm = function(formId, rules, cb) {
|
|
3827
|
+
var $form = null
|
|
3828
|
+
, _id = null
|
|
3829
|
+
;
|
|
3830
|
+
if (
|
|
3831
|
+
typeof(this.target) != 'undefined'
|
|
3832
|
+
&& /FORM/i.test(this.target.tagName)
|
|
3833
|
+
) {
|
|
3834
|
+
_id = formId = this.target.getAttribute('id')
|
|
3835
|
+
} else if ( /string/i.test(typeof(formId)) ) {
|
|
3836
|
+
_id = formId
|
|
3837
|
+
}
|
|
3838
|
+
|
|
3839
|
+
if ( typeof(instance.$forms[_id]) != 'undefined') {
|
|
3840
|
+
$form = instance.$forms[_id];
|
|
3841
|
+
} else {
|
|
3842
|
+
throw new Error('form instance `'+ _id +'` not found');
|
|
3843
|
+
}
|
|
3844
|
+
|
|
3589
3845
|
// reset errors
|
|
3590
|
-
|
|
3846
|
+
resetErrorsDisplay(_id);
|
|
3847
|
+
// Unbind form
|
|
3848
|
+
unbindForm($form.target);
|
|
3591
3849
|
// Bind
|
|
3592
|
-
|
|
3850
|
+
if ( typeof(rule) != 'undefined' ) {
|
|
3851
|
+
bindForm($form.target, rules);
|
|
3852
|
+
} else {
|
|
3853
|
+
bindForm($form.target);
|
|
3854
|
+
}
|
|
3593
3855
|
|
|
3594
3856
|
if ( cb ) {
|
|
3595
|
-
return cb(
|
|
3857
|
+
return cb($form);
|
|
3596
3858
|
}
|
|
3597
|
-
|
|
3859
|
+
|
|
3860
|
+
return $form;
|
|
3598
3861
|
}
|
|
3599
3862
|
|
|
3600
3863
|
var unbindForm = function($target) {
|
|
@@ -3612,7 +3875,7 @@
|
|
|
3612
3875
|
|
|
3613
3876
|
} else if ( typeof($target.target) != 'undefined' ) {
|
|
3614
3877
|
$form = $target;
|
|
3615
|
-
_id = $form.id;
|
|
3878
|
+
_id = ( $target.getAttribute && $target.getAttribute('id') ) ? $form.getAttribute('id') : $form.id;
|
|
3616
3879
|
} else {
|
|
3617
3880
|
throw new Error('Validator::unbindForm($target): `$target` must be a DOM element\n'+err.stack )
|
|
3618
3881
|
}
|
|
@@ -3651,7 +3914,7 @@
|
|
|
3651
3914
|
// submit buttons
|
|
3652
3915
|
$elTMP = $form.target.getElementsByTagName('button');
|
|
3653
3916
|
if ( $elTMP.length > 0 ) {
|
|
3654
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3917
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3655
3918
|
// if button is != type="submit", you will need to provide : data-gina-form-submit
|
|
3656
3919
|
// TODO - On button binding, you can then provide data-gina-form-action & data-gina-form-method
|
|
3657
3920
|
$els.push($elTMP[i])
|
|
@@ -3661,7 +3924,7 @@
|
|
|
3661
3924
|
// submit links
|
|
3662
3925
|
$elTMP = $form.target.getElementsByTagName('a');
|
|
3663
3926
|
if ( $elTMP.length > 0 ) {
|
|
3664
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3927
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3665
3928
|
$els.push($elTMP[i])
|
|
3666
3929
|
}
|
|
3667
3930
|
}
|
|
@@ -3717,7 +3980,7 @@
|
|
|
3717
3980
|
// textarea
|
|
3718
3981
|
$elTMP = $form.target.getElementsByTagName('textarea');
|
|
3719
3982
|
if ( $elTMP.length > 0 ) {
|
|
3720
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3983
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3721
3984
|
$els.push( $elTMP[i] )
|
|
3722
3985
|
}
|
|
3723
3986
|
}
|
|
@@ -3726,7 +3989,7 @@
|
|
|
3726
3989
|
// forms inside main form
|
|
3727
3990
|
$elTMP = $form.target.getElementsByTagName('form');
|
|
3728
3991
|
if ( $elTMP.length > 0 ) {
|
|
3729
|
-
for(let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3992
|
+
for (let i = 0, len = $elTMP.length; i < len; ++i) {
|
|
3730
3993
|
$els.push( $elTMP[i] )
|
|
3731
3994
|
}
|
|
3732
3995
|
}
|
|
@@ -3811,8 +4074,10 @@
|
|
|
3811
4074
|
/**
|
|
3812
4075
|
* bindForm
|
|
3813
4076
|
*
|
|
3814
|
-
* @param {object} $target - DOM element
|
|
3815
|
-
* @param {object} [customRule]
|
|
4077
|
+
* @param {object} [$target] - DOM element
|
|
4078
|
+
* @param {object|string} [customRule]
|
|
4079
|
+
*
|
|
4080
|
+
* @return {object} bindedForm
|
|
3816
4081
|
* */
|
|
3817
4082
|
var bindForm = function($target, customRule) {
|
|
3818
4083
|
|
|
@@ -3821,23 +4086,32 @@
|
|
|
3821
4086
|
, rules = ( typeof(local.rules.count() > 0 ) ) ? local.rules : instance.rules
|
|
3822
4087
|
;
|
|
3823
4088
|
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
3827
|
-
|
|
3828
|
-
|
|
3829
|
-
|
|
3830
|
-
|
|
4089
|
+
if (
|
|
4090
|
+
typeof($target) == 'undefined'
|
|
4091
|
+
&& typeof(this.target) != 'undefined'
|
|
4092
|
+
&& /FORM/i.test(this.target.tagName)
|
|
4093
|
+
||
|
|
4094
|
+
!/object/i.test( typeof($target) )
|
|
4095
|
+
) {
|
|
4096
|
+
_id = this.target.id || this.target.getAttribute('id');
|
|
4097
|
+
} else if ( /string/i.test(typeof($target)) ) {
|
|
4098
|
+
_id = $target
|
|
4099
|
+
} else {
|
|
4100
|
+
_id = $target.getAttribute('id')
|
|
4101
|
+
}
|
|
3831
4102
|
|
|
4103
|
+
try {
|
|
4104
|
+
if ( typeof(instance.$forms[_id]) != 'undefined') {
|
|
4105
|
+
$form = instance.$forms[_id];
|
|
4106
|
+
if ( typeof($form.target) == 'undefined' ) {
|
|
4107
|
+
throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n');
|
|
4108
|
+
}
|
|
4109
|
+
$target = $form.target;
|
|
3832
4110
|
} else {
|
|
3833
|
-
throw new Error('
|
|
4111
|
+
throw new Error('form instance `'+ _id +'` not found');
|
|
3834
4112
|
}
|
|
3835
4113
|
} 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
|
|
4114
|
+
throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack );
|
|
3841
4115
|
}
|
|
3842
4116
|
|
|
3843
4117
|
console.debug('binding for: '+ _id);
|
|
@@ -4143,7 +4417,7 @@
|
|
|
4143
4417
|
} else if ( /img/i.test($els[i].tagName) ) {
|
|
4144
4418
|
$img = $els[i];
|
|
4145
4419
|
deleteLinkId = uploadTriggerId + '-'+index+'-delete-trigger';
|
|
4146
|
-
let file = $img.src.
|
|
4420
|
+
let file = $img.src.substring($img.src.lastIndexOf('/')+1);
|
|
4147
4421
|
$uploadTrigger.customFiles.push({
|
|
4148
4422
|
name: file,
|
|
4149
4423
|
deleteLinkId: deleteLinkId
|
|
@@ -4535,7 +4809,16 @@
|
|
|
4535
4809
|
validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
|
|
4536
4810
|
instance.$forms[formId].isValidating = false;
|
|
4537
4811
|
console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
|
|
4812
|
+
// Fixed on 2025-03-16
|
|
4538
4813
|
var isFormValid = gResult.isValid();
|
|
4814
|
+
if (!isFormValid) {
|
|
4815
|
+
instance.$forms[formId].errors = gResult.error;
|
|
4816
|
+
for (let eField in gResult.error) {
|
|
4817
|
+
// refreshWarning($gFields[eField]);
|
|
4818
|
+
handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
|
|
4819
|
+
}
|
|
4820
|
+
}
|
|
4821
|
+
|
|
4539
4822
|
updateSubmitTriggerState( $gForm, isFormValid);
|
|
4540
4823
|
once = false;
|
|
4541
4824
|
})
|
|
@@ -5129,6 +5412,25 @@
|
|
|
5129
5412
|
if (gina.events[_evt]) {
|
|
5130
5413
|
cancelEvent(event);
|
|
5131
5414
|
|
|
5415
|
+
// Fixed on 2025-03-05 - "last focus" vs "current focus"
|
|
5416
|
+
// To get active element: document.activeElement
|
|
5417
|
+
var formId = event.target.form.getAttribute('id') || event.currentTarget.getAttribute('id');
|
|
5418
|
+
var lastFocused = {
|
|
5419
|
+
id : $el.id,
|
|
5420
|
+
name: $el.name
|
|
5421
|
+
};
|
|
5422
|
+
if (!instance.$forms[formId].lastFocused.length) {
|
|
5423
|
+
instance.$forms[formId].lastFocused[0] = lastFocused;
|
|
5424
|
+
} else {
|
|
5425
|
+
instance.$forms[formId].lastFocused.splice(0,0,lastFocused);
|
|
5426
|
+
}
|
|
5427
|
+
lastFocused = ( typeof(instance.$forms[formId].lastFocused[1]) != 'undefined' ) ? instance.$forms[formId].lastFocused[1].id : null;
|
|
5428
|
+
|
|
5429
|
+
// cleanup
|
|
5430
|
+
instance.$forms[formId].lastFocused.splice(2);
|
|
5431
|
+
|
|
5432
|
+
// console.debug('lastFocused: ', lastFocused, ' VS current: ', $el.id);
|
|
5433
|
+
|
|
5132
5434
|
triggerEvent(gina, $el, _evt, event.detail);
|
|
5133
5435
|
}
|
|
5134
5436
|
});
|
|
@@ -5445,7 +5747,7 @@
|
|
|
5445
5747
|
;
|
|
5446
5748
|
$buttonsTMP = $target.getElementsByTagName('button');
|
|
5447
5749
|
if ( $buttonsTMP.length > 0 ) {
|
|
5448
|
-
for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5750
|
+
for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5449
5751
|
if ($buttonsTMP[b].type == 'submit') {
|
|
5450
5752
|
$buttons.push($buttonsTMP[b])
|
|
5451
5753
|
}
|
|
@@ -5455,7 +5757,7 @@
|
|
|
5455
5757
|
// binding links
|
|
5456
5758
|
$buttonsTMP = $target.getElementsByTagName('a');
|
|
5457
5759
|
if ( $buttonsTMP.length > 0 ) {
|
|
5458
|
-
for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5760
|
+
for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
|
|
5459
5761
|
if ( $buttonsTMP[b].attributes.getNamedItem('data-gina-form-submit') ) {
|
|
5460
5762
|
$buttons.push($buttonsTMP[b])
|
|
5461
5763
|
} else if (
|
|
@@ -5712,7 +6014,8 @@
|
|
|
5712
6014
|
}
|
|
5713
6015
|
updateSubmitTriggerState( $form, result.isValid() );
|
|
5714
6016
|
});
|
|
5715
|
-
}
|
|
6017
|
+
}
|
|
6018
|
+
else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
|
|
5716
6019
|
updateSubmitTriggerState( $form , true );
|
|
5717
6020
|
}
|
|
5718
6021
|
|
|
@@ -6175,7 +6478,8 @@
|
|
|
6175
6478
|
if ( !/^form$/i.test($formOrElement.tagName) ) {
|
|
6176
6479
|
$currentForm = $formOrElement.form;
|
|
6177
6480
|
}
|
|
6178
|
-
var formId
|
|
6481
|
+
var formId = $currentForm.getAttribute('id');
|
|
6482
|
+
var isFormValid = null;
|
|
6179
6483
|
|
|
6180
6484
|
if (
|
|
6181
6485
|
hasParsedAllRules
|
|
@@ -6196,10 +6500,16 @@
|
|
|
6196
6500
|
if ( typeof(instance.$forms[formId].errors) == 'undefined' ) {
|
|
6197
6501
|
instance.$forms[formId].errors = {}
|
|
6198
6502
|
}
|
|
6503
|
+
// Fixed on 2025-03-16
|
|
6504
|
+
if ( typeof(cb._errors[field]) != 'undefined' ) {
|
|
6505
|
+
instance.$forms[formId].errors[field] = cb._errors[field];
|
|
6506
|
+
}
|
|
6507
|
+
console.debug('[A] Refreshing warning/error on field '+ field);
|
|
6508
|
+
if (
|
|
6509
|
+
!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)
|
|
6510
|
+
|| d[field].target.value != ''
|
|
6199
6511
|
|
|
6200
|
-
|
|
6201
|
-
|
|
6202
|
-
if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating) || d[field].target.value != '' ) {
|
|
6512
|
+
) {
|
|
6203
6513
|
refreshWarning($allFields[field]);
|
|
6204
6514
|
handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
|
|
6205
6515
|
updateSubmitTriggerState( $currentForm, isFormValid);
|
|
@@ -6207,8 +6517,9 @@
|
|
|
6207
6517
|
|
|
6208
6518
|
if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
|
|
6209
6519
|
// update toolbar
|
|
6210
|
-
if (!gina.forms.errors)
|
|
6520
|
+
if (!gina.forms.errors) {
|
|
6211
6521
|
gina.forms.errors = {};
|
|
6522
|
+
}
|
|
6212
6523
|
|
|
6213
6524
|
var objCallback = {
|
|
6214
6525
|
id : formId,
|
|
@@ -6225,13 +6536,13 @@
|
|
|
6225
6536
|
}
|
|
6226
6537
|
|
|
6227
6538
|
// is this the last or the only field to be validated ?
|
|
6228
|
-
var needsGlobalReValidation = false
|
|
6539
|
+
var needsGlobalReValidation = false;
|
|
6229
6540
|
if ( listedFields.length == 1 || listedFields[listedFields.length-1] == field) {
|
|
6230
6541
|
// trigger end of validation
|
|
6231
6542
|
// console.debug(field +' is the last element to be validated for formId: '+ formId, cb._errors, instance.$forms[formId].errors);
|
|
6232
6543
|
isFormValid = ( cb._errors.count() > 0 ) ? false : true;
|
|
6233
6544
|
if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)) {
|
|
6234
|
-
|
|
6545
|
+
console.debug('[1] Should update error display now ', cb._errors);
|
|
6235
6546
|
instance.$forms[formId].errors = merge(cb._errors, instance.$forms[formId].errors);
|
|
6236
6547
|
refreshWarning($allFields[field]);
|
|
6237
6548
|
handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
|
|
@@ -6263,8 +6574,6 @@
|
|
|
6263
6574
|
window.ginaToolbar.update('forms', objCallback);
|
|
6264
6575
|
}
|
|
6265
6576
|
|
|
6266
|
-
|
|
6267
|
-
|
|
6268
6577
|
handleErrorsDisplay($currentForm, gResult.error, gResult.data, field);
|
|
6269
6578
|
updateSubmitTriggerState( $currentForm, isFormValid);
|
|
6270
6579
|
})
|
|
@@ -6408,7 +6717,7 @@
|
|
|
6408
6717
|
|
|
6409
6718
|
for (var c in rules) {
|
|
6410
6719
|
if (!/^\_case\_/.test(c) ) continue;
|
|
6411
|
-
if ( typeof(rules[c].conditions) == 'undefined' ||
|
|
6720
|
+
if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
|
|
6412
6721
|
if ( typeof(rules[c].conditions[0].rules) == 'undefined' ) continue;
|
|
6413
6722
|
|
|
6414
6723
|
|
|
@@ -6590,7 +6899,14 @@
|
|
|
6590
6899
|
// filtering conditions
|
|
6591
6900
|
for (var _c = 0, _cLen = rules[c].conditions.length; _c < _cLen; ++_c) {
|
|
6592
6901
|
|
|
6593
|
-
if (
|
|
6902
|
+
if (
|
|
6903
|
+
Array.isArray(rules[c].conditions[_c].case)
|
|
6904
|
+
&& rules[c].conditions[_c].case.indexOf(caseValue) == -1
|
|
6905
|
+
||
|
|
6906
|
+
!Array.isArray(rules[c].conditions[_c].case)
|
|
6907
|
+
&& rules[c].conditions[_c].case != caseValue
|
|
6908
|
+
|
|
6909
|
+
) {
|
|
6594
6910
|
continue;
|
|
6595
6911
|
}
|
|
6596
6912
|
|
|
@@ -6735,7 +7051,8 @@
|
|
|
6735
7051
|
if (
|
|
6736
7052
|
conditions[c]['case'] === caseValue
|
|
6737
7053
|
||
|
|
6738
|
-
Array.isArray(conditions[c]['case'])
|
|
7054
|
+
Array.isArray(conditions[c]['case'])
|
|
7055
|
+
&& conditions[c]['case'].indexOf(caseValue) > -1
|
|
6739
7056
|
||
|
|
6740
7057
|
/^\//.test(conditions[c]['case'])
|
|
6741
7058
|
) {
|
|
@@ -6852,8 +7169,6 @@
|
|
|
6852
7169
|
}
|
|
6853
7170
|
--i;
|
|
6854
7171
|
}
|
|
6855
|
-
|
|
6856
|
-
|
|
6857
7172
|
} // EO for
|
|
6858
7173
|
}
|
|
6859
7174
|
|
|
@@ -6874,7 +7189,7 @@
|
|
|
6874
7189
|
}
|
|
6875
7190
|
|
|
6876
7191
|
if (isGFFCtx)
|
|
6877
|
-
$fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].
|
|
7192
|
+
$fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substring(0, fieldErrorsAttributes[field].length-1))
|
|
6878
7193
|
}
|
|
6879
7194
|
|
|
6880
7195
|
//calling back
|
|
@@ -6945,6 +7260,8 @@
|
|
|
6945
7260
|
'data' : formatData( _data )
|
|
6946
7261
|
});
|
|
6947
7262
|
removeListener(gina, event.target, 'validated.' + event.target.id);
|
|
7263
|
+
|
|
7264
|
+
|
|
6948
7265
|
return
|
|
6949
7266
|
}
|
|
6950
7267
|
});
|