diff --git a/consumerWebsite/public/js/app.js b/consumerWebsite/public/js/app.js index 7682959..02cfca7 100644 --- a/consumerWebsite/public/js/app.js +++ b/consumerWebsite/public/js/app.js @@ -149,7 +149,7 @@ app.auth = (function (app) { function setToken(token) { localStorage.setItem("APIToken", token); } - + /* function setUserId(userid) { console.log("userid", userid); localStorage.setItem("userid", userid); @@ -158,6 +158,7 @@ app.auth = (function (app) { function setUsername(username) { localStorage.setItem("username", username); } + */ function getToken() { return localStorage.getItem("APIToken"); @@ -167,6 +168,7 @@ app.auth = (function (app) { if (getToken()) { return app.api.get("user/me", function (error, data) { if (!error) app.auth.user = data; + $.scope.getUsername.push(data.username); return callback(error, data); }); } else { @@ -204,8 +206,6 @@ app.auth = (function (app) { }); localStorage.removeItem("APIToken"); - localStorage.removeItem("userid"); - localStorage.removeItem("username"); callback(); } @@ -244,8 +244,6 @@ app.auth = (function (app) { return { getToken: getToken, setToken: setToken, - setUserId: setUserId, - setUsername: setUsername, isLoggedIn: isLoggedIn, //logIn: logIn, logOut: logOut, diff --git a/consumerWebsite/public/js/jq-repeat.js b/consumerWebsite/public/js/jq-repeat.js new file mode 100644 index 0000000..97296e8 --- /dev/null +++ b/consumerWebsite/public/js/jq-repeat.js @@ -0,0 +1,305 @@ +(function($, Mustache){ + 'use strict'; + if (!$.scope) { + $.scope = {}; + } + + var make = function( element ){ + + //construct array + function makeArray( input , index ){ + + var result = []; + + Object.defineProperty( result, "__repeatId", { + value: repeatId, + writable: true, + enumerable: false, + configurable: true + } ); + + Object.defineProperty( result, "__rq_template", { + value: '', + writable: true, + enumerable: false, + configurable: true + } ); + + Object.defineProperty( result, "__jq_index", { + value: index, + writable: true, + enumerable: false, + configurable: true + } ); + + function removeEmpty(){ + if(result.__jq_empty){ + result.__jq_empty.remove(); + delete result.__jq_empty; + } + } + + result.splice = function(inputValue, ...args){ + //splice does all the heavy lifting by interacting with the DOM elements. + + var toProto = [...args] + + var index; + //if a string is submitted as the index, try to match it to index number + if( typeof arguments[0] === 'string' ){ + index = this.indexOf( arguments[0] );//set where to start + if ( index === -1 ) { + return []; + } + }else{ + index = arguments[0]; //set where to start + } + + toProto.unshift(index) + + + var howMany = arguments[1]; //sets the amount of fields to remove + var args = Array.prototype.slice.call( arguments ); // coverts arguments into array + var toAdd = args.slice(2); // only keeps fields to add to array + + // if the starting point is higher then the total index count, start at the end + if( index > this.length ) { + index = this.length; + } + // if the starting point is negative, start form the end of the array, minus the start point + if( index < 0 ) { + index = this.length - Math.abs( index ); + } + + // if there are things to add, figure out the how many new indexes we need + if( !howMany && howMany !== 0 ) { + howMany = this.length - index; + } + //not sure why i put this here... but it does matter! + if( howMany > this.length - index ) { + howMany = this.length - index; + } + + //figure out how many positions we need to shift the current elements + var shift = toAdd.length - howMany; + + // figure out how big the new array will be + // var newLength = this.length + shift; + + //removes fields from array based on howMany needs to be removed + for( var i = index; i < +index+howMany; i++ ) { + this.__take.apply( this[index].__jq_$el ); + // this.__take.apply( $( '.jq-repeat-'+ this.__repeatId +'[jq-repeat-index="'+ ( i + index ) +'"]' ) ); + } + + //re-factor element index's + for(var i = 0; i < this.length; i++){ + if( i >= index){ + + this[i].__jq_$el.attr( 'jq-repeat-index', i+shift ); + } + } + + //if there are fields to add to the array, add them + if( toAdd.length > 0 ){ + removeEmpty() + + //$.each( toAdd, function( key, value ){ + for(var I = 0; I < toAdd.length; I++){ + + //figure out new elements index + var key = I + index; + // apply values to template + var render = Mustache.render( this.__rq_template, {__id:I, ...toAdd[I]} ); + + //set call name and index keys to DOM element + var $render = $( render ).addClass( 'jq-repeat-'+ this.__repeatId ).attr( 'jq-repeat-index', key ); + + + //if add new elements in proper stop, or after the place holder. + if( key === 0 ){ + $( '.jq-repeat-'+ this.__repeatId +'[jq-repeat-index="holder"]' ).after( $render ); + }else{ + $( '.jq-repeat-'+ this.__repeatId +'[jq-repeat-index="' + ( key -1 ) + '"]' ).after( $render ); + } + + Object.defineProperty( toAdd[I], "__jq_$el", { + value: $render, + writable: true, + enumerable: false, + configurable: true + } ); + + //animate element + this.__put.apply($render, [toAdd[I]]); + } + } + + //set and return new array + return Array.prototype.splice.apply(this, toProto); + }; + result.push = function(){ + //add one or more objects to the array + + //set the index value, if none is set make it zero + var index = this.length || 0; + + //loop each passed object and pass it to slice + for (var i = 0 ; i < arguments.length; ++i) { + this.splice( ( index + i ), 0, arguments[i] ); + } + + //return new array length + return this.length; + }; + + result.unshift = function(item){ + return this.splice(0, 0, item); + }; + + result.pop = function(){ + //remove and return array element + + return this.splice( -1, 1 )[0]; + }; + result.reverse = function() { + var temp = this.splice( 0 ); + Array.prototype.reverse.apply( temp ); + + for( var i = 0; i < temp.length; i++ ){ + this.push( temp[i] ); + } + + return this; + }; + result.shift = function() { + return this.splice( 0, 1 )[0]; + }; + result.loop = function(){ + var temp = this[0]; + this.splice( 0,1 ); + this.push( temp ); + + return temp; + }; + result.loopUp = function(){ + var temp = this[this.length-1]; + this.splice( -1, 1 ); + this.splice( 0, 0, temp ); + return temp; + }; + result.indexOf = function( key, value ){ + if( !value ){ + value = arguments[0]; + key = this.__jq_index; + } + for ( var index = 0; index < this.length; ++index ) { + if( this[index][key] === value ){ + + return index; + } + } + return -1; + }; + result.update = function( key, value, update ){ + //set variables using sting for index + + // If update is called with no index/key, assume its the 0 + if(typeof key === 'object'){ + if(this[0]){ + return this.update(0, key); + } + return this.splice(0, 1, key); + } + + if( !update ){ + update = arguments[1]; + value = arguments[0]; + key = this.__jq_index; + } + + var index = this.indexOf( key, value ); + + if(index === -1) { + return []; + } + var object = $.extend( true, {}, this[index], update ); + return this.splice( index, 1, object )[0]; + }; + result.__put = function(){ + this.show(); + }; + result.__take = function(){ + this.remove(); + }; + + if(!input) { + return result; + } + $.each( input, function( key, value ){ + var type = typeof value; + if( type === 'object' ){ + result.push( value ); + }else if( type === 'string' ){ + Object.defineProperty( result, "__jq_index", { + value: value, + writable: true, + enumerable: false, + configurable: true + } ); + } else if ( type === 'function'){ + Object.defineProperty( result, value.name, { + value: value, + writable: true, + enumerable: false, + configurable: true + } ); + } + } ); + + return result; + } + + + var $this = $( element ); + var repeatId = $this.attr( 'jq-repeat' ); + var index = $this.attr( 'jq-repeat-index' ); + var tempId = repeatId + 'Template'; + var templateId = $( '#' + tempId ).html(); + var empty = $(`[jq-repeat-defualt="${repeatId}"]`); + + + $this.removeAttr( 'jq-repeat' ); + $this.removeAttr( 'jq-repeat-index' ); + var template = element.outerHTML + + $this.replaceWith( ' - - - + + \ No newline at end of file diff --git a/consumerWebsite/views/logintop.ejs b/consumerWebsite/views/logintop.ejs index 7d6b367..66ef3e2 100644 --- a/consumerWebsite/views/logintop.ejs +++ b/consumerWebsite/views/logintop.ejs @@ -23,6 +23,9 @@ + + + @@ -100,6 +103,4 @@ - - diff --git a/consumerWebsite/views/signuplogin.ejs b/consumerWebsite/views/signuplogin.ejs index 1eae731..3030185 100644 --- a/consumerWebsite/views/signuplogin.ejs +++ b/consumerWebsite/views/signuplogin.ejs @@ -1,27 +1,27 @@ <%- include('logintop') %> - + - -
-
- -
Signup
- - -
- - - - - - - - - -
-
+ +
+ - -
+ +
- + + \ No newline at end of file diff --git a/consumerWebsite/views/top.ejs b/consumerWebsite/views/top.ejs index 4e8cab4..e7e414c 100644 --- a/consumerWebsite/views/top.ejs +++ b/consumerWebsite/views/top.ejs @@ -1,118 +1,146 @@ - - - - - - - - + + + + + + + + - - + + + + + + + + + + + + + + + + + + - - - - - + + + + + + - - - - + + + + + - - - - - - - - - - - + + + + diff --git a/webserver/functions/getAPIKey.js b/webserver/functions/getAPIKey.js deleted file mode 100644 index 4c62ddc..0000000 --- a/webserver/functions/getAPIKey.js +++ /dev/null @@ -1,17 +0,0 @@ -//model for getting API key from database - -async function getAPIKey() { - - -} - - - - - - - - - - -module.exports = { getAPIKey } \ No newline at end of file