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,8 +38,9 @@
38 <script src="js/lib/bootstrap.min.js" type="text/javascript"></script> 38 <script src="js/lib/bootstrap.min.js" type="text/javascript"></script>
39 <script src="js/lib/purl.js" type="text/javascript"></script> 39 <script src="js/lib/purl.js" type="text/javascript"></script>
40 <script src="js/lib/bootbox.js" type="text/javascript"></script> 40 <script src="js/lib/bootbox.js" type="text/javascript"></script>
  41 + <script type="text/javascript" src="js/lib/app.js"></script>
41 <script src="js/proxy/auth.js" type="text/javascript"></script> 42 <script src="js/proxy/auth.js" type="text/javascript"></script>
42 <script src="js/proxy/bookmark.js" type="text/javascript"></script> 43 <script src="js/proxy/bookmark.js" type="text/javascript"></script>
43 - <script src="js/controller/bookmark-edit.js" type="text/javascript"></script>  
44 <script src="js/controller/menu.js" type="text/javascript"></script> 44 <script src="js/controller/menu.js" type="text/javascript"></script>
  45 + <script src="js/controller/bookmark-edit.js" type="text/javascript"></script>
45 </body> 46 </body>
46 \ No newline at end of file 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,14 +27,15 @@
27 </table> 27 </table>
28 </div> 28 </div>
29 <p class="demoiselle">Aplicação de exemplo do Demoiselle 2.5.0</p> 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 </body> 40 </body>
40 </html> 41 </html>
41 \ No newline at end of file 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,8 +21,10 @@
21 <p class="demoiselle">Aplicação de exemplo do Demoiselle 2.5.0</p> 21 <p class="demoiselle">Aplicação de exemplo do Demoiselle 2.5.0</p>
22 <script type="text/javascript" src="js/lib/jquery-2.1.0.min.js"></script> 22 <script type="text/javascript" src="js/lib/jquery-2.1.0.min.js"></script>
23 <script type="text/javascript" src="js/lib/bootstrap.min.js"></script> 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 <script type="text/javascript" src="js/proxy/auth.js"></script> 26 <script type="text/javascript" src="js/proxy/auth.js"></script>
25 - <script type="text/javascript" src="js/controller/home.js"></script>  
26 <script type="text/javascript" src="js/controller/menu.js"></script> 27 <script type="text/javascript" src="js/controller/menu.js"></script>
  28 + <script type="text/javascript" src="js/controller/home.js"></script>
