@cronapp/templates 2.9.1-SP.9 → 2.9.2

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.
Files changed (23) hide show
  1. package/package.json +1 -1
  2. package/project/M/cronapp-lyceum-project-mobile-cordova/__copydata.ftl +29 -0
  3. package/project/M/cronapp-lyceum-project-mobile-cordova/__linksInherit +9 -0
  4. package/project/M/cronapp-lyceum-project-mobile-cordova/project.svg +190 -0
  5. package/project/M/cronapp-lyceum-project-mobile-cordova/src/main/resources/application.properties.ftl +27 -0
  6. package/project/M/cronapp-lyceum-project-mobile-cordova/template.properties +52 -0
  7. package/project/M/cronapp-lyceum-project-mobile-cordova/template_en_US.properties +32 -0
  8. package/project/M/cronapp-lyceum-project-mobile-cordova/template_pt_BR.properties +31 -0
  9. package/project/M/cronapp-rad-project-mobile-cordova/src/main/mobileapp/www/www-autenticacao/views/login.view.html.ftl +80 -31
  10. package/project/M/cronapp-rad-project-mobile-cordova/src/main/mobileapp/www/www-autenticacao/views/public/__copydata.ftl +8 -0
  11. package/project/M/cronapp-rad-project-mobile-cordova/src/main/mobileapp/www/www-autenticacao/views/public/menu.view.html +2 -2
  12. package/project/M/cronapp-rad-project-mobile-cordova/src/main/mobileapp/www/www-sem-autenticacao/views/public/menu.view.html +2 -2
  13. package/project/M/cronapp-rad-project-mobile-cordova/template.properties +1 -0
  14. package/project/W/cronapp-rad-project/pom.xml.ftl +7 -0
  15. package/project/W/cronapp-rad-project/src/main/webapp-autenticacao/webapp/js/blockly/privacy/Cookies.blockly +43 -2
  16. package/project/W/cronapp-rad-project/src/main/webapp-autenticacao/webapp/js/blockly/privacy/Cookies.blockly.js +22 -0
  17. package/project/W/cronapp-rad-project/src/main/webapp-autenticacao/webapp/views/logged/home.view.html.ftl +2 -2
  18. package/project/W/cronapp-rad-project/src/main/webapp-autenticacao/webapp/views/login.view.html.ftl +53 -51
  19. package/project/W/cronapp-rad-project/src/main/webapp-autenticacao/webapp/views/public/__copydata.ftl +7 -0
  20. package/project/W/cronapp-rad-project/src/main/webapp-autenticacao/webapp/views/public/home.view.html.ftl +1 -1
  21. package/project/W/cronapp-rad-project/src/main/webapp-autenticacao/webapp/views/public/privacy/cookies.view.html +1 -1
  22. package/project/W/cronapp-rad-project/src/main/webapp-sem-autenticacao/webapp/views/home.view.html.ftl +2 -2
  23. package/templates/low-code/data-layer/ENTITIES.ftl +10 -10
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@cronapp/templates",
3
- "version": "2.9.1-SP.9",
3
+ "version": "2.9.2",
4
4
  "cronapp-ide-minimum-version": "2.5.0"
5
5
  }
