Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.23 KB | None | 0 0
  1. <link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">
  2. <link rel="import" href="../../bower_components/iron-icon/iron-icon.html">
  3. <link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
  4. <link rel="import" href="../../bower_components/iron-flex-layout/iron-flex-layout.html">
  5. <link rel="import" href="../../bower_components/polymer/polymer.html">
  6. <link rel="import" href="../../bower_components/paper-button/paper-button.html">
  7. <link rel="import" href="../../bower_components/paper-input/paper-input.html">
  8. <link rel="import" href="../../bower_components/paper-styles/typography.html">
  9. <link rel="import" href="../../bower_components/paper-toast/paper-toast.html">
  10.  
  11. <dom-module id="my-login">
  12. <template>
  13. <style>
  14. :root {
  15. --paper-input-container-focus-color: #1a9fd9;
  16. }
  17. :host {
  18. display: block;
  19. }
  20.  
  21. span {
  22. @apply(--paper-font-body1);
  23. }
  24. .toast-button {
  25. text-transform: none;
  26. color: white; /* white tekst */
  27. background: #1a9fd9; /* kind of blue */
  28. --paper-button-ink-color: #00567B; /* kind of dark blue */
  29. margin-left: 0px;
  30. }
  31. .usericondiv {
  32. @apply(--layout-horizontal);
  33. @apply(--layout-center-justified);
  34. }
  35. .my-icon {
  36. border: #D4D4D4 3px solid;
  37. border-radius: 150px;
  38. padding: 8px;
  39. --iron-icon-fill-color: #1a9fd9;
  40. height: 60px;
  41. width: 60px;
  42. }
  43. .my-input {
  44. padding-left: 8px;
  45. padding-right: 1px;
  46. }
  47. .my-button {
  48. width: 100%;
  49. color: white;
  50. background: #1a9fd9;
  51. --paper-button-ink-color: #00567B;
  52. margin-top: 5px;
  53. }
  54. .my-button[disabled] { /* styling als de opslaan button disabled is. */
  55. background: lightgray;
  56. color: darkgray;
  57. }
  58. </style>
  59.  
  60. <paper-toast id="toast_reeds_aangelogd" duration="0" text="U bent al ingelogd!">
  61. <paper-button on-click="_toast_clicked" class="toast-button">Sluiten</paper-button>
  62. </paper-toast>
  63.  
  64. <div class="usericondiv">
  65. <iron-icon icon="icons:perm-identity" class="my-icon"></iron-icon>
  66. </div>
  67. <div class="my-input">
  68. <paper-input id="email_element" on-keydown="_checkForEnter" label="gebruikersnaam" value="{{username}}"></paper-input>
  69. <paper-input id="wachtwoord_element" on-keydown="_checkForEnter" label="wachtwoord" type="password" value="{{_password}}"></paper-input>
  70. </div>
  71. <paper-button
  72. id="login_button_element"
  73. class="my-button"
  74. on-click="_ophalen_login_request_handler"
  75. raised>
  76. Inloggen
  77. </paper-button>
  78.  
  79. <iron-ajax
  80. id="ajax_login"
  81. method="POST"
  82. url="/login"
  83. handle-as="json"
  84. on-response="_ophalen_login_response_handler">
  85. </iron-ajax>
  86.  
  87. </template>
  88.  
  89. <script>
  90. (function() {
  91. 'use strict';
  92.  
  93. /* _xxxx private : geen external data binding - geen notify
  94. _c_xx private constant : geen external binding, constant - geen notify
  95. c_xx public constant : one way external databinding [[c_xx]] - geen notify nodig
  96. xxxx public : two way external databinding {{xxxx}} - notify nodig
  97. */
  98. Polymer({
  99. is: 'my-login',
  100.  
  101. properties: {
  102. _password: {
  103. type: String,
  104. value: "geheim", /* om snel te testen zonder steeds input te doen */
  105. },
  106. rol: {
  107. type: String,
  108. notify: true,
  109. },
  110. username: {
  111. type: String,
  112. value: "john.smeets@hu.nl", /* om snel te testen zonder steeds input te doen */
  113. notify: true
  114. },
  115. },
  116.  
  117. _checkForEnter: function (e) {
  118. if (e.currentTarget.id == "email_element") {
  119. if (e.keyCode === 13) {
  120. var lWachtwoordElement =
  121. this.$.wachtwoord_element; /* haal uit de $ collectie van alle polymer element
  122. het element met id = "wachtwoord_element" */
  123. lWachtwoordElement.focus(); // plaats de cursor er in
  124. }
  125. } else if (e.keyCode === 13) {
  126. var lLoginButton =
  127. this.$.login_button_element; /* haal uit de $ collectie van alle polymer element
  128. het element met id = "login_button_element" */
  129. this.$.login_button_element.click(); // forceer een klik
  130. }
  131. },
  132.  
  133. _go_home: function() {
  134. var lApp = document.querySelector('my-app'); //het polymer element <my-app>
  135. var lAppRouter = lApp.$.approuter; // het html-element <app-route> met id=approuter
  136. lAppRouter.data={page: ""}; // vul het data attribute met de homepage url
  137. // door de two way binding in <app-route> en <app-location>
  138. // zal ook de url echt wijzigen
  139. },
  140.  
  141. _ophalen_login_request_handler: function() {
  142. console.log("_ophalen_login_request_handler username=" + this.username);
  143. if (this.rol == "undefined") {
  144. this.$.ajax_login.contentType="application/json";
  145. this.$.ajax_login.body={
  146. "username":this.username,
  147. "password":this._password
  148. };
  149. this.$.ajax_login.generateRequest();
  150. } else {
  151. var lToast = this.$.toast_reeds_aangelogd; // meldt reeds aangelogd
  152. lToast.open(); /* het sluiten van deze error verwijst */
  153. /* terug naar home page */
  154. }
  155. },
  156.  
  157. _ophalen_login_response_handler: function(request) {
  158. console.log("_ophalen_login_response_handler username="+this.username);
  159. this.rol = request.detail.response.rol;
  160. /* this._password = ""; /* om snel te kunnen testen is dit verwijderd */
  161. if (this.rol == "undefined") { //als aanloggen mislukt
  162. this.$.email_element.invalid = true; // markeer email-element
  163. this.$.wachtwoord_element.invalid = true; // markeer wachtwoord-element
  164.  
  165. } else { // als aanloggen ok
  166. this.$.email_element.invalid = false; // verwijder fout markering
  167. this.$.wachtwoord_element.invalid = false; // verwijder fout markering
  168. this._go_home(); // ga naar de home page.
  169. }
  170. },
  171.  
  172. _toast_clicked: function(e) {
  173. var lToast = e.path[1]; //path[0] is de button. path[1] is de owner etc.
  174. lToast.toggle(); //sluit de foutmelding
  175. this._go_home(); // en ga verder op de home page
  176. },
  177.  
  178. });
  179.  
  180. })();
  181. </script>
  182. </dom-module>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement