improve voting plugin - more updates incoming!

This commit is contained in:
2023-10-23 14:27:21 +02:00
parent 255b5f503c
commit 13cba558d2
3 changed files with 43 additions and 16 deletions

View File

@@ -6,7 +6,7 @@ body {
font-family: monospace;
height: 100%;
width: 100%;
background-color: lightgray;
background-color: rgb(114, 164, 173);
}
.title-area {

View File

@@ -62,18 +62,28 @@
.entry {
border: black 2px solid;
padding: 1% 10%;
width: 40vw;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.selected {
background-color: green;
}
.comment {
width: 50%;
text-align: center;
}
</style>
</head>
<body>
<div class="content" id="app">
<div v-if="votingDetails.display">
<h1>Voting on {{ votingDetails.display ?? 'untitled' }}</h1>
<p v-if="votingDetails.description">{{ votingDetails.description }}</p>
<p v-if="votingDetails.description" class="comment">{{ votingDetails.description }}</p>
<div style="margin-bottom: 1%;" v-if="votingDetails.allowAdding">
<button onclick="location.href = '/'">Back to website</button>
<button @click="addSuggestion();">Add suggestion</button>

View File

@@ -26,21 +26,38 @@ createApp( {
},
save() {
if ( this.newSuggestion.comment && this.newSuggestion.title ) {
let fetchOptions = {
method: 'post',
body: JSON.stringify( this.newSuggestion ),
headers: {
'Content-Type': 'application/json',
'charset': 'utf-8'
},
};
fetch( '/polls/add/' + location.pathname.substring( 7 ), fetchOptions ).then( response => {
if ( response.status !== 200 ) {
alert( 'there was an error updating' );
let alreadyExists = false;
for ( let el in this.entries ) {
if ( this.entries[ el ][ 'title' ] === this.newSuggestion.title ) {
alreadyExists = true;
}
}
if ( alreadyExists ) {
if ( confirm( 'An element with the same title exists already. Do you really want to add another one?' ) ) {
if ( confirm( 'Are you really sure?' ) ) {
alreadyExists = true;
} else {
alreadyExists = false;
}
}
} );
this.closePopup();
this.getData();
}
if ( !alreadyExists ) {
let fetchOptions = {
method: 'post',
body: JSON.stringify( this.newSuggestion ),
headers: {
'Content-Type': 'application/json',
'charset': 'utf-8'
},
};
fetch( '/voting/add/' + location.pathname.substring( 8 ), fetchOptions ).then( response => {
if ( response.status !== 200 ) {
alert( 'there was an error updating' );
}
} );
this.closePopup();
this.getData();
}
} else {
alert( 'Not all required fields are filled out!' );
}