@@ -0,0 +1,29 @@
1
+ <#if ((backend?lower_case) == "true" && (frontend?lower_case) == "true") || (backend?lower_case) == "true" >
2
+ path=/config
3
+ path=/diagram
4
+ path=/src
5
+ path=/docs
6
+ file=.gitignore.ftl
7
+ file=pom.xml.ftl
8
+ file=project.png
9
+ file=README.md
10
+ file=spring-boot.png
11
+ </#if>
12
+ <#if (backend?lower_case) == "false" && (frontend?lower_case) == "true" >
13
+ path=/src
14
+ path=/docs
15
+ file=.gitignore.ftl
16
+ file=pom.xml.ftl
17
+ file=project.png
18
+ file=README.md
19
+ file=spring-boot.png
20
+ </#if>
21
+ <#if (backend?lower_case) == "false" && (frontend?lower_case) == "false" >
22
+ path=/src/main/mobileapp
23
+ path=/docs
24
+ file=.gitignore.ftl
25
+ file=pom.xml.ftl
26
+ file=project.png
27
+ file=README.md
28
+ file=spring-boot.png
29
+ </#if>
@@ -0,0 +1,9 @@
1
+ ../../project/W/cronapp-rad-project/config
2
+ ../../project/W/cronapp-rad-project/docs
3
+ ../../project/W/cronapp-rad-project/diagram
4
+ ../../project/W/cronapp-rad-project/Dockerfile
5
+ ../../project/W/cronapp-rad-project/Jenkinsfile
6
+ ../../project/W/cronapp-rad-project/pom.xml.ftl
7
+ ../../project/W/cronapp-rad-project/.gitignore.ftl
8
+ ../../project/W/cronapp-rad-project/README.md
9
+ ../../project/M/cronapp-rad-project-mobile-cordova/src
@@ -0,0 +1,190 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:xlink="http://www.w3.org/1999/xlink"
9
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
10
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11
+ id="Camada_1"
12
+ data-name="Camada 1"
13
+ viewBox="0 0 140 84"
14
+ version="1.1"
15
+ sodipodi:docname="project2.svg"
16
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
17
+ <metadata
18
+ id="metadata62">
19
+ <rdf:RDF>
20
+ <cc:Work
21
+ rdf:about="">
22
+ <dc:format>image/svg+xml</dc:format>
23
+ <dc:type
24
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25
+ <dc:title>project</dc:title>
26
+ </cc:Work>
27
+ </rdf:RDF>
28
+ </metadata>
29
+ <sodipodi:namedview
30
+ pagecolor="#ffffff"
31
+ bordercolor="#666666"
32
+ borderopacity="1"
33
+ objecttolerance="10"
34
+ gridtolerance="10"
35
+ guidetolerance="10"
36
+ inkscape:pageopacity="0"
37
+ inkscape:pageshadow="2"
38
+ inkscape:window-width="1920"
39
+ inkscape:window-height="1050"
40
+ id="namedview60"
41
+ showgrid="false"
42
+ inkscape:zoom="3.2122851"
43
+ inkscape:cx="115.56013"
44
+ inkscape:cy="37.50223"
45
+ inkscape:window-x="1920"
46
+ inkscape:window-y="0"
47
+ inkscape:window-maximized="1"
48
+ inkscape:current-layer="Camada_1" />
49
+ <defs
50
+ id="defs9">
51
+ <style
52
+ id="style2">.cls-1{fill:url(#Gradiente_sem_nome_2);}.cls-2{fill:#fff;}</style>
53
+ <linearGradient
54
+ id="Gradiente_sem_nome_2"
55
+ y1="42"
56
+ x2="140"
57
+ y2="42"
58
+ gradientUnits="userSpaceOnUse"
59
+ gradientTransform="translate(-185.34591,-16.289308)">
60
+ <stop
61
+ offset="0"
62
+ stop-color="#80d8ff"
63
+ id="stop4" />
64
+ <stop
65
+ offset="1"
66
+ stop-color="#ea80fc"
67
+ id="stop6" />
68
+ </linearGradient>
69
+ </defs>
70
+ <title
71
+ id="title11">project</title>
72
+ <rect
73
+ id="rect94"
74
+ width="138.239"
75
+ height="82.327042"
76
+ x="1.3283472"
77
+ y="0.73904139"
78
+ style="fill:#ffffff" />
79
+ <image
80
+ y="7.8856015"
81
+ x="-3.3206923"
82
+ id="image72"
83
+ xlink:href="data:image/png;base64,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
173
+ gDOobkEVNiEWZ3+m4hKqW7EPfRN8jXk41saaJzE6wTX7YA+qWlnzT0yPWLvfqMNRmGL5yAgxrGKh
174
+ v+AMnEBBGo9Ho96YhMX4GN+hFAdwEAdQiu/xKZbgYeQimoJ96IYRmI612IZSHEYZzuEsjqAUO/Am
175
+ 5uBBZCNVd+bnYwE2Yh/24yB+RCl2YR2m4l5EW/j5ykNhCyajb8jjMRaFrRiCZH7uR7WxZl6S/+kM
176
+ wuRW1hyHzIjdnjU9TWcJqhM4FXwa0Qh14EDvgRhy0As5iKEHMtK8/UaZiCEXAzEYg5CLGLoj3ceh
177
+ C2LIRi/0RAxZiEbMOnNNF9snJ3DjaC1K0D1iZkYdOazycAhBCHXYgNyImRl15LC6HztD3spQj63o
178
+ HzEzo44cVkOxDfUhHyyxBfdFzOzOijd+b9wVoY6O7UYxEftDDqtreA/3RMzszos3fxYeRT4yItRB
179
+ 2+2BeTgd8jTwMlYgO2Jmd26NQwCzsQD9EE3jtrpgLL7AvyE/CdyDx9A1YmbGMOiGJ/ER5mMAMlK4
180
+ fibGYD3OoyHEhfVTeBl9YWZ2ywXwYViDXXgDT6AfuiWxViYGYi4240KIQXUTx1GCEciImJnF+SN6
181
+ 4/EhjuNnfIlleBwT8QAGNzMU41GImViFr3ESNQji+Ad7sRRD4J3SZpbwaWIeXsI3uIAqVOB3nGum
182
+ HFdQHXJA1eEP7EMJCpHjoDKzVJwqxlCA5/A29qIMl1CF2lb+isJ1XEU5TmIn1mMeCnCXQ8rM0n3/
183
+ VDYGIh+FmIXFKG5mPqZgEoZhALK8gG5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm
184
+ ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm
185
+ ZmZmZmZmZmZmZmZmZmZmZmZmZmZmdmv/AXuwzXka1arxAAAAAElFTkSuQmCC
186
+ "
187
+ preserveAspectRatio="none"
188
+ height="68.364784"
189
+ width="147.67296" />
190
+ </svg>
@@ -0,0 +1,27 @@
1
+ cronapp.framework.mailer.auth=true
2
+ cronapp.framework.mailer.host=smtp.gmail.com
3
+ cronapp.framework.mailer.password=password
4
+ cronapp.framework.mailer.port=587
5
+ cronapp.framework.mailer.protocol=smtp
6
+ cronapp.framework.mailer.scheduler.batchSize=10
7
+ cronapp.framework.mailer.scheduler.expression=0 * * ? * *
8
+ cronapp.framework.mailer.tls=true
9
+ cronapp.framework.mailer.username=email@gmail.com
10
+
11
+ security.oauth2.client.accessTokenUri=https://identity.dev.lyceum.cloud/realms/${tenant}/protocol/openid-connect/token
12
+ security.oauth2.client.clientAuthenticationScheme=form
13
+ security.oauth2.client.clientId=${accessid}
14
+ security.oauth2.client.clientSecret=${token}
15
+ security.oauth2.client.scope=openid profile email
16
+ security.oauth2.client.userAuthorizationUri=https://identity.dev.lyceum.cloud/realms/${tenant}/protocol/openid-connect/auth
17
+ security.oauth2.resource.preferTokenInfo=false
18
+ security.oauth2.resource.userInfoUri=https://identity.dev.lyceum.cloud/realms/${tenant}/protocol/openid-connect/userinfo
19
+
20
+ security.oauth2.saml.entityId=entityId
21
+ security.oauth2.saml.metadataUrl=metadataUrl
22
+ security.oauth2.saml.privateKey=privateKey
23
+ security.oauth2.saml.privateKeyPass=privateKeyPass
24
+ security.oauth2.saml.storeFile=storeFile
25
+ security.oauth2.saml.storePass=storePass
26
+ security.oauth2.sso.login-path=/login
27
+ spring.output.ansi.enabled=ALWAYS
@@ -0,0 +1,52 @@
1
+ order=1
2
+ icon=project.svg
3
+ name=LyceumX Low-Code Module
4
+ description=Template para criação de aplicações para LyceumX
5
+ encoding=UTF-8
6
+ template=low-code
7
+ mimetype.src=folder/regular
8
+ mimetype.src.main.java=folder/src
9
+ mimetype.src.main.resources=folder/src
10
+ mimetype.src.main.mobileapp.www=folder/web
11
+ mimetype.src.main.webapp=folder/web
12
+ mimetype.src.test.java=folder/regular
13
+ mimetype.config=folder/servercontext
14
+ billingPlan=developer,techne
15
+
16
+ template.id=cronapp-lyceum-project-mobile-cordova
17
+ features=ionic|angularjs|eclipselink|jpa|maven|springboot|cordova
18
+
19
+ parameter.page.1.string.0.appid=${generateAppId}
20
+ parameter.page.1.boolean.1.frontend=true
21
+ parameter.page.1.boolean.2.backend=true
22
+ parameter.page.1.list.3.authentication=SSO
23
+ parameter.page.1.list.4.social=Não|Sim
24
+ parameter.page.1.list.5.mutual=Não|Sim
25
+ parameter.page.1.string.6.tenant=
26
+ parameter.page.1.string.7.token=
27
+ parameter.page.1.string.8.accessid=
28
+
29
+ parameter.page.2.theme.6.theme=Material|Aquamarine|Fuse|DsGov|Cerulean|Cosmo|Cyborg|Darkly|Flatly|Journal|Lumen|Paper|Readable|Sandstone|Simplex|Slate|Spacelab|Superhero|United|Yeti
30
+ themeDescription.Aquamarine=O tema Aquamarine utiliza o padrão de HTML e CSS do Bootstrap 🆕
31
+ themeDescription.Fuse=O tema Fuse utiliza o padrão de HTML e CSS do Bootstrap 🆕
32
+ themeDescription.DsGov=O tema DsGov utiliza o padrão de HTML e CSS do Gov.br 🆕
33
+ themeDescription.Material=O tema Material utiliza o padrão de HTML e CSS do Bootstrap com suporte à acessibilidade ♿
34
+ themeDescription.Cerulean=O tema Cerulean utiliza o padrão de HTML e CSS do Bootstrap
35
+ themeDescription.Cosmo=O tema Cosmo utiliza o padrão de HTML e CSS do Bootstrap
36
+ themeDescription.Cyborg=O tema Cyborg utiliza o padrão de HTML e CSS do Bootstrap
37
+ themeDescription.Darkly=O tema Darkly utiliza o padrão de HTML e CSS do Bootstrap
38
+ themeDescription.Flatly=O tema Flatly utiliza o padrão de HTML e CSS do Bootstrap
39
+ themeDescription.Journal=O tema Journal utiliza o padrão de HTML e CSS do Bootstrap
40
+ themeDescription.Lumen=O tema Lumen utiliza o padrão de HTML e CSS do Bootstrap
41
+ themeDescription.Paper=O tema Paper utiliza o padrão de HTML e CSS do Bootstrap
42
+ themeDescription.Readable=O tema Readable utiliza o padrão de HTML e CSS do Bootstrap
43
+ themeDescription.Sandstone=O tema Sandstone utiliza o padrão de HTML e CSS do Bootstrap
44
+ themeDescription.Simplex=O tema Simplex utiliza o padrão de HTML e CSS do Bootstrap
45
+ themeDescription.Slate=O tema Slate utiliza o padrão de HTML e CSS do Bootstrap
46
+ themeDescription.Spacelab=O tema Spacelab utiliza o padrão de HTML e CSS do Bootstrap
47
+ themeDescription.Superhero=O tema Superhero utiliza o padrão de HTML e CSS do Bootstrap
48
+ themeDescription.United=O tema United utiliza o padrão de HTML e CSS do Bootstrap
49
+ themeDescription.Yeti=O tema Yeti utiliza o padrão de HTML e CSS do Bootstrap
50
+
51
+ parameter.dependency.dcyauthentication.authentication.backend.false=Token
52
+ parameter.hidden.lyceum=true
@@ -0,0 +1,32 @@
1
+ description=Template for creating applications for LyceumX
2
+ parameter.page.1.string.0.appid=Application Id
3
+ parameter.page.1.boolean.1.frontend=Include Web Front-End
4
+ parameter.page.1.boolean.2.backend=Include Back-End
5
+ parameter.page.1.list.3.authentication=Authentication Type
6
+ parameter.page.1.list.4.social=Login over social networks
7
+ parameter.page.1.list.5.mutual=Mutual Authentication
8
+ parameter.page.1.string.6.tenant=LyceumX Tenant
9
+ parameter.page.1.string.7.token=LyceumX Token
10
+ parameter.page.1.string.8.accessid=LyceumX Id
11
+
12
+ parameter.page.2.theme.6.theme=Theme (Bootstrap)
13
+ themeDescription.Aquamarine=Aquamarine theme uses standard HTML and CSS Bootstrap 🆕
14
+ themeDescription.Fuse=Fuse theme uses standard HTML and CSS Bootstrap 🆕
15
+ themeDescription.DsGov=DsGov theme uses standard HTML and CSS of Brazilian Gov.br 🆕
16
+ themeDescription.Material=Material theme uses standard HTML and CSS Bootstrap with accessibility support ♿
17
+ themeDescription.Cerulean=Cerulean theme uses standard HTML and CSS Bootstrap
18
+ themeDescription.Cosmo=Cosmo theme uses standard HTML and CSS Bootstrap
19
+ themeDescription.Cyborg=Cyborg theme uses standard HTML and CSS Bootstrap
20
+ themeDescription.Darkly=The Darkly theme uses standard HTML and CSS Bootstrap
21
+ themeDescription.Flatly=The Flatly theme uses standard HTML and CSS Bootstrap
22
+ themeDescription.Journal=The Journal theme uses standard HTML and CSS Bootstrap
23
+ themeDescription.Lumen=The Lumen theme uses standard HTML and CSS Bootstrap
24
+ themeDescription.Paper=The Paper theme uses standard HTML and CSS Bootstrap
25
+ themeDescription.Readable=Readable The theme uses standard HTML and CSS Bootstrap
26
+ themeDescription.Sandstone=Sandstone theme uses standard HTML and CSS Bootstrap
27
+ themeDescription.Simplex=Simplex theme uses standard HTML and CSS Bootstrap
28
+ themeDescription.Slate=Slate theme uses standard HTML and CSS Bootstrap
29
+ themeDescription.Spacelab=Spacelab theme uses standard HTML and CSS Bootstrap
30
+ themeDescription.Superhero=The Superhero theme uses standard HTML and CSS Bootstrap
31
+ themeDescription.United=The theme United uses standard HTML and CSS Bootstrap
32
+ themeDescription.Yeti=Yeti theme uses standard HTML and CSS Bootstrap
@@ -0,0 +1,31 @@
1
+ parameter.page.1.string.0.appid=Id da Aplicação
2
+ parameter.page.1.boolean.1.frontend=Incluir Front-End Web
3
+ parameter.page.1.boolean.2.backend=Incluir Back-End
4
+ parameter.page.1.list.3.authentication=Tipo de Autenticação
5
+ parameter.page.1.list.4.social=Login por redes sociais
6
+ parameter.page.1.list.5.mutual=Autenticação Mútua
7
+ parameter.page.1.string.6.tenant=LyceumX Tenant
8
+ parameter.page.1.string.7.token=LyceumX Token
9
+ parameter.page.1.string.8.accessid=LyceumX Id
10
+
11
+ parameter.page.2.theme.6.theme=Tema (Bootstrap)
12
+ themeDescription.Fuse=O tema Fuse utiliza o padrão de HTML e CSS do Bootstrap 🆕
13
+ themeDescription.Aquamarine=O tema Aquamarine utiliza o padrão de HTML e CSS do Bootstrap 🆕
14
+ themeDescription.DsGov=O tema DsGov utiliza o padrão de HTML e CSS do Gov.br 🆕
15
+ themeDescription.Material=O tema Material utiliza o padrão de HTML e CSS do Bootstrap com suporte à acessibilidade ♿
16
+ themeDescription.Cerulean=O tema Cerulean utiliza o padrão de HTML e CSS do Bootstrap
17
+ themeDescription.Cosmo=O tema Cosmo utiliza o padrão de HTML e CSS do Bootstrap
18
+ themeDescription.Cyborg=O tema Cyborg utiliza o padrão de HTML e CSS do Bootstrap
19
+ themeDescription.Darkly=O tema Darkly utiliza o padrão de HTML e CSS do Bootstrap
20
+ themeDescription.Flatly=O tema Flatly utiliza o padrão de HTML e CSS do Bootstrap
21
+ themeDescription.Journal=O tema Journal utiliza o padrão de HTML e CSS do Bootstrap
22
+ themeDescription.Lumen=O tema Lumen utiliza o padrão de HTML e CSS do Bootstrap
23
+ themeDescription.Paper=O tema Paper utiliza o padrão de HTML e CSS do Bootstrap
24
+ themeDescription.Readable=O tema Readable utiliza o padrão de HTML e CSS do Bootstrap
25
+ themeDescription.Sandstone=O tema Sandstone utiliza o padrão de HTML e CSS do Bootstrap
26
+ themeDescription.Simplex=O tema Simplex utiliza o padrão de HTML e CSS do Bootstrap
27
+ themeDescription.Slate=O tema Slate utiliza o padrão de HTML e CSS do Bootstrap
28
+ themeDescription.Spacelab=O tema Spacelab utiliza o padrão de HTML e CSS do Bootstrap
29
+ themeDescription.Superhero=O tema Superhero utiliza o padrão de HTML e CSS do Bootstrap
30
+ themeDescription.United=O tema United utiliza o padrão de HTML e CSS do Bootstrap
31
+ themeDescription.Yeti=O tema Yeti utiliza o padrão de HTML e CSS do Bootstrap
@@ -6,39 +6,88 @@
6
6
  <img aria-roledescription="logo" alt="{{'Accessibility.Login.Logo.Alt' | translate}}" src="node_modules/cronapp-framework-mobile-js/img/logo.svg" class="component-holder logo" style="display: block; margin-left:auto; margin-right:auto;" xattr-position="display: block; margin-left:auto; margin-right:auto;" data-component="crn-image" id="crn-image-960683">
7
7
  </div>
8
8
  </div>
9
- <form class="form-validation" autocomplete="off" name="form" role="form">
10
- <input type="hidden" name="csrf_token" value="CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz">
11
- <div class="list list-inset login-mobile" data-container="true">
12
-
13
- <div class="item item-input component-holder" data-component="crn-input" for="crn-input-username" title="{{'Login.view.Username' | translate}}" id="lbl-input-username">
14
- <input aria-label="{{'Login.view.Username' | translate}}" autocomplete="username" autocorrect="off" autocapitalize="off" type="text" placeholder="{{'Login.view.Username' | translate}}" ng-model="vars.username" id="crn-input-username" keyboard="username">
15
- </div>
16
-
17
- <div class="item item-input component-holder" data-component="crn-input" for="crn-input-password" title="{{'Login.view.Password' | translate}}" id="lbl-input-password">
18
- <input aria-label="{{'Login.view.Password' | translate}}" autocomplete="current-password" type="password" placeholder="{{'Login.view.Password' | translate}}" ng-model="vars.password" id="crn-input-password" keyboard="password">
19
- </div>
20
-
21
- <div class="item">
22
- <a href="#/app/public/reset-password-email" class="component-holder" style="display:block" xattr-fullsize="display:block;" data-replace="true" data-component="crn-anchor" id="reset-password-login" on-hold="" on-tap="">{{'ResetPassword' | translate}}</a>
23
- </div>
24
-
25
- <div class="item" title="{{'Login.view.Login' | translate}}" for="crn-button-445347">
26
- <button role="button" aria-label="{{'Login.view.Login' | translate}}" class="button button-block button-light button-medium filled" type="button" xattr-fullsize="button-block" xattr-theme="button-light" ng-click="cronapi.client('js.blockly.auth.Login.login').run(vars.username, vars.password, null)" data-component="crn-button" xattr-size="button-medium" xattr-type="filled" id="crn-button-907928" ng-disabled="form.$invalid || vm.dataLoading">
27
- <i class="light" xattr-icon-theme="light"></i>
28
- <span>{{"Login.view.Login" | translate}}</span></button>
29
- </div>
30
-
31
- <div class="item">
32
- <a aria-label="{{'Signup.view.Signup' | translate}}" href="#/app/public/signup" class="component-holder" style="display:block" xattr-fullsize="display:block;" data-replace="true" data-component="crn-anchor" id="button-signup">{{'Signup.view.Signup' | translate}}</a>
33
- </div>
34
-
35
- <div class="item" title="{{message.error}}">
36
- <div ng-show="message.error" class="help-block" data-container="true">
37
- {{message.error}}
9
+ <div class="list list-inset login-mobile" data-container="true">
10
+ <form class="form-validation" autocomplete="off" name="form" role="form">
11
+ <input type="hidden" name="csrf_token" value="CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz">
12
+ <#if authentication?lower_case != "sso" && authentication?lower_case != "saml">
13
+ <div class="item item-input component-holder" data-component="crn-input" for="crn-input-username" title="{{'Login.view.Username' | translate}}" id="lbl-input-username">
14
+ <input aria-label="{{'Login.view.Username' | translate}}" autocomplete="username" autocorrect="off" autocapitalize="off" type="text" placeholder="{{'Login.view.Username' | translate}}" ng-model="vars.username" id="crn-input-username" keyboard="username">
15
+ </div>
16
+ <div class="item item-input component-holder" data-component="crn-input" for="crn-input-password" title="{{'Login.view.Password' | translate}}" id="lbl-input-password">
17
+ <input aria-label="{{'Login.view.Password' | translate}}" autocomplete="current-password" type="password" placeholder="{{'Login.view.Password' | translate}}" ng-model="vars.password" id="crn-input-password" keyboard="password">
18
+ </div>
19
+ <div class="item">
20
+ <a href="#/app/public/reset-password-email" class="component-holder" style="display:block" xattr-fullsize="display:block;" data-replace="true" data-component="crn-anchor" id="reset-password-login" on-hold="" on-tap="">{{'ResetPassword' | translate}}</a>
38
21
  </div>
22
+ <div class="item" title="{{'Login.view.Login' | translate}}" for="crn-button-445347">
23
+ <button role="button" aria-label="{{'Login.view.Login' | translate}}" class="button button-block button-light button-medium filled" type="button" xattr-fullsize="button-block" xattr-theme="button-light" ng-click="cronapi.client('js.blockly.auth.Login.login').run(vars.username, vars.password, null)" data-component="crn-button" xattr-size="button-medium" xattr-type="filled" id="crn-button-907928" ng-disabled="form.$invalid || vm.dataLoading">
24
+ <i class="light" xattr-icon-theme="light"></i>
25
+ <span>{{"Login.view.Login" | translate}}</span></button>
26
+ </div>
27
+ <#else>
28
+ <div class="item" title="{{'Login.view.Login' | translate}}" for="crn-button-445347">
29
+ <button role="button" aria-label="{{'Login.view.Login' | translate}}" class="button button-block button-light button-medium filled" type="button" xattr-fullsize="button-block" xattr-theme="button-light" ng-click="redirectToLogin()" data-component="crn-button" xattr-size="button-medium" xattr-type="filled" id="crn-button-907928" ng-disabled="form.$invalid || vm.dataLoading">
30
+ <i class="light" xattr-icon-theme="light"></i>
31
+ <span>{{"Login.view.Login" | translate}}</span></button>
32
+ </div>
33
+ </#if>
34
+ <#if authentication?lower_case != "sso" && authentication?lower_case != "saml">
35
+ <div class="item">
36
+ <a aria-label="{{'Signup.view.Signup' | translate}}" href="#/app/public/signup" class="component-holder" style="display:block" xattr-fullsize="display:block;" data-replace="true" data-component="crn-anchor" id="button-signup">{{'Signup.view.Signup' | translate}}</a>
37
+ </div>
38
+ </#if>
39
+ </form>
40
+ <#if social?? && social?lower_case == "sim">
41
+ <form action="/signin/facebook" method="POST" id="facebook">
42
+ <input type="hidden" name="csrf_token" value="CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz">
43
+ <input type="hidden" name="scope" value="email,public_profile">
44
+ </form>
45
+ <form action="/signin/github" method="POST" id="github">
46
+ <input type="hidden" name="csrf_token" value="CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz">
47
+ <input type="hidden" name="scope" value="email,public_profile">
48
+ </form>
49
+ <form action="/signin/google" method="POST" id="google">
50
+ <input type="hidden" name="csrf_token" value="CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz">
51
+ <input type="hidden" name="scope" value="email">
52
+ </form>
53
+ <form action="/signin/linkedin" method="POST" id="linkedin">
54
+ <input type="hidden" name="csrf_token" value="CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz">
55
+ <input type="hidden" name="scope" value="r_emailaddress">
56
+ </form>
57
+ <form action="/signin/cronapp" method="POST" id="cronapp">
58
+ <input type="hidden" name="csrf_token" value="CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz">
59
+ <input type="hidden" name="scope" value="email">
60
+ </form>
61
+ <div class="component-holder ng-scope login-social" data-component="crn-button-bar" id="crn-login-social-mobile" style="">
62
+ <div class="button-bar center-block text-center">
63
+ <button data-component="crn-button" type="button" onclick="document.getElementById('facebook').submit()" xattr-size="" xattr-type="" xattr-theme="" xattr-fullsize="button-block" id="login-social-facebook">
64
+ <span>Facebook</span>
65
+ <i class="icon icon-left fa fa-facebook positive" xattr-icon-theme="positive"></i>
66
+ </button>
67
+ <button data-component="crn-button" type="button" onclick="document.getElementById('github').submit()" xattr-size="" xattr-type="" xattr-theme="" xattr-fullsize="button-block" id="login-social-github">
68
+ <span>Github</span>
69
+ <i class="icon icon-left fa fa-github-alt positive" xattr-icon-theme="positive"></i>
70
+ </button>
71
+ <button data-component="crn-button" type="button" onclick="document.getElementById('google').submit()" xattr-size="" xattr-type="" xattr-theme="" xattr-fullsize="button-block" id="login-social-google">
72
+ <span>Google</span>
73
+ <i class="icon icon-left fa fa-linkedin-square positive" xattr-icon-theme="positive"></i>
74
+ </button>
75
+ <button data-component="crn-button" type="button" onclick="document.getElementById('linkedin').submit()" xattr-size="" xattr-type="" xattr-theme="" xattr-fullsize="button-block" id="login-social-linkedin">
76
+ <span>Linkedin</span>
77
+ <i class="icon icon-left fa fa-google positive" xattr-icon-theme="positive"></i>
78
+ </button>
79
+ <button data-component="crn-button" type="button" onclick="document.getElementById('cronapp').submit()" xattr-size="" xattr-type="" xattr-theme="" xattr-fullsize="button-block" id="login-social-cronapp">
80
+ <span>CRONAPP</span>
81
+ <i class="icon icon-left fa fa-cloud positive" xattr-icon-theme="positive"></i>
82
+ </button>
83
+ </div>
84
+ </div>
85
+ </#if>
86
+ <div class="item" title="{{message.error}}">
87
+ <div ng-show="message.error" class="help-block" data-container="true">
88
+ {{message.error}}
39
89
  </div>
40
-
41
90
  </div>
42
- </form>
91
+ </div>
43
92
  </ion-content>
44
93
  </ion-view>
@@ -0,0 +1,8 @@
1
+ <#-- Verificar se existem parametros -->
2
+ file=home.view.html
3
+ file=menu.view.html
4
+ <#if authentication?lower_case != "sso" && authentication?lower_case != "saml">
5
+ file=reset-password-email.view.html
6
+ file=reset-password.view.html
7
+ file=signup.view.html
8
+ </#if>
@@ -1,6 +1,6 @@
1
1
  <ion-view class="pane" role="region">
2
2
  <ion-content data-container="true" data-component="crn-ion-content" class="scroll-content menu-view">
3
- <ion-list class=" disable-user-behavior list">
3
+ <div class=" disable-user-behavior list">
4
4
  <!-- Menu -->
5
5
  <div class="component-holder" data-component="crn-navbar" id="menu-blue">
6
6
  <div class="nav navbar-nav">
@@ -10,6 +10,6 @@
10
10
  </div>
11
11
  </div>
12
12
  <!-- Menu -->
13
- </ion-list>
13
+ </div>
14
14
  </ion-content>
15
15
  </ion-view>
@@ -1,6 +1,6 @@
1
1
  <ion-view class="pane">
2
2
  <ion-content data-container="true" data-component="crn-ion-content" class="scroll-content menu-view">
3
- <ion-list class=" disable-user-behavior list">
3
+ <div class=" disable-user-behavior list">
4
4
  <!-- Menu -->
5
5
  <div class="component-holder" data-component="crn-navbar" id="menu-blue">
6
6
  <div class="nav navbar-nav">
@@ -10,6 +10,6 @@
10
10
  </cron-mobile-menu>
11
11
  </div>
12
12
  <!-- Menu -->
13
- </ion-list>
13
+ </div>
14
14
  </ion-content>
15
15
  </ion-view>
@@ -1,3 +1,4 @@
1
+ order=0
1
2
  icon=project.svg
2
3
  name=Mobile Low-Code Project
3
4
  description=Template para criação de aplicações Mobile Low-Code utilizando o CronApp IDE
@@ -189,6 +189,13 @@
189
189
  <groupId>io.cronapp</groupId>
190
190
  <artifactId>cronapp-framework-auditlog</artifactId>
191
191
  </dependency>
192
+ <#if ((lyceum??) && (lyceum?lower_case) == "true") >
193
+ <dependency>
194
+ <groupId>io.cronapp.plugins.0D605BA-0E1B-4814-AECE-5A793A49976</groupId>
195
+ <artifactId>lyceumx-api</artifactId>
196
+ <version>1.0.0-SNAPSHOT</version>
197
+ </dependency>
198
+ </#if>
192
199
  </dependencies>
193
200
  <repositories>
194
201
  <repository>
@@ -1,5 +1,5 @@
1
- <?xml version="1.0" encoding="UTF-8"?><blockly audit="false" blocklyType="WEB" bpmnAble="false" formTarget="src/main/webapp/views/public/privacy/cookies.view.html" resourceType="JS" ruleDescription="Cookies" ruleName="Cookies" ruleSynchronous="false" ruleTimeout="" ruleType="I" soap="false" swagger="false">
2
- <metadata scale="1" scrollx="385.9000000000002" scrolly="-480.70000000000005" target=".3I{qW{(Rt4Y;-6`fi3n"/>
1
+ <?xml version="1.0" encoding="UTF-8"?><blockly audit="false" blocklyType="WEB" bpmnAble="false" formTarget="src/main/webapp/views/public/privacy/cookies.view.html" library="false" resourceType="JS" ruleDescription="Cookies" ruleName="Cookies" ruleSynchronous="false" ruleTimeout="" ruleType="I" soap="false" swagger="false">
2
+ <metadata scale="1" scrollx="225.20000000000005" scrolly="-727.9999999999999" target="4,jQlG7DhFXI`(beTz@O"/>
3
3
  <block asynccall="false" colour="#fca03b" id="fHKQ4}K963e^Op)eRLp}" origintype="procedures_defnoreturn" output="false" tooltip="Cria uma função que não tem retorno." type="procedures_defnoreturn" x="-307" y="173">
4
4
  <field customattributes="" name="NAME">openPreferences</field>
5
5
  <comment h="80" pinned="false" w="160">Descreva esta função...</comment>
@@ -414,4 +414,45 @@
414
414
  </block>
415
415
  </value>
416
416
  </block>
417
+ <block asynccall="false" colour="#fca03b" id="4,jQlG7DhFXI`(beTz@O" origintype="procedures_defreturn" output="false" tooltip="Cria uma função que possui um valor de retorno." type="procedures_defreturn" x="-134" y="937">
418
+ <field customattributes="" name="NAME">checkCookies</field>
419
+ <statement name="STACK">
420
+ <block asynccall="false" colour="#0088ee" dependencyby="4,jQlG7DhFXI`(beTz@O" id="pyk-m!-J9(E=xf;~ZGG`" origintype="variables_set" output="false" tooltip="Define esta variável para o valor da entrada." type="variables_set">
421
+ <field customattributes="" name="VAR">haveCookies</field>
422
+ <value name="VALUE">
423
+ <block asynccall="false" colour="#487f7f" dependencyby="4,jQlG7DhFXI`(beTz@O" id="4T]]m|CJ#ioH7OIi5#z8" multilayer="false" namespace="cronapi.util.checkSavedCookies" origintype="procedures_callreturn" output="true" returntype="ObjectType.STRING" tooltip="%3Cdiv%20class=%22name%22%3E%3Cstrong%3ENome:%3C/strong%3E%3Cdiv%3EVerificar%20cookie%20salvo%3C/div%3E%3C/div%3E%3Cdiv%20class=%22description%22%3E%3Cstrong%3EDescri%C3%A7%C3%A3o:%3C/strong%3E%3Cdiv%3EBloco%20que%20verifica%20se%20a%20chave%20j%C3%A1%20est%C3%A1%20salva%20no%20cookie%20de%20sess%C3%A3o%3C/div%3E%3C/div%3E%3Cdiv%20class=%22params%22%3E%3Cstrong%3EParam%C3%AAtro:%3C/strong%3E%3Cdiv%3E%3Cspan%3E%20-%20Chave%20:%20Texto%3C/span%3E%3Cbr%3E%3C/div%3E%3C/div%3E%3Cdiv%20class=%22return%22%3E%3Cstrong%3ERetorno:%3C/strong%3E%3Cdiv%3E%3Cspan%3E%20-%20Texto%3C/span%3E%3C/div%3E%3C/div%3E%3Cdiv%20class=%22link%22%3E%3Cstrong%3EAjuda:%3C/strong%3E%3Cdiv%20class=%22tooltip-link%22%3E%3Ca%20target=%22_blank%22%20href=%22http://localhost:8080/help?type=blockly&amp;amp;id=cronapi.util.checkSavedCookies%22%3EAjuda%3C/a%3E%3C/div%3E%3C/div%3E" type="procedures_callreturn">
424
+ <mutation name="{{cronapi.util.checkSavedCookies}}" return-raw-type="undefined">
425
+ <arg cronapi-raw-type="undefined" cronapi-type="ObjectType.STRING" name="Chave"/>
426
+ </mutation>
427
+ <value name="ARG0">
428
+ <shadow asynccall="false" colour="#5ba593" dependencyby="4,jQlG7DhFXI`(beTz@O" id="0;w@pe}Di^%S$h[EaV{C" origintype="text" output="true" tooltip="function () { [native code] }" type="text">
429
+ <field customattributes="" name="TEXT">cookieEssencial</field>
430
+ </shadow>
431
+ </value>
432
+ </block>
433
+ </value>
434
+ <next>
435
+ <block asynccall="false" colour="#5b80a5" dependencyby="4,jQlG7DhFXI`(beTz@O" id="!qU$?O2|eMlx~nBo#=QD" origintype="controls_if" output="false" tooltip="function () { [native code] }" type="controls_if">
436
+ <value name="IF0">
437
+ <block asynccall="false" colour="#0088ee" dependencyby="4,jQlG7DhFXI`(beTz@O" id="]fhJw;raU3u:ag=WJV@%" origintype="variables_get" output="true" tooltip="Retorna o valor desta variável." type="variables_get">
438
+ <field customattributes="" name="VAR">haveCookies</field>
439
+ </block>
440
+ </value>
441
+ <statement name="DO0">
442
+ <block asynccall="false" colour="#934848" dependencyby="4,jQlG7DhFXI`(beTz@O" id="7?*aVNb1C:GDm7u{NQ*]" multilayer="true" namespace="cronapi.screen.hideComponent" origintype="procedures_callnoreturn" output="false" returntype="ObjectType.VOID" tooltip="%3Cdiv%20class=%22name%22%3E%3Cstrong%3ENome:%3C/strong%3E%3Cdiv%3EEsconder%20componente%3C/div%3E%3C/div%3E%3Cdiv%20class=%22description%22%3E%3Cstrong%3EDescri%C3%A7%C3%A3o:%3C/strong%3E%3Cdiv%3EFun%C3%A7%C3%A3o%20que%20esconde%20um%20componente%20da%20tela%3C/div%3E%3C/div%3E%3Cdiv%20class=%22params%22%3E%3Cstrong%3EParam%C3%AAtro:%3C/strong%3E%3Cdiv%3E%3Cspan%3E%20-%20Identificador%20:%20Objeto%3C/span%3E%3Cdiv%3E%20Identificador%20do%20componente%20a%20ser%20modificado%3C/div%3E%3C/div%3E%3C/div%3E%3Cdiv%20class=%22link%22%3E%3Cstrong%3EAjuda:%3C/strong%3E%3Cdiv%20class=%22tooltip-link%22%3E%3Ca%20target=%22_blank%22%20href=%22http://localhost:8080/help?type=blockly&amp;amp;id=cronapi.screen.hideComponent%22%3EAjuda%3C/a%3E%3C/div%3E%3C/div%3E" type="procedures_callnoreturn">
443
+ <mutation name="{{cronapi.screen.hideComponent}}" return-raw-type="undefined">
444
+ <arg cronapi-raw-type="undefined" cronapi-type="ObjectType.OBJECT" name="Identificador"/>
445
+ </mutation>
446
+ <value name="ARG0">
447
+ <block asynccall="false" colour="#934848" dependencyby="4,jQlG7DhFXI`(beTz@O" id="%cIxo-!u*2HHl.6yPKIh" origintype="ids_from_screen" output="true" type="ids_from_screen">
448
+ <field customattributes="" name="SELECT">dialogCookies</field>
449
+ </block>
450
+ </value>
451
+ </block>
452
+ </statement>
453
+ </block>
454
+ </next>
455
+ </block>
456
+ </statement>
457
+ </block>
417
458
  </blockly>
@@ -127,3 +127,25 @@ window.blockly.js.blockly.privacy.Cookies.checkCookieEssencials = async function
127
127
  }
128
128
  return isChecked;
129
129
  }
130
+
131
+ /**
132
+ * @function checkCookies
133
+ *
134
+ *
135
+ *
136
+ *
137
+ * @author Root
138
+ * @since 29/08/2022 14:21:06
139
+ *
140
+ */
141
+ window.blockly.js.blockly.privacy.Cookies.checkCookiesArgs = [];
142
+ window.blockly.js.blockly.privacy.Cookies.checkCookies = async function() {
143
+ var haveCookies;
144
+ //
145
+ haveCookies = this.cronapi.util.checkSavedCookies('cookieEssencial');
146
+ //
147
+ if (haveCookies) {
148
+ //
149
+ this.cronapi.screen.hideComponent("dialogCookies");
150
+ }
151
+ }
@@ -41,9 +41,9 @@
41
41
  <ul class="dropdown-menu">
42
42
  <li><a href="" class="component-holder" ng-click="cronapi.screen.showModal('modalPassword')" data-component="crn-anchor">{{"Home.view.ChangePassword" | translate}}</a></li>
43
43
  <#if mutual?? && mutual?lower_case == "sim" && (enterprise)!false>
44
- <li><a ng-click="cronapi.client('js.blockly.MutualAuth.signup').run()" href="" data-component="crn-anchor"><span>{{'LinkCertificate' | translate}}</span></a></li>
44
+ <li><a ng-click="cronapi.client('js.blockly.MutualAuth.signup').run()" href="" data-component="crn-anchor">{{'LinkCertificate' | translate}}</a></li>
45
45
  </#if>
46
- <li><a ng-click="logout()" href="" data-component="crn-anchor"><span>{{"Home.view.Logout" | translate}}</span></a></li>
46
+ <li><a ng-click="logout()" href="" data-component="crn-anchor">{{"Home.view.Logout" | translate}}</a></li>
47
47
  </ul>
48
48
  </li>
49
49
  </ul>
@@ -36,11 +36,11 @@
36
36
  </div>
37
37
  </div>
38
38
 
39
- </#if>
39
+ <a ng-click="cronapi.screen.showModal('forgotPasswordModal')" class="reset-password cron-link component-holder col-xs-12 col-md-12" target="_self"
40
+ data-replace="true" data-component="crn-anchor" id="crn-botao-cadastre">{{'ResetPassword' | translate}}
41
+ </a>
40
42
 
41
- <a ng-click="cronapi.screen.showModal('forgotPasswordModal')" class="reset-password cron-link component-holder col-xs-12 col-md-12" target="_self"
42
- data-replace="true" data-component="crn-anchor" id="crn-botao-cadastre">{{'ResetPassword' | translate}}
43
- </a>
43
+ </#if>
44
44
 
45
45
  <div class="messages">
46
46
  <div ng-show="message.error" class="help-block" data-container="true">
@@ -58,11 +58,11 @@
58
58
  <span class="" text-theme="">{{"Login.view.Login" | translate}}</span>
59
59
  </button>
60
60
  </div>
61
+ <a href="#/public/signup" class="sign-up cron-link component-holder col-md-12 col-xs-12"
62
+ target="_self" data-replace="true" data-component="crn-anchor" id="crn-anchor-login-signup">
63
+ {{'Signup.view.Signup' | translate}}
64
+ </a>
61
65
  </#if>
62
- <a href="#/public/signup" class="sign-up cron-link component-holder col-md-12 col-xs-12"
63
- target="_self" data-replace="true" data-component="crn-anchor" id="crn-anchor-login-signup">
64
- {{'Signup.view.Signup' | translate}}
65
- </a>
66
66
 
67
67
  </form>
68
68
  <div class="" data-container="true"></div>
@@ -142,54 +142,56 @@
142
142
  </div>
143
143
  </div>
144
144
 
145
- <div class="modal fade" id="forgotPasswordModal">
146
- <div class="modal-dialog">
147
- <div class="modal-content">
148
- <div class="modal-header">
149
- <button type="button" class="close" data-dismiss="modal" aria-label="{{'Home.view.Close' | translate}}">
150
- <span aria-hidden="true">
151
- ×
152
- </span>
153
- </button>
154
- <h2 class="modal-title">{{'ForgotPassword' | translate}}</h2>
155
- </div>
156
- <div class="modal-body">
157
- <form class="form-validation" autocomplete="off" name="forgotPasswordForm" role="form">
158
- <input type="hidden" name="csrf_token" value="CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz">
159
- <div class="text-danger wrapper text-center" ng-show="authError">
160
- </div>
161
- <div class="list-group list-group-sm">
162
- <div class="">
163
- <label for="forgotPasswordEmail">
164
- {{'ForgotPasswordEmail' | translate}}
165
- </label>
166
- <input type="email" class="form-control k-textbox" id="forgotPasswordEmail"
167
- aria-label="{{'ForgotPasswordEmail' | translate}}" ng-required="true"
168
- ng-model="forgotPasswordEmail.value"/>
169
- </div>
170
- </div>
171
- </form>
172
- </div>
173
- <div class="modal-footer">
174
- <div class="component-holder ng-scope col-md-12" data-component="crn-button" id="crn-button-save">
175
- <button class="btn k-button btn-primary" type="submit"
176
- ng-click="cronapi.client('js.blockly.UserControl.resetPassword').names('7afdf898').run(forgotPasswordEmail.value)" xattr-fullsize=""
177
- aria-label="{{'Save' | translate}}" xattr-theme="btn-primary" xattr-disabled="" ng-disabled="form.$invalid || vm.dataLoading">
178
- <i class="glyphicon glyphicon-ok"></i>
179
- <span>{{'Save' | translate}}</span>
145
+ <#if authentication?lower_case != "sso" && authentication?lower_case != "saml">
146
+ <div class="modal fade" id="forgotPasswordModal">
147
+ <div class="modal-dialog">
148
+ <div class="modal-content">
149
+ <div class="modal-header">
150
+ <button type="button" class="close" data-dismiss="modal" aria-label="{{'Home.view.Close' | translate}}">
151
+ <span aria-hidden="true">
152
+ ×
153
+ </span>
180
154
  </button>
