Commit 5a02fdef10e5b9c4804827afc494eb5a0246bf9c
1 parent
a9500195
Exists in
master
Melhorias na estrutura do javascript.
Showing
12 changed files
with
167 additions
and
197 deletions
Show diff stats
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
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 | ... | ... |