Allowing updating issue on frontend

This commit is contained in:
jetli 2024-07-31 22:59:27 -07:00
parent 8c44d4856e
commit 2eff7a68c3

View File

@ -4,14 +4,8 @@
<div class="accordion" id="workspace-project-accordion"> <div class="accordion" id="workspace-project-accordion">
<div v-if="project.id" class="accordion-item"> <div v-if="project.id" class="accordion-item">
<h2 class="accordion-header"> <h2 class="accordion-header">
<button <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
class="accordion-button collapsed" data-bs-target="#collapse-project-issue" aria-expanded="false" aria-controls="collapse-project-issue">
type="button"
data-bs-toggle="collapse"
data-bs-target="#collapse-project-issue"
aria-expanded="false"
aria-controls="collapse-project-issue"
>
<div class="project-issue-bar-container dashed-container"> <div class="project-issue-bar-container dashed-container">
<div class="project-issue-open-issues"> <div class="project-issue-open-issues">
<label class="project-item-label">{{ $t('Summary') }}</label> <label class="project-item-label">{{ $t('Summary') }}</label>
@ -38,41 +32,25 @@
</div> </div>
</button> </button>
</h2> </h2>
<div <div id="collapse-project-issue" class="accordion-collapse collapse" data-bs-parent="#collapse-project-issue">
id="collapse-project-issue"
class="accordion-collapse collapse"
data-bs-parent="#collapse-project-issue"
>
<div class="project-invite-collaborator-containter"> <div class="project-invite-collaborator-containter">
<button <button class="accordion-button collapsed" type="button" ref="issueAddBtn" data-bs-toggle="collapse"
class="accordion-button collapsed" data-bs-target="#collapse-project-new-issue" aria-expanded="false"
type="button" aria-controls="collapse-project-issue">
ref="issueAddBtn"
data-bs-toggle="collapse"
data-bs-target="#collapse-project-new-issue"
aria-expanded="false"
aria-controls="collapse-project-issue"
>
<div class="project-invite-collaborator">+ {{ $t('Add Issue') }}</div> <div class="project-invite-collaborator">+ {{ $t('Add Issue') }}</div>
</button> </button>
<div <div id="collapse-project-new-issue" class="accordion-collapse collapse"
id="collapse-project-new-issue" data-bs-parent="#collapse-project-new-issue">
class="accordion-collapse collapse"
data-bs-parent="#collapse-project-new-issue"
>
<div class="project-issue-description-container"> <div class="project-issue-description-container">
<div class="project-issue-description"> <div class="project-issue-description">
<label class="project-item-label">{{ $t('New issue description') }}</label> <label class="project-item-label">{{ $t('New issue description') }}</label>
<button <button class="project-issue-description-btn" @click="
class="project-issue-description-btn" postNewIssue(
@click=" project.request.product_id,
postNewIssue( project.project_id,
project.request.product_id, newIssueDescriptions
project.project_id, )
newIssueDescriptions ">
)
"
>
{{ $t('Submit') }} {{ $t('Submit') }}
</button> </button>
</div> </div>
@ -81,22 +59,13 @@
</div> </div>
</div> </div>
<div> <div>
<div <div class="project-issue-container" v-for="(issue, issue_index) in project.project.issue.open_issues"
class="project-issue-container" :key="issue_index" :id="'project-issue-' + issue_index">
v-for="(issue, issue_index) in project.project.issue.open_issues"
:key="issue_index"
:id="'project-issue-' + issue_index"
>
<div class="accordion-item"> <div class="accordion-item">
<h2 class="accordion-header"> <h2 class="accordion-header">
<button <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
class="accordion-button collapsed" :data-bs-target="'#collapse-project-issue-details' + issue_index" aria-expanded="false"
type="button" aria-controls="collapse-project-issue-details">
data-bs-toggle="collapse"
:data-bs-target="'#collapse-project-issue-details' + issue_index"
aria-expanded="false"
aria-controls="collapse-project-issue-details"
>
<div class="project-issue-header dashed-container"> <div class="project-issue-header dashed-container">
<div class="project-issue-title"> <div class="project-issue-title">
<label class="project-item-label">{{ $t('Issue title') }}</label> <label class="project-item-label">{{ $t('Issue title') }}</label>
@ -117,57 +86,39 @@
</div> </div>
</button> </button>
</h2> </h2>
<div <div :id="'collapse-project-issue-details' + issue_index" class="accordion-collapse collapse"
:id="'collapse-project-issue-details' + issue_index" :data-bs-parent="'#collapse-project-issue-details' + issue_index">
class="accordion-collapse collapse"
:data-bs-parent="'#collapse-project-issue-details' + issue_index"
>
<div class="project-issue-description-container"> <div class="project-issue-description-container">
<div v-if="!updatingIssue || updatingIssue.issue_id !== issue.id" class="project-issue-description"> <div v-if="!updatingIssue || updatingIssue.issue_id !== issue.id"
class="project-issue-description">
<label class="project-item-label">{{ $t('Issue description') }}</label> <label class="project-item-label">{{ $t('Issue description') }}</label>
<button <button :hidden="!showIssueActionButton(project.project, issue, 'Edit')"
:hidden="!showIssueActionButton(project.project, issue, 'Edit')" class="project-issue-description-btn" @click="editIssue(issue)">
class="project-issue-description-btn"
@click="editIssue(issue)"
>
{{ $t('Edit') }} {{ $t('Edit') }}
</button> </button>
<button <button :hidden="!showIssueActionButton(project.project, issue, 'Resolve')"
:hidden="!showIssueActionButton(project.project, issue, 'Resolve')" class="project-issue-description-btn" @click="setProjectIssueStatus(issue.id, 1)">
class="project-issue-description-btn"
@click="setProjectIssueStatus(issue.id, 1)"
>
{{ $t('Resolve') }} {{ $t('Resolve') }}
</button> </button>
<button <button :hidden="!showIssueActionButton(project.project, issue, 'Confirm')"
:hidden="!showIssueActionButton(project.project, issue, 'Confirm')" class="project-issue-description-btn" @click="setProjectIssueStatus(issue.id, 2)">
class="project-issue-description-btn"
@click="setProjectIssueStatus(issue.id, 2)"
>
{{ $t('Confirm') }} {{ $t('Confirm') }}
</button> </button>
<button <button :hidden="!showIssueActionButton(project.project, issue, 'Reopen')"
:hidden="!showIssueActionButton(project.project, issue, 'Reopen')" class="project-issue-description-btn" @click="setProjectIssueStatus(issue.id, 0)">
class="project-issue-description-btn"
@click="setProjectIssueStatus(issue.id, 0)"
>
{{ $t('Reopen') }} {{ $t('Reopen') }}
</button> </button>
</div> </div>
<p v-if="!updatingIssue || updatingIssue.issue_id !== issue.id" class="project-item-text">{{ issue.description }}</p> <p v-if="!updatingIssue || updatingIssue.issue_id !== issue.id" class="project-item-text">{{
<div v-if="updatingIssue && updatingIssue.issue_id === issue.id" class="project-issue-description-container"> issue.description }}</p>
<div v-if="updatingIssue && updatingIssue.issue_id === issue.id"
class="project-issue-description-container">
<div class="project-issue-description"> <div class="project-issue-description">
<label class="project-item-label">{{ $t('Issue title') }}</label> <label class="project-item-label">{{ $t('Issue title') }}</label>
<button <button class="project-issue-description-btn" @click="updateIssueCancel">
class="project-issue-description-btn"
@click="updateIssueCancel"
>
{{ $t('Cancel') }} {{ $t('Cancel') }}
</button> </button>
<button <button class="project-issue-description-btn" @click="updateIssue">
class="project-issue-description-btn"
@click="updateIssue"
>
{{ $t('Update') }} {{ $t('Update') }}
</button> </button>
</div> </div>
@ -180,15 +131,12 @@
<div class="upload-contianer"> <div class="upload-contianer">
<label class="btn btn-link"> <label class="btn btn-link">
<span v-if="!updatingIssue.issue_attachment">{{ $t('Upload attachment') }}</span> <span v-if="!updatingIssue.issue_attachment">{{ $t('Upload attachment') }}</span>
<span v-if="updatingIssue.issue_attachment">{{ updatingIssue.issue_attachment.name }}</span> <span v-if="updatingIssue.issue_attachment">{{ updatingIssue.issue_attachment.name
}}</span>
<input type="file" hidden @change="handleFileUpload" /> <input type="file" hidden @change="handleFileUpload" />
</label> </label>
<svg-icon <svg-icon v-if="updatingIssue.issue_attachment" icon="delete" class-name="delete-icon"
v-if="updatingIssue.issue_attachment" @click.stop="clearFile" />
icon="delete"
class-name="delete-icon"
@click.stop="clearFile"
/>
</div> </div>
</div> </div>
</div> </div>
@ -280,11 +228,15 @@ export default {
}, },
editIssue(issue) { editIssue(issue) {
console.log('edit issue', issue) console.log('edit issue', issue)
var attachment = null
if (issue.attachment != null) {
attachment = issue.attachment
}
this.updatingIssue = { this.updatingIssue = {
issue_id: issue.id, issue_id: issue.id,
issue_title: issue.title, issue_title: issue.title,
issue_description: issue.description, issue_description: issue.description,
issue_attachment: issue.attachment issue_attachment: attachment
} }
}, },
updateIssue() { updateIssue() {