Advertisement
Guest User

Untitled

a guest
Aug 20th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.58 KB | None | 0 0
  1. function startApp(){
  2. $('#linkLogout').hide();
  3. const baseUsersUrl = "https://baas.kinvey.com/user/kid_B1gXZK3DZ";
  4. const baseAppDataUrl = "https://baas.kinvey.com/appdata/kid_B1gXZK3DZ";
  5. setGreeting();
  6. const app_key = 'kid_B1gXZK3DZ';
  7. const app_secret = '39a1afe1eba3447aba5349547c3e8532';
  8. let btnRegister = $('#viewRegister input[value="Register"]');
  9. let btnLogin = $('#viewLogin input[value="Login"]');
  10. let btnCreateBook = $('#viewCreateBook input[value="Create"]');
  11. let btnEditBook = $('#viewEditBook input[value="Edit"]');
  12. btnRegister.on('click', register);
  13. btnLogin.on('click', logIn);
  14. btnCreateBook.on('click', createBook);
  15. btnEditBook('click', editBook);
  16. $('#linkListBooks').on('click', ()=>{
  17. hideSections();
  18. $('#viewBooks').show();
  19. });
  20. addEventClick('Home');
  21. addEventClick('Login');
  22. addEventClick('Register');
  23. addEventClick('CreateBook');
  24. $('#linkLogout').on('click',logOut);
  25. function logIn(e){
  26. e.preventDefault();
  27. let password = $('#viewLogin input[name="passwd"]');
  28. let username = $('#viewLogin input[name="username"]');
  29. let obj = {
  30. url:baseUsersUrl+"/login",
  31. method:"POST",
  32. headers:{
  33. "Authorization":`Basic ${btoa(app_key +":" +app_secret)}:`,
  34. "Content-Type":'application/json',
  35. },
  36. data:JSON.stringify({
  37. username:username.val(),
  38. password:password.val(),
  39. }),
  40. success:function(res){
  41. setUsernameAndAuth(res);
  42. infoBoxShow('Successfully logged in');
  43. showView("Books");
  44. $('#linkLogout').show('slow');
  45. $('#linkLogin').hide()
  46. $('#linkRegister').hide();
  47. },
  48. error:function(err){
  49. errorBoxShow(err.statusText)
  50. }
  51. };
  52.  
  53. $.ajax(obj);
  54. password.val('');
  55. username.val('');
  56. }
  57. function register(e){
  58. e.preventDefault();
  59. let password = $('#viewRegister input[name="passwd"]');
  60. let passRep = $('#viewRegister input[name="passwdRep"]');
  61. let username = $('#viewRegister input[name="username"]');
  62. if(password.val()!==passRep.val()){
  63. errorBoxShow("Passwords do not match");
  64. }
  65. else {
  66. let obj = {
  67. url:baseUsersUrl,
  68. method:"POST",
  69. headers:{
  70. "Authorization":`Basic ${btoa(app_key +":" +app_secret)}:`,
  71. "Content-Type":'application/json',
  72. },
  73. data:JSON.stringify({
  74. username:username.val(),
  75. password:password.val(),
  76. books:""
  77. }),
  78. success:function(res){
  79. setUsernameAndAuth(res);
  80. infoBoxShow('Success')
  81. },
  82. error:function(err){
  83. errorBoxShow(err.statusText)
  84. }
  85. }
  86. $.ajax(obj)
  87. }
  88. password.val('');
  89. passRep.val('');
  90. username.val('');
  91. }
  92. function logOut(){
  93. let obj = {
  94. url:baseUsersUrl+"/_logout",
  95. method:"POST",
  96. headers:{
  97. "Authorization":`Kinvey ${sessionStorage.getItem("authtoken")}`,
  98. "X-Kinvey-Api-Version":'1',
  99. },
  100. success:function(){
  101. hideSections();
  102. $('#loggedInUser').text("");
  103. sessionStorage.clear();
  104. $('#linkLogout').hide();
  105. $('#linkLogin').show('slow');
  106. $('#linkRegister').show();
  107. showView('Home');
  108. setGreeting();
  109. infoBoxShow('Successfully logged out')
  110. },
  111. error:function(err){
  112. errorBoxShow(err.statusText)
  113. }
  114. }
  115. $.ajax(obj)
  116. }
  117. function addEventClick(btn){
  118. $('#link'+btn).on('click', ()=>{
  119. hideSections();
  120. showView(btn);
  121. });
  122. }
  123. function showView(btn){
  124. hideSections();
  125. $('#view'+btn).show();
  126. }
  127. function hideSections(){
  128. $('section').hide();
  129. }
  130. function loadingBoxShow(msg){
  131. let loadingBox = $('#loadingBox');
  132. loadingBox.text(msg);
  133. loadingBox.show('slow');
  134. setTimeout(()=>{loadingBox.hide()}, 3000)
  135. }
  136. function infoBoxShow(msg){
  137. let infoBox = $('#infoBox');
  138. infoBox.text(msg);
  139. infoBox.show('slow');
  140. setTimeout(()=>{infoBox.hide()}, 3000)
  141. }
  142. function errorBoxShow(msg){
  143. let errorBox = $('#errorBox');
  144. errorBox.text(msg);
  145. errorBox.show('slow');
  146. setTimeout(()=>{errorBox.fadeOut()}, 3000)
  147. }
  148. function setUsernameAndAuth(res){
  149. console.log(res)
  150. sessionStorage
  151. .setItem('authtoken', res._kmd.authtoken);
  152. sessionStorage
  153. .setItem('username', res.username);
  154. sessionStorage
  155. .setItem('id', res._id);
  156. setGreeting();
  157. }
  158. function setGreeting(){
  159. if(sessionStorage.getItem("username")){
  160. $('#viewBooks tr').has("td").remove();
  161. console.log($('#viewBooks table'));
  162. listBooks();
  163. $('#loggedInUser').text("Greetings, " + sessionStorage.getItem("username"));
  164. $('#linkLogout').show();
  165. $('#linkLogin').hide();
  166. $('#linkListBooks').show();
  167. $('#linkCreateBook').show();
  168. }
  169. else{
  170. let firstChild = $('#viewBooks tr:has(td)').first();
  171. console.log(firstChild);
  172. $('#linkListBooks').hide();
  173. $('#linkCreateBook').hide();
  174. }
  175. }
  176. function listBooks(){
  177. console.log(sessionStorage.getItem("authtoken"));
  178. let obj = {
  179. url:baseAppDataUrl+ "/books",
  180. method:"GET",
  181. headers:{
  182. "Authorization":`Kinvey ${sessionStorage.getItem("authtoken")}`,
  183. },
  184. success:loadBooks,
  185. error:(err)=>{
  186. errorBoxShow(err.statusText)
  187. }
  188. };
  189. $.ajax(obj);
  190. function loadBooks(data){
  191. console.log(data)
  192. for (let obj of data) {
  193. let lastTd = $('<td>');
  194. if(sessionStorage.getItem('id') == obj._acl.creator){
  195. let aEdit = $('<a href="#">[Edit]</a>');
  196. let aDelete = $('<a href="#">[Delete]</a>');
  197. aDelete.on('click',null, obj, deletePost);
  198. aEdit.on('click',null, obj, editPost);
  199. lastTd.append(aEdit)
  200. .append(aDelete)
  201. }
  202.  
  203. $('#books table')
  204. .append($("<tr>")
  205. .append($(`<td>${obj.name}</td>>`))
  206. .append($(`<td>${obj.author}</td>>`))
  207. .append($(`<td>${obj.description}</td>>`))
  208. .append(lastTd))
  209. }
  210. }
  211. }
  212.  
  213. function deletePost(e){
  214. let postId = e.data._id;
  215. let anchor = $(this);
  216. let obj = {
  217. url:`https://baas.kinvey.com/appdata/kid_B1gXZK3DZ/books/${postId}`,
  218. method:"DELETE",
  219. headers:{
  220. "Authorization":`Kinvey ${sessionStorage.getItem("authtoken")}`
  221. },
  222. success: function(){
  223. console.log(anchor.parent().parent());
  224. anchor.parent().parent().remove();
  225. infoBoxShow('Deleted successfully')
  226. },
  227. error:function(err){
  228. errorBoxShow(err.statusText);
  229. }
  230. };
  231. $.ajax(obj);
  232. }
  233. function editPost(e){
  234. let postId = e.data._id;
  235. let anchor = $(this);
  236. hideSections();
  237.  
  238. }
  239. function createBook(e){
  240. e.preventDefault();
  241. let title = $('#viewCreateBook input[name="title"]');
  242. let author = $('#viewCreateBook input[name="author"]');
  243. let description = $('#viewCreateBook textarea[name="description"]');
  244. let obj = {
  245. url:baseAppDataUrl+ "/books",
  246. method:"POST",
  247. headers:{
  248. "Authorization":`Kinvey ${sessionStorage.getItem("authtoken")}`,
  249. "Content-Type":"application/json"
  250. },
  251. data:JSON.stringify({
  252. name:title.val(),
  253. author:author.val(),
  254. description:description.val()
  255. }),
  256. success:(data) => {
  257. console.log(title.val());
  258. $('#books table')
  259. .append($("<tr>")
  260. .append($(`<td>${title.val()}</td>>`))
  261. .append($(`<td>${author.val()}</td>>`))
  262. .append($(`<td>${description.val()}</td>>`))
  263. .append($('<td>')
  264. .append($('<a href="#">[Edit]</a>'))
  265. .append($('<a href="#">[Delete]</a>'))));
  266. infoBoxShow("You; successfully uploaded the book")
  267. },
  268. error:(err)=>{
  269. errorBoxShow(err.statusText)
  270. }
  271. };
  272. $.ajax(obj);
  273. title.val('');
  274. author.val('');
  275. description.val('');
  276. }
  277. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement