diff --git a/app/javascript/dashboard/components/Modal.vue b/app/javascript/dashboard/components/Modal.vue
index 16be2ba35..bfe7dc30b 100644
--- a/app/javascript/dashboard/components/Modal.vue
+++ b/app/javascript/dashboard/components/Modal.vue
@@ -99,7 +99,9 @@ export default {
onMouseUp() {
if (this.mousedDownOnBackdrop) {
this.mousedDownOnBackdrop = false;
- this.onClose();
+ if (this.closeOnBackdropClick) {
+ this.onClose();
+ }
}
},
},
diff --git a/app/javascript/dashboard/components/ui/Dropdown/DropdownList.vue b/app/javascript/dashboard/components/ui/Dropdown/DropdownList.vue
index 0a1975427..0c6942e1b 100644
--- a/app/javascript/dashboard/components/ui/Dropdown/DropdownList.vue
+++ b/app/javascript/dashboard/components/ui/Dropdown/DropdownList.vue
@@ -1,9 +1,11 @@
{
/>
+
+defineProps({
+ message: {
+ type: String,
+ default: '',
+ },
+});
+
+
+
+ {{ message }}
+
+
diff --git a/app/javascript/dashboard/components/widgets/conversation/components/SLAPopoverCard.vue b/app/javascript/dashboard/components/widgets/conversation/components/SLAPopoverCard.vue
index 479e2794f..655a42948 100644
--- a/app/javascript/dashboard/components/widgets/conversation/components/SLAPopoverCard.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/components/SLAPopoverCard.vue
@@ -39,7 +39,7 @@ const toggleShowAllNRT = () => {
{{ $t('SLA.EVENTS.TITLE') }}
diff --git a/app/javascript/dashboard/components/widgets/conversation/linear/CreateIssue.vue b/app/javascript/dashboard/components/widgets/conversation/linear/CreateIssue.vue
index 5c3575c44..a00969416 100644
--- a/app/javascript/dashboard/components/widgets/conversation/linear/CreateIssue.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/linear/CreateIssue.vue
@@ -107,6 +107,7 @@ import { useI18n } from 'dashboard/composables/useI18n';
import { useAlert } from 'dashboard/composables';
import LinearAPI from 'dashboard/api/integrations/linear';
import validations from './validations';
+import { parseLinearAPIErrorResponse } from 'dashboard/store/utils/api';
const props = defineProps({
accountId: {
@@ -140,6 +141,14 @@ const priorities = [
{ id: 4, name: 'Low' },
];
+const statusDesiredOrder = [
+ 'Backlog',
+ 'Todo',
+ 'In Progress',
+ 'Done',
+ 'Canceled',
+];
+
const isCreating = ref(false);
const inputStyles = { borderRadius: '12px', fontSize: '14px' };
@@ -177,7 +186,11 @@ const getTeams = async () => {
const response = await LinearAPI.getTeams();
teams.value = response.data;
} catch (error) {
- useAlert(t('INTEGRATION_SETTINGS.LINEAR.ADD_OR_LINK.LOADING_TEAM_ERROR'));
+ const errorMessage = parseLinearAPIErrorResponse(
+ error,
+ t('INTEGRATION_SETTINGS.LINEAR.ADD_OR_LINK.LOADING_TEAM_ERROR')
+ );
+ useAlert(errorMessage);
}
};
@@ -186,12 +199,16 @@ const getTeamEntities = async () => {
const response = await LinearAPI.getTeamEntities(formState.teamId);
assignees.value = response.data.users;
labels.value = response.data.labels;
- statuses.value = response.data.states;
projects.value = response.data.projects;
+ statuses.value = statusDesiredOrder
+ .map(name => response.data.states.find(status => status.name === name))
+ .filter(Boolean);
} catch (error) {
- useAlert(
+ const errorMessage = parseLinearAPIErrorResponse(
+ error,
t('INTEGRATION_SETTINGS.LINEAR.ADD_OR_LINK.LOADING_TEAM_ENTITIES_ERROR')
);
+ useAlert(errorMessage);
}
};
@@ -226,7 +243,11 @@ const createIssue = async () => {
useAlert(t('INTEGRATION_SETTINGS.LINEAR.ADD_OR_LINK.CREATE_SUCCESS'));
onClose();
} catch (error) {
- useAlert(t('INTEGRATION_SETTINGS.LINEAR.ADD_OR_LINK.CREATE_ERROR'));
+ const errorMessage = parseLinearAPIErrorResponse(
+ error,
+ t('INTEGRATION_SETTINGS.LINEAR.ADD_OR_LINK.CREATE_ERROR')
+ );
+ useAlert(errorMessage);
} finally {
isCreating.value = false;
}
diff --git a/app/javascript/dashboard/components/widgets/conversation/linear/Issue.vue b/app/javascript/dashboard/components/widgets/conversation/linear/Issue.vue
index 05cd3ab88..3304f6040 100644
--- a/app/javascript/dashboard/components/widgets/conversation/linear/Issue.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/linear/Issue.vue
@@ -56,7 +56,7 @@ const unlinkIssue = () => {