27 </body> 29 </body>
28 </html> 30 </html>
29 \ No newline at end of file 31 \ No newline at end of file
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/controller/bookmark-edit.js
1 $(function() { 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 $("#delete").hide(); 3 $("#delete").hide();
  4 +
12 $("#description").focus(); 5 $("#description").focus();
13 6
14 $(document).ready(function() { 7 $(document).ready(function() {
15 if (id = $.url().param('id')) { 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,16 +21,16 @@ $(function() {
28 }; 21 };
29 22
30 if (id = $("#id").val()) { 23 if (id = $("#id").val()) {
31 - BookmarkProxy.update(id, form, saveOk, saveFailed); 24 + BookmarkProxy.update(id, form).done(saveOk).fail(saveFailed);
32 } else { 25 } else {
33 - BookmarkProxy.insert(form, saveOk, saveFailed); 26 + BookmarkProxy.insert(form).done(saveOk).fail(saveFailed);
34 } 27 }
35 }); 28 });
36 29
37 $("#delete").click(function() { 30 $("#delete").click(function() {
38 bootbox.confirm("Tem certeza que deseja apagar?", function(result) { 31 bootbox.confirm("Tem certeza que deseja apagar?", function(result) {
39 if(result) { 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,8 +52,9 @@ function loadOk(data) {
59 function loadFailed(request) { 52 function loadFailed(request) {
60 switch (request.status) { 53 switch (request.status) {
61 case 404: 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 break; 58 break;
65 59
66 default: 60 default:
@@ -74,10 +68,6 @@ function saveOk(data) { @@ -74,10 +68,6 @@ function saveOk(data) {
74 68
75 function saveFailed(request) { 69 function saveFailed(request) {
76 switch (request.status) { 70 switch (request.status) {
77 - case 401:  
78 - alert('Você não está autenticado.');  
79 - break;  
80 -  
81 case 412: 71 case 412:
82 $($("form input").get().reverse()).each(function() { 72 $($("form input").get().reverse()).each(function() {
83 var id = $(this).attr('id'); 73 var id = $(this).attr('id');
@@ -106,15 +96,4 @@ function saveFailed(request) { @@ -106,15 +96,4 @@ function saveFailed(request) {
106 96
107 function removeOk(data) { 97 function removeOk(data) {
108 location.href = 'bookmark-list.html'; 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 \ No newline at end of file 100 \ No newline at end of file
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/controller/bookmark-list.js
1 $(function() { 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 $("#new").focus(); 3 $("#new").focus();
12 4
13 $(document).ready(function() { 5 $(document).ready(function() {
14 - BookmarkProxy.findAll(findAllOk); 6 + BookmarkProxy.findAll().done(findAllOk);
15 }); 7 });
16 8
17 $("form").submit(function(event) { 9 $("form").submit(function(event) {
@@ -33,19 +25,16 @@ $(function() { @@ -33,19 +25,16 @@ $(function() {
33 bootbox.alert({message: "Nenhum registro selecionado"}); 25 bootbox.alert({message: "Nenhum registro selecionado"});
34 } else { 26 } else {
35 bootbox.confirm("Tem certeza que deseja apagar?", function(result) { 27 bootbox.confirm("Tem certeza que deseja apagar?", function(result) {
36 - console.log(result);  
37 if(result) { 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 function findAllOk(data) { 36 function findAllOk(data) {
48 - oTable = $('#resultList').dataTable({ 37 + var oTable = $('#resultList').dataTable({
49 "aoColumns" : [ { 38 "aoColumns" : [ {
50 "aTargets" : [ 0 ], 39 "aTargets" : [ 0 ],
51 "mDataProp" : "id", 40 "mDataProp" : "id",
@@ -86,16 +75,5 @@ function findAllOk(data) { @@ -86,16 +75,5 @@ function findAllOk(data) {
86 } 75 }
87 76
88 function removeOk() { 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 \ No newline at end of file 80 \ No newline at end of file
archetype/html-rest/src/main/resources/archetype-resources/src/main/webapp/js/controller/home.js
1 $(function() { 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,12 +3,15 @@ $(function() {
3 3
4 $("form").submit(function(event) { 4 $("form").submit(function(event) {
5 event.preventDefault(); 5 event.preventDefault();
  6 +
6 $("[id$='-message']").hide(); 7 $("[id$='-message']").hide();
  8 +
7 var form = { 9 var form = {
8 'username' : $("#username").val().trim(), 10 'username' : $("#username").val().trim(),
9 'password' : $("#password").val().trim() 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,12 +22,11 @@ function make_base_auth(user, password) {
19 } 22 }
20 23
21 function loginOk(data) { 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 location.href = "home.html"; 26 location.href = "home.html";
24 } 27 }
25 28
26 function loginFail(request) { 29 function loginFail(request) {
27 - sessionStorage.clear();  
28 switch (request.status) { 30 switch (request.status) {
29 case 401: 31 case 401:
30 $("#global-message").html("Usuário ou senha inválidos.").show(); 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 location.href = "login.html"; 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 \ No newline at end of file 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 @@ @@ -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 \ No newline at end of file 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 \ No newline at end of file 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,7 +41,9 @@
41 <p class="demoiselle">Aplicação de exemplo do Demoiselle 2.5.0</p> 41 <p class="demoiselle">Aplicação de exemplo do Demoiselle 2.5.0</p>
42 <script type="text/javascript" src="js/lib/jquery-2.1.0.min.js"></script> 42 <script type="text/javascript" src="js/lib/jquery-2.1.0.min.js"></script>
43 <script type="text/javascript" src="js/lib/bootstrap.min.js"></script> 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 <script type="text/javascript" src="js/proxy/auth.js"></script> 46 <script type="text/javascript" src="js/proxy/auth.js"></script>
  47 + <script type="text/javascript" src="js/controller/login.js"></script>
46 </body> 48 </body>
47 </html> 49 </html>
48 \ No newline at end of file 50 \ No newline at end of file