Commit 5a02fdef10e5b9c4804827afc494eb5a0246bf9c

Authored by Luciano Borges
1 parent a9500195
Exists in master

Melhorias na estrutura do javascript.

archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/bookmark-edit.html
... ... @@ -38,8 +38,9 @@
38 38 <script src="js/lib/bootstrap.min.js" type="text/javascript"></script>
39 39 <script src="js/lib/purl.js" type="text/javascript"></script>
40 40 <script src="js/lib/bootbox.js" type="text/javascript"></script>
  41 + <script type="text/javascript" src="js/lib/app.js"></script>
41 42 <script src="js/proxy/auth.js" type="text/javascript"></script>
42 43 <script src="js/proxy/bookmark.js" type="text/javascript"></script>
43   - <script src="js/controller/bookmark-edit.js" type="text/javascript"></script>
44 44 <script src="js/controller/menu.js" type="text/javascript"></script>
  45 + <script src="js/controller/bookmark-edit.js" type="text/javascript"></script>
45 46 </body>
46 47 \ No newline at end of file
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/bookmark-list.html
... ... @@ -27,14 +27,15 @@
27 27 </table>
28 28 </div>
29 29 <p class="demoiselle">Aplicação de exemplo do Demoiselle 2.5.0</p>
30   - <script src="js/lib/jquery-2.1.0.min.js" type="text/javascript"></script>
31   - <script src="js/lib/bootstrap.min.js"></script>
32   - <script src="js/lib/jquery.dataTables.js"></script>
33   - <script src="js/lib/datatables.js" type="text/javascript"></script>
34   - <script src="js/lib/bootbox.js" type="text/javascript"></script>
35   - <script src="js/proxy/auth.js" type="text/javascript"></script>
36   - <script src="js/proxy/bookmark.js" type="text/javascript"></script>
37   - <script src="js/controller/bookmark-list.js" type="text/javascript"></script>
38   - <script src="js/controller/menu.js" type="text/javascript"></script>
  30 + <script type="text/javascript" src="js/lib/jquery-2.1.0.min.js"></script>
  31 + <script type="text/javascript" src="js/lib/bootstrap.min.js"></script>
  32 + <script type="text/javascript" src="js/lib/jquery.dataTables.js"></script>
  33 + <script type="text/javascript" src="js/lib/datatables.js"></script>
  34 + <script type="text/javascript" src="js/lib/bootbox.js"></script>
  35 + <script type="text/javascript" src="js/lib/app.js"></script>
  36 + <script type="text/javascript" src="js/proxy/auth.js"></script>
  37 + <script type="text/javascript" src="js/proxy/bookmark.js"></script>
  38 + <script type="text/javascript" src="js/controller/menu.js"></script>
  39 + <script type="text/javascript" src="js/controller/bookmark-list.js"></script>
39 40 </body>
40 41 </html>
41 42 \ No newline at end of file
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/home.html
... ... @@ -21,8 +21,10 @@
21 21 <p class="demoiselle">Aplicação de exemplo do Demoiselle 2.5.0</p>
22 22 <script type="text/javascript" src="js/lib/jquery-2.1.0.min.js"></script>
23 23 <script type="text/javascript" src="js/lib/bootstrap.min.js"></script>
  24 + <script type="text/javascript" src="js/lib/bootbox.js"></script>
  25 + <script type="text/javascript" src="js/lib/app.js"></script>
24 26 <script type="text/javascript" src="js/proxy/auth.js"></script>
25   - <script type="text/javascript" src="js/controller/home.js"></script>
26 27 <script type="text/javascript" src="js/controller/menu.js"></script>
  28 + <script type="text/javascript" src="js/controller/home.js"></script>
