diff --git a/src/modules/index.js b/src/modules/index.js
index d302280..ac116ff 100644
--- a/src/modules/index.js
+++ b/src/modules/index.js
@@ -54,7 +54,7 @@ function projectDeleteButtons(){
function userProjectButtons(){
$(".settingsbuttons").click((value) => {
- userjs.setProject(value);
+ userjs.updateProject(value);
loadPage("project/project.html", ()=>{
projectjs.init();
projectDeleteButtons();
diff --git a/src/modules/project/project.html b/src/modules/project/project.html
index 35d34cb..f3dcffb 100644
--- a/src/modules/project/project.html
+++ b/src/modules/project/project.html
@@ -13,20 +13,26 @@
+
+
diff --git a/src/modules/project/project.js b/src/modules/project/project.js
index 84c7d8e..b3d74a1 100644
--- a/src/modules/project/project.js
+++ b/src/modules/project/project.js
@@ -2,8 +2,15 @@
function init(){
$("#project-name").val(globaljs.projectDetails.name);
$("#project-description").val(globaljs.projectDetails.details);
+ $(".savebuttons").hide();
+ $(".cancelbuttons").hide();
$(".updatebuttons").click((value) => {
+ $("#project-name").removeClass("form-control-plaintext").addClass("form-control").attr("readonly", false);
+ $("#project-description").removeClass("form-control-plaintext").addClass("form-control").attr("readonly", false);
+ $(".updatebuttons").hide();
+ $(".savebuttons").show();
+ $(".cancelbuttons").show();
// swal({
// text: "Project Name",
// title: "Update Project Details",
@@ -57,7 +64,88 @@ function init(){
// }
// }
// });
- swal("Info","This feature is currently in development. Stay tune for updates.","info");
+ // swal("Info","This feature is currently in development. Stay tune for updates.","info");
+ });
+
+ $(".savebuttons").click((value) => {
+ let project_name = $("#project-name").val();
+ let project_description = $("#project-description").val();
+ if(project_name == "") {
+ swal("Error", "Project name can't be empty.", "error");
+ return;
+ }
+ if(project_description == "") {
+ swal("Error", "Project description can't be empty.", "error");
+ return;
+ }
+ if(project_name === globaljs.projectDetails.name && project_description === globaljs.projectDetails.details) {
+ swal("Error", "You have made no changes.", "error");
+ return;
+ }
+ let dir = project_name.replace(/[^a-z0-9]/gi, '_').toLowerCase();
+ let old_dir = globaljs.projectDetails.name.replace(/[^a-z0-9]/gi, '_').toLowerCase();;
+ let projects_path = path.join(process.cwd(), "/../testing/Projects/");
+ if(fs.existsSync(projects_path + dir)) {
+ swal("Error", "A Project with this name already exists.", "error");
+ return;
+ }
+
+ swal({
+ title: "Save?",
+ text: "Are you sure you want to save your changes?",
+ icon: "warning",
+ buttons: true,
+ dangerMode: true
+ }).then((willSave) => {
+ if(willSave) {
+ try {
+ let data = JSON.parse(fs.readFileSync(projects_path + old_dir + "/info.json", "utf-8"));
+ data.name = dir;
+ data.details = project_description;
+
+ fs.writeFileSync(projects_path + old_dir + "/info.json", JSON.stringify(data), "utf-8");
+
+ fs.renameSync(projects_path + old_dir, projects_path + dir);
+ swal("Success", "Project details have been successfully updated.", "success").then(value => {
+ globaljs.projectDetails.name = project_name;
+ globaljs.projectDetails.details = project_description;
+
+ $("#project-name").val(globaljs.projectDetails.name).removeClass("form-control")
+ .addClass("form-control-plaintext").attr("readonly", true);
+ $("#project-description").val(globaljs.projectDetails.details).removeClass("form-control")
+ .addClass("form-control-plaintext").attr("readonly", true);
+ $(".updatebuttons").show();
+ $(".savebuttons").hide();
+ $(".cancelbuttons").hide();
+ });
+ }
+ catch(err) {
+ swal("Error", "Error writing to files", "error");
+ print(err);
+ return;
+ }
+ }
+ });
+ });
+
+ $(".cancelbuttons").click((value) => {
+ swal({
+ title: "Discard changes?",
+ text: "Are you sure you want to discard changes?",
+ icon: "warning",
+ buttons: true,
+ dangerMode: true
+ }).then((willCancel) => {
+ if(willCancel) {
+ $("#project-name").val(globaljs.projectDetails.name).removeClass("form-control")
+ .addClass("form-control-plaintext").attr("readonly", true);
+ $("#project-description").val(globaljs.projectDetails.details).removeClass("form-control")
+ .addClass("form-control-plaintext").attr("readonly", true);
+ $(".updatebuttons").show();
+ $(".savebuttons").hide();
+ $(".cancelbuttons").hide();
+ }
+ });
});
}
diff --git a/src/modules/user/user.js b/src/modules/user/user.js
index 0650a70..171e9b7 100644
--- a/src/modules/user/user.js
+++ b/src/modules/user/user.js
@@ -141,6 +141,12 @@ function setProject(value) {
globaljs.projectDetails.details = pdosi[1].innerText;
}
+function updateProject(value) {
+ let pdosi = $(value.target).parent()[0].children;
+ globaljs.projectDetails.name = pdosi[0].innerText;
+ globaljs.projectDetails.details = pdosi[1].innerText;
+}
+
function loadProjects() {
let dirlist = getDirectories(projects_path)
if (dirlist.length != 0) {
@@ -186,7 +192,8 @@ module.exports = {
init: init,
killTensorboard: killTensorboard,
startTensorboard: startTensorboard,
- setProject: setProject
+ setProject: setProject,
+ updateProject: updateProject
}
// $(document).ready(() => {
diff --git a/src/package.json b/src/package.json
index 821c4bc..3d3b8cf 100644
--- a/src/package.json
+++ b/src/package.json
@@ -20,7 +20,7 @@
"electron": "^4.2.3"
},
"dependencies": {
- "jquery": "^3.5.0",
+ "jquery": "^3.5.1",
"jquery-ui-dist": "^1.12.1",
"monaco-editor": "^0.19.2",
"rimraf": "^2.6.3",