1<!DOCTYPE html> 2<html> 3 4<head> 5 <title>Portal do Aluno</title> 6 7 <!-- start: Meta --> 8 <meta http-equiv="content-type" content="text/html; charset=utf-8"> 9 10 <meta charset="utf-8"> 11 12 <meta name="description" content="TOTVS Portal - TOTVS Educacional"> 13 <meta name="keywords" content="totvs"> 14 <meta name="author" content="totvs"> 15 <!-- start: Mobile Specific --> 16 <meta name="viewport" content="width=device-width, initial-scale=1"> 17 <!-- end: Mobile Specific --> 18 <!-- end: Meta --> 19 <!-- start: Favicon and Touch Icons --> 20 <link rel="shortcut icon" href="../assets/img/favicon.ico" type="image/x-icon"> 21 <!-- end: Favicon and Touch Icons --> 22 <link rel="stylesheet" href="../../../../js/libs/bootstrap/dist/css/bootstrap.min.css"> 23 <link rel="stylesheet" href="assets/css/animacao.css"> 24 <link rel="stylesheet" href="../../../../js/libs/AngularJS-Toaster/toaster.min.css"> 25 <!-- Custom Stylesheet --> 26 <link rel="stylesheet" href="assets/css/style.css"> 27 <link rel="stylesheet" href="assets/css/customProviders.css"> 28</head> 29 30<body ng-cloak class="align" ng-controller="EduLoginController as controller"> 31 32 <!-- Component TOASTER --> 33 <toaster-container toaster-options="{'time-out':3000, 'close-button': true}"></toaster-container> 34 35 <!-- LOGIN FORM --> 36 <div class="container"> 37 <!-- Modal --> 38 <div class="modal fade" id="modalLogin" tabindex="-1" role="dialog" aria-labelledby="modalLoginLabel"> 39 <div class="modal-dialog modal-md" role="document"> 40 <div class="modal-content"> 41 <div class="modal-header header-login"> 42 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span 43 aria-hidden="true">×</span></button> 44 <h4 class="modal-title" id="modalLoginLabel"> 45 {{ ::'l-vincular-contas' | i18n }} 46 </h4> 47 </div> 48 <div class="modal-body body-login"> 49 <div class="row"> 50 <div class="col-md-12 col-lg-12 col-xs-12 col-sm-12 login"> 51 <div class="form__field"> 52 {{ ::'l-usuario-nao-associado' | i18n }} 53 <br><br> 54 {{ ::'l-fique-tranquilo' | i18n }} 55 </div> 56 <div class="form__field"> 57 <label for="User"> 58 <object data="assets/img/user.svg" width="26px" height="26px" 59 type="image/svg+xml"> 60 <img src="assets/img/user.png" alt="user.svg" /> 61 </object> 62 <span class="hidden">{{ ::'l-usuario' | i18n }}</span> 63 </label> 64 <input id="User2" ng-model="user" type="text" tabindex="5" name="User" 65 class="form__input" placeholder="{{ ::'l-usuario' | i18n }}" required> 66 </div> 67 <div class="form__field"> 68 <label for="Pass"> 69 <object data="assets/img/senha.svg" width="26px" height="26px" 70 type="image/svg+xml"> 71 <img src="assets/img/senha.png" alt="senha.svg" /> 72 </object> 73 <span class="hidden">{{ ::'l-senha' | i18n }}</span> 74 </label> 75 <input id="Pass2" ng-model="pass" type="password" tabindex="6" name="Pass" 76 class="form__input" placeholder="{{ ::'l-senha' | i18n }}" required> 77 </div> 78 <div class="form__field" 79 ng-if="controller.exibirAlias && !controller.exibirFormAlterarSenha"> 80 <label for="Alias"> 81 <object data="assets/img/alias.svg" width="26px" height="26px" 82 type="image/svg+xml"> 83 <img src="assets/img/alias.png" alt="alias.svg" /> 84 </object>
85 <span class="hidden">{{ ::'l-alias' | i18n }}</span> 86 </label> 87 <select id="Alias2" name="Alias" tabindex="7" class="form__input selection" 88 ng-change="controller.aliasSelectChanged()" required 89 ng-options="alias as alias for alias in controller.listaAlias track by alias" 90 ng-model="controller.alias"> 91 </select> 92 </div> 93 </div> 94 </div> 95 <br /> 96 </div> 97 <div class="modal-footer login"> 98 <input type="button" ng-click="controller.onClickAssociarContas()" tabindex="8" value="{{ ::'l-associar-contas' | i18n }}"> 99 </div> 100 </div> 101 </div> 102 </div> 103 104 <!-- LOADING --> 105 <div id="loading-screen" class="overlay" ng-if="pendingRequests > 0"> 106 <img src="../assets/img/loading.gif"> 107 <p class="text-center text-muted">{{ ::'loading' | i18n }}</p> 108 </div> 109 <div class="logo hidden-box"> 110 <img src="assets/img/logo-responsivo.png" alt="marca"> 111 </div> 112 <div class="login-box hidden-box"> 113 <div class="box-header"> 114 <h1>{{ ::'l-portal-aluno' | i18n }}</h1> 115 </div> 116 <form name="controller.formLogin" method="POST" class="form login" 117 ng-attr-action="{{controller.urlLoginPost}}" 118 ng-show="!controller.exibirFormEsqueceuSenha && !controller.exibirFormNovaSenha && !controller.exibirFormAlterarSenha" 119 ng-submit="$event.preventDefault() && controller.validarDadosLogin()"> 120 <div class="form__field"> 121 <label for="User"> 122 <object data="assets/img/user.svg" width="26px" height="26px" type="image/svg+xml"> 123 <img src="assets/img/user.png" alt="user.svg" /> 124 </object> 125 <span class="hidden">{{ ::'l-usuario' | i18n }}</span> 126 </label> 127 <input id="User" ng-model="user" type="text" tabindex="1" name="User" class="form__input" 128 placeholder="{{ ::'l-usuario' | i18n }}" required> 129 </div> 130 <div class="form__field"> 131 <label for="Pass"> 132 <object data="assets/img/senha.svg" width="26px" height="26px" type="image/svg+xml"> 133 <img src="assets/img/senha.png" alt="senha.svg" /> 134 </object> 135 <span class="hidden">{{ ::'l-senha' | i18n }}</span> 136 </label> 137 <input id="Pass" ng-model="pass" type="password" tabindex="2" name="Pass" class="form__input" 138 placeholder="{{ ::'l-senha' | i18n }}" required> 139 </div> 140 <div class="form__field" ng-show="controller.exibirAlias"> 141 <label for="Alias"> 142 <object data="assets/img/alias.svg" width="26px" height="26px" type="image/svg+xml"> 143 <img src="assets/img/alias.png" alt="alias.svg" /> 144 </object> 145 <span class="hidden">{{ ::'l-alias' | i18n }}</span> 146 </label> 147 <select id="Alias" name="Alias" tabindex="3" class="form__input selection" 148 ng-change="controller.aliasSelectChanged()" required 149 ng-options="alias as alias for alias in controller.listaAlias track by alias" 150 ng-model="controller.alias"> 151 </select> 152 </div> 153 154 <div class="form__field"> 155 <button type="submit" class="btn btn-acessar-mobile" data-backdrop="false" tabindex="4" ng-submit="controller.validarDadosLogin()" ng-click="controller.validarDadosLogin()">{{ ::'l-acessar' | i18n }}</button> 156 </div> 157 <div ng-if="controller.oauthProviders.length > 0"> 158 <p style="color: white">{{ ::'l-ou-acesse-via-external' | i18n }}</p> 159 <p ng-repeat="provider in controller.oauthProviders">
160 <span ng-if="provider.Type !== 1"> 161 <!--Botão com customização sem background--> 162 <span class="custom-button" ng-click="externalLogin(provider.Id)" ng-style="{{provider._styleStr}}" ng-if="!isNullOrUndefined(provider.CustomizeEntity) && (isNumeral(provider.CustomizeEntity.ImageInBackGround) && provider.CustomizeEntity.ImageInBackGround == 0) || provider.CustomizeEntity.ImageInBackGround == false"> 163 <span class="custom-button-wrapper" 164 ng-if="(isNumeric(provider.CustomizeEntity.TextBeforeImage) && provider.CustomizeEntity.TextBeforeImage == 1) || provider.CustomizeEntity.TextBeforeImage == true"> 165 <span class="custom-button-text" 166 ng-if="isNullOrWhiteSpace(provider.CustomizeEntity.Text) && isNullOrWhiteSpace(provider.ImageBase64)">{{provider.ProviderName}}</span> 167 <span class="custom-button-text" 168 ng-if="!isNullOrWhiteSpace(provider.CustomizeEntity.Text)">{{provider.CustomizeEntity.Text}}</span> 169 <span class="custom-button-icon" ng-if="!isNullOrWhiteSpace(provider.ImageBase64)"> 170 <img ng-src="data:image/png;base64,{{provider.ImageBase64}}" /> 171 </span> 172 </span> 173 <span class="custom-button-wrapper" 174 ng-if="(isNumeric(provider.CustomizeEntity.TextBeforeImage) && provider.CustomizeEntity.TextBeforeImage == 0) || provider.CustomizeEntity.TextBeforeImage == false"> 175 <span class="custom-button-icon" ng-if="!isNullOrWhiteSpace(provider.ImageBase64)"> 176 <img ng-src="data:image/png;base64,{{provider.ImageBase64}}" /> 177 </span> 178 <span class="custom-button-text" 179 ng-if="isNullOrWhiteSpace(provider.CustomizeEntity.Text) && isNullOrWhiteSpace(provider.ImageBase64)">{{provider.ProviderName}}</span> 180 <span class="custom-button-text" 181 ng-if="!isNullOrWhiteSpace(provider.CustomizeEntity.Text)">{{provider.CustomizeEntity.Text}}</span> 182 </span> 183 </span> 184 <!--Botão com customização com background--> 185 <span class="custom-button" ng-click="externalLogin(provider.Id)" 186 ng-style="{{provider._styleStr}}" 187 ng-if="!isNullOrUndefined(provider.CustomizeEntity) && (isNumeral(provider.CustomizeEntity.ImageInBackGround) && provider.CustomizeEntity.ImageInBackGround == 1) || provider.CustomizeEntity.ImageInBackGround == true"> 188 </span> 189 <!--Botão sem customização--> 190 <span class="custom-button" ng-click="externalLogin(provider.Id)" ng-style="{{provider._styleStr}}" ng-if="isNullOrUndefined(provider.CustomizeEntity) "> 191 <span class="custom-button-wrapper"> 192 <span class="custom-button-icon" ng-if="!isNullOrWhiteSpace(provider.ImageBase64)"> 193 <img ng-src="data:image/png;base64,{{provider.ImageBase64}}" /> 194 </span> 195 <span class="custom-button-text">{{provider.ProviderName}}</span> 196 </span> 197 </span> 198 </span> 199 <span ng-if="provider.Type === 1"> 200 <!--Facebook--> 201 <fb:login-button scope="public_profile,email" onlogin="efetuarLoginComFacebookCallback();" 202 max-rows="1" size="large" button-type="login_with" show-faces="false" 203 auto-logout-link="false" use-continue-as="true"> 204 {{ ::'l-botao-acesse-facebook' | i18n }} 205 </fb:login-button> 206 </span> 207 </p> 208 </div> 209 <p class="small"> 210 <a href="#" ng-click="controller.exibirEsqueceuSenha(true)" tabindex="5">{{ ::'l-esqueceu-senha' | i18n}}</a> 211 </p> 212 </form> 213 <div class="box-title" ng-if="controller.exibirFormEsqueceuSenha"> 214 <h2>{{ ::'l-esqueceu-senha' | i18n }}</h2> 215 </div> 216 <form name="controller.formRecover" class="form login" ng-if="controller.exibirFormEsqueceuSenha"> 217 <div class="form__field"> 218 <label for="UserRecover"> 219 <object data="assets/img/user.svg" width="26px" height="26px" type="image/svg+xml"> 220 <img src="assets/img/user.png" alt="user.svg" /> 221 </object>
222 <span class="hidden">{{ ::'l-usuario' | i18n }}</span> 223 </label> 224 <input id="UserRecover" ng-model="controller.userRecover" type="text" name="UserRecover" class="form__input" tabindex="1" placeholder="{{ ::'l-usuario' | i18n }}" required> 225 </div> 226 227 <div class="form__field"> 228 <label for="Email"> 229 <object data="assets/img/email.svg" width="26px" height="26px" type="image/svg+xml"> 230 <img src="assets/img/email.png" alt="email.svg" /> 231 </object> 232 <span class="hidden">{{ ::'l-email' | i18n }}</span> 233 </label> 234 <input id="Email" ng-model="controller.emailRecover" type="email" name="Email" class="form__input" tabindex="1" placeholder="{{ ::'l-email' | i18n }}" required> 235 </div> 236 <div class="form__field"> 237 <input type="submit" ng-click="controller.registrarEsqueciSenha()" tabindex="4" value="{{ ::'l-continuar' | i18n }}"> 238 </div> 239 <p class="small"> 240 <a href="#" ng-click="controller.exibirEsqueceuSenha(false)"> 241 {{ 242 ::'l-voltar-realizar-login' | i18n 243 }} 244 </a> 245 </p> 246 </form> 247 <form name="controller.formNewPassword" class="form login" ng-if="controller.exibirFormNovaSenha"> 248 <div class="form__field"> 249 <label for="PassRecover"> 250 <object data="assets/img/senha.svg" width="26px" height="26px" type="image/svg+xml"> 251 <img src="assets/img/senha.png" alt="senha.svg" /> 252 </object> 253 <span class="hidden">{{ ::'l-senha1' | i18n }}</span> 254 </label> 255 <input id="PassRecover" ng-model="controller.novaSenha" type="password" name="PassRecover" tabindex="2" class="form__input" placeholder="{{ ::'l-senha1' | i18n }}" required> 256 </div> 257 <div class="form__field"> 258 <label for="PassRecover2"> 259 <object data="assets/img/senha.svg" width="26px" height="26px" type="image/svg+xml"> 260 <img src="assets/img/senha.png" alt="senha.svg" /> 261 </object> 262 <span class="hidden">{{ ::'l-senha2' | i18n }}</span> 263 </label> 264 <input id="PassRecover2" ng-model="controller.novaSenha2" type="password" name="PassRecover2" tabindex="2" class="form__input" placeholder="{{ ::'l-senha2' | i18n }}" required> 265 </div> 266 <div class="form__field"> 267 <input type="submit" ng-click="controller.registrarNovaSenha()" tabindex="4" value="{{ ::'l-continuar' | i18n }}"> 268 </div> 269 </form> 270 <form name="controller.formAlterarSenha" class="form login" ng-if="controller.exibirFormAlterarSenha"> 271 <div class="form__field"> 272 <label for="usuario"> 273 <object data="assets/img/user.svg" width="26px" height="26px" type="image/svg+xml"> 274 <img src="assets/img/user.png" alt="user.svg" /> 275 </object> 276 <span class="hidden">{{ ::'l-usuario' | i18n }}</span> 277 </label> 278 <input id="usuario" ng-model="controller.usuario" type="text" name="usuario" class="form__input" tabindex="1" placeholder="{{ ::'l-usuario' | i18n }}" required> 279 </div> 280 <div class="form__field"> 281 <label for="OldPass"> 282 <object data="assets/img/senha.svg" width="26px" height="26px" type="image/svg+xml"> 283 <img src="assets/img/senha.png" alt="senha.svg" /> 284 </object>
285 <span class="hidden">{{ ::'l-senha-antiga' | i18n }}</span> 286 </label> 287 <input id="OldPass" ng-model="controller.antigaSenha" type="password" name="OldPass" class="form__input" tabindex="2" placeholder="{{ ::'l-senha-antiga' | i18n }}" required> 288 </div> 289 <div class="form__field"> 290 <label for="PassRecover"> 291 <object data="assets/img/senha.svg" width="26px" height="26px" type="image/svg+xml"> 292 <img src="assets/img/senha.png" alt="senha.svg" /> 293 </object> 294 <span class="hidden">{{ ::'l-senha1' | i18n }}</span> 295 </label> 296 <input id="PassRecover" ng-model="controller.novaSenha" type="password" name="PassRecover" tabindex="3" class="form__input" placeholder="{{ ::'l-senha1' | i18n }}" required> 297 </div> 298 <div class="form__field"> 299 <label for="PassRecover2"> 300 <object data="assets/img/senha.svg" width="26px" height="26px" type="image/svg+xml"> 301 <img src="assets/img/senha.png" alt="senha.svg" /> 302 </object> 303 <span class="hidden">{{ ::'l-senha2' | i18n }}</span> 304 </label> 305 <input id="PassRecover2" ng-model="controller.novaSenha2" type="password" name="PassRecover2" tabindex="4" class="form__input" placeholder="{{ ::'l-senha2' | i18n }}" required> 306 </div> 307 <div class="form__field"> 308 <input type="submit" ng-click="controller.alterarSenha()" tabindex="5" value="{{ ::'btn-save' | i18n }}"> 309 </div> 310 </form> 311 </div> 312 </div> 313 314 <div class="modal fade" id="modalMobileDetect" tabindex="-1" aria-labelledby="mInfoLabelmodalDisciplinas"> 315 <div class="modal-dialog modal-lg" role="document"> 316 <div class="modal-content"> 317 <div class="modal-header"> 318 <h4 class="modal-title text-center" id="mInfoLabelModalDownloadMateriais"> 319 {{ ::'l-dispositivo-mobile' | i18n }} 320 </h4> 321 </div> 322 <div class="modal-body"> 323 <div class="panel-body"> 324 <p>{{ ::'l-msg-mobile-1' | i18n }}</p> 325 <p>{{ ::'l-msg-mobile-2' | i18n }}</p> 326 </div> 327 </div> 328 <div class="modal-footer"> 329 <button type="button" class="btn btn-acessar-mobile" data-backdrop="false" ng-click="controller.redirecionarMobile()"> 330 <span> 331 {{ :: 'l-btn-acessar-versao-mobile' | i18n }} 332 </span> 333 <object data="assets/img/mobile.svg" width="26px" height="26px" type="image/svg+xml"> 334 <img src="assets/img/mobile.png" alt="mobile.svg" /> 335 </object> 336 </button> 337 <button type="button" class="btn btn-continuar-site" data-dismiss="modal" data-backdrop="false"> 338 {{ ::'l-btn-continuar-portal' | i18n }} 339 </button> 340 </div> 341 </div> 342 </div> 343 </div> 344 345
345<script src="https://connect.facebook.net/pt_BR/sdk.js"></script>
345 346
346<script src="../../../../js/libs/jquery-3.6.0/dist/jquery.min.js"></script>
346 347
347<script src="../../../../js/libs/angular-custom/angular.min.js"></script>
347 348
348<script src="../../../../js/libs/angular-ui-select/dist/select.min.js"></script>
348 349
349<script src="../../../../js/libs/angular-resource/angular-resource.js"></script>
349 350
350<script src="../../../../js/libs/angular-i18n/angular-locale_pt-br.js"></script>
350 351
351<script src="../../../../js/libs/angular-sanitize/angular-sanitize.js"></script>
351 352
352<script src="../../../../js/libs/angular-animate/angular-animate.js"></script>
352 353
353<script src="../../../../js/libs/angular-scroll/angular-scroll.min.js"></script>
353 354
354<script src="../../../../js/libs/angular-nestable/src/angular-nestable.js"></script>
354 355 356
356<script src="../../../../js/libs/angular-bootstrap/ui-bootstrap-tpls.js"></script>
356 357
357<script src="../../../../js/libs/bootstrap/dist/js/bootstrap.js"></script>
357 358
358<script src="../../../../js/libs/AngularJS-Toaster/toaster.js"></script>
358 359
359<script src="../../../../js/libs/mobile-detect/mobile-detect.min.js"></script>
359 360 361
361<script src="../../../../js/libs/angular-hotkeys/build/hotkeys.js"></script>
361 362 363
363<script src="../../../../js/libs/ngMask/dist/ngMask.min.js"></script>
363 364 365
365<script src="../../../../js/libs/telerik.kendoui/js/kendo.all.min.js"></script>
365 366
366<script src="../../../../js/libs/totvs-html-framework/totvs-html-framework.min.js"></script>
366 367 368 <!-- Script de configuração global(CONSTANTES) --> 369
369<script src="../../../../js/totvs-app.global.config.js"></script>
369 370 371 <!-- Script de configuração global(CONSTANTES) para o Edu-Portal Educacional --> 372
372<script src="../js/edu-constantes.global.config.js"></script>
372 373 374 <!-- OpenID Connect Client --> 375
375<script src="../../../../js/libs/oidc-client/dist/oidc-client.min.js" data-main="js/main" 376 type="text/javascript"></script>
376 377 378 <!-- Script de Controller Login --> 379
379<script src="login.controller.js"></script>
379 380</body> 381 382</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.