Browse Source

Updated the admin page to be able to delete old downloads.

pull/4/head
jrtechs 6 years ago
parent
commit
b591631d86
5 changed files with 70 additions and 33 deletions
  1. +1
    -2
      admin/admin.js
  2. +45
    -26
      admin/manageDownloads.js
  3. +0
    -1
      admin/newPost.js
  4. +1
    -3
      server.js
  5. +23
    -1
      utils/sql.js

+ 1
- 2
admin/admin.js View File

@ -21,7 +21,7 @@ module.exports=
Promise.all([require("../admin/newPost.js").main(postData),
require("../admin/addCategory.js").main(postData),
require("../admin/editPost.js").main(postData),
require("../admin/addDownload.js").main(postData)])
require("./manageDownloads.js").main(postData)])
.then(function(content)
{
resolve(content.join(''));
@ -43,7 +43,6 @@ module.exports=
console.log(err);
})
}
});
}
};

admin/addDownload.js → admin/manageDownloads.js View File

@ -1,29 +1,36 @@
/**
* File which deals with adding and removing downloads from
* the admin section of the website.
*
* @author Jeffery Russell 6-30-18
*/
//file IO
const utils = require('../utils/utils.js');
//updates db
const sql = require('../utils/sql');
//parses post data
const qs = require('querystring');
const Promise = require('promise');
/**
* @author Jeffery Russell 6-30-18
*/
/**
* Processes post requests from the addDownload form
*
* @param postData
* @returns {*|Promise}
*/
var addDownloadPostData = function(postData)
const addDownloadPostData = function(postData)
{
return new Promise(function(resolve, reject)
{
var post = qs.parse(postData);
const post = qs.parse(postData);
if(post.add_download)
{
console.log(post);
sql.addDownload(post.add_download_name, post.add_download_file).then(function()
sql.addDownload(post.add_download_name, post.add_download_file)
.then(function()
{
resolve("");
}).catch(function(error)
@ -47,16 +54,14 @@ var addDownloadPostData = function(postData)
*/
const addDownload = function(postData)
{
//res.write("<div class=\"col-md-6\">");
return new Promise(function(resolve, reject)
{
Promise.all([addDownloadPostData(postData), utils.include("./admin/addDownload.html")]).then(function(html)
Promise.all([addDownloadPostData(postData),
utils.include("./admin/addDownload.html")]).then(function(html)
{
console.log("add download is good");
resolve("<div class=\"col-md-6\">" + html.join('') + "</div>");
}).catch(function(error)
{
console.log(error);
reject(error);
})
});
@ -73,13 +78,21 @@ const displayDownloadsPostData = function(postData)
{
return new Promise(function(resolve, reject)
{
var post = qs.parse(postData);
const post = qs.parse(postData);
if(post.delete_download)
{
sql.removeDownload(post.delete_download).then(function()
{
resolve(postData);
}).catch(function(err)
{
reject(err);
});
}
else
{
resolve(postData);
}
resolve(postData);
});
};
@ -97,9 +110,10 @@ const renderDownloadRow = function(download)
"<td>" + download.file + "</td>" +
"<td>" + download.download_count + "</td>" +
"<td><form action=\"/admin/\" method =\"post\" >\n" +
" <input type=\"submit\" name=\"submit\" value=\"Edit\"\n" +
" <input type=\"submit\" name=\"submit\" value=\"Delete\"\n" +
" class=\"btn btn-secondary\"/>\n" +
"<input type='hidden' name='delete_download' value='" + download.download_id + "'/>"+
"<input type='hidden' name='delete_download' value='" +
download.download_id + "'/>"+
"</form></td>" +
"</tr>";
};
@ -121,7 +135,8 @@ const displayDownloads = function(postData)
"<h1 class=\"text-center\">Downloads</h1>" +
"<div class=\"\"><table class=\"table table-striped\">" +
"<thead class=\"thead-dark\"><tr>" +
"<td>Download Name</td><td>File</td><td>Download Count</td><td>Delete</td>" +
"<td>Download Name</td><td>File</td>" +
"<td>Download Count</td><td>Delete</td>" +
"</tr></thead><tbody>";
@ -136,30 +151,34 @@ const displayDownloads = function(postData)
Promise.all(downloadPromises).then(function(htmls)
{
var htmlafter = "</tbody></table></div></div><br>" +
const htmlafter = "</tbody></table></div></div><br>" +
"</div>";
console.log("display download is good");
resolve(html + htmls.join('') + htmlafter);
});
}).catch(function(error)
{
console.log(error);
reject(error);
});
});
});
};
module.exports=
{
/**
* Renders tha download section of the admin page
*
* @param postData
* @returns {Promise}
*/
main: function(postData)
{
return new Promise(function(resolve, reject)
{
Promise.all([addDownload(postData), displayDownloads(postData)]).then(function(html)
Promise.all([addDownload(postData),
displayDownloads(postData)]).then(function(html)
{
resolve("<div class=\"row\">" + html.join('') + "</div>");
}).catch(function(error)

+ 0
- 1
admin/newPost.js View File

@ -60,7 +60,6 @@ module.exports=
resolve(html.join(''));
}).catch(function(error)
{
console.log(error);
reject(error);
})
});

+ 1
- 3
server.js View File

@ -128,9 +128,7 @@ app.use(function(request, result)
sql.logTraffic(getClientAddress, filename);
}
catch (e)
{
}
{ }
}
}
else

+ 23
- 1
utils/sql.js View File

@ -94,6 +94,7 @@ module.exports=
});
},
/**
* Not to be mistaken for getPostData() in @file utils/utils.js,
* this function extracts a post entry from the sql server
@ -137,6 +138,8 @@ module.exports=
});
},
/**
* Function used to retrieve all categories when making the sidebar
*
@ -148,6 +151,7 @@ module.exports=
return fetch(q);
},
/**
* Function which currently returns all posts of a particular
* category from the database
@ -185,6 +189,7 @@ module.exports=
return fetch("select * from posts order by post_id desc limit 10");
},
/**
* Helper method which returns a list of objects which contains the url
* and name of thee ten most recent posts
@ -242,6 +247,8 @@ module.exports=
});
});
},
/**
* Function which checks to see if a user successfully logged in based on
* the post data which they sent
@ -299,6 +306,7 @@ module.exports=
});
},
/**
* Fetches a promise containing every post in the database
* @returns {Array}
@ -398,12 +406,25 @@ module.exports=
*/
addDownload: function(name, file)
{
var q = "insert into downloads (name, file, download_count) " +
const q = "insert into downloads (name, file, download_count) " +
"values('" + name + "', '" + file + "', '0')";
return module.exports.insert(q);
},
/**
*
* @param id
*/
removeDownload: function(id)
{
const q = "delete from downloads where download_id='" + id + "'";
return module.exports.insert(q);
},
/**
* Based on the post data submitted by the user this function updates
* the information on the post in the database
@ -423,6 +444,7 @@ module.exports=
return module.exports.insert(q);
},
/**
* Function which returns a promise which contains the string of the
* entire sitemap for the blog.

Loading…
Cancel
Save