Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function startApp(){
- $('#linkLogout').hide();
- const baseUsersUrl = "https://baas.kinvey.com/user/kid_B1gXZK3DZ";
- const baseAppDataUrl = "https://baas.kinvey.com/appdata/kid_B1gXZK3DZ";
- setGreeting();
- const app_key = 'kid_B1gXZK3DZ';
- const app_secret = '39a1afe1eba3447aba5349547c3e8532';
- let btnRegister = $('#viewRegister input[value="Register"]');
- let btnLogin = $('#viewLogin input[value="Login"]');
- let btnCreateBook = $('#viewCreateBook input[value="Create"]');
- let btnEditBook = $('#viewEditBook input[value="Edit"]');
- btnRegister.on('click', register);
- btnLogin.on('click', logIn);
- btnCreateBook.on('click', createBook);
- btnEditBook('click', editBook);
- $('#linkListBooks').on('click', ()=>{
- hideSections();
- $('#viewBooks').show();
- });
- addEventClick('Home');
- addEventClick('Login');
- addEventClick('Register');
- addEventClick('CreateBook');
- $('#linkLogout').on('click',logOut);
- function logIn(e){
- e.preventDefault();
- let password = $('#viewLogin input[name="passwd"]');
- let username = $('#viewLogin input[name="username"]');
- let obj = {
- url:baseUsersUrl+"/login",
- method:"POST",
- headers:{
- "Authorization":`Basic ${btoa(app_key +":" +app_secret)}:`,
- "Content-Type":'application/json',
- },
- data:JSON.stringify({
- username:username.val(),
- password:password.val(),
- }),
- success:function(res){
- setUsernameAndAuth(res);
- infoBoxShow('Successfully logged in');
- showView("Books");
- $('#linkLogout').show('slow');
- $('#linkLogin').hide()
- $('#linkRegister').hide();
- },
- error:function(err){
- errorBoxShow(err.statusText)
- }
- };
- $.ajax(obj);
- password.val('');
- username.val('');
- }
- function register(e){
- e.preventDefault();
- let password = $('#viewRegister input[name="passwd"]');
- let passRep = $('#viewRegister input[name="passwdRep"]');
- let username = $('#viewRegister input[name="username"]');
- if(password.val()!==passRep.val()){
- errorBoxShow("Passwords do not match");
- }
- else {
- let obj = {
- url:baseUsersUrl,
- method:"POST",
- headers:{
- "Authorization":`Basic ${btoa(app_key +":" +app_secret)}:`,
- "Content-Type":'application/json',
- },
- data:JSON.stringify({
- username:username.val(),
- password:password.val(),
- books:""
- }),
- success:function(res){
- setUsernameAndAuth(res);
- infoBoxShow('Success')
- },
- error:function(err){
- errorBoxShow(err.statusText)
- }
- }
- $.ajax(obj)
- }
- password.val('');
- passRep.val('');
- username.val('');
- }
- function logOut(){
- let obj = {
- url:baseUsersUrl+"/_logout",
- method:"POST",
- headers:{
- "Authorization":`Kinvey ${sessionStorage.getItem("authtoken")}`,
- "X-Kinvey-Api-Version":'1',
- },
- success:function(){
- hideSections();
- $('#loggedInUser').text("");
- sessionStorage.clear();
- $('#linkLogout').hide();
- $('#linkLogin').show('slow');
- $('#linkRegister').show();
- showView('Home');
- setGreeting();
- infoBoxShow('Successfully logged out')
- },
- error:function(err){
- errorBoxShow(err.statusText)
- }
- }
- $.ajax(obj)
- }
- function addEventClick(btn){
- $('#link'+btn).on('click', ()=>{
- hideSections();
- showView(btn);
- });
- }
- function showView(btn){
- hideSections();
- $('#view'+btn).show();
- }
- function hideSections(){
- $('section').hide();
- }
- function loadingBoxShow(msg){
- let loadingBox = $('#loadingBox');
- loadingBox.text(msg);
- loadingBox.show('slow');
- setTimeout(()=>{loadingBox.hide()}, 3000)
- }
- function infoBoxShow(msg){
- let infoBox = $('#infoBox');
- infoBox.text(msg);
- infoBox.show('slow');
- setTimeout(()=>{infoBox.hide()}, 3000)
- }
- function errorBoxShow(msg){
- let errorBox = $('#errorBox');
- errorBox.text(msg);
- errorBox.show('slow');
- setTimeout(()=>{errorBox.fadeOut()}, 3000)
- }
- function setUsernameAndAuth(res){
- console.log(res)
- sessionStorage
- .setItem('authtoken', res._kmd.authtoken);
- sessionStorage
- .setItem('username', res.username);
- sessionStorage
- .setItem('id', res._id);
- setGreeting();
- }
- function setGreeting(){
- if(sessionStorage.getItem("username")){
- $('#viewBooks tr').has("td").remove();
- console.log($('#viewBooks table'));
- listBooks();
- $('#loggedInUser').text("Greetings, " + sessionStorage.getItem("username"));
- $('#linkLogout').show();
- $('#linkLogin').hide();
- $('#linkListBooks').show();
- $('#linkCreateBook').show();
- }
- else{
- let firstChild = $('#viewBooks tr:has(td)').first();
- console.log(firstChild);
- $('#linkListBooks').hide();
- $('#linkCreateBook').hide();
- }
- }
- function listBooks(){
- console.log(sessionStorage.getItem("authtoken"));
- let obj = {
- url:baseAppDataUrl+ "/books",
- method:"GET",
- headers:{
- "Authorization":`Kinvey ${sessionStorage.getItem("authtoken")}`,
- },
- success:loadBooks,
- error:(err)=>{
- errorBoxShow(err.statusText)
- }
- };
- $.ajax(obj);
- function loadBooks(data){
- console.log(data)
- for (let obj of data) {
- let lastTd = $('<td>');
- if(sessionStorage.getItem('id') == obj._acl.creator){
- let aEdit = $('<a href="#">[Edit]</a>');
- let aDelete = $('<a href="#">[Delete]</a>');
- aDelete.on('click',null, obj, deletePost);
- aEdit.on('click',null, obj, editPost);
- lastTd.append(aEdit)
- .append(aDelete)
- }
- $('#books table')
- .append($("<tr>")
- .append($(`<td>${obj.name}</td>>`))
- .append($(`<td>${obj.author}</td>>`))
- .append($(`<td>${obj.description}</td>>`))
- .append(lastTd))
- }
- }
- }
- function deletePost(e){
- let postId = e.data._id;
- let anchor = $(this);
- let obj = {
- url:`https://baas.kinvey.com/appdata/kid_B1gXZK3DZ/books/${postId}`,
- method:"DELETE",
- headers:{
- "Authorization":`Kinvey ${sessionStorage.getItem("authtoken")}`
- },
- success: function(){
- console.log(anchor.parent().parent());
- anchor.parent().parent().remove();
- infoBoxShow('Deleted successfully')
- },
- error:function(err){
- errorBoxShow(err.statusText);
- }
- };
- $.ajax(obj);
- }
- function editPost(e){
- let postId = e.data._id;
- let anchor = $(this);
- hideSections();
- }
- function createBook(e){
- e.preventDefault();
- let title = $('#viewCreateBook input[name="title"]');
- let author = $('#viewCreateBook input[name="author"]');
- let description = $('#viewCreateBook textarea[name="description"]');
- let obj = {
- url:baseAppDataUrl+ "/books",
- method:"POST",
- headers:{
- "Authorization":`Kinvey ${sessionStorage.getItem("authtoken")}`,
- "Content-Type":"application/json"
- },
- data:JSON.stringify({
- name:title.val(),
- author:author.val(),
- description:description.val()
- }),
- success:(data) => {
- console.log(title.val());
- $('#books table')
- .append($("<tr>")
- .append($(`<td>${title.val()}</td>>`))
- .append($(`<td>${author.val()}</td>>`))
- .append($(`<td>${description.val()}</td>>`))
- .append($('<td>')
- .append($('<a href="#">[Edit]</a>'))
- .append($('<a href="#">[Delete]</a>'))));
- infoBoxShow("You; successfully uploaded the book")
- },
- error:(err)=>{
- errorBoxShow(err.statusText)
- }
- };
- $.ajax(obj);
- title.val('');
- author.val('');
- description.val('');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement