From 13f9b0801c7dcef316ed189668d9698d3cb97d7f Mon Sep 17 00:00:00 2001 From: "Eduardo L. Buratti" <elb09@c3sl.ufpr.br> Date: Wed, 13 Nov 2013 09:42:22 -0200 Subject: [PATCH] web: Add login modal Signed-off-by: Eduardo L. Buratti <elb09@c3sl.ufpr.br> --- web/app/img/saving.gif | Bin 0 -> 7784 bytes web/app/partials/header.html | 9 +++++--- web/app/partials/login.html | 29 +++++++++++++++++++++++++ web/assets/js/app.js | 41 +++++++++++++++++++++++++++++++++-- web/assets/less/main.less | 13 +++++++++++ 5 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 web/app/img/saving.gif create mode 100644 web/app/partials/login.html diff --git a/web/app/img/saving.gif b/web/app/img/saving.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a84f4a319437b93aa8598fcd548319da4cb352b GIT binary patch literal 7784 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 literal 0 HcmV?d00001 diff --git a/web/app/partials/header.html b/web/app/partials/header.html index 1ff3e1c..d664e23 100644 --- a/web/app/partials/header.html +++ b/web/app/partials/header.html @@ -3,12 +3,13 @@ <li><a href="">Pular para o conteúdo</a></li> <li><a href="">Ouvidoria</a></li> <li><a href="">Mapa do site</a></li> + <li><a href="" ng-click="login.show()">Acesso Restrito</a></li> </ul> <div class="header-font-size"> - <a class="dec" href="#" title="Diminuir fonte">A-</a> - <a class="reset" href="#" title="Tamanho normal da fonte">A </a> - <a class="inc" href="#" title="Aumentar fonte">A+</a> + <a class="dec" href="" title="Diminuir fonte">A-</a> + <a class="reset" href="" title="Tamanho normal da fonte">A </a> + <a class="inc" href="" title="Aumentar fonte">A+</a> </div> <div class="header-title"> @@ -30,6 +31,8 @@ </div> </div> +<div ng-include="login.includeUrl"></div> + <div class="container"> <div ng-show="bigButtons.collapsed"> <div ng-include="'partials/breadcrumb.html'"></div> diff --git a/web/app/partials/login.html b/web/app/partials/login.html new file mode 100644 index 0000000..fa8651a --- /dev/null +++ b/web/app/partials/login.html @@ -0,0 +1,29 @@ +<div class="modal-backdrop fade in"></div> +<div class="modal"> + <div class="modal-dialog"> + <div class="modal-content"> + <form role="form" ng-submit="login.submit()"> + <div class="modal-header"> + <h4 class="modal-title">Acesso Restrito</h4> + </div> + <div class="modal-body"> + <div class="alert alert-danger" ng-show="login.error"><strong>Erro!</strong> {{ login.error }}</div> + <div class="form-group"> + <label for="username">Usuário:</label> + <input type="text" class="form-control" id="username" ng-model="login.username" autofocus> + </div> + <div class="form-group"> + <label for="password">Senha:</label> + <input type="password" class="form-control" id="password" ng-model="login.password"> + </div> + </div> + <div class="modal-footer"> + <button class="btn btn-default" ng-click="login.cancel()">Cancelar</button> + <button type="submit" class="btn btn-primary"> + Login <i class="saving" ng-show="login.loading"></i> + </button> + </div> + </form> + </div> + </div> +</div> \ No newline at end of file diff --git a/web/assets/js/app.js b/web/assets/js/app.js index 2b349dd..ad4238d 100644 --- a/web/assets/js/app.js +++ b/web/assets/js/app.js @@ -63,7 +63,44 @@ angular.module('datasid', ['ngResource', 'ui.router', 'datasid.install', 'datasi active: false }, ], - } + }; + + $scope.login = { + includeUrl: '', + error: null, + loading: false, + username: '', + password: '', + show: function () { + this.includeUrl = 'partials/login.html'; + }, + hide: function () { + this.includeUrl = ''; + }, + submit: function () { + this.loading = true; + + setTimeout(function () { + $scope.$apply(function () { + $scope.login.loading = false; + + if (($scope.login.username === 'admin') && ($scope.login.password === '123mudar')) { + $scope.login.hide(); + } + else { + $scope.login.error = 'Usuário ou senha inválidos.'; + } + }); + }, 1000); + }, + cancel: function () { + this.error = null; + this.loading = false; + this.username = ''; + this.password = ''; + this.hide(); + } + }; $scope.$on("$stateChangeSuccess", function(event, toState, toParams, fromState, fromParams) { if (typeof $state.current === "undefined") @@ -85,5 +122,5 @@ angular.module('datasid', ['ngResource', 'ui.router', 'datasid.install', 'datasi } }); } - }) + }); }); \ No newline at end of file diff --git a/web/assets/less/main.less b/web/assets/less/main.less index 914e053..100593d 100644 --- a/web/assets/less/main.less +++ b/web/assets/less/main.less @@ -146,3 +146,16 @@ p.note { padding: 14px 20px; mc-auto-number-format: '{b}Note: {/b}'; } + +.modal { + display: block; +} + +.saving { + display: inline-block; + width: 16px; + height: 16px; + margin: 0px -4px -3px 4px; + background-image: url("../img/saving.gif"); + background-repeat: no-repeat; +} \ No newline at end of file -- GitLab