From ce417893a2b78dfa501552fed06b527101f84b38 Mon Sep 17 00:00:00 2001 From: Julian Dehne <julian.dehne@uni-potsdam.de> Date: Tue, 27 Mar 2018 15:48:52 +0200 Subject: [PATCH] closes #16 --- .gitignore | 1 + .idea/workspace.xml | 86 +++++++------- studentview/assets/js/newProject.js | 170 +++++++++++++++------------- studentview/pages/newproject.php | 3 + 4 files changed, 144 insertions(+), 116 deletions(-) diff --git a/.gitignore b/.gitignore index 714c58ca..e846d2b4 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /.idea/workspace.xml /fltrail.iml /.idea/workspace.xml +/.idea/workspace.xml diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 0c15c9cb..f90df392 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -78,11 +78,31 @@ </provider> </entry> </file> - <file leaf-file-name="overview.js" pinned="false" current-in-tab="true"> + <file leaf-file-name="overview.js" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/studentview/assets/js/overview.js"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.5232163"> - <caret line="21" column="75" selection-start-line="21" selection-start-column="75" selection-end-line="21" selection-end-column="75" /> + <state vertical-scroll-proportion="0.0"> + <caret line="20" column="36" selection-start-line="20" selection-start-column="36" selection-end-line="20" selection-end-column="36" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="newproject.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/studentview/pages/newproject.php"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-13.4838705"> + <caret line="61" column="69" selection-start-line="61" selection-start-column="57" selection-end-line="61" selection-end-column="69" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="newProject.js" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/studentview/assets/js/newProject.js"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.69762176"> + <caret line="40" column="35" selection-start-line="40" selection-start-column="35" selection-end-line="40" selection-end-column="35" /> <folding /> </state> </provider> @@ -158,18 +178,6 @@ </provider> </entry> </file> - <file leaf-file-name="getAdresses.php" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/studentview/database/getAdresses.php"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="-0.0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding> - <marker date="1522074655851" expanded="true" signature="588:731" placeholder="SELECT name,... users" /> - </folding> - </state> - </provider> - </entry> - </file> <file leaf-file-name="getTags.php" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/studentview/database/getTags.php"> <provider selected="true" editor-type-id="text-editor"> @@ -197,10 +205,10 @@ <option value="$PROJECT_DIR$/studentview/database/getProjects.php" /> <option value="dbtable:/fc3764cf/14340c2c-ac4b-492f-ac4f-18c0853598a8/fltrail.projects" /> <option value="$PROJECT_DIR$/studentview/pages/projects.php" /> - <option value="$PROJECT_DIR$/studentview/assets/js/newProject.js" /> - <option value="$PROJECT_DIR$/studentview/pages/newproject.php" /> <option value="$PROJECT_DIR$/studentview/database/getProjectsOfAuthor.php" /> <option value="$PROJECT_DIR$/studentview/assets/js/overview.js" /> + <option value="$PROJECT_DIR$/studentview/pages/newproject.php" /> + <option value="$PROJECT_DIR$/studentview/assets/js/newProject.js" /> </list> </option> </component> @@ -886,12 +894,12 @@ <created>1522142632208</created> <option name="number" value="Default" /> <updated>1522142632208</updated> - <workItem from="1522142635858" duration="10726000" /> + <workItem from="1522142635858" duration="14802000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="10726000" /> + <option name="totallyTimeSpent" value="14802000" /> </component> <component name="ToolWindowManager"> <frame x="-9" y="-9" width="2578" height="1410" extended-state="6" /> @@ -1057,24 +1065,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/studentview/pages/newproject.php"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="15.096774"> - <caret line="35" column="6" selection-start-line="35" selection-start-column="6" selection-end-line="35" selection-end-column="6" /> - <folding> - <element signature="n#style#0;n#button#0;n#div#8;n#div#1;n#div#1;n#body#0;n#html#0;n#!!top" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/studentview/assets/js/newProject.js"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0"> - <caret line="61" column="55" selection-start-line="61" selection-start-column="55" selection-end-line="61" selection-end-column="55" /> - <folding /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/studentview/assets/js/Customizable-Carousel-swipe-enabled.js"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> @@ -1096,7 +1086,7 @@ <state vertical-scroll-proportion="0.0"> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <folding> - <element signature="n#!!doc" expanded="true" /> + <element signature="n#!!doc" expanded="false" /> </folding> </state> </provider> @@ -1236,8 +1226,24 @@ </entry> <entry file="file://$PROJECT_DIR$/studentview/assets/js/overview.js"> <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.5232163"> - <caret line="21" column="75" selection-start-line="21" selection-start-column="75" selection-end-line="21" selection-end-column="75" /> + <state vertical-scroll-proportion="0.0"> + <caret line="20" column="36" selection-start-line="20" selection-start-column="36" selection-end-line="20" selection-end-column="36" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/studentview/pages/newproject.php"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="-13.4838705"> + <caret line="61" column="69" selection-start-line="61" selection-start-column="57" selection-end-line="61" selection-end-column="69" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/studentview/assets/js/newProject.js"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.69762176"> + <caret line="40" column="35" selection-start-line="40" selection-start-column="35" selection-end-line="40" selection-end-column="35" /> <folding /> </state> </provider> diff --git a/studentview/assets/js/newProject.js b/studentview/assets/js/newProject.js index 002173be..70b6d45f 100644 --- a/studentview/assets/js/newProject.js +++ b/studentview/assets/js/newProject.js @@ -7,6 +7,7 @@ $(document).ready(function () { $('#projectNameExists').hide(); $('#projectIsMissing').hide(); $('#exactNumberOfTags').hide(); + $('#specialChars').hide(); $(function () { $('#tagsProject').tagsInput({ width: '475px', @@ -22,12 +23,31 @@ $(document).ready(function () { var activ = "1"; createNewProject(allTheTags, activ); }); + + }); function createNewProject(allTheTags, activ) { + $("#nameProject").focus(); + $('#projectNameExists').hide(); + $('#projectIsMissing').hide(); + $('#exactNumberOfTags').hide(); + $('#specialChars').hide(); + var projectName = $("#nameProject").val().trim(); var password = $("#passwordProject").val().trim(); + + var reguexp = /^[a-zA-Z0-9]+$/; + if (!reguexp.test(projectName)) { + $('#specialChars').show(); + return false; + } + if (projectName === "") { //project has no name, so abort function + $('#projectIsMissing').show(); + return false; + } + document.getElementById('loader').className = "loader"; document.getElementById('wrapper').className = "wrapper-inactive"; var localurl = "../database/getProjects.php?project=" + projectName; @@ -36,89 +56,87 @@ function createNewProject(allTheTags, activ) { } else { document.getElementById('tagHelper').className = ""; } - if (projectName === "") { //project has no name, so abort function - $('#projectIsMissing').show(); - return false; - } else { - $('#projectIsMissing').hide(); - $.ajax({ //check local DB for existence of projectName - url: localurl, - projectName: projectName, - activ: activ, - Accept: "text/plain; charset=utf-8", - contentType: "text/plain", - success: function (response) { - if (response !== "project missing") { - $('#projectNameExists').show(); + + + $('#projectIsMissing').hide(); + $.ajax({ //check local DB for existence of projectName + url: localurl, + projectName: projectName, + activ: activ, + Accept: "text/plain; charset=utf-8", + contentType: "text/plain", + success: function (response) { + if (response !== "project missing") { + $('#projectNameExists').show(); + document.getElementById('loader').className = "loader-inactive"; + document.getElementById('wrapper').className = "wrapper"; + return true; + } else { + $('#projectNameExists').hide(); + if (allTheTags.length !== 5) { + document.getElementById('tagHelper').className = "alert alert-warning"; document.getElementById('loader').className = "loader-inactive"; document.getElementById('wrapper').className = "wrapper"; - return true; - } else { - $('#projectNameExists').hide(); - if (allTheTags.length !== 5) { - document.getElementById('tagHelper').className = "alert alert-warning"; + $('#exactNumberOfTags').show(); + return false; + } + document.getElementById('tagHelper').className = ""; + var obj = { + "courseId": projectName, + "printableName": projectName, + "competences": allTheTags + }; + var url = "https://esb.uni-potsdam.de:8243/services/competenceBase/api1/courses/" + $("#nameProject").val(); + var dataString = JSON.stringify(obj); + var addProjectNeo4j = $.ajax({ + url: url, + contentType: 'application/json', + activ: activ, + type: 'PUT', + data: dataString, + success: function (response) { + console.log(response); document.getElementById('loader').className = "loader-inactive"; document.getElementById('wrapper').className = "wrapper"; - $('#exactNumberOfTags').show(); - return false; - } - document.getElementById('tagHelper').className = ""; - var obj = { - "courseId": projectName, - "printableName": projectName, - "competences": allTheTags - }; - var url = "https://esb.uni-potsdam.de:8243/services/competenceBase/api1/courses/" + $("#nameProject").val(); - var dataString = JSON.stringify(obj); - var addProjectNeo4j = $.ajax({ - url: url, - contentType: 'application/json', - activ: activ, - type: 'PUT', - data: dataString, - success: function (response) { - console.log(response); - document.getElementById('loader').className = "loader-inactive"; - document.getElementById('wrapper').className = "wrapper"; - }, - error: function (a, b, c) { - console.log(a); - document.getElementById('loader').className = "loader-inactive"; - document.getElementById('wrapper').className = "wrapper"; - return false; - } - }); - $.when(addProjectNeo4j, addProjectToLocalDB(allTheTags, projectName, password, activ)).done(function () { + }, + error: function (a, b, c) { + console.log(a); document.getElementById('loader').className = "loader-inactive"; document.getElementById('wrapper').className = "wrapper"; - if ($('#Teilnehmer').prop("checked")) { //if author wants to join the course, he needs to be redirected to preferences.php - var url = "../database/getProjects.php?project=" + projectName + "&password=" + document.getElementById('passwordProject').value; - $.ajax({ - url: url, - projectName: projectName, - Accept: "text/plain; charset=utf-8", - contentType: "text/plain", - success: function (response) { - location.href = "preferences.php?token=" + getUserTokenFromUrl() + "&projectToken=" + response; - }, - error: function (a, b, c) { - console.log(a); - } - }); - } else { //if author is just author and not member, he will be directed to projects.php - location.href = "projects.php?token=" + getUserTokenFromUrl(); - } - }); - } - }, - error: function (a, b, c) { - console.log(a); - document.getElementById('loader').className = "loader-inactive"; - document.getElementById('wrapper').className = "wrapper"; - return true; + return false; + } + }); + $.when(addProjectNeo4j, addProjectToLocalDB(allTheTags, projectName, password, activ)).done(function () { + document.getElementById('loader').className = "loader-inactive"; + document.getElementById('wrapper').className = "wrapper"; + if ($('#Teilnehmer').prop("checked")) { //if author wants to join the course, he needs to be redirected to preferences.php + var url = "../database/getProjects.php?project=" + projectName + "&password=" + document.getElementById('passwordProject').value; + $.ajax({ + url: url, + projectName: projectName, + Accept: "text/plain; charset=utf-8", + contentType: "text/plain", + success: function (response) { + location.href = "preferences.php?token=" + getUserTokenFromUrl() + "&projectToken=" + response; + }, + error: function (a, b, c) { + console.log(a); + } + }); + } else { //if author is just author and not member, he will be directed to projects.php + location.href = "projects.php?token=" + getUserTokenFromUrl(); + } + }); } - }); - } + }, + error: function (a, b, c) { + console.log(a); + document.getElementById('loader').className = "loader-inactive"; + document.getElementById('wrapper').className = "wrapper"; + return true; + } + }); + } function addProjectToLocalDB(allTheTags, projectName, password, activ) { diff --git a/studentview/pages/newproject.php b/studentview/pages/newproject.php index 3fe08313..cc219ce3 100644 --- a/studentview/pages/newproject.php +++ b/studentview/pages/newproject.php @@ -59,6 +59,9 @@ include_once '../database/tokenSetter.php'; <div class="alert alert-danger" role="alert" id="exactNumberOfTags"> Es müssen genau 5 Tags eingegeben werden. </div> + <div class="alert alert-danger" role="alert" id="specialChars"> + Der Projektname darf keine Sonderzeichen enthalten. + </div> <div class="alert alert-danger" role="alert" id="projectIsMissing"> Tragen sie einen Projektnamen ein. </div> -- GitLab