fixed small bugs and made comment fields bigger
This commit is contained in:
@ -32,7 +32,7 @@ export const getSelectedMaintenanceVisitsByChecklistname = async (selected, resu
|
|||||||
export const getSelectedMaintenanceVisitsByTemplate = async (selected, result) => {
|
export const getSelectedMaintenanceVisitsByTemplate = async (selected, result) => {
|
||||||
try {
|
try {
|
||||||
let sql = `SELECT * FROM maintenancevisits WHERE templateID = ? ORDER BY name ASC`;
|
let sql = `SELECT * FROM maintenancevisits WHERE templateID = ? ORDER BY name ASC`;
|
||||||
const results = await ownConn.execute(sql, [id])
|
const results = await ownConn.execute(sql, [selected])
|
||||||
result(null, results);
|
result(null, results);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
|
|||||||
@ -61,7 +61,7 @@ export const updateMaintenanceVisitTodoById = async (data, result) => {
|
|||||||
try {
|
try {
|
||||||
const id = data.primaryID;
|
const id = data.primaryID;
|
||||||
let sql = `UPDATE maintenancevisittodos SET step = ?, asset = ?, task = ?, comment = ?, done = ? WHERE primaryID = ?`;
|
let sql = `UPDATE maintenancevisittodos SET step = ?, asset = ?, task = ?, comment = ?, done = ? WHERE primaryID = ?`;
|
||||||
const results = await ownConn.query(sql, [data.step, data.asset, data.task, data.comment, id])
|
const results = await ownConn.query(sql, [data.step, data.asset, data.task, data.comment, data.done, id])
|
||||||
results.insertId = results.insertId.toString();
|
results.insertId = results.insertId.toString();
|
||||||
result(null, results);
|
result(null, results);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,14 +2,22 @@
|
|||||||
<section :class="['dashboard', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
<section :class="['dashboard', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
||||||
<h2 :class="['heading', darkMode ? 'heading-darkmode' : 'heading-lightmode']">My tasks</h2>
|
<h2 :class="['heading', darkMode ? 'heading-darkmode' : 'heading-lightmode']">My tasks</h2>
|
||||||
<div class="shortcuts">
|
<div class="shortcuts">
|
||||||
<input :class="[darkMode ? 'input-darkmode' : 'input-lightmode']" type="button" id="maintenance-visits"
|
<nuxt-link to="/maintenanceVisits" id="nuxt-link" class="button"
|
||||||
value="My Maintenance Visits">
|
:class="[darkMode ? 'button-darkmode' : 'button-lightmode', darkMode ? 'nuxt-link-darkmode' : 'nuxt-link-lightmode']"
|
||||||
<input :class="[darkMode ? 'input-darkmode' : 'input-lightmode']" type="button" id="production-orders"
|
@click="goToMVIList()">
|
||||||
value="My Production Orders">
|
<button :class="[darkMode ? 'input-darkmode' : 'input-lightmode']" type="button" id="maintenance-visits">My
|
||||||
<input :class="[darkMode ? 'input-darkmode' : 'input-lightmode']" type="button" id="solutions"
|
Maintenance Visits</button>
|
||||||
|
</nuxt-link>
|
||||||
|
<nuxt-link to="/productionOrders" id="nuxt-link" class="button"
|
||||||
|
:class="[darkMode ? 'button-darkmode' : 'button-lightmode', darkMode ? 'nuxt-link-darkmode' : 'nuxt-link-lightmode']"
|
||||||
|
@click="goToPOIList()">
|
||||||
|
<button :class="[darkMode ? 'input-darkmode' : 'input-lightmode']" type="button" id="production-orders">My
|
||||||
|
Production Orders</button>
|
||||||
|
</nuxt-link>
|
||||||
|
<!-- <input :class="[darkMode ? 'input-darkmode' : 'input-lightmode']" type="button" id="solutions"
|
||||||
value="My Solutions">
|
value="My Solutions">
|
||||||
<input :class="[darkMode ? 'input-darkmode' : 'input-lightmode']" type="button" id="issue-slips"
|
<input :class="[darkMode ? 'input-darkmode' : 'input-lightmode']" type="button" id="issue-slips"
|
||||||
value="My Issue Slips">
|
value="My Issue Slips"> -->
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</template>
|
</template>
|
||||||
@ -24,6 +32,7 @@ const store = useStore();
|
|||||||
const modeChanged = computed(() => store.state.updateDarkMode);
|
const modeChanged = computed(() => store.state.updateDarkMode);
|
||||||
const modeChangedLocalstorage = computed(() => store.state.modeDashboard);
|
const modeChangedLocalstorage = computed(() => store.state.modeDashboard);
|
||||||
const darkMode = ref('');
|
const darkMode = ref('');
|
||||||
|
const loggedInUsername = ref('');
|
||||||
|
|
||||||
const getSession = async () => {
|
const getSession = async () => {
|
||||||
if (modeChangedLocalstorage.value) {
|
if (modeChangedLocalstorage.value) {
|
||||||
@ -37,6 +46,18 @@ const getSession = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const goToMVIList = () => {
|
||||||
|
store.commit('activateFilteredUserTerm');
|
||||||
|
store.commit('activateFiltered');
|
||||||
|
store.commit('changeToInstancelist');
|
||||||
|
};
|
||||||
|
|
||||||
|
const goToPOIList = () => {
|
||||||
|
store.commit('activateFilteredUserTerm');
|
||||||
|
store.commit('activateFiltered');
|
||||||
|
store.commit('changeToInstancelist');
|
||||||
|
};
|
||||||
|
|
||||||
function getItem(item) {
|
function getItem(item) {
|
||||||
if (process.client) {
|
if (process.client) {
|
||||||
return localStorage.getItem(item)
|
return localStorage.getItem(item)
|
||||||
@ -105,7 +126,8 @@ export default {
|
|||||||
gap: 2.5rem;
|
gap: 2.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
input {
|
input,
|
||||||
|
button {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -120,6 +142,10 @@ input {
|
|||||||
font: 400 0.875rem/2rem Overpass, sans-serif;
|
font: 400 0.875rem/2rem Overpass, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
.input-darkmode {
|
.input-darkmode {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: #343434;
|
background-color: #343434;
|
||||||
|
|||||||
@ -487,12 +487,14 @@ const addIssueSlip = async () => {
|
|||||||
const time = today.getHours() + ":" + today.getMinutes();
|
const time = today.getHours() + ":" + today.getMinutes();
|
||||||
const dateTime = date + ' ' + time;
|
const dateTime = date + ' ' + time;
|
||||||
let allFine = true;
|
let allFine = true;
|
||||||
newOIs.value.forEach(oi => {
|
if (newOIs.value.length != 0) {
|
||||||
if (oi.article.length === 0 && oi.amount.length === 0 && oi.price.length === 0 && oi.comment.length === 0) {
|
newOIs.value.forEach(oi => {
|
||||||
alert(`Please add data for all ordering info.`);
|
if (oi.article.length === 0 && oi.amount.length === 0 && oi.price.length === 0 && oi.comment.length === 0) {
|
||||||
allFine = false
|
alert(`Please add data for all ordering info.`);
|
||||||
}
|
allFine = false
|
||||||
})
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
if (!allFine) {
|
if (!allFine) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -526,22 +528,24 @@ const addIssueSlip = async () => {
|
|||||||
egressBillDate: newEgressBillDate.value,
|
egressBillDate: newEgressBillDate.value,
|
||||||
egressBill: newEgressBill.value,
|
egressBill: newEgressBill.value,
|
||||||
});
|
});
|
||||||
newOIs.value.forEach(async oi => {
|
if (newOIs.value.length != 0) {
|
||||||
try {
|
newOIs.value.forEach(async oi => {
|
||||||
const res = await Axios.post(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/addOrderingInfo`,
|
try {
|
||||||
{
|
const res = await Axios.post(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/addOrderingInfo`,
|
||||||
issueSlipID: response.data,
|
{
|
||||||
article: oi.article,
|
issueSlipID: response.data,
|
||||||
amount: oi.amount,
|
article: oi.article,
|
||||||
price: oi.price,
|
amount: oi.amount,
|
||||||
comment: oi.comment,
|
price: oi.price,
|
||||||
});
|
comment: oi.comment,
|
||||||
} catch (err) {
|
});
|
||||||
console.log(err);
|
} catch (err) {
|
||||||
}
|
console.log(err);
|
||||||
store.commit('resetStore');
|
}
|
||||||
store.commit('changeToIssueSliplist');
|
})
|
||||||
})
|
}
|
||||||
|
store.commit('resetStore');
|
||||||
|
store.commit('changeToIssueSliplist');
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err.response.statusText);
|
console.log(err.response.statusText);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,12 +14,12 @@
|
|||||||
:class="['Task', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
:class="['Task', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
||||||
Task</th>
|
Task</th>
|
||||||
<th
|
<th
|
||||||
:class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Comments-darkmode' : 'Comments-lightmode']">
|
:class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode && !addBool ? 'Comments-darkmode' : '', !darkMode && !addBool ? 'Comments-lightmode' : '']">
|
||||||
Comments</th>
|
Comments</th>
|
||||||
<th v-if="!addBool" :class="['Done', darkMode ? 'th-darkmode' : 'th-lightmode']">Done</th>
|
<th v-if="!addBool" :class="['Done', darkMode ? 'th-darkmode' : 'th-lightmode']">Done</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-for="todo in poiTodos" :key="todo.primaryID"
|
<tr v-for="todo in poiTodos" :key="todo.primaryID"
|
||||||
:class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
:class="['table-row-data', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
||||||
<td
|
<td
|
||||||
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
{{ todo.rowID }}</td>
|
{{ todo.rowID }}</td>
|
||||||
@ -29,12 +29,10 @@
|
|||||||
<td
|
<td
|
||||||
:class="['Task', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
:class="['Task', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
||||||
{{ todo.task }}</td>
|
{{ todo.task }}</td>
|
||||||
<td v-if="!editable"
|
<td
|
||||||
:class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Comments-darkmode' : 'Comments-lightmode']">
|
:class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode && !addBool ? 'Comments-darkmode' : '', !darkMode && !addBool ? 'Comments-lightmode' : '']">
|
||||||
{{ todo.comments }}</td>
|
<textarea type="text" v-model="todo.comments" :readonly="!editable" @change="updatePOITodo(todo)"
|
||||||
<td v-if="editable" :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> <input
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> </textarea>
|
||||||
type="text" v-model="todo.comments" @change="updatePOITodo(todo)"
|
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
|
||||||
</td>
|
</td>
|
||||||
<td v-if="!addBool" :class="['Done', darkMode ? 'td-darkmode' : 'td-lightmode']"><input
|
<td v-if="!addBool" :class="['Done', darkMode ? 'td-darkmode' : 'td-lightmode']"><input
|
||||||
@change="toggleTodo(todo)" type="checkbox" v-model="todo.done"
|
@change="toggleTodo(todo)" type="checkbox" v-model="todo.done"
|
||||||
@ -231,6 +229,7 @@ const addPOI = async () => {
|
|||||||
notes: newNotesPOI.value,
|
notes: newNotesPOI.value,
|
||||||
});
|
});
|
||||||
store.commit('resetStore');
|
store.commit('resetStore');
|
||||||
|
store.commit('deactivateSearch');
|
||||||
store.commit('changeToInstancelist');
|
store.commit('changeToInstancelist');
|
||||||
store.commit('seeAllIcon');
|
store.commit('seeAllIcon');
|
||||||
poiTodos.value.forEach(async todo => {
|
poiTodos.value.forEach(async todo => {
|
||||||
@ -328,6 +327,14 @@ export default {
|
|||||||
gap: 0.625rem;
|
gap: 0.625rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.table-row-data {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0.625rem;
|
||||||
|
gap: 0.625rem;
|
||||||
|
}
|
||||||
|
|
||||||
.saveNewPOI-darkmode {
|
.saveNewPOI-darkmode {
|
||||||
background: #2c2c2c;
|
background: #2c2c2c;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -391,6 +398,10 @@ td {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
height: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
th {
|
th {
|
||||||
font: 700 0.875rem/1.875rem Overpass, sans-serif;
|
font: 700 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
}
|
}
|
||||||
@ -501,4 +512,10 @@ th {
|
|||||||
.label-lightmode {
|
.label-lightmode {
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: none;
|
||||||
|
width: 20rem;
|
||||||
|
height: 5rem;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -14,12 +14,12 @@
|
|||||||
:class="['Task', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
:class="['Task', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
||||||
Task</th>
|
Task</th>
|
||||||
<th
|
<th
|
||||||
:class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Comments-darkmode' : 'Comments-lightmode']">
|
:class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode && !addBool ? 'Comments-darkmode' : '', !darkMode && !addBool ? 'Comments-lightmode' : '']">
|
||||||
Comments</th>
|
Comments</th>
|
||||||
<th v-if="!addBool" :class="['Done', darkMode ? 'th-darkmode' : 'th-lightmode']">Done</th>
|
<th v-if="!addBool" :class="['Done', darkMode ? 'th-darkmode' : 'th-lightmode']">Done</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-for="todo in mviTodos" :key="todo.primaryID"
|
<tr v-for="todo in mviTodos" :key="todo.primaryID"
|
||||||
:class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
:class="['table-row-data', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
||||||
<td
|
<td
|
||||||
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
{{ todo.rowID }}</td>
|
{{ todo.rowID }}</td>
|
||||||
@ -29,12 +29,11 @@
|
|||||||
<td
|
<td
|
||||||
:class="['Task', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
:class="['Task', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
||||||
{{ todo.task }}</td>
|
{{ todo.task }}</td>
|
||||||
<td v-if="!editable"
|
<td
|
||||||
:class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Comments-darkmode' : 'Comments-lightmode']">
|
:class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode && !addBool ? 'Comments-darkmode' : '', !darkMode && !addBool ? 'Comments-lightmode' : '']">
|
||||||
{{ todo.comments }}</td>
|
<textarea type="text" v-model="todo.comments" :readonly="!editable"
|
||||||
<td v-if="editable" :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> <input
|
@change="updateMVITodo(todo)"
|
||||||
type="text" v-model="todo.comments" @change="updateMVITodo(todo)"
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> </textarea>
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
|
||||||
</td>
|
</td>
|
||||||
<td v-if="!addBool" :class="['Done', darkMode ? 'td-darkmode' : 'td-lightmode']"><input
|
<td v-if="!addBool" :class="['Done', darkMode ? 'td-darkmode' : 'td-lightmode']"><input
|
||||||
@change="toggleTodo(todo)" type="checkbox" v-model="todo.done"
|
@change="toggleTodo(todo)" type="checkbox" v-model="todo.done"
|
||||||
@ -74,7 +73,7 @@ const newCustomerMVI = computed(() => store.state.newCustomerMVI);
|
|||||||
const newTemplateNotesMVI = computed(() => store.state.newTemplateNotesMVI);
|
const newTemplateNotesMVI = computed(() => store.state.newTemplateNotesMVI);
|
||||||
const newTypeMVI = computed(() => store.state.newTypeMVI);
|
const newTypeMVI = computed(() => store.state.newTypeMVI);
|
||||||
const newTimeSpentMVI = computed(() => store.state.newTimeSpentMVI);
|
const newTimeSpentMVI = computed(() => store.state.newTimeSpentMVI);
|
||||||
const newNotesMVI = computed(() => store.state.newNotes);
|
const newNotesMVI = computed(() => store.state.newNotesMVI);
|
||||||
const editable = computed(() => store.state.editable);
|
const editable = computed(() => store.state.editable);
|
||||||
|
|
||||||
const darkMode = ref('');
|
const darkMode = ref('');
|
||||||
@ -97,7 +96,12 @@ const getMVITodosById = async () => {
|
|||||||
const response = await Axios.get(
|
const response = await Axios.get(
|
||||||
`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getTodosMaintenanceVisitTemplate/${chosenMVTId.value}`
|
`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getTodosMaintenanceVisitTemplate/${chosenMVTId.value}`
|
||||||
);
|
);
|
||||||
mviTodos.value = response.data;
|
const mviTodosComment = response.data;
|
||||||
|
// change the commets to comments
|
||||||
|
mviTodos.value = mviTodosComment.map(obj => {
|
||||||
|
const { commets: comments, ...rest } = obj;
|
||||||
|
return { ...rest, comments };
|
||||||
|
});
|
||||||
store.commit('updateMaintenanceVisitInstanceTemplateID', chosenMVTId.value)
|
store.commit('updateMaintenanceVisitInstanceTemplateID', chosenMVTId.value)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err.response.statusText);
|
console.log(err.response.statusText);
|
||||||
@ -107,7 +111,12 @@ const getMVITodosById = async () => {
|
|||||||
const response = await Axios.get(
|
const response = await Axios.get(
|
||||||
`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getTodosMaintenanceVisitTemplate/${newTemplateIDMVI.value}`
|
`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getTodosMaintenanceVisitTemplate/${newTemplateIDMVI.value}`
|
||||||
);
|
);
|
||||||
mviTodos.value = response.data;
|
const mviTodosComment = response.data;
|
||||||
|
// change the commets to comments
|
||||||
|
mviTodos.value = mviTodosComment.map(obj => {
|
||||||
|
const { commets: comments, ...rest } = obj;
|
||||||
|
return { ...rest, comments };
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err.response.statusText);
|
console.log(err.response.statusText);
|
||||||
}
|
}
|
||||||
@ -117,7 +126,7 @@ const getMVITodosById = async () => {
|
|||||||
`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getTodosMaintenanceVisitInstance/${chosenMVIId.value}`
|
`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getTodosMaintenanceVisitInstance/${chosenMVIId.value}`
|
||||||
);
|
);
|
||||||
const mviTodosComment = response.data;
|
const mviTodosComment = response.data;
|
||||||
// change the comment und step field name to comments and rowID
|
// change the comment and step field name to comments and rowID
|
||||||
mviTodos.value = mviTodosComment.map(obj => {
|
mviTodos.value = mviTodosComment.map(obj => {
|
||||||
const { step: rowID, comment: comments, ...rest } = obj;
|
const { step: rowID, comment: comments, ...rest } = obj;
|
||||||
return { ...rest, rowID, comments };
|
return { ...rest, rowID, comments };
|
||||||
@ -231,6 +240,7 @@ const addMVI = async () => {
|
|||||||
notes: newNotesMVI.value,
|
notes: newNotesMVI.value,
|
||||||
});
|
});
|
||||||
store.commit('resetStore');
|
store.commit('resetStore');
|
||||||
|
store.commit('deactivateSearch');
|
||||||
store.commit('changeToInstancelist');
|
store.commit('changeToInstancelist');
|
||||||
store.commit('seeAllIcon');
|
store.commit('seeAllIcon');
|
||||||
mviTodos.value.forEach(async todo => {
|
mviTodos.value.forEach(async todo => {
|
||||||
@ -328,6 +338,14 @@ export default {
|
|||||||
gap: 0.625rem;
|
gap: 0.625rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.table-row-data {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0.625rem;
|
||||||
|
gap: 0.625rem;
|
||||||
|
}
|
||||||
|
|
||||||
.saveNewMVI-darkmode {
|
.saveNewMVI-darkmode {
|
||||||
background: #2c2c2c;
|
background: #2c2c2c;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -391,6 +409,10 @@ td {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
height: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
th {
|
th {
|
||||||
font: 700 0.875rem/1.875rem Overpass, sans-serif;
|
font: 700 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
}
|
}
|
||||||
@ -501,4 +523,10 @@ th {
|
|||||||
.label-lightmode {
|
.label-lightmode {
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: none;
|
||||||
|
width: 20rem;
|
||||||
|
height: 5rem;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -19,8 +19,12 @@
|
|||||||
<div class="ticketNo-user">
|
<div class="ticketNo-user">
|
||||||
<div class="data-field" id="ticketNo">
|
<div class="data-field" id="ticketNo">
|
||||||
<pre :class="['label', darkMode ? 'pre-darkmode' : 'pre-lightmode']">Ticket No.:</pre>
|
<pre :class="['label', darkMode ? 'pre-darkmode' : 'pre-lightmode']">Ticket No.:</pre>
|
||||||
<pre
|
<nuxt-link to="/productionOrders" id="nuxt-link" class="button"
|
||||||
:class="['data', darkMode ? 'data-darkmode' : 'data-lightmode']">{{ issueSlip.ticketNo }}</pre>
|
:class="[darkMode ? 'button-darkmode' : 'button-lightmode', darkMode ? 'nuxt-link-darkmode' : 'nuxt-link-lightmode']"
|
||||||
|
@click="goToChosenPOI(issueSlip.ticketNo)">
|
||||||
|
<pre
|
||||||
|
:class="['data', darkMode ? 'data-darkmode' : 'data-lightmode']">{{ issueSlip.ticketNo }}</pre>
|
||||||
|
</nuxt-link>
|
||||||
</div>
|
</div>
|
||||||
<div class="data-field" id="user">
|
<div class="data-field" id="user">
|
||||||
<pre :class="['label', darkMode ? 'pre-darkmode' : 'pre-lightmode']">User:</pre>
|
<pre :class="['label', darkMode ? 'pre-darkmode' : 'pre-lightmode']">User:</pre>
|
||||||
@ -67,14 +71,15 @@
|
|||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="ticketNo-user">
|
<div class="ticketNo-user">
|
||||||
<div class="data-field" id="ticketNo">
|
<div class="data-field" id="ticketNo">
|
||||||
<pre :class="['label', darkMode ? 'pre-darkmode' : 'pre-lightmode']">Ticket No.:</pre>
|
<pre :class="['label', darkMode ? 'pre-darkmode' : 'pre-lightmode']">Production order:</pre>
|
||||||
<pre :class="['data', darkMode ? 'data-darkmode' : 'data-lightmode']"></pre>
|
<pre :class="['data', darkMode ? 'data-darkmode' : 'data-lightmode']"></pre>
|
||||||
<!-- <select id="ticketNoDropDownChosenCI" v-model="newTicketNo" @change="updateIS()"
|
<select id="ticketNoDropDownChosenCI" v-model="chosenTemplate"
|
||||||
|
@change="updateIS(chosenTemplate)"
|
||||||
:class="[darkMode ? 'select-darkmode' : 'select-lightmode']">
|
:class="[darkMode ? 'select-darkmode' : 'select-lightmode']">
|
||||||
<option v-for="po in productionOrders" :key="po.ticketNumber">
|
<option v-for="template in productionOrders" :key="template.templateID">
|
||||||
{{ po.ticketNumber }}
|
{{ template.name }}
|
||||||
</option>
|
</option>
|
||||||
</select> -->
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="data-field" id="user">
|
<div class="data-field" id="user">
|
||||||
<pre :class="['label', darkMode ? 'pre-darkmode' : 'pre-lightmode']">User:</pre>
|
<pre :class="['label', darkMode ? 'pre-darkmode' : 'pre-lightmode']">User:</pre>
|
||||||
@ -131,6 +136,7 @@ const newCustomer = ref('');
|
|||||||
const newUser = ref('');
|
const newUser = ref('');
|
||||||
const newNotes = ref('');
|
const newNotes = ref('');
|
||||||
const newDeliveryAddress = ref('');
|
const newDeliveryAddress = ref('');
|
||||||
|
const chosenTemplate = ref('');
|
||||||
|
|
||||||
// get issue slip from id
|
// get issue slip from id
|
||||||
const getIssueSlipById = async () => {
|
const getIssueSlipById = async () => {
|
||||||
@ -146,13 +152,24 @@ const getIssueSlipById = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const goToChosenPOI = (id) => {
|
||||||
|
store.commit('setChosenPOI', id);
|
||||||
|
store.commit('changeToInstance');
|
||||||
|
};
|
||||||
|
|
||||||
// update issue slip fields in the store
|
// update issue slip fields in the store
|
||||||
const updateIS = () => {
|
const updateIS = async (newPoiId = -1) => {
|
||||||
const is = {
|
let is = {};
|
||||||
|
if (!(newPoiId == '-1')) {
|
||||||
|
// Find the object with the selected Name
|
||||||
|
const selectedObject = productionOrders.value.find(obj => obj.name === newPoiId);
|
||||||
|
// Get the ticketNumber
|
||||||
|
newTicketNo.value = selectedObject ? selectedObject.ticketNumber : null;
|
||||||
|
}
|
||||||
|
is = {
|
||||||
customerId: newCustomerID.value,
|
customerId: newCustomerID.value,
|
||||||
customer: newCustomer.value,
|
customer: newCustomer.value,
|
||||||
// ticketNo: newTicketNo.value,
|
ticketNo: newTicketNo.value,
|
||||||
ticketNo: 1,
|
|
||||||
notes: newNotes.value,
|
notes: newNotes.value,
|
||||||
user: newUser.value,
|
user: newUser.value,
|
||||||
deliveryAddress: newDeliveryAddress.value,
|
deliveryAddress: newDeliveryAddress.value,
|
||||||
@ -218,15 +235,14 @@ const getCustomers = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//get all production orders
|
//get all productionOrder instances
|
||||||
const getProductionOrders = async () => {
|
const getProductionOrders = async () => {
|
||||||
// try {
|
try {
|
||||||
// const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getAllCustomers`
|
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getAllProductionOrderInstances`);
|
||||||
// );
|
productionOrders.value = response.data;
|
||||||
// customers.value = response.data;
|
} catch (err) {
|
||||||
// } catch (err) {
|
console.log(err.response.statusText);
|
||||||
// console.log(err.response.statusText);
|
}
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const confirmDeleteIssueSlip = async () => {
|
const confirmDeleteIssueSlip = async () => {
|
||||||
@ -498,4 +514,16 @@ export default {
|
|||||||
padding: 0.4rem;
|
padding: 0.4rem;
|
||||||
border-radius: 0.3125rem;
|
border-radius: 0.3125rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#nuxt-link {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nuxt-link-darkmode {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nuxt-link-lightmode {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -308,6 +308,7 @@ const confirmDeleteMVI = async () => {
|
|||||||
}
|
}
|
||||||
store.commit('undoDelete');
|
store.commit('undoDelete');
|
||||||
store.commit('resetStore');
|
store.commit('resetStore');
|
||||||
|
store.commit('deactivateSearch');
|
||||||
store.commit('changeToInstancelist');
|
store.commit('changeToInstancelist');
|
||||||
store.commit('seeAllIcon');
|
store.commit('seeAllIcon');
|
||||||
} else {
|
} else {
|
||||||
@ -472,6 +473,7 @@ onMounted(async () => {
|
|||||||
getSession();
|
getSession();
|
||||||
await getMVIById();
|
await getMVIById();
|
||||||
await getMVTById();
|
await getMVTById();
|
||||||
|
triggerBackendCallsWithDelay(getUsers);
|
||||||
triggerBackendCallsWithDelay(getCustomers);
|
triggerBackendCallsWithDelay(getCustomers);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@ -685,4 +687,8 @@ export default {
|
|||||||
padding: 0.625rem 1.875rem 0.625rem 1.25rem;
|
padding: 0.625rem 1.875rem 0.625rem 1.25rem;
|
||||||
padding-top: 0rem;
|
padding-top: 0rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.templateNotes {
|
||||||
|
padding-left: 1.8rem;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<section v-if="searchable" :class="['mvi-search', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
<section v-if="searchable" :class="['mvi-search', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
||||||
<div :class="['instanceLabel', darkMode ? 'label-darkmode' : 'label-lightmode']">State</div>
|
<div :class="['instanceLabel', darkMode ? 'label-darkmode' : 'label-lightmode']">Name</div>
|
||||||
<input v-model="stateSearchFilter" @change="filterMVIByState()"
|
<input v-model="nameSearchFilter" @change="filterMVIByName()"
|
||||||
:class="['dataInput', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
:class="['dataInput', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
</section>
|
</section>
|
||||||
<section v-if="filtered" :class="['mvi-search', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
<section v-if="filtered" :class="['mvi-search', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
||||||
@ -18,8 +18,8 @@
|
|||||||
:class="['ID', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'ID-darkmode' : 'ID-lightmode']">
|
:class="['ID', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'ID-darkmode' : 'ID-lightmode']">
|
||||||
ID</th>
|
ID</th>
|
||||||
<th
|
<th
|
||||||
:class="['MaintenanceType', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'MaintenanceType-darkmode' : 'MaintenanceType-lightmode']">
|
:class="['Name', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Name-darkmode' : 'Name-lightmode']">
|
||||||
Maintenance type</th>
|
Name</th>
|
||||||
<th
|
<th
|
||||||
:class="['State', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'State-darkmode' : 'State-lightmode']">
|
:class="['State', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'State-darkmode' : 'State-lightmode']">
|
||||||
State</th>
|
State</th>
|
||||||
@ -42,8 +42,13 @@
|
|||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</td>
|
</td>
|
||||||
<td
|
<td
|
||||||
:class="['MaintenanceType', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'MaintenanceType-darkmode' : 'MaintenanceType-lightmode']">
|
:class="['Name', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Name-darkmode' : 'Name-lightmode']">
|
||||||
{{ instance.maintenanceType }}</td>
|
<nuxt-link to="/maintenanceVisits" id="nuxt-link" class="button"
|
||||||
|
:class="[darkMode ? 'button-darkmode' : 'button-lightmode', darkMode ? 'nuxt-link-darkmode' : 'nuxt-link-lightmode']"
|
||||||
|
@click="goToChosenMVI(instance.primaryID)">
|
||||||
|
{{ instance.name }}
|
||||||
|
</nuxt-link>
|
||||||
|
</td>
|
||||||
<td
|
<td
|
||||||
:class="['State', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'State-darkmode' : 'State-lightmode']">
|
:class="['State', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'State-darkmode' : 'State-lightmode']">
|
||||||
{{ instance.state }}</td>
|
{{ instance.state }}</td>
|
||||||
@ -74,14 +79,15 @@ const chosenMVTId = computed(() => store.state.chosenMVTId);
|
|||||||
const searchable = computed(() => store.state.searchable);
|
const searchable = computed(() => store.state.searchable);
|
||||||
const filtered = computed(() => store.state.filtered);
|
const filtered = computed(() => store.state.filtered);
|
||||||
const notAllInstancesIcon = computed(() => store.state.notAllInstancesIcon);
|
const notAllInstancesIcon = computed(() => store.state.notAllInstancesIcon);
|
||||||
|
const filteredUserTerm = computed(() => store.state.filteredUserTerm);
|
||||||
const userSearchFilter = ref('');
|
const userSearchFilter = ref('');
|
||||||
const stateSearchFilter = ref('');
|
const nameSearchFilter = ref('');
|
||||||
const maintenanceVisitInstances = ref([]);
|
const maintenanceVisitInstances = ref([]);
|
||||||
|
|
||||||
const darkMode = ref('');
|
const darkMode = ref('');
|
||||||
const mvt = ref({});
|
const mvt = ref({});
|
||||||
const MVIByUser = ref([]);
|
const MVIByUser = ref([]);
|
||||||
const MVIByState = ref([]);
|
const MVIByName = ref([]);
|
||||||
|
|
||||||
const goToChosenMVI = (id) => {
|
const goToChosenMVI = (id) => {
|
||||||
store.commit('setChosenMIT', id);
|
store.commit('setChosenMIT', id);
|
||||||
@ -109,14 +115,22 @@ const getMaintenanceVisitInstances = async () => {
|
|||||||
|
|
||||||
// update search term
|
// update search term
|
||||||
const updateSearchTerm = async () => {
|
const updateSearchTerm = async () => {
|
||||||
stateSearchFilter.value = '';
|
nameSearchFilter.value = '';
|
||||||
await getMaintenanceVisitInstances();
|
await getMaintenanceVisitInstances();
|
||||||
}
|
}
|
||||||
|
|
||||||
// update filter term
|
// update filter term
|
||||||
const updateFilterTerm = async () => {
|
const updateFilterTerm = async () => {
|
||||||
userSearchFilter.value = '';
|
if (filteredUserTerm.value) {
|
||||||
|
store.commit('activateFiltered');
|
||||||
|
userSearchFilter.value = getItem('logged-in-user-username');
|
||||||
|
} else {
|
||||||
|
userSearchFilter.value = '';
|
||||||
|
}
|
||||||
await getMaintenanceVisitInstances();
|
await getMaintenanceVisitInstances();
|
||||||
|
if (filteredUserTerm.value) {
|
||||||
|
await filterInstancesByUser();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// get maintenance visit template from id
|
// get maintenance visit template from id
|
||||||
@ -135,14 +149,14 @@ const getMVTById = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//get all instances based on the searched state
|
//get all instances based on the searched state
|
||||||
const filterMVIByState = async () => {
|
const filterMVIByName = async () => {
|
||||||
if (stateSearchFilter.value === '') {
|
if (nameSearchFilter.value === '') {
|
||||||
await getMaintenanceVisitInstances();
|
await getMaintenanceVisitInstances();
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getSelectedMVIByState/${stateSearchFilter.value}`);
|
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getSelectedMVIByName/${nameSearchFilter.value}`);
|
||||||
MVIByState.value = response.data;
|
MVIByName.value = response.data;
|
||||||
maintenanceVisitInstances.value = filterObjectsWithMatchingIds(maintenanceVisitInstances.value, MVIByState.value);
|
maintenanceVisitInstances.value = filterObjectsWithMatchingIds(maintenanceVisitInstances.value, MVIByName.value);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err.response.statusText);
|
console.log(err.response.statusText);
|
||||||
}
|
}
|
||||||
@ -179,6 +193,11 @@ const getSession = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getAll = async () => {
|
||||||
|
store.commit('resetFilterSearch');
|
||||||
|
await getMaintenanceVisitInstances();
|
||||||
|
}
|
||||||
|
|
||||||
function getItem(item) {
|
function getItem(item) {
|
||||||
if (process.client) {
|
if (process.client) {
|
||||||
return localStorage.getItem(item)
|
return localStorage.getItem(item)
|
||||||
@ -190,7 +209,7 @@ function getItem(item) {
|
|||||||
watch(modeChanged, getSession)
|
watch(modeChanged, getSession)
|
||||||
watch(searchable, updateSearchTerm);
|
watch(searchable, updateSearchTerm);
|
||||||
watch(filtered, updateFilterTerm);
|
watch(filtered, updateFilterTerm);
|
||||||
watch(notAllInstancesIcon, getMaintenanceVisitInstances);
|
watch(notAllInstancesIcon, getAll);
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
getSession();
|
getSession();
|
||||||
@ -319,15 +338,15 @@ th {
|
|||||||
border-right: 0.0625rem solid #8e8e8e;
|
border-right: 0.0625rem solid #8e8e8e;
|
||||||
}
|
}
|
||||||
|
|
||||||
.MaintenanceType {
|
.Name {
|
||||||
width: 15%;
|
width: 15%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.MaintenanceType-darkmode {
|
.Name-darkmode {
|
||||||
border-right: 0.0625rem solid #000000;
|
border-right: 0.0625rem solid #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.MaintenanceType-lightmode {
|
.Name-lightmode {
|
||||||
border-right: 0.0625rem solid #8e8e8e;
|
border-right: 0.0625rem solid #8e8e8e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -330,6 +330,7 @@ const confirmDeletePOI = async () => {
|
|||||||
}
|
}
|
||||||
store.commit('undoDelete');
|
store.commit('undoDelete');
|
||||||
store.commit('resetStore');
|
store.commit('resetStore');
|
||||||
|
store.commit('deactivateSearch');
|
||||||
store.commit('changeToInstancelist');
|
store.commit('changeToInstancelist');
|
||||||
store.commit('seeAllIcon');
|
store.commit('seeAllIcon');
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<section v-if="searchable" :class="['poi-search', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
<section v-if="searchable" :class="['poi-search', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
||||||
<div :class="['instanceLabel', darkMode ? 'label-darkmode' : 'label-lightmode']">State</div>
|
<div :class="['instanceLabel', darkMode ? 'label-darkmode' : 'label-lightmode']">Name</div>
|
||||||
<input v-model="stateSearchFilter" @change="filterPOIByState()"
|
<input v-model="nameSearchFilter" @change="filterPOIByName()"
|
||||||
:class="['dataInput', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
:class="['dataInput', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
</section>
|
</section>
|
||||||
<section v-if="filtered" :class="['poi-search', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
<section v-if="filtered" :class="['poi-search', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
||||||
@ -17,6 +17,9 @@
|
|||||||
<th
|
<th
|
||||||
:class="['TicketNo', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'TicketNo-darkmode' : 'TicketNo-lightmode']">
|
:class="['TicketNo', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'TicketNo-darkmode' : 'TicketNo-lightmode']">
|
||||||
Ticket No.</th>
|
Ticket No.</th>
|
||||||
|
<th
|
||||||
|
:class="['Name', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Name-darkmode' : 'Name-lightmode']">
|
||||||
|
Name</th>
|
||||||
<th
|
<th
|
||||||
:class="['Asset', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Asset-darkmode' : 'Asset-lightmode']">
|
:class="['Asset', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Asset-darkmode' : 'Asset-lightmode']">
|
||||||
Asset</th>
|
Asset</th>
|
||||||
@ -41,6 +44,14 @@
|
|||||||
{{ instance.ticketNumber }}
|
{{ instance.ticketNumber }}
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</td>
|
</td>
|
||||||
|
<td
|
||||||
|
:class="['Name', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Name-darkmode' : 'Name-lightmode']">
|
||||||
|
<nuxt-link to="/productionOrders" id="nuxt-link" class="button"
|
||||||
|
:class="[darkMode ? 'button-darkmode' : 'button-lightmode', darkMode ? 'nuxt-link-darkmode' : 'nuxt-link-lightmode']"
|
||||||
|
@click="goToChosenPOI(instance.ticketNumber)">
|
||||||
|
{{ instance.name }}
|
||||||
|
</nuxt-link>
|
||||||
|
</td>
|
||||||
<td
|
<td
|
||||||
:class="['Asset', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Asset-darkmode' : 'Asset-lightmode']">
|
:class="['Asset', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Asset-darkmode' : 'Asset-lightmode']">
|
||||||
<nuxt-link to="/assets" id="nuxt-link" class="button"
|
<nuxt-link to="/assets" id="nuxt-link" class="button"
|
||||||
@ -80,14 +91,15 @@ const chosenPOTId = computed(() => store.state.chosenPOTId);
|
|||||||
const searchable = computed(() => store.state.searchable);
|
const searchable = computed(() => store.state.searchable);
|
||||||
const filtered = computed(() => store.state.filtered);
|
const filtered = computed(() => store.state.filtered);
|
||||||
const notAllInstancesIcon = computed(() => store.state.notAllInstancesIcon);
|
const notAllInstancesIcon = computed(() => store.state.notAllInstancesIcon);
|
||||||
|
const filteredUserTerm = computed(() => store.state.filteredUserTerm);
|
||||||
const userSearchFilter = ref('');
|
const userSearchFilter = ref('');
|
||||||
const stateSearchFilter = ref('');
|
const nameSearchFilter = ref('');
|
||||||
const productionOrderInstances = ref([]);
|
const productionOrderInstances = ref([]);
|
||||||
|
|
||||||
const darkMode = ref('');
|
const darkMode = ref('');
|
||||||
const pot = ref({});
|
const pot = ref({});
|
||||||
const POIByUser = ref([]);
|
const POIByUser = ref([]);
|
||||||
const POIByState = ref([]);
|
const POIByName = ref([]);
|
||||||
|
|
||||||
const goToChosenPOI = (id) => {
|
const goToChosenPOI = (id) => {
|
||||||
store.commit('setChosenPOI', id);
|
store.commit('setChosenPOI', id);
|
||||||
@ -115,14 +127,22 @@ const getProductionOrderInstances = async () => {
|
|||||||
|
|
||||||
// update search term
|
// update search term
|
||||||
const updateSearchTerm = async () => {
|
const updateSearchTerm = async () => {
|
||||||
stateSearchFilter.value = '';
|
nameSearchFilter.value = '';
|
||||||
await getProductionOrderInstances();
|
await getProductionOrderInstances();
|
||||||
}
|
}
|
||||||
|
|
||||||
// update filter term
|
// update filter term
|
||||||
const updateFilterTerm = async () => {
|
const updateFilterTerm = async () => {
|
||||||
userSearchFilter.value = '';
|
if (filteredUserTerm.value) {
|
||||||
|
store.commit('activateFiltered');
|
||||||
|
userSearchFilter.value = getItem('logged-in-user-username');
|
||||||
|
} else {
|
||||||
|
userSearchFilter.value = '';
|
||||||
|
}
|
||||||
await getProductionOrderInstances();
|
await getProductionOrderInstances();
|
||||||
|
if (filteredUserTerm.value) {
|
||||||
|
await filterInstancesByUser();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// get production order template from id
|
// get production order template from id
|
||||||
@ -157,14 +177,14 @@ const goToChosenAsset = async (name) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//get all instances based on the searched state
|
//get all instances based on the searched state
|
||||||
const filterPOIByState = async () => {
|
const filterPOIByName = async () => {
|
||||||
if (stateSearchFilter.value === '') {
|
if (nameSearchFilter.value === '') {
|
||||||
await getProductionOrderInstances();
|
await getProductionOrderInstances();
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getSelectedPOIsByState/${stateSearchFilter.value}`);
|
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getSelectedPOIsByName/${nameSearchFilter.value}`);
|
||||||
POIByState.value = response.data;
|
POIByName.value = response.data;
|
||||||
productionOrderInstances.value = filterObjectsWithMatchingIds(productionOrderInstances.value, POIByState.value);
|
productionOrderInstances.value = filterObjectsWithMatchingIds(productionOrderInstances.value, POIByName.value);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err.response.statusText);
|
console.log(err.response.statusText);
|
||||||
}
|
}
|
||||||
@ -201,6 +221,11 @@ const getSession = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getAll = async () => {
|
||||||
|
store.commit('resetFilterSearch');
|
||||||
|
await getProductionOrderInstances();
|
||||||
|
}
|
||||||
|
|
||||||
function getItem(item) {
|
function getItem(item) {
|
||||||
if (process.client) {
|
if (process.client) {
|
||||||
return localStorage.getItem(item)
|
return localStorage.getItem(item)
|
||||||
@ -212,7 +237,7 @@ function getItem(item) {
|
|||||||
watch(modeChanged, getSession)
|
watch(modeChanged, getSession)
|
||||||
watch(searchable, updateSearchTerm);
|
watch(searchable, updateSearchTerm);
|
||||||
watch(filtered, updateFilterTerm);
|
watch(filtered, updateFilterTerm);
|
||||||
watch(notAllInstancesIcon, getProductionOrderInstances);
|
watch(notAllInstancesIcon, getAll);
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
getSession();
|
getSession();
|
||||||
@ -307,7 +332,7 @@ th {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.TicketNo {
|
.TicketNo {
|
||||||
width: 15.83%;
|
width: 12.83%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.TicketNo-darkmode {
|
.TicketNo-darkmode {
|
||||||
@ -318,9 +343,20 @@ th {
|
|||||||
border-right: 0.0625rem solid #8e8e8e;
|
border-right: 0.0625rem solid #8e8e8e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.Name {
|
||||||
|
width: 18.83%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Name-darkmode {
|
||||||
|
border-right: 0.0625rem solid #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Name-lightmode {
|
||||||
|
border-right: 0.0625rem solid #8e8e8e;
|
||||||
|
}
|
||||||
|
|
||||||
.Asset {
|
.Asset {
|
||||||
width: 31.66%;
|
width: 15.83%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Asset-darkmode {
|
.Asset-darkmode {
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-for="todo in potTodos" :key="todo.primaryID"
|
<tr v-for="todo in potTodos" :key="todo.primaryID"
|
||||||
:class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
:class="['table-row-data', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
||||||
<td
|
<td
|
||||||
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
{{ todo.rowID }}
|
{{ todo.rowID }}
|
||||||
@ -42,22 +42,15 @@
|
|||||||
<input type="text" v-model="todo.task" @change="updatePOTTodo(todo)"
|
<input type="text" v-model="todo.task" @change="updatePOTTodo(todo)"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
</td>
|
</td>
|
||||||
<td v-if="!editable" :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> {{
|
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']">
|
||||||
todo.comments
|
<textarea type="text" v-model="todo.comments" :readonly="!editable"
|
||||||
}}</td>
|
|
||||||
<td v-if="editable" :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> <input type="text" v-model="todo.comments"
|
|
||||||
@change="updatePOTTodo(todo)"
|
@change="updatePOTTodo(todo)"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> </textarea>
|
||||||
|
<button v-if="editable" :class="[darkMode ? 'deletePOTTodos-darkmode' : 'deletePOTTodos-lightmode']"
|
||||||
<!-- <p><span id="spanElement"
|
|
||||||
:class="['data-span', 'textarea', 'input-span', darkMode ? 'data-darkmode' : 'data-lightmode']"
|
|
||||||
role="textbox" contenteditable></span></p> -->
|
|
||||||
|
|
||||||
<button :class="[darkMode ? 'deletePOTTodos-darkmode' : 'deletePOTTodos-lightmode']"
|
|
||||||
@click="deletePOTTodo(todo.primaryID)">-</button>
|
@click="deletePOTTodo(todo.primaryID)">-</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-if="editable && addRow" :class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']"
|
<tr v-if="editable && addRow" :class="['table-row-data', darkMode ? 'tr-darkmode' : 'tr-lightmode']"
|
||||||
id="row-1">
|
id="row-1">
|
||||||
<td
|
<td
|
||||||
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
@ -77,10 +70,10 @@
|
|||||||
<input type="text" v-model="newTaskTodo"
|
<input type="text" v-model="newTaskTodo"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
</td>
|
</td>
|
||||||
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"><input type="text"
|
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']">
|
||||||
v-model="newCommentsTodo"
|
<textarea type="text" v-model="newCommentsTodo"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> <button
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> </textarea>
|
||||||
:class="[darkMode ? 'savePOTTodos-darkmode' : 'savePOTTodos-lightmode']"
|
<button :class="[darkMode ? 'savePOTTodos-darkmode' : 'savePOTTodos-lightmode']"
|
||||||
@click="addPOTTodo()">Save</button> <button
|
@click="addPOTTodo()">Save</button> <button
|
||||||
:class="[darkMode ? 'deleteLastPOTTodos-darkmode' : 'deleteLastPOTTodos-lightmode']"
|
:class="[darkMode ? 'deleteLastPOTTodos-darkmode' : 'deleteLastPOTTodos-lightmode']"
|
||||||
@click="deleteNewRow()">-</button>
|
@click="deleteNewRow()">-</button>
|
||||||
@ -111,7 +104,7 @@
|
|||||||
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-for="(newT, index) in newTodos" :key="index"
|
<tr v-for="(newT, index) in newTodos" :key="index"
|
||||||
:class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
:class="['table-row-data', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
||||||
<td
|
<td
|
||||||
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
{{ newT.rowID }}
|
{{ newT.rowID }}
|
||||||
@ -130,10 +123,10 @@
|
|||||||
<input type="text" v-model="newT.task"
|
<input type="text" v-model="newT.task"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
</td>
|
</td>
|
||||||
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> <input type="text"
|
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> <textarea type="text"
|
||||||
v-model="newT.comments"
|
v-model="newT.comments"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> </textarea>
|
||||||
<button :class="[darkMode ? 'deleteLastPOTTodos-darkmode' : 'deleteLastPOTTodos-lightmode']"
|
<button :class="[darkMode ? 'deletePOTTodos-darkmode' : 'deletePOTTodos-lightmode']"
|
||||||
@click="deletePOTTodoFromNewTodos(index)">-</button>
|
@click="deletePOTTodoFromNewTodos(index)">-</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -573,6 +566,14 @@ export default {
|
|||||||
gap: 0.625rem;
|
gap: 0.625rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.table-row-data {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0.625rem;
|
||||||
|
gap: 0.625rem;
|
||||||
|
}
|
||||||
|
|
||||||
.tr-head-darkmode {
|
.tr-head-darkmode {
|
||||||
border-top: none;
|
border-top: none;
|
||||||
border-bottom: 0.0625rem solid #000000;
|
border-bottom: 0.0625rem solid #000000;
|
||||||
@ -594,13 +595,16 @@ export default {
|
|||||||
th,
|
th,
|
||||||
td {
|
td {
|
||||||
height: 1.875rem;
|
height: 1.875rem;
|
||||||
/* height: 1px; */
|
|
||||||
text-align: left;
|
text-align: left;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
letter-spacing: 5%;
|
letter-spacing: 5%;
|
||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
height: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
th {
|
th {
|
||||||
font: 700 0.875rem/1.875rem Overpass, sans-serif;
|
font: 700 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
}
|
}
|
||||||
@ -702,9 +706,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 10rem;
|
margin-left: 1rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.saveNewPOT-darkmode {
|
.saveNewPOT-darkmode {
|
||||||
@ -724,9 +730,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 15.8rem;
|
margin-left: 6rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.deleteLastPOTTodos-darkmode {
|
.deleteLastPOTTodos-darkmode {
|
||||||
@ -735,9 +743,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 15.8rem;
|
margin-left: 1rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -758,9 +768,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 10rem;
|
margin-left: 1rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.deletePOTTodos-lightmode {
|
.deletePOTTodos-lightmode {
|
||||||
@ -769,9 +781,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 15.8rem;
|
margin-left: 6rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.deleteLastPOTTodos-lightmode {
|
.deleteLastPOTTodos-lightmode {
|
||||||
@ -780,9 +794,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 2rem;
|
margin-left: 1rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.saveNewPOT-lightmode {
|
.saveNewPOT-lightmode {
|
||||||
@ -824,44 +840,9 @@ th {
|
|||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
/* .input-span {
|
resize: none;
|
||||||
border: none;
|
width: 20rem;
|
||||||
} */
|
height: 5rem;
|
||||||
|
|
||||||
/* .input,
|
|
||||||
.textarea {
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
font-family: inherit;
|
|
||||||
font-size: inherit;
|
|
||||||
padding: 1px 6px;
|
|
||||||
} */
|
|
||||||
|
|
||||||
/* .input-wrap {
|
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-wrap .input {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.width-machine {
|
|
||||||
padding: 0 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.textarea {
|
|
||||||
display: block;
|
|
||||||
width: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
resize: both;
|
|
||||||
min-height: 40px;
|
|
||||||
line-height: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.textarea[contenteditable]:empty::before {
|
|
||||||
content: "Placeholder still possible";
|
|
||||||
color: gray;
|
|
||||||
} */
|
|
||||||
</style>
|
</style>
|
||||||
@ -17,7 +17,7 @@
|
|||||||
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-for="todo in mvtTodos" :key="todo.primaryID"
|
<tr v-for="todo in mvtTodos" :key="todo.primaryID"
|
||||||
:class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
:class="['table-row-data', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
||||||
<td
|
<td
|
||||||
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
{{ todo.rowID }}
|
{{ todo.rowID }}
|
||||||
@ -42,17 +42,15 @@
|
|||||||
<input type="text" v-model="todo.task" @change="updateMVTTodo(todo)"
|
<input type="text" v-model="todo.task" @change="updateMVTTodo(todo)"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
</td>
|
</td>
|
||||||
<td v-if="!editable" :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> {{
|
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']">
|
||||||
todo.commets
|
<textarea type="text" v-model="todo.commets" :readonly="!editable" @change="updateMVTTodo(todo)"
|
||||||
}}</td>
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> </textarea>
|
||||||
<td v-if="editable" :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> <input
|
<button v-if="editable"
|
||||||
type="text" v-model="todo.commets" @change="updateMVTTodo(todo)"
|
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> <button
|
|
||||||
:class="[darkMode ? 'deleteMvtTodos-darkmode' : 'deleteMvtTodos-lightmode']"
|
:class="[darkMode ? 'deleteMvtTodos-darkmode' : 'deleteMvtTodos-lightmode']"
|
||||||
@click="deleteMVTTodo(todo.primaryID)">-</button>
|
@click="deleteMVTTodo(todo.primaryID)">-</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-if="editable && addRow" :class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']"
|
<tr v-if="editable && addRow" :class="['table-row-data', darkMode ? 'tr-darkmode' : 'tr-lightmode']"
|
||||||
id="row-1">
|
id="row-1">
|
||||||
<td
|
<td
|
||||||
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
@ -72,10 +70,10 @@
|
|||||||
<input type="text" v-model="newTaskTodo"
|
<input type="text" v-model="newTaskTodo"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
</td>
|
</td>
|
||||||
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"><input type="text"
|
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']">
|
||||||
v-model="newCommentsTodo"
|
<textarea type="text" v-model="newCommentsTodo"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> <button
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> </textarea>
|
||||||
:class="[darkMode ? 'saveMvtTodos-darkmode' : 'saveMvtTodos-lightmode']"
|
<button :class="[darkMode ? 'saveMvtTodos-darkmode' : 'saveMvtTodos-lightmode']"
|
||||||
@click="addMVTTodo()">Save</button> <button
|
@click="addMVTTodo()">Save</button> <button
|
||||||
:class="[darkMode ? 'deleteLastMvtTodos-darkmode' : 'deleteLastMvtTodos-lightmode']"
|
:class="[darkMode ? 'deleteLastMvtTodos-darkmode' : 'deleteLastMvtTodos-lightmode']"
|
||||||
@click="deleteNewRow()">-</button>
|
@click="deleteNewRow()">-</button>
|
||||||
@ -106,7 +104,7 @@
|
|||||||
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-for="(newT, index) in newTodos" :key="index"
|
<tr v-for="(newT, index) in newTodos" :key="index"
|
||||||
:class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
:class="['table-row-data', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
||||||
<td
|
<td
|
||||||
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
{{ newT.rowID }}
|
{{ newT.rowID }}
|
||||||
@ -125,10 +123,10 @@
|
|||||||
<input type="text" v-model="newT.task"
|
<input type="text" v-model="newT.task"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
</td>
|
</td>
|
||||||
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> <input type="text"
|
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']">
|
||||||
v-model="newT.comments"
|
<textarea type="text" v-model="newT.comments"
|
||||||
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> <button
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> </textarea>
|
||||||
:class="[darkMode ? 'deleteMvtTodos-darkmode' : 'deleteLastMvtTodos-lightmode']"
|
<button :class="[darkMode ? 'deleteMvtTodos-darkmode' : 'deleteMvtTodos-lightmode']"
|
||||||
@click="deleteMVTTodoFromNewTodos(index)">-</button>
|
@click="deleteMVTTodoFromNewTodos(index)">-</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -522,6 +520,14 @@ export default {
|
|||||||
gap: 0.625rem;
|
gap: 0.625rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.table-row-data {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0.625rem;
|
||||||
|
gap: 0.625rem;
|
||||||
|
}
|
||||||
|
|
||||||
.tr-head-darkmode {
|
.tr-head-darkmode {
|
||||||
border-top: none;
|
border-top: none;
|
||||||
border-bottom: 0.0625rem solid #000000;
|
border-bottom: 0.0625rem solid #000000;
|
||||||
@ -549,6 +555,10 @@ td {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
height: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
th {
|
th {
|
||||||
font: 700 0.875rem/1.875rem Overpass, sans-serif;
|
font: 700 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
}
|
}
|
||||||
@ -651,9 +661,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 10rem;
|
margin-left: 1rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.saveNewMVT-darkmode {
|
.saveNewMVT-darkmode {
|
||||||
@ -673,9 +685,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 15.8rem;
|
margin-left: 6rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.deleteLastMvtTodos-darkmode {
|
.deleteLastMvtTodos-darkmode {
|
||||||
@ -684,9 +698,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 2rem;
|
margin-left: 1rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -707,9 +723,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 10rem;
|
margin-left: 1rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.deleteMvtTodos-lightmode {
|
.deleteMvtTodos-lightmode {
|
||||||
@ -718,9 +736,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 15.8rem;
|
margin-left: 6rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.deleteLastMvtTodos-lightmode {
|
.deleteLastMvtTodos-lightmode {
|
||||||
@ -729,9 +749,11 @@ th {
|
|||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0.625rem;
|
border-radius: 0.625rem;
|
||||||
margin-left: 2rem;
|
margin-left: 1rem;
|
||||||
padding-left: 0.9rem;
|
padding-left: 0.9rem;
|
||||||
padding-right: 0.9rem;
|
padding-right: 0.9rem;
|
||||||
|
height: 2.1rem;
|
||||||
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.saveNewMVT-lightmode {
|
.saveNewMVT-lightmode {
|
||||||
@ -772,4 +794,10 @@ th {
|
|||||||
#editMvtTodos {
|
#editMvtTodos {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: none;
|
||||||
|
width: 20rem;
|
||||||
|
height: 5rem;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -1,215 +0,0 @@
|
|||||||
<!-- <template>
|
|
||||||
<div :class="['data', darkMode ? 'div-darkmode' : 'div-lightmode']">
|
|
||||||
<div :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode']">Rights:</div>
|
|
||||||
<table class="data-table" id="user-rights-list">
|
|
||||||
<tbody>
|
|
||||||
<tr :class="['table-row', darkMode ? 'tr-head-darkmode' : 'tr-head-lightmode']" id="table-head">
|
|
||||||
<th
|
|
||||||
:class="['User', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'User-darkmode' : 'User-lightmode']">
|
|
||||||
User</th>
|
|
||||||
<th
|
|
||||||
:class="['Admin', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Admin-darkmode' : 'Admin-lightmode']">
|
|
||||||
Admin</th>
|
|
||||||
<th
|
|
||||||
:class="['Edit-Delete', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Edit-Delete-darkmode' : 'Edit-Delete-lightmode']">
|
|
||||||
Edit/Delete</th>
|
|
||||||
<th
|
|
||||||
:class="['Create', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Create-darkmode' : 'Create-lightmode']">
|
|
||||||
Create</th>
|
|
||||||
<th :class="['View', darkMode ? 'th-darkmode' : 'th-lightmode']">View</th>
|
|
||||||
</tr>
|
|
||||||
<tr :class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
|
||||||
<td
|
|
||||||
:class="['User', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'User-darkmode' : 'User-lightmode']">
|
|
||||||
...</td>
|
|
||||||
<td
|
|
||||||
:class="['Admin', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Admin-darkmode' : 'Admin-lightmode']">
|
|
||||||
<input type="checkbox" :class="[darkMode ? 'checkbox-darkmode' : 'checkbox-lightmode']" />
|
|
||||||
</td>
|
|
||||||
<td
|
|
||||||
:class="['Edit-Delete', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Edit-Delete-darkmode' : 'Edit-Delete-lightmode']">
|
|
||||||
<input type="checkbox" :class="[darkMode ? 'checkbox-darkmode' : 'checkbox-lightmode']" />
|
|
||||||
</td>
|
|
||||||
<td
|
|
||||||
:class="['Create', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Create-darkmode' : 'Create-lightmode']">
|
|
||||||
<input type="checkbox" :class="[darkMode ? 'checkbox-darkmode' : 'checkbox-lightmode']" />
|
|
||||||
</td>
|
|
||||||
<td :class="['View', darkMode ? 'td-darkmode' : 'td-lightmode']"><input type="checkbox"
|
|
||||||
:class="[darkMode ? 'checkbox-darkmode' : 'checkbox-lightmode']" /></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref } from 'vue';
|
|
||||||
|
|
||||||
const darkMode = ref(true)
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
name: "UserRightsList",
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.data {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: flex-start;
|
|
||||||
justify-content: center;
|
|
||||||
align-self: stretch;
|
|
||||||
width: 100%;
|
|
||||||
padding: 1.25rem 1.875rem;
|
|
||||||
gap: 1.25rem;
|
|
||||||
border-radius: 0.625rem;
|
|
||||||
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
|
||||||
}
|
|
||||||
|
|
||||||
.div-darkmode {
|
|
||||||
background-color: #2c2c2c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.div-lightmode {
|
|
||||||
background-color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.data-table {
|
|
||||||
width: 100%;
|
|
||||||
padding: 0 0.625rem;
|
|
||||||
table-layout: fixed;
|
|
||||||
border-collapse: collapse;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-row {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
align-items: center;
|
|
||||||
height: 3.125rem;
|
|
||||||
padding: 0.625rem;
|
|
||||||
gap: 0.625rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tr-head-darkmode {
|
|
||||||
border-top: none;
|
|
||||||
border-bottom: 0.0625rem solid #000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tr-head-lightmode {
|
|
||||||
border-top: none;
|
|
||||||
border-bottom: 0.0625rem solid #8e8e8e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tr-darkmode {
|
|
||||||
border-top: 0.0625rem solid #000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tr-lightmode {
|
|
||||||
border-top: 0.0625rem solid #8e8e8e;
|
|
||||||
}
|
|
||||||
|
|
||||||
th,
|
|
||||||
td {
|
|
||||||
height: 1.875rem;
|
|
||||||
text-align: left;
|
|
||||||
padding: 0;
|
|
||||||
letter-spacing: 5%;
|
|
||||||
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
font: 700 0.875rem/1.875rem Overpass, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.th-darkmode,
|
|
||||||
.td-darkmode {
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.th-lightmode,
|
|
||||||
.td-lightmode {
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.checkbox-darkmode {
|
|
||||||
filter: invert(100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.checkbox-lightmode {
|
|
||||||
filter: invert(0%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.User {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.User-darkmode {
|
|
||||||
border-right: 0.0625rem solid #000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.User-lightmode {
|
|
||||||
border-right: 0.0625rem solid #8e8e8e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Admin {
|
|
||||||
width: 12.5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Admin-darkmode {
|
|
||||||
border-right: 0.0625rem solid #000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Admin-lightmode {
|
|
||||||
border-right: 0.0625rem solid #8e8e8e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Edit-Delete {
|
|
||||||
width: 12.5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Edit-Delete-darkmode {
|
|
||||||
border-right: 0.0625rem solid #000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Edit-Delete-lightmode {
|
|
||||||
border-right: 0.0625rem solid #8e8e8e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Create {
|
|
||||||
width: 12.5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Create-darkmode {
|
|
||||||
border-right: 0.0625rem solid #000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Create-lightmode {
|
|
||||||
border-right: 0.0625rem solid #8e8e8e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.View {
|
|
||||||
width: 12.5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label {
|
|
||||||
width: 6.0625em;
|
|
||||||
height: 1.875em;
|
|
||||||
font-family: 'Overpass';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 1em;
|
|
||||||
line-height: 1.875em;
|
|
||||||
letter-spacing: 0.05em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-darkmode {
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-lightmode {
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
</style> -->
|
|
||||||
@ -211,9 +211,11 @@ const toggleActionbar = () => {
|
|||||||
isExpanded.value = !isExpanded.value;
|
isExpanded.value = !isExpanded.value;
|
||||||
};
|
};
|
||||||
const toggleFiltered = () => {
|
const toggleFiltered = () => {
|
||||||
|
store.commit('deactivateSearch');
|
||||||
store.commit('toggleFiltered');
|
store.commit('toggleFiltered');
|
||||||
};
|
};
|
||||||
const toggleSearched = () => {
|
const toggleSearched = () => {
|
||||||
|
store.commit('deactivateSearch');
|
||||||
store.commit('toggleSearchable');
|
store.commit('toggleSearchable');
|
||||||
};
|
};
|
||||||
const add = () => {
|
const add = () => {
|
||||||
@ -233,10 +235,12 @@ const changeToSolutions = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const changeToInstancelist = () => {
|
const changeToInstancelist = () => {
|
||||||
|
store.commit('deactivateSearch');
|
||||||
store.commit('changeToInstancelist');
|
store.commit('changeToInstancelist');
|
||||||
}
|
}
|
||||||
|
|
||||||
const changeToAllInstances = () => {
|
const changeToAllInstances = () => {
|
||||||
|
store.commit('deactivateSearch');
|
||||||
store.commit('changeToInstancelist');
|
store.commit('changeToInstancelist');
|
||||||
store.commit('seeAllIcon');
|
store.commit('seeAllIcon');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ const store = createStore({
|
|||||||
customerChanged: false,
|
customerChanged: false,
|
||||||
changedCustomerId: -1,
|
changedCustomerId: -1,
|
||||||
filteredByCustomer: '',
|
filteredByCustomer: '',
|
||||||
|
filteredUserTerm: false,
|
||||||
|
|
||||||
addIcon: false,
|
addIcon: false,
|
||||||
addSolutionIcon: false,
|
addSolutionIcon: false,
|
||||||
@ -882,6 +883,19 @@ const store = createStore({
|
|||||||
resetModeLayoutChanged(state) {
|
resetModeLayoutChanged(state) {
|
||||||
state.modeLayout = false
|
state.modeLayout = false
|
||||||
},
|
},
|
||||||
|
resetFilterSearch(state) {
|
||||||
|
state.filtered = false
|
||||||
|
state.searchable = false
|
||||||
|
},
|
||||||
|
activateFilteredUserTerm(state) {
|
||||||
|
state.filteredUserTerm = true
|
||||||
|
},
|
||||||
|
activateFiltered(state) {
|
||||||
|
state.filtered = true
|
||||||
|
},
|
||||||
|
deactivateSearch(state) {
|
||||||
|
state.filteredUserTerm = false
|
||||||
|
},
|
||||||
|
|
||||||
// function to set the logged in user
|
// function to set the logged in user
|
||||||
setLoggedInUser(state, user) {
|
setLoggedInUser(state, user) {
|
||||||
@ -971,6 +985,7 @@ const store = createStore({
|
|||||||
state.deleteBool = false
|
state.deleteBool = false
|
||||||
state.chosenAssetId = -1
|
state.chosenAssetId = -1
|
||||||
state.filteredByCustomer = ''
|
state.filteredByCustomer = ''
|
||||||
|
state.filteredUserTerm = false
|
||||||
state.new = false
|
state.new = false
|
||||||
state.customerChanged = false
|
state.customerChanged = false
|
||||||
state.changedCustomerId = -1
|
state.changedCustomerId = -1
|
||||||
|
|||||||
23
server/api/getSelectedMVIByName/[id].ts
Normal file
23
server/api/getSelectedMVIByName/[id].ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { selectedMITsByName, errorMsg } from "../../middleware/maintenanceVisitInstances";
|
||||||
|
import { OutgoingMessage } from 'http';
|
||||||
|
|
||||||
|
export default defineEventHandler(async (event) => {
|
||||||
|
|
||||||
|
const headers: Record<string, Parameters<OutgoingMessage['setHeader']>[1]> = {
|
||||||
|
'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
|
||||||
|
'Access-Control-Allow-Headers': 'authorization, content-type',
|
||||||
|
'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE',
|
||||||
|
'Access-Control-Allow-Credentials': 'true',
|
||||||
|
};
|
||||||
|
setResponseHeaders(event, headers)
|
||||||
|
|
||||||
|
if (!(errorMsg === '')) {
|
||||||
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
statusMessage: errorMsg,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
setResponseStatus(event, 200)
|
||||||
|
return selectedMITsByName
|
||||||
|
})
|
||||||
23
server/api/getSelectedPOIsByName/[id].ts
Normal file
23
server/api/getSelectedPOIsByName/[id].ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { selectedPOIsByName, errorMsg } from "../../middleware/productionOrders";
|
||||||
|
import { OutgoingMessage } from 'http';
|
||||||
|
|
||||||
|
export default defineEventHandler(async (event) => {
|
||||||
|
|
||||||
|
const headers: Record<string, Parameters<OutgoingMessage['setHeader']>[1]> = {
|
||||||
|
'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
|
||||||
|
'Access-Control-Allow-Headers': 'authorization, content-type',
|
||||||
|
'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE',
|
||||||
|
'Access-Control-Allow-Credentials': 'true',
|
||||||
|
};
|
||||||
|
setResponseHeaders(event, headers)
|
||||||
|
|
||||||
|
if (!(errorMsg === '')) {
|
||||||
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
statusMessage: errorMsg,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
setResponseStatus(event, 200)
|
||||||
|
return selectedPOIsByName
|
||||||
|
})
|
||||||
@ -8,6 +8,7 @@ let selectedMITsByMVT = [];
|
|||||||
let selectedMITsByState = [];
|
let selectedMITsByState = [];
|
||||||
let selectedMITsByUser = [];
|
let selectedMITsByUser = [];
|
||||||
let selectedMITsByCustomer = [];
|
let selectedMITsByCustomer = [];
|
||||||
|
let selectedMITsByName = [];
|
||||||
let mviTodosByTemplateId = [];
|
let mviTodosByTemplateId = [];
|
||||||
let mvi = [];
|
let mvi = [];
|
||||||
let insertId = -1;
|
let insertId = -1;
|
||||||
@ -176,7 +177,7 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.path.startsWith("/api/getSelectedMITsByMVT")) {
|
if (event.path.startsWith("/api/getSelectedMVIByMVT")) {
|
||||||
// get selected maintenance visit instances object by mvt from backend
|
// get selected maintenance visit instances object by mvt from backend
|
||||||
let filteredMVT = null;
|
let filteredMVT = null;
|
||||||
const path = event._path;
|
const path = event._path;
|
||||||
@ -241,7 +242,7 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.path.startsWith("/api/getSelectedMITsByUser")) {
|
if (event.path.startsWith("/api/getSelectedMVIByUser")) {
|
||||||
// get selected maintenance visit instances object by user from backend
|
// get selected maintenance visit instances object by user from backend
|
||||||
let filteredUser = null;
|
let filteredUser = null;
|
||||||
const path = event._path;
|
const path = event._path;
|
||||||
@ -273,6 +274,38 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event.path.startsWith("/api/getSelectedMVIByName")) {
|
||||||
|
// get selected maintenance visit instances object by name from backend
|
||||||
|
let filteredName = null;
|
||||||
|
const path = event._path;
|
||||||
|
const pathSegments = path.split('/');
|
||||||
|
filteredName = pathSegments[pathSegments.length - 1];
|
||||||
|
|
||||||
|
try {
|
||||||
|
let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedMaintenanceVisitsByChecklistname/${filteredName}`);
|
||||||
|
selectedMITsByName = res.data;
|
||||||
|
} catch (err) {
|
||||||
|
if (axios.isAxiosError(err)) {
|
||||||
|
const axiosError = err as AxiosError;
|
||||||
|
|
||||||
|
if (axiosError.response) {
|
||||||
|
// Axios error
|
||||||
|
console.error(axiosError.response.data.message);
|
||||||
|
errorMsg = axiosError.response.data.message;
|
||||||
|
} else if (axiosError.request) {
|
||||||
|
// If error was caused by the request
|
||||||
|
console.error(axiosError.request);
|
||||||
|
} else {
|
||||||
|
// Other errors
|
||||||
|
console.error('Error', axiosError.message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No AxiosError
|
||||||
|
console.error('Error', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (event.path.startsWith("/api/getSelectedMITsByState")) {
|
if (event.path.startsWith("/api/getSelectedMITsByState")) {
|
||||||
// get selected maintenance visit instances object by state from backend
|
// get selected maintenance visit instances object by state from backend
|
||||||
let filteredState = null;
|
let filteredState = null;
|
||||||
@ -522,4 +555,4 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
export { maintenanceVisitInstances, selectedMITsByState, selectedMITsByUser, selectedMITsByMVT, selectedMITsByMIT, selectedMITsByCustomer, mviTodosByTemplateId, mvi, insertId, errorMsg };
|
export { maintenanceVisitInstances, selectedMITsByState, selectedMITsByUser, selectedMITsByName, selectedMITsByMVT, selectedMITsByMIT, selectedMITsByCustomer, mviTodosByTemplateId, mvi, insertId, errorMsg };
|
||||||
@ -8,6 +8,7 @@ let selectedPOIsByPOT = [];
|
|||||||
let selectedPOIsByState = [];
|
let selectedPOIsByState = [];
|
||||||
let selectedPOIsByUser = [];
|
let selectedPOIsByUser = [];
|
||||||
let selectedPOIsByCustomer = [];
|
let selectedPOIsByCustomer = [];
|
||||||
|
let selectedPOIsByName = [];
|
||||||
let poiTodosByTemplateId = [];
|
let poiTodosByTemplateId = [];
|
||||||
let poi = [];
|
let poi = [];
|
||||||
let insertId = -1;
|
let insertId = -1;
|
||||||
@ -241,6 +242,38 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event.path.startsWith("/api/getSelectedPOIsByName")) {
|
||||||
|
// get selected production order instances object by name from backend
|
||||||
|
let filteredName = null;
|
||||||
|
const path = event._path;
|
||||||
|
const pathSegments = path.split('/');
|
||||||
|
filteredName = pathSegments[pathSegments.length - 1];
|
||||||
|
|
||||||
|
try {
|
||||||
|
let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/selectedProductionOrdersByChecklistname/${filteredName}`);
|
||||||
|
selectedPOIsByName = res.data;
|
||||||
|
} catch (err) {
|
||||||
|
if (axios.isAxiosError(err)) {
|
||||||
|
const axiosError = err as AxiosError;
|
||||||
|
|
||||||
|
if (axiosError.response) {
|
||||||
|
// Axios error
|
||||||
|
console.error(axiosError.response.data.message);
|
||||||
|
errorMsg = axiosError.response.data.message;
|
||||||
|
} else if (axiosError.request) {
|
||||||
|
// If error was caused by the request
|
||||||
|
console.error(axiosError.request);
|
||||||
|
} else {
|
||||||
|
// Other errors
|
||||||
|
console.error('Error', axiosError.message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No AxiosError
|
||||||
|
console.error('Error', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (event.path.startsWith("/api/getSelectedPOIsByState")) {
|
if (event.path.startsWith("/api/getSelectedPOIsByState")) {
|
||||||
// get selected production order instances object by state from backend
|
// get selected production order instances object by state from backend
|
||||||
let filteredState = null;
|
let filteredState = null;
|
||||||
@ -458,4 +491,4 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
export { productionOrderInstances, selectedPOIsByState, selectedPOIsByUser, selectedPOIsByPOT, selectedPOIsByPOI, selectedPOIsByCustomer, poiTodosByTemplateId, poi, insertId, errorMsg };
|
export { productionOrderInstances, selectedPOIsByState, selectedPOIsByUser, selectedPOIsByPOT, selectedPOIsByPOI, selectedPOIsByName, selectedPOIsByCustomer, poiTodosByTemplateId, poi, insertId, errorMsg };
|
||||||
Reference in New Issue
Block a user