155
+ <h2 class="modal-title">{{'ForgotPassword' | translate}}</h2>
181
156
  </div>
182
- <div class="component-holder ng-scope col-md-12" data-component="crn-button" id="crn-button-close">
183
- <button class="btn k-button btn-danger" type="button" data-dismiss="modal"
184
- xattr-fullsize="" aria-label="{{'Home.view.Close' | translate}}" xattr-theme="btn-danger"
185
- xattr-disabled="">
186
- <i class="glyphicon glyphicon-remove"></i>
187
- <span>{{'Home.view.Close' | translate}}</span>
188
- </button>
157
+ <div class="modal-body">
158
+ <form class="form-validation" autocomplete="off" name="forgotPasswordForm" role="form">
159
+ <input type="hidden" name="csrf_token" value="CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz">
160
+ <div class="text-danger wrapper text-center" ng-show="authError">
161
+ </div>
162
+ <div class="list-group list-group-sm">
163
+ <div class="">
164
+ <label for="forgotPasswordEmail">
165
+ {{'ForgotPasswordEmail' | translate}}
166
+ </label>
167
+ <input type="email" class="form-control k-textbox" id="forgotPasswordEmail"
168
+ aria-label="{{'ForgotPasswordEmail' | translate}}" ng-required="true"
169
+ ng-model="forgotPasswordEmail.value"/>
170
+ </div>
171
+ </div>
172
+ </form>
173
+ </div>
174
+ <div class="modal-footer">
175
+ <div class="component-holder ng-scope col-md-12" data-component="crn-button" id="crn-button-save">
176
+ <button class="btn k-button btn-primary" type="submit"
177
+ ng-click="cronapi.client('js.blockly.UserControl.resetPassword').names('7afdf898').run(forgotPasswordEmail.value)" xattr-fullsize=""
178
+ aria-label="{{'Save' | translate}}" xattr-theme="btn-primary" xattr-disabled="" ng-disabled="form.$invalid || vm.dataLoading">
179
+ <i class="glyphicon glyphicon-ok"></i>
180
+ <span>{{'Save' | translate}}</span>
181
+ </button>
182
+ </div>
183
+ <div class="component-holder ng-scope col-md-12" data-component="crn-button" id="crn-button-close">
184
+ <button class="btn k-button btn-danger" type="button" data-dismiss="modal"
185
+ xattr-fullsize="" aria-label="{{'Home.view.Close' | translate}}" xattr-theme="btn-danger"
186
+ xattr-disabled="">
187
+ <i class="glyphicon glyphicon-remove"></i>
188
+ <span>{{'Home.view.Close' | translate}}</span>
189
+ </button>
190
+ </div>
189
191
  </div>
