PMCORE-3509:In version 3.7.0 the inbox the send by field displays the undefined username after a script task

Correction

Style
This commit is contained in:
Fabio Guachalla
2021-11-26 11:31:48 -04:00
parent eac7f9bb63
commit e4484ec1dd
6 changed files with 147 additions and 197 deletions

View File

@@ -29,12 +29,7 @@
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
<div slot="send_by" slot-scope="props"> <div slot="send_by" slot-scope="props">
<template v-if="showUserTooltip" > <CurrentUserCell :data="props.row.USER_DATA" />
<CurrentUserCell :data="props.row.USER_DATA" />
</template>
<template v-else>
{{ props.row.USER_DATA }}
</template>
</div> </div>
<div slot="current_user" slot-scope="props"> <div slot="current_user" slot-scope="props">
{{ props.row.USERNAME_DISPLAY_FORMAT }} {{ props.row.USERNAME_DISPLAY_FORMAT }}
@@ -110,8 +105,7 @@ export default {
DRAFT: this.$i18n.t("ID_IN_DRAFT"), DRAFT: this.$i18n.t("ID_IN_DRAFT"),
PAUSED: this.$i18n.t("ID_PAUSED"), PAUSED: this.$i18n.t("ID_PAUSED"),
UNASSIGNED: this.$i18n.t("ID_UNASSIGNED"), UNASSIGNED: this.$i18n.t("ID_UNASSIGNED"),
}, }
showUserTooltip: true
} }
}, },
mounted() { mounted() {
@@ -256,29 +250,31 @@ export default {
formatUser(data) { formatUser(data) {
var dataFormat = [], var dataFormat = [],
userDataFormat; userDataFormat;
if (data.user_tooltip && !_.isEmpty(data.user_tooltip)) { switch (data.key_name) {
this.showUserTooltip = true; case 'user_tooltip':
userDataFormat = utils.userNameDisplayFormat({ userDataFormat = utils.userNameDisplayFormat({
userName: data.user_tooltip.usr_firstname, userName: data.user_tooltip.usr_firstname,
firstName: data.user_tooltip.usr_lastname, firstName: data.user_tooltip.usr_lastname,
lastName: data.user_tooltip.usr_username, lastName: data.user_tooltip.usr_username,
format: window.config.FORMATS.format || null format: window.config.FORMATS.format || null
}); });
dataFormat.push({ dataFormat.push({
USERNAME_DISPLAY_FORMAT: userDataFormat, USERNAME_DISPLAY_FORMAT: userDataFormat,
EMAIL: data.user_tooltip.usr_email, EMAIL: data.user_tooltip.usr_email,
POSITION: data.user_tooltip.usr_position, POSITION: data.user_tooltip.usr_position,
AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX + AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX +
window.config.SYS_URI + window.config.SYS_URI +
`users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "", `users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "",
UNASSIGNED: userDataFormat !== "" ? true : false UNASSIGNED: userDataFormat !== "" ? true : false,
}); SHOW_TOOLTIP: true
} else if (data.dummy_task && !_.isEmpty(data.dummy_task)) { });
this.showUserTooltip = false; break;
dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name; case 'dummy_task':
} else { dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name;
this.showUserTooltip = false; break;
dataFormat = this.$i18n.t("ID_ANONYMOUS_USER"); default:
dataFormat = "";
break;
} }
return dataFormat; return dataFormat;
} }

View File

@@ -1,5 +1,5 @@
<template> <template>
<div v-if="data.length" class="grouped-cell"> <div v-if="showTooltip" class="grouped-cell">
<div v-for="(item, index) in data" v-bind:key="item.TITLE" class="d-flex"> <div v-for="(item, index) in data" v-bind:key="item.TITLE" class="d-flex">
<div class="avatar" :id="id + index"> <div class="avatar" :id="id + index">
<b-avatar <b-avatar
@@ -36,6 +36,11 @@
</div> </div>
</div> </div>
</div> </div>
<div v-else class="grouped-cell">
<span class="col ellipsis">
{{ data }}
</span>
</div>
</template> </template>
<script> <script>
@@ -47,6 +52,14 @@ export default {
id: "avatar-" + _.random(1000000) id: "avatar-" + _.random(1000000)
}; };
}, },
computed: {
/**
* Verify if data is an array.
*/
showTooltip() {
return typeof this.data !== 'string'
}
},
methods: { methods: {
/** /**
* Generates the mail link * Generates the mail link

View File

@@ -63,12 +63,7 @@
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
<div slot="send_by" slot-scope="props"> <div slot="send_by" slot-scope="props">
<template v-if="showUserTooltip" > <CurrentUserCell :data="props.row.USER_DATA" />
<CurrentUserCell :data="props.row.USER_DATA" />
</template>
<template v-else>
{{ props.row.USER_DATA }}
</template>
</div> </div>
<div slot="current_user" slot-scope="props"> <div slot="current_user" slot-scope="props">
{{ props.row.USERNAME_DISPLAY_FORMAT }} {{ props.row.USERNAME_DISPLAY_FORMAT }}
@@ -149,12 +144,7 @@
{{ props["item"]["PRIORITY"] }} {{ props["item"]["PRIORITY"] }}
</span> </span>
<span v-else-if="column === 'send_by'" class="v-card-text-light"> <span v-else-if="column === 'send_by'" class="v-card-text-light">
<template v-if="showUserTooltip" > <CurrentUserCell :data="props.item.USER_DATA" />
<CurrentUserCell :data="props.item.USER_DATA" />
</template>
<template v-else>
{{ props.item.USER_DATA }}
</template>
</span> </span>
<span v-else class="v-card-text-light"> <span v-else class="v-card-text-light">
{{ props["item"][column] }} {{ props["item"][column] }}
@@ -208,12 +198,7 @@
{{ props["item"]["PRIORITY"] }} {{ props["item"]["PRIORITY"] }}
</span> </span>
<span v-else-if="column === 'send_by'" class="v-card-text-light"> <span v-else-if="column === 'send_by'" class="v-card-text-light">
<template v-if="showUserTooltip" > <CurrentUserCell :data="props.item.USER_DATA" />
<CurrentUserCell :data="props.item.USER_DATA" />
</template>
<template v-else>
{{ props.item.USER_DATA }}
</template>
</span> </span>
<span v-else class="v-card-text-light"> <span v-else class="v-card-text-light">
{{ props["item"][column] }} {{ props["item"][column] }}
@@ -591,8 +576,7 @@ export default {
makeTagText: function (params, data) { makeTagText: function (params, data) {
return `${this.tagPrefix} ${data[0].options && data[0].options.label || ''}`; return `${this.tagPrefix} ${data[0].options && data[0].options.label || ''}`;
} }
}, }
showUserTooltip: true
} }
}; };
}, },
@@ -900,32 +884,31 @@ export default {
formatUser(data) { formatUser(data) {
var dataFormat = [], var dataFormat = [],
userDataFormat; userDataFormat;
if (data.user_tooltip && !_.isEmpty(data.user_tooltip)) { switch (data.key_name) {
this.showUserTooltip = true; case 'user_tooltip':
userDataFormat = utils.userNameDisplayFormat({ userDataFormat = utils.userNameDisplayFormat({
userName: data.user_tooltip.usr_firstname, userName: data.user_tooltip.usr_firstname,
firstName: data.user_tooltip.usr_lastname, firstName: data.user_tooltip.usr_lastname,
lastName: data.user_tooltip.usr_username, lastName: data.user_tooltip.usr_username,
format: window.config.FORMATS.format || null, format: window.config.FORMATS.format || null
}); });
dataFormat.push({ dataFormat.push({
USERNAME_DISPLAY_FORMAT: userDataFormat, USERNAME_DISPLAY_FORMAT: userDataFormat,
EMAIL: data.user_tooltip.usr_email, EMAIL: data.user_tooltip.usr_email,
POSITION: data.user_tooltip.usr_position, POSITION: data.user_tooltip.usr_position,
AVATAR: AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX +
userDataFormat !== ""
? window.config.SYS_SERVER_AJAX +
window.config.SYS_URI + window.config.SYS_URI +
`users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` `users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "",
: "", UNASSIGNED: userDataFormat !== "" ? true : false,
UNASSIGNED: userDataFormat !== "" ? true : false, SHOW_TOOLTIP: true
}); });
} else if (data.dummy_task && !_.isEmpty(data.dummy_task)) { break;
this.showUserTooltip = false; case 'dummy_task':
dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name; dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name;
} else { break;
this.showUserTooltip = false; default:
dataFormat = this.$i18n.t("ID_ANONYMOUS_USER"); dataFormat = "";
break;
} }
return dataFormat; return dataFormat;
}, },

View File

@@ -54,12 +54,7 @@
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
<div slot="send_by" slot-scope="props"> <div slot="send_by" slot-scope="props">
<template v-if="showUserTooltip" >
<CurrentUserCell :data="props.row.USER_DATA" /> <CurrentUserCell :data="props.row.USER_DATA" />
</template>
<template v-else>
{{ props.row.USER_DATA }}
</template>
</div> </div>
<div slot="current_user" slot-scope="props"> <div slot="current_user" slot-scope="props">
{{ props.row.USERNAME_DISPLAY_FORMAT }} {{ props.row.USERNAME_DISPLAY_FORMAT }}
@@ -154,12 +149,7 @@
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
> >
<span class="v-card-text-light"> <span class="v-card-text-light">
<template v-if="showUserTooltip" >
<CurrentUserCell :data="props.item.USER_DATA" /> <CurrentUserCell :data="props.item.USER_DATA" />
</template>
<template v-else>
{{ props.item.USER_DATA }}
</template>
</span> </span>
</div> </div>
</VueCardView> </VueCardView>
@@ -240,12 +230,7 @@
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
> >
<span class="v-card-text-light"> <span class="v-card-text-light">
<template v-if="showUserTooltip" >
<CurrentUserCell :data="props.item.USER_DATA" /> <CurrentUserCell :data="props.item.USER_DATA" />
</template>
<template v-else>
{{ props.item.USER_DATA }}
</template>
</span> </span>
</div> </div>
</VueListView> </VueListView>
@@ -399,7 +384,6 @@ export default {
}, },
showEllipsis: false, showEllipsis: false,
dataSubtitle: null, dataSubtitle: null,
showUserTooltip: true
}; };
}, },
created() { created() {
@@ -611,29 +595,31 @@ export default {
formatUser(data) { formatUser(data) {
var dataFormat = [], var dataFormat = [],
userDataFormat; userDataFormat;
if (data.user_tooltip && !_.isEmpty(data.user_tooltip)) { switch (data.key_name) {
this.showUserTooltip = true; case 'user_tooltip':
userDataFormat = utils.userNameDisplayFormat({ userDataFormat = utils.userNameDisplayFormat({
userName: data.user_tooltip.usr_firstname, userName: data.user_tooltip.usr_firstname,
firstName: data.user_tooltip.usr_lastname, firstName: data.user_tooltip.usr_lastname,
lastName: data.user_tooltip.usr_username, lastName: data.user_tooltip.usr_username,
format: window.config.FORMATS.format || null format: window.config.FORMATS.format || null
}); });
dataFormat.push({ dataFormat.push({
USERNAME_DISPLAY_FORMAT: userDataFormat, USERNAME_DISPLAY_FORMAT: userDataFormat,
EMAIL: data.user_tooltip.usr_email, EMAIL: data.user_tooltip.usr_email,
POSITION: data.user_tooltip.usr_position, POSITION: data.user_tooltip.usr_position,
AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX + AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX +
window.config.SYS_URI + window.config.SYS_URI +
`users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "", `users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "",
UNASSIGNED: userDataFormat !== "" ? true : false UNASSIGNED: userDataFormat !== "" ? true : false,
}); SHOW_TOOLTIP: true
} else if (data.dummy_task && !_.isEmpty(data.dummy_task)) { });
this.showUserTooltip = false; break;
dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name; case 'dummy_task':
} else { dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name;
this.showUserTooltip = false; break;
dataFormat = this.$i18n.t("ID_ANONYMOUS_USER"); default:
dataFormat = "";
break;
} }
return dataFormat; return dataFormat;
}, },

View File

@@ -52,12 +52,7 @@
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
<div slot="send_by" slot-scope="props"> <div slot="send_by" slot-scope="props">
<template v-if="showUserTooltip" >
<CurrentUserCell :data="props.row.USER_DATA" /> <CurrentUserCell :data="props.row.USER_DATA" />
</template>
<template v-else>
{{ props.row.USER_DATA }}
</template>
</div> </div>
<div slot="current_user" slot-scope="props"> <div slot="current_user" slot-scope="props">
{{ props.row.USERNAME_DISPLAY_FORMAT }} {{ props.row.USERNAME_DISPLAY_FORMAT }}
@@ -152,12 +147,7 @@
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
> >
<span class="v-card-text-light"> <span class="v-card-text-light">
<template v-if="showUserTooltip" >
<CurrentUserCell :data="props.item.USER_DATA" /> <CurrentUserCell :data="props.item.USER_DATA" />
</template>
<template v-else>
{{ props.item.USER_DATA }}
</template>
</span> </span>
</div> </div>
</VueCardView> </VueCardView>
@@ -238,12 +228,7 @@
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
> >
<span class="v-card-text-light"> <span class="v-card-text-light">
<template v-if="showUserTooltip" >
<CurrentUserCell :data="props.item.USER_DATA" /> <CurrentUserCell :data="props.item.USER_DATA" />
</template>
<template v-else>
{{ props.item.USER_DATA }}
</template>
</span> </span>
</div> </div>
</VueListView> </VueListView>
@@ -397,8 +382,7 @@ export default {
buttons: {} buttons: {}
}, },
showEllipsis: false, showEllipsis: false,
dataSubtitle: null, dataSubtitle: null
showUserTooltip: true
}; };
}, },
created() { created() {
@@ -605,30 +589,32 @@ export default {
formatUser(data) { formatUser(data) {
var dataFormat = [], var dataFormat = [],
userDataFormat; userDataFormat;
if (data.user_tooltip && !_.isEmpty(data.user_tooltip)) { switch (data.key_name) {
this.showUserTooltip = true; case 'user_tooltip':
userDataFormat = utils.userNameDisplayFormat({ userDataFormat = utils.userNameDisplayFormat({
userName: data.user_tooltip.usr_firstname, userName: data.user_tooltip.usr_firstname,
firstName: data.user_tooltip.usr_lastname, firstName: data.user_tooltip.usr_lastname,
lastName: data.user_tooltip.usr_username, lastName: data.user_tooltip.usr_username,
format: window.config.FORMATS.format || null format: window.config.FORMATS.format || null
}); });
dataFormat.push({ dataFormat.push({
USERNAME_DISPLAY_FORMAT: userDataFormat, USERNAME_DISPLAY_FORMAT: userDataFormat,
EMAIL: data.user_tooltip.usr_email, EMAIL: data.user_tooltip.usr_email,
POSITION: data.user_tooltip.usr_position, POSITION: data.user_tooltip.usr_position,
AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX + AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX +
window.config.SYS_URI + window.config.SYS_URI +
`users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "", `users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "",
UNASSIGNED: userDataFormat !== "" ? true : false UNASSIGNED: userDataFormat !== "" ? true : false,
}); SHOW_TOOLTIP: true
} else if (data.dummy_task && !_.isEmpty(data.dummy_task)) { });
this.showUserTooltip = false; break;
dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name; case 'dummy_task':
} else { dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name;
this.showUserTooltip = false; break;
dataFormat = this.$i18n.t("ID_ANONYMOUS_USER"); default:
} dataFormat = "";
break;
}
return dataFormat; return dataFormat;
}, },
/** /**

View File

@@ -50,12 +50,7 @@
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
<div slot="send_by" slot-scope="props"> <div slot="send_by" slot-scope="props">
<template v-if="showUserTooltip" >
<CurrentUserCell :data="props.row.USER_DATA" /> <CurrentUserCell :data="props.row.USER_DATA" />
</template>
<template v-else>
{{ props.row.USER_DATA }}
</template>
</div> </div>
<div slot="due_date" slot-scope="props"> <div slot="due_date" slot-scope="props">
{{ props.row.DUE_DATE }} {{ props.row.DUE_DATE }}
@@ -147,12 +142,7 @@
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
> >
<span class="v-card-text-light"> <span class="v-card-text-light">
<template v-if="showUserTooltip" >
<CurrentUserCell :data="props.item.USER_DATA" /> <CurrentUserCell :data="props.item.USER_DATA" />
</template>
<template v-else>
{{ props.item.USER_DATA }}
</template>
</span> </span>
</div> </div>
</VueCardView> </VueCardView>
@@ -233,12 +223,7 @@
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
> >
<span class="v-card-text-light"> <span class="v-card-text-light">
<template v-if="showUserTooltip" >
<CurrentUserCell :data="props.item.USER_DATA" /> <CurrentUserCell :data="props.item.USER_DATA" />
</template>
<template v-else>
{{ props.item.USER_DATA }}
</template>
</span> </span>
</div> </div>
</VueListView> </VueListView>
@@ -389,8 +374,7 @@ export default {
buttons: {} buttons: {}
}, },
showEllipsis: false, showEllipsis: false,
dataSubtitle: null, dataSubtitle: null
showUserTooltip: true
}; };
}, },
mounted() { mounted() {
@@ -562,29 +546,31 @@ export default {
formatUser(data) { formatUser(data) {
var dataFormat = [], var dataFormat = [],
userDataFormat; userDataFormat;
if (data.user_tooltip && !_.isEmpty(data.user_tooltip)) { switch (data.key_name) {
this.showUserTooltip = true; case 'user_tooltip':
userDataFormat = utils.userNameDisplayFormat({ userDataFormat = utils.userNameDisplayFormat({
userName: data.user_tooltip.usr_firstname, userName: data.user_tooltip.usr_firstname,
firstName: data.user_tooltip.usr_lastname, firstName: data.user_tooltip.usr_lastname,
lastName: data.user_tooltip.usr_username, lastName: data.user_tooltip.usr_username,
format: window.config.FORMATS.format || null format: window.config.FORMATS.format || null
}); });
dataFormat.push({ dataFormat.push({
USERNAME_DISPLAY_FORMAT: userDataFormat, USERNAME_DISPLAY_FORMAT: userDataFormat,
EMAIL: data.user_tooltip.usr_email, EMAIL: data.user_tooltip.usr_email,
POSITION: data.user_tooltip.usr_position, POSITION: data.user_tooltip.usr_position,
AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX + AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX +
window.config.SYS_URI + window.config.SYS_URI +
`users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "", `users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "",
UNASSIGNED: userDataFormat !== "" ? true : false UNASSIGNED: userDataFormat !== "" ? true : false,
}); SHOW_TOOLTIP: true
} else if (data.dummy_task && !_.isEmpty(data.dummy_task)) { });
this.showUserTooltip = false; break;
dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name; case 'dummy_task':
} else { dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name;
this.showUserTooltip = false; break;
dataFormat = this.$i18n.t("ID_ANONYMOUS_USER"); default:
dataFormat = "";
break;
} }
return dataFormat; return dataFormat;
}, },