27 29 </body>
28 30 </html>
29 31 \ No newline at end of file
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/controller/bookmark-edit.js
1 1 $(function() {
2 2  
3   - $("#menu").load("menu.html", function() {
4   - AuthProxy.getUser(getUserOk, getUserFailed);
5   - $("#logout").on("click", function() {
6   - sessionStorage.removeItem('credentials');
7   - location.href = "home.html";
8   - });
9   - });
10   -
11 3 $("#delete").hide();
  4 +
12 5 $("#description").focus();
13 6  
14 7 $(document).ready(function() {
15 8 if (id = $.url().param('id')) {
16   - BookmarkProxy.load(id, loadOk, loadFailed);
  9 + BookmarkProxy.load(id).done(loadOk).fail(loadFailed);
17 10 }
18 11 });
19 12  
... ... @@ -28,16 +21,16 @@ $(function() {
28 21 };
29 22  
30 23 if (id = $("#id").val()) {
31   - BookmarkProxy.update(id, form, saveOk, saveFailed);
  24 + BookmarkProxy.update(id, form).done(saveOk).fail(saveFailed);
32 25 } else {
33   - BookmarkProxy.insert(form, saveOk, saveFailed);
  26 + BookmarkProxy.insert(form).done(saveOk).fail(saveFailed);
34 27 }
35 28 });
36 29  
37 30 $("#delete").click(function() {
38 31 bootbox.confirm("Tem certeza que deseja apagar?", function(result) {
39 32 if(result) {
40   - BookmarkProxy.remove([$("#id").val()], removeOk, removeFailed);
  33 + BookmarkProxy.remove([$("#id").val()]).done(removeOk);
41 34 }
42 35 });
43 36 });
... ... @@ -59,8 +52,9 @@ function loadOk(data) {
59 52 function loadFailed(request) {
60 53 switch (request.status) {
61 54 case 404:
62   - alert('Você está tentando acessar um registro inexistente.\r\nVocê será redirecionado.')
63   - location.href = "bookmark-list.html";
  55 + bootbox.alert("Você está tentando acessar um registro inexistente!", function(){
  56 + location.href = "bookmark-list.html";
  57 + });
64 58 break;
65 59  
66 60 default:
... ... @@ -74,10 +68,6 @@ function saveOk(data) {
74 68  
75 69 function saveFailed(request) {
76 70 switch (request.status) {
77   - case 401:
78   - alert('Você não está autenticado.');
79   - break;
80   -
81 71 case 412:
82 72 $($("form input").get().reverse()).each(function() {
83 73 var id = $(this).attr('id');
... ... @@ -106,15 +96,4 @@ function saveFailed(request) {
106 96  
107 97 function removeOk(data) {
108 98 location.href = 'bookmark-list.html';
109   -}
110   -
111   -function removeFailed(request) {
112   - switch (request.status) {
113   - case 401:
114   - alert('Você não está autenticado.');
115   - break;
116   -
117   - default:
118   - break;
119   - }
120 99 }
121 100 \ No newline at end of file
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/controller/bookmark-list.js
1 1 $(function() {
2 2  
3   - $("#menu").load("menu.html", function() {
4   - AuthProxy.getUser(getUserOk, getUserFailed);
5   - $("#logout").on("click", function() {
6   - sessionStorage.removeItem('credentials');
7   - location.href = "home.html";
8   - });
9   - });
10   -
11 3 $("#new").focus();
12 4  
13 5 $(document).ready(function() {
14   - BookmarkProxy.findAll(findAllOk);
  6 + BookmarkProxy.findAll().done(findAllOk);
15 7 });
16 8  
17 9 $("form").submit(function(event) {
... ... @@ -33,19 +25,16 @@ $(function() {
33 25 bootbox.alert({message: "Nenhum registro selecionado"});
34 26 } else {
35 27 bootbox.confirm("Tem certeza que deseja apagar?", function(result) {
36   - console.log(result);
37 28 if(result) {
38   - BookmarkProxy.remove(ids, removeOk, removeFailed);
  29 + BookmarkProxy.remove(ids).done(removeOk);
39 30 }
40 31 });
41 32 }
42 33 });
43 34 });
44 35  
45   -var oTable;
46   -
47 36 function findAllOk(data) {
48   - oTable = $('#resultList').dataTable({
  37 + var oTable = $('#resultList').dataTable({
49 38 "aoColumns" : [ {
50 39 "aTargets" : [ 0 ],
51 40 "mDataProp" : "id",
... ... @@ -86,16 +75,5 @@ function findAllOk(data) {
86 75 }
87 76  
88 77 function removeOk() {
89   - BookmarkProxy.findAll(findAllOk);
90   -}
91   -
92   -function removeFailed(request) {
93   - switch (request.status) {
94   - case 401:
95   - alert('Você não está autenticado.');
96   - break;
97   -
98   - default:
99   - break;
100   - }
  78 + BookmarkProxy.findAll().done(findAllOk);
101 79 }
102 80 \ No newline at end of file
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/controller/home.js
1 1 $(function() {
2 2  
3   - $("#menu").load("menu.html", function() {
4   - AuthProxy.getUser(getUserOk, getUserFailed);
5   - $("#logout").on("click", function() {
6   - sessionStorage.removeItem('credentials');
7   - location.href = "home.html";
8   - });
9   - });
10   -
11 3 });
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/controller/login.js
... ... @@ -3,12 +3,15 @@ $(function() {
3 3  
4 4 $("form").submit(function(event) {
5 5 event.preventDefault();
  6 +
6 7 $("[id$='-message']").hide();
  8 +
7 9 var form = {
8 10 'username' : $("#username").val().trim(),
9 11 'password' : $("#password").val().trim()
10 12 };
11   - AuthProxy.login(form, loginOk, loginFail);
  13 +
  14 + AuthProxy.login(form).done(loginOk).fail(loginFail);
12 15 });
13 16 });
14 17  
... ... @@ -19,12 +22,11 @@ function make_base_auth(user, password) {
19 22 }
20 23  
21 24 function loginOk(data) {
22   - sessionStorage.setItem('credentials', make_base_auth($("#username").val().trim(), $("#password").val().trim()));
  25 + App.setToken(make_base_auth($("#username").val().trim(), $("#password").val().trim()));
23 26 location.href = "home.html";
24 27 }
25 28  
26 29 function loginFail(request) {
27   - sessionStorage.clear();
28 30 switch (request.status) {
29 31 case 401:
30 32 $("#global-message").html("Usuário ou senha inválidos.").show();
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/controller/menu.js
1   -function getUserOk(data) {
2   - $("#username").html(data.username);
3   -}
  1 +$(function() {
  2 +
  3 + $("#menu").load("menu.html", function() {
  4 +
  5 + AuthProxy.getUser().done(getUserOk);
4 6  
5   -function getUserFailed(request) {
6   - switch (request.status) {
7   - case 401:
  7 + $("#logout").on("click", function() {
  8 + App.removeToken();
8 9 location.href = "login.html";
9   - break;
10   - default:
11   - console.log(request.statusText);
12   - break;
13   - }
14   -}
  10 + });
15 11  
16   -function logoutOk(data) {
17   - sessionStorage.removeItem('credentials');
18   - location.href = "home.html";
19   -}
  12 + });
20 13  
21   -function logoutFailed(data) {
22   - console.log('Falha no logout');
23   - console.log(data);
24   -}
  14 +});
  15 +
  16 +function getUserOk(data) {
  17 + $("#username").html(data.username);
  18 +}
25 19 \ No newline at end of file
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/lib/app.js 0 → 100644
... ... @@ -0,0 +1,29 @@
  1 +$.ajaxSetup({
  2 + error : function(request) {
  3 + switch (request.status) {
  4 + case 401:
  5 + bootbox.alert("Você não está autenticado!", function(){
  6 + location.href = "login.html";
  7 + });
  8 + break;
  9 + }
  10 + }
  11 +});
  12 +
  13 +var App = {
  14 +
  15 + tokenKey : "credentials",
  16 +
  17 + getToken : function() {
  18 + return sessionStorage.getItem(this.tokenKey);
  19 + },
  20 +
  21 + setToken : function(token) {
  22 + sessionStorage.setItem(this.tokenKey, token);
  23 + },
  24 +
  25 + removeToken : function() {
  26 + sessionStorage.removeItem(this.tokenKey);
  27 + }
  28 +
  29 +}
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/auth.js
1   -var AuthProxy = {};
  1 +var AuthProxy = {
2 2  
3   -AuthProxy.url = "api/auth";
  3 + url : "api/auth",
4 4  
5   -AuthProxy.login = function($credentials, $success, $error) {
6   - $.ajax({
7   - url : this.url,
8   - type : "POST",
9   - data : JSON.stringify($credentials),
10   - contentType : "application/json",
11   - success : $success,
12   - error : $error
13   - });
14   -};
  5 + login : function($credentials) {
  6 + return $.ajax({
  7 + url : this.url,
  8 + type : "POST",
  9 + data : JSON.stringify($credentials),
  10 + contentType : "application/json",
  11 + error: function(){ }
  12 + });
  13 + },
15 14  
16   -AuthProxy.logout = function($success, $error) {
17   - $.ajax({
18   - url : this.url,
19   - type : "DELETE",
20   - success : $success,
21   - error : $error,
22   - beforeSend : function(xhr) {
23   - console.log(AuthProxy.getCredentials());
24   - xhr.setRequestHeader("Authorization", AuthProxy.getCredentials());
25   - }
26   - });
27   -};
  15 + logout : function() {
  16 + return $.ajax({
  17 + url : this.url,
  18 + type : "DELETE",
  19 + beforeSend : function(request) {
  20 + request.setRequestHeader("Authorization", App.getToken());
  21 + }
  22 + });
  23 + },
28 24  
29   -AuthProxy.getUser = function($success, $error) {
30   - $.ajax({
31   - url : this.url,
32   - type : "GET",
33   - success : $success,
34   - error : $error,
35   - beforeSend : function(xhr) {
36   - xhr.setRequestHeader("Authorization", AuthProxy.getCredentials());
37   - }
38   - });
39   -};
  25 + getUser : function() {
  26 + return $.ajax({
  27 + url : this.url,
  28 + type : "GET",
  29 + beforeSend : function(request) {
  30 + request.setRequestHeader("Authorization", App.getToken());
  31 + }
  32 + });
  33 + }
40 34  
41   -AuthProxy.getCredentials = function() {
42   - return sessionStorage.getItem('credentials');
43 35 }
44 36 \ No newline at end of file
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/proxy/bookmark.js
1   -var BookmarkProxy = {};
  1 +var BookmarkProxy = {
  2 +
  3 + url : "api/bookmark",
  4 +
  5 + findAll : function() {
  6 + return $.ajax({
  7 + type : "GET",
  8 + url : this.url,
  9 + beforeSend : function(request) {
  10 + request.setRequestHeader("Authorization", App.getToken());
  11 + }
  12 + });
  13 + },
  14 +
  15 + load : function($id) {
  16 + return $.ajax({
  17 + type : "GET",
  18 + url : this.url + "/" + $id,
  19 + beforeSend : function(request) {
  20 + request.setRequestHeader("Authorization", App.getToken());
  21 + }
  22 + });
  23 + },
  24 +
  25 + insert : function($form) {
  26 + return $.ajax({
  27 + type : "POST",
  28 + url : this.url,
  29 + data : JSON.stringify($form),
  30 + contentType : "application/json",
  31 + beforeSend : function(request) {
  32 + request.setRequestHeader("Authorization", App.getToken());
  33 + }
  34 + });
  35 + },
2 36  
3   -BookmarkProxy.url = "api/bookmark";
4   -
5   -BookmarkProxy.findAll = function($success, $error) {
6   - $.ajax({
7   - type : "GET",
8   - url : this.url,
9   - success : $success,
10   - error : $error
11   - });
12   -};
13   -
14   -BookmarkProxy.load = function($id, $success, $error) {
15   - $.ajax({
16   - type : "GET",
17   - url : this.url + "/" + $id,
18   - success : $success,
19   - error : $error
20   - });
21   -};
22   -
23   -BookmarkProxy.insert = function($form, $success, $error) {
24   - $.ajax({
25   - type : "POST",
26   - url : this.url,
27   - data : JSON.stringify($form),
28   - contentType : "application/json",
29   - success : $success,
30   - error : $error,
31   - beforeSend : function(xhr) {
32   - xhr.setRequestHeader("Authorization", AuthProxy.getCredentials());
33   - }
34   - });
35   -};
36   -
37   -BookmarkProxy.update = function($id, $form, $success, $error) {
38   - $.ajax({
39   - type : "PUT",
40   - url : this.url + "/" + $id,
41   - data : JSON.stringify($form),
42   - contentType : "application/json",
43   - success : $success,
44   - error : $error,
45   - beforeSend : function(xhr) {
46   - xhr.setRequestHeader("Authorization", AuthProxy.getCredentials());
47   - }
48   - });
49   -};
50   -
51   -BookmarkProxy.remove = function($ids, $success, $error) {
52   - $.ajax({
53   - type : "DELETE",
54   - url : this.url,
55   - data : JSON.stringify($ids),
56   - contentType : "application/json",
57   - success : $success,
58   - error : $error,
59   - beforeSend : function(xhr) {
60   - xhr.setRequestHeader("Authorization", AuthProxy.getCredentials());
61   - }
62   - });
63   -};
  37 + update : function($id, $form) {
  38 + return $.ajax({
  39 + type : "PUT",
  40 + url : this.url + "/" + $id,
  41 + data : JSON.stringify($form),
  42 + contentType : "application/json",
  43 + beforeSend : function(request) {
  44 + request.setRequestHeader("Authorization", App.getToken());
  45 + }
  46 + });
  47 + },
  48 +
  49 + remove : function($ids) {
  50 + return $.ajax({
  51 + type : "DELETE",
  52 + url : this.url,
  53 + data : JSON.stringify($ids),
  54 + contentType : "application/json",
  55 + beforeSend : function(request) {
  56 + request.setRequestHeader("Authorization", App.getToken());
  57 + }
  58 + });
  59 + }
  60 +
  61 +}
64 62 \ No newline at end of file
... ...
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/login.html
... ... @@ -41,7 +41,9 @@
41 41 <p class="demoiselle">Aplicação de exemplo do Demoiselle 2.5.0</p>
42 42 <script type="text/javascript" src="js/lib/jquery-2.1.0.min.js"></script>
43 43 <script type="text/javascript" src="js/lib/bootstrap.min.js"></script>
44   - <script type="text/javascript" src="js/controller/login.js"></script>
  44 + <script type="text/javascript" src="js/lib/bootbox.js"></script>
  45 + <script type="text/javascript" src="js/lib/app.js"></script>
45 46 <script type="text/javascript" src="js/proxy/auth.js"></script>
  47 + <script type="text/javascript" src="js/controller/login.js"></script>
46 48 </body>
47 49 </html>
48 50 \ No newline at end of file
... ...