190
192
  </div>
191
193
  </div>
192
194
  </div>
193
- </div>
195
+ </#if>
194
196
 
195
197
  <div ng-include="'./views/public/privacy/cookies.view.html'"></div>
@@ -0,0 +1,7 @@
1
+ <#-- Verificar se existem parametros -->
2
+ path=/privacy
3
+ file=home.view.html.ftl
4
+ <#if authentication?lower_case != "sso" && authentication?lower_case != "saml">
5
+ file=reset-password.view.html.ftl
6
+ file=signup.view.html
7
+ </#if>
@@ -20,6 +20,6 @@
20
20
  </div>
21
21
  </nav>
22
22
  </div>
23
- <div class="container-fluid main-view <#if !(menuPosition??) || menuPosition == "Horizontal">main-view-horizontal<#else>main-view-vertical</#if>">
23
+ <div ui-view class="container-fluid main-view <#if !(menuPosition??) || menuPosition == "Horizontal">main-view-horizontal<#else>main-view-vertical</#if>">
24
24
  <h1 class="title text-left h3" xattr-position="text-left" xattr-type="h3" data-component="crn-text-component" id="crn-text-component-public-home">{{'Home.view.Home' | translate}}</h1>
25
25
  </div>
@@ -1,4 +1,4 @@
1
- <div id="starter" ng-destroy="" data-component="crn-start" screen-params="">
1
+ <div id="starter" ng-destroy="" data-component="crn-start" screen-params="" ng-init="cronapi.client('js.blockly.privacy.Cookies.checkCookies').run()">
2
2
  <div class="privacy-view">
3
3
  <div id="dialogCookies" class="dialog-cookies alert alert-dismissible text-center" role="alert" ng-init="">
4
4
  <div class="cookiealert-container">
@@ -7,7 +7,7 @@
7
7
  <div class="container-fluid">
8
8
  <div class="navbar-header">
9
9
  <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar, #navbar2" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
10
- <a class="component-holder ng-binding ng-scope navbar-brand" data-component="crn-image" ng-click="cronapi.screen.changeView('#/home', [])"> <img alt="{{'Home.view.Home' | translate}}" src="node_modules/cronapp-framework-js/img/cronapp-logo-login.png" style="width:101px; margin-top:-4px" id="crn-navbar-logo" data-component="crn-image"> </a>
10
+ <a class="component-holder ng-binding ng-scope navbar-brand" data-component="crn-image" ng-click="cronapi.screen.changeView('#/home', [])"> <img alt="{{'Home.view.Home' | translate}}" src="node_modules/cronapp-framework-js/img/cronapp-logo-login.png" id="crn-navbar-logo" data-component="crn-image"> </a>
11
11
  </div>
12
12
  <div id="navbar" class="navbar-collapse collapse float-left-desktop">
13
13
  <ul class="nav navbar-nav" style="float:none">
@@ -26,7 +26,7 @@
26
26
  </#list>
27
27
  </#if>
28
28
  <li>
29
- <cron-dynamic-menu class="component-holder" data-component="crn-dynamic-menu" options="{&quot;subMenuOptions&quot;:[{&quot;id&quot;:&quot;1h85bvnhg7511&quot;,&quot;name&quot;:&quot;Home&quot;,&quot;title&quot;:&quot;{{'Home.view.Home' | translate}}&quot;,&quot;iconClass&quot;:&quot;fa fa-home&quot;,&quot;action&quot;:&quot;cronapi.screen.changeView('#/home', [])&quot;,&quot;level&quot;:1,&quot;menuItems&quot;:[]}]}">Dynamic Menu</cron-dynamic-menu>
29
+ <cron-dynamic-menu id="crn-dynamic-menu-home" class="component-holder" data-component="crn-dynamic-menu" options="{&quot;subMenuOptions&quot;:[{&quot;id&quot;:&quot;1h85bvnhg7511&quot;,&quot;name&quot;:&quot;Home&quot;,&quot;title&quot;:&quot;{{'Home.view.Home' | translate}}&quot;,&quot;iconClass&quot;:&quot;fa fa-home&quot;,&quot;action&quot;:&quot;cronapi.screen.changeView('#/home', [])&quot;,&quot;level&quot;:1,&quot;menuItems&quot;:[]}]}">Dynamic Menu</cron-dynamic-menu>
30
30
  </li>
31
31
 
32
32
  </ul>
@@ -127,7 +127,7 @@ import org.eclipse.persistence.annotations.*;
127
127
  @TenantDiscriminatorColumns({
128
128
  </#if>
129
129
  <#list clazz.multitententFields as field>
130
- @TenantDiscriminatorColumn(name = "${field.dbFieldName}", contextProperty = "${field.multitenantContext}")<#if field_has_next>,</#if>
130
+ @TenantDiscriminatorColumn(name = "${field.dbFieldName?replace("\"", "\\\"")}", contextProperty = "${field.multitenantContext}")<#if field_has_next>,</#if>
131
131
  </#list>
132
132
  <#if (clazz.multitententFields?size > 1)>
133
133
  })
@@ -208,7 +208,7 @@ public class ${clazz.name} implements Serializable {
208
208
  <#if (field.relationNames?size == 1)>
209
209
  <#list field.relationNames?keys as key>
210
210
  <#if key??>
211
- @JoinColumn(name="${key}", nullable = ${field.nullable?c}, referencedColumnName = "${field.relationNames[key]}", insertable=${field.insertable?c}, updatable=${field.updatable?c})
211
+ @JoinColumn(name="${(key)?replace("\"", "\\\"")}", nullable = ${field.nullable?c}, referencedColumnName = "${field.relationNames[key]?replace("\"", "\\\"")}", insertable=${field.insertable?c}, updatable=${field.updatable?c})
212
212
  </#if>
213
213
  </#list>
214
214
  <#elseif (field.relationNames?size > 1)>
@@ -216,14 +216,14 @@ public class ${clazz.name} implements Serializable {
216
216
  @JoinColumns({
217
217
  <#list field.relationNames?keys as key>
218
218
  <#if key??>
219
- @JoinColumn(name="${key}", nullable = ${field.nullable?c}, referencedColumnName = "${field.relationNames[key]}", insertable=${field.insertable?c}, updatable=${field.updatable?c})
219
+ @JoinColumn(name="${(key)?replace("\"", "\\\"")}", nullable = ${field.nullable?c}, referencedColumnName = "${field.relationNames[key]?replace("\"", "\\\"")}", insertable=${field.insertable?c}, updatable=${field.updatable?c})
220
220
  <#if (i>1)>,</#if>
221
221
  </#if>
222
222
  <#assign i = i-1>
223
223
  </#list>
224
224
  })
225
225
  <#else>
226
- @Column(name = "${field.dbFieldName}", nullable = ${field.nullable?c}<#if !field.primaryKey>, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.columnDefinition??>, columnDefinition = "${field.columnDefinition}"</#if>)
226
+ @Column(name = "${field.dbFieldName?replace("\"", "\\\"")}", nullable = ${field.nullable?c}<#if !field.primaryKey>, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.columnDefinition??>, columnDefinition = "${field.columnDefinition}"</#if>)
227
227
  </#if>
228
228
  ${field.modifier} <#if field.arrayRelation>${field.type}<#else>${field.type}</#if> ${name}<#if field.defaultValue?has_content> = ${field.defaultValue}<#elseif field.primaryKey && field.generationType?? && field.generationType == "UUID"> = UUID.randomUUID().toString().toUpperCase()</#if>;
229
229
  </#if>
@@ -251,7 +251,7 @@ public class ${clazz.name} implements Serializable {
251
251
  <#if (field.relationNames?size == 1)>
252
252
  <#list field.relationNames?keys as key>
253
253
  <#if key??>
254
- @JoinColumn(name="${key}", nullable = ${field.nullable?c}, referencedColumnName = "${field.relationNames[key]}", insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.cascade>, foreignKey = @ForeignKey(name = "<#if tableName??>${tableName}<#else>${clazz.name?upper_case}</#if>_${key?upper_case}_${field.dbTableRelationClazz}_${field.relationNames[key]?upper_case}", foreignKeyDefinition = "FOREIGN KEY (${key}) REFERENCES ${field.dbTableRelationClazz} (${field.relationNames[key]}) ON DELETE CASCADE")<#elseif field.fkName?has_content>, foreignKey = @ForeignKey(name = "${field.fkName}", foreignKeyDefinition = "FOREIGN KEY (${key}) REFERENCES ${field.dbTableRelationClazz} (${field.relationNames[key]})")</#if>)
254
+ @JoinColumn(name="${(key)?replace("\"", "\\\"")}", nullable = ${field.nullable?c}, referencedColumnName = "${field.relationNames[key]?replace("\"", "\\\"")}", insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.cascade>, foreignKey = @ForeignKey(name = "<#if tableName??>${tableName?replace("\"", "\\\"")}<#else>${(clazz.name?upper_case)?replace("\"", "\\\"")}</#if>_${(key?upper_case)?replace("\"", "\\\"")}_${field.dbTableRelationClazz?replace("\"", "\\\"")}_${(field.relationNames[key]?upper_case)?replace("\"", "\\\"")}", foreignKeyDefinition = "FOREIGN KEY (${(key)?replace("\"", "\\\"")}) REFERENCES ${field.dbTableRelationClazz} (${field.relationNames[key]?replace("\"", "\\\"")}) ON DELETE CASCADE")<#elseif field.fkName?has_content>, foreignKey = @ForeignKey(name = "${field.fkName?replace("\"", "\\\"")}", foreignKeyDefinition = "FOREIGN KEY (${(key)?replace("\"", "\\\"")}) REFERENCES ${field.dbTableRelationClazz} (${field.relationNames[key]?replace("\"", "\\\"")})")</#if>)
255
255
  </#if>
256
256
  </#list>
257
257
  <#elseif (field.relationNames?size > 1)>
@@ -259,14 +259,14 @@ public class ${clazz.name} implements Serializable {
259
259
  @JoinColumns({
260
260
  <#list field.relationNames?keys as key>
261
261
  <#if key??>
262
- @JoinColumn(name="${key}", nullable = ${field.nullable?c}, referencedColumnName = "${field.relationNames[key]}", insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.fkName?has_content>, foreignKey = @ForeignKey(name = "${field.fkName}", foreignKeyDefinition = "FOREIGN KEY (${key}) REFERENCES ${field.dbTableRelationClazz} (${field.relationNames[key]})")</#if>)
262
+ @JoinColumn(name="${(key)?replace("\"", "\\\"")}", nullable = ${field.nullable?c}, referencedColumnName = "${field.relationNames[key]?replace("\"", "\\\"")}", insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.fkName?has_content>, foreignKey = @ForeignKey(name = "${field.fkName?replace("\"", "\\\"")}", foreignKeyDefinition = "FOREIGN KEY (${(key)?replace("\"", "\\\"")}) REFERENCES ${field.dbTableRelationClazz} (${field.relationNames[key]?replace("\"", "\\\"")})")</#if>)
263
263
  <#if (i>1)>,</#if>
264
264
  </#if>
265
265
  <#assign i = i-1>
266
266
  </#list>
267
267
  })
268
268
  <#elseif field.arrayRelation>
269
- @OneToMany(fetch = FetchType.LAZY, mappedBy="${field.mappedBy}", insertable=${field.insertable?c}, updatable=${field.updatable?c})
269
+ @OneToMany(fetch = FetchType.LAZY, mappedBy="${field.mappedBy?replace("\"", "\\\"")}", insertable=${field.insertable?c}, updatable=${field.updatable?c})
270
270
  <#else>
271
271
  <#if field.transient>
272
272
  @Transient
@@ -280,7 +280,7 @@ public class ${clazz.name} implements Serializable {
280
280
  <#elseif field.isTimestamp()>
281
281
  @Temporal(TemporalType.TIMESTAMP)
282
282
  </#if>
283
- @Column(name = "${field.dbFieldName}", nullable = ${field.nullable?c}<#if !field.primaryKey>, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.columnDefinition??>, columnDefinition = "${field.columnDefinition}"</#if>)
283
+ @Column(name = "${field.dbFieldName?replace("\"", "\\\"")}", nullable = ${field.nullable?c}<#if !field.primaryKey>, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.columnDefinition??>, columnDefinition = "${field.columnDefinition}"</#if>)
284
284
  </#if>
285
285
  </#if>
286
286
  <#if field.getUseOuterJoin()>
@@ -290,7 +290,7 @@ public class ${clazz.name} implements Serializable {
290
290
  @JsonIgnore
291
291
  </#if>
292
292
  <#if field.isCloudStorage()>
293
- @CronapiCloud(type = "${field.getStorageType()}", value="${field.getStorageKey()}", id="${field.getStorageId()}", secret="${field.getStorageSecret()}")
293
+ @CronapiCloud(type = "${field.getStorageType()}", value="${field.getStorageKey()}", id="${field.getStorageId()}", secret="${field.getStorageSecret()}", regionAWS="${field.getRegionAWS()}")
294
294
  </#if>
295
295
  <#if field.isFileDataBase()>
296
296
  @CronapiByteHeaderSignature
@@ -306,7 +306,7 @@ public class ${clazz.name} implements Serializable {
306
306
  /**
307
307
  * @generated
308
308
  */
309
- <@single_line>@Column(name = "${field.dbFieldName}_history"
309
+ <@single_line>@Column(name = "${field.dbFieldName?replace("\"", "\\\"")}_history"
310
310
  <#if !field.insertable>, insertable = ${field.insertable?c}</#if>
311
311
  <#if !field.updatable>, updatable = ${field.updatable?c}</#if>
312
312
  )</@single_line>