@jbrowse/plugin-jobs-management 2.6.3 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { NewJob } from '../model';
3
- declare function CurrentJobCard({ job }: {
3
+ declare const CurrentJobCard: ({ job, }: {
4
4
  job: NewJob;
5
- }): React.JSX.Element;
6
- declare const _default: typeof CurrentJobCard;
7
- export default _default;
5
+ }) => React.JSX.Element;
6
+ export default CurrentJobCard;
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  const react_1 = __importStar(require("react"));
27
27
  const mobx_react_1 = require("mobx-react");
28
28
  const material_1 = require("@mui/material");
29
- function CurrentJobCard({ job }) {
29
+ const CurrentJobCard = (0, mobx_react_1.observer)(function CurrentJobCard({ job, }) {
30
30
  const [clicked, setClicked] = (0, react_1.useState)(false);
31
31
  return (react_1.default.createElement(material_1.Card, { variant: "outlined" },
32
32
  react_1.default.createElement(material_1.CardContent, null,
@@ -50,8 +50,9 @@ function CurrentJobCard({ job }) {
50
50
  react_1.default.createElement(material_1.Typography, null, `${Math.round(job.progressPct || 0)}%`)))))),
51
51
  job.cancelCallback ? (react_1.default.createElement(material_1.CardActions, null,
52
52
  react_1.default.createElement(material_1.Button, { variant: "contained", color: "inherit", disabled: clicked || job.progressPct === 0, onClick: () => {
53
+ job.setStatusMessage('Aborted via cancel button');
53
54
  job.cancelCallback && job.cancelCallback();
54
55
  setClicked(true);
55
56
  } }, "Cancel"))) : null));
56
- }
57
- exports.default = (0, mobx_react_1.observer)(CurrentJobCard);
57
+ });
58
+ exports.default = CurrentJobCard;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { NewJob } from '../model';
3
- declare function JobCard({ job }: {
3
+ declare const JobCard: ({ job }: {
4
4
  job: NewJob;
5
- }): React.JSX.Element;
6
- declare const _default: typeof JobCard;
7
- export default _default;
5
+ }) => React.JSX.Element;
6
+ export default JobCard;
@@ -6,11 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
7
  const mobx_react_1 = require("mobx-react");
8
8
  const material_1 = require("@mui/material");
9
- function JobCard({ job }) {
9
+ const JobCard = (0, mobx_react_1.observer)(function JobCard({ job }) {
10
10
  return (react_1.default.createElement(material_1.Card, { variant: "outlined" },
11
11
  react_1.default.createElement(material_1.CardContent, null,
12
12
  react_1.default.createElement(material_1.Typography, { variant: "body1" },
13
13
  react_1.default.createElement("strong", null, 'Name: '),
14
- job.name))));
15
- }
16
- exports.default = (0, mobx_react_1.observer)(JobCard);
14
+ job.name),
15
+ job.statusMessage ? (react_1.default.createElement(material_1.Typography, { variant: "body1" },
16
+ react_1.default.createElement("strong", null, 'Message: '),
17
+ job.statusMessage)) : null)));
18
+ });
19
+ exports.default = JobCard;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { JobsListModel } from '../model';
3
- declare function JobsListWidget({ model }: {
3
+ declare const JobsListWidget: ({ model }: {
4
4
  model: JobsListModel;
5
- }): React.JSX.Element;
6
- declare const _default: typeof JobsListWidget;
7
- export default _default;
5
+ }) => React.JSX.Element;
6
+ export default JobsListWidget;
@@ -18,29 +18,17 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
18
18
  expandIcon: {
19
19
  color: theme.palette.tertiary.contrastText,
20
20
  },
21
- button: {
22
- marginTop: theme.spacing(1),
23
- marginRight: theme.spacing(1),
24
- },
25
- adminBadge: {
26
- margin: '0.5em',
27
- borderRadius: 3,
28
- backgroundColor: theme.palette.quaternary.main,
29
- padding: '1em',
30
- display: 'flex',
31
- alignContent: 'center',
32
- },
33
21
  }));
34
- function JobsListWidget({ model }) {
22
+ const JobsListWidget = (0, mobx_react_1.observer)(function ({ model }) {
35
23
  const { classes } = useStyles();
36
- const { jobs, finished, queued } = model;
24
+ const { jobs, finished, queued, aborted } = model;
37
25
  return (react_1.default.createElement("div", { className: classes.root },
38
26
  react_1.default.createElement(material_1.Accordion, { defaultExpanded: true },
39
27
  react_1.default.createElement(material_1.AccordionSummary, { expandIcon: react_1.default.createElement(ExpandMore_1.default, { className: classes.expandIcon }) },
40
- react_1.default.createElement(material_1.Typography, { variant: "h5" }, "Jobs")),
28
+ react_1.default.createElement(material_1.Typography, { variant: "h5" }, "Running jobs")),
41
29
  jobs.length ? (jobs.map((job, index) => (react_1.default.createElement(CurrentJobCard_1.default, { job: job, key: `${JSON.stringify(job)}-${index}` })))) : (react_1.default.createElement(material_1.Card, { variant: "outlined" },
42
30
  react_1.default.createElement(material_1.CardContent, null,
43
- react_1.default.createElement(material_1.Typography, { variant: "body1" }, "No jobs"))))),
31
+ react_1.default.createElement(material_1.Typography, { variant: "body1" }, "No running jobs"))))),
44
32
  react_1.default.createElement(material_1.Accordion, { defaultExpanded: true },
45
33
  react_1.default.createElement(material_1.AccordionSummary, { expandIcon: react_1.default.createElement(ExpandMore_1.default, { className: classes.expandIcon }) },
46
34
  react_1.default.createElement(material_1.Typography, { variant: "h5" }, "Queued jobs")),
@@ -49,9 +37,15 @@ function JobsListWidget({ model }) {
49
37
  react_1.default.createElement(material_1.Typography, { variant: "body1" }, "No queued jobs"))))),
50
38
  react_1.default.createElement(material_1.Accordion, { defaultExpanded: true },
51
39
  react_1.default.createElement(material_1.AccordionSummary, { expandIcon: react_1.default.createElement(ExpandMore_1.default, { className: classes.expandIcon }) },
52
- react_1.default.createElement(material_1.Typography, { variant: "h5" }, "Jobs completed")),
40
+ react_1.default.createElement(material_1.Typography, { variant: "h5" }, "Completed jobs")),
53
41
  finished.length ? (finished.map((job, index) => (react_1.default.createElement(JobCard_1.default, { key: `${JSON.stringify(job)}-${index}`, job: job })))) : (react_1.default.createElement(material_1.Card, { variant: "outlined" },
54
42
  react_1.default.createElement(material_1.CardContent, null,
55
- react_1.default.createElement(material_1.Typography, { variant: "body1" }, "No jobs completed")))))));
56
- }
57
- exports.default = (0, mobx_react_1.observer)(JobsListWidget);
43
+ react_1.default.createElement(material_1.Typography, { variant: "body1" }, "No completed jobs"))))),
44
+ react_1.default.createElement(material_1.Accordion, { defaultExpanded: true },
45
+ react_1.default.createElement(material_1.AccordionSummary, { expandIcon: react_1.default.createElement(ExpandMore_1.default, { className: classes.expandIcon }) },
46
+ react_1.default.createElement(material_1.Typography, { variant: "h5" }, "Aborted jobs")),
47
+ aborted.length ? (aborted.map((job, index) => (react_1.default.createElement(JobCard_1.default, { key: `${JSON.stringify(job)}-${index}`, job: job })))) : (react_1.default.createElement(material_1.Card, { variant: "outlined" },
48
+ react_1.default.createElement(material_1.CardContent, null,
49
+ react_1.default.createElement(material_1.Typography, { variant: "body1" }, "No aborted jobs")))))));
50
+ });
51
+ exports.default = JobsListWidget;
@@ -13,8 +13,9 @@ export declare const Job: import("mobx-state-tree").IModelType<{
13
13
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
14
14
  export interface NewJob extends SnapshotIn<typeof Job> {
15
15
  cancelCallback(): void;
16
+ setStatusMessage(msg?: string): void;
16
17
  }
17
- export default function f(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
18
+ export default function f(_pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
18
19
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
19
20
  type: import("mobx-state-tree").ISimpleType<"JobsListWidget">;
20
21
  jobs: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
@@ -50,6 +51,17 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
50
51
  setStatusMessage(message?: string | undefined): void;
51
52
  setProgressPct(pct: number): void;
52
53
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
54
+ aborted: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
55
+ name: import("mobx-state-tree").ISimpleType<string>;
56
+ statusMessage: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
57
+ progressPct: import("mobx-state-tree").ISimpleType<number>;
58
+ }, {
59
+ cancelCallback(): void;
60
+ } & {
61
+ setCancelCallback(cancelCallback: () => void): void;
62
+ setStatusMessage(message?: string | undefined): void;
63
+ setProgressPct(pct: number): void;
64
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
53
65
  }, {
54
66
  addJob(job: NewJob): {
55
67
  name: string;
@@ -135,6 +147,27 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
135
147
  setStatusMessage(message?: string | undefined): void;
136
148
  setProgressPct(pct: number): void;
137
149
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
150
+ addAbortedJob(job: NewJob): import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IModelType<{
151
+ name: import("mobx-state-tree").ISimpleType<string>;
152
+ statusMessage: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
153
+ progressPct: import("mobx-state-tree").ISimpleType<number>;
154
+ }, {
155
+ cancelCallback(): void;
156
+ } & {
157
+ setCancelCallback(cancelCallback: () => void): void;
158
+ setStatusMessage(message?: string | undefined): void;
159
+ setProgressPct(pct: number): void;
160
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
161
+ name: import("mobx-state-tree").ISimpleType<string>;
162
+ statusMessage: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
163
+ progressPct: import("mobx-state-tree").ISimpleType<number>;
164
+ }, {
165
+ cancelCallback(): void;
166
+ } & {
167
+ setCancelCallback(cancelCallback: () => void): void;
168
+ setStatusMessage(message?: string | undefined): void;
169
+ setProgressPct(pct: number): void;
170
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
138
171
  removeQueuedJob(jobName: string): {
139
172
  name: string;
140
173
  statusMessage: string | undefined;
@@ -9,7 +9,7 @@ exports.Job = mobx_state_tree_1.types
9
9
  statusMessage: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
10
10
  progressPct: mobx_state_tree_1.types.number,
11
11
  })
12
- .volatile(self => ({
12
+ .volatile(() => ({
13
13
  cancelCallback() { },
14
14
  }))
15
15
  .actions(self => ({
@@ -23,7 +23,7 @@ exports.Job = mobx_state_tree_1.types
23
23
  self.progressPct = pct;
24
24
  },
25
25
  }));
26
- function f(pluginManager) {
26
+ function f(_pluginManager) {
27
27
  return mobx_state_tree_1.types
28
28
  .model('JobsListModel', {
29
29
  id: mst_1.ElementId,
@@ -31,6 +31,7 @@ function f(pluginManager) {
31
31
  jobs: mobx_state_tree_1.types.array(exports.Job),
32
32
  finished: mobx_state_tree_1.types.array(exports.Job),
33
33
  queued: mobx_state_tree_1.types.array(exports.Job),
34
+ aborted: mobx_state_tree_1.types.array(exports.Job),
34
35
  })
35
36
  .actions(self => ({
36
37
  addJob(job) {
@@ -54,6 +55,10 @@ function f(pluginManager) {
54
55
  self.queued.push(job);
55
56
  return self.finished;
56
57
  },
58
+ addAbortedJob(job) {
59
+ self.aborted.push(job);
60
+ return self.aborted;
61
+ },
57
62
  removeQueuedJob(jobName) {
58
63
  const indx = self.queued.findIndex(job => job.name === jobName);
59
64
  const removed = self.queued[indx];
package/dist/index.js CHANGED
@@ -42,7 +42,7 @@ class default_1 extends Plugin_1.default {
42
42
  pluginManager.addWidgetType(() => {
43
43
  return new WidgetType_1.default({
44
44
  name: 'JobsListWidget',
45
- heading: 'Running jobs',
45
+ heading: 'Jobs list',
46
46
  configSchema: JobsListWidget_1.configSchema,
47
47
  stateModel: (0, JobsListWidget_1.stateModelFactory)(pluginManager),
48
48
  ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../../jobs-management/src/JobsListWidget/components/JobsListWidget')))),
@@ -60,6 +60,7 @@ class default_1 extends Plugin_1.default {
60
60
  let jobStatusWidget = widgets.get('JobsList');
61
61
  if (!jobStatusWidget) {
62
62
  jobStatusWidget = session.addWidget('JobsListWidget', 'JobsList');
63
+ session.showWidget(jobStatusWidget);
63
64
  }
64
65
  else {
65
66
  session.showWidget(jobStatusWidget);
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { NewJob } from '../model';
3
- declare function CurrentJobCard({ job }: {
3
+ declare const CurrentJobCard: ({ job, }: {
4
4
  job: NewJob;
5
- }): React.JSX.Element;
6
- declare const _default: typeof CurrentJobCard;
7
- export default _default;
5
+ }) => React.JSX.Element;
6
+ export default CurrentJobCard;
@@ -1,7 +1,7 @@
1
1
  import React, { useState } from 'react';
2
2
  import { observer } from 'mobx-react';
3
3
  import { Box, Button, Card, CardActions, CardContent, LinearProgress, Typography, } from '@mui/material';
4
- function CurrentJobCard({ job }) {
4
+ const CurrentJobCard = observer(function CurrentJobCard({ job, }) {
5
5
  const [clicked, setClicked] = useState(false);
6
6
  return (React.createElement(Card, { variant: "outlined" },
7
7
  React.createElement(CardContent, null,
@@ -25,8 +25,9 @@ function CurrentJobCard({ job }) {
25
25
  React.createElement(Typography, null, `${Math.round(job.progressPct || 0)}%`)))))),
26
26
  job.cancelCallback ? (React.createElement(CardActions, null,
27
27
  React.createElement(Button, { variant: "contained", color: "inherit", disabled: clicked || job.progressPct === 0, onClick: () => {
28
+ job.setStatusMessage('Aborted via cancel button');
28
29
  job.cancelCallback && job.cancelCallback();
29
30
  setClicked(true);
30
31
  } }, "Cancel"))) : null));
31
- }
32
- export default observer(CurrentJobCard);
32
+ });
33
+ export default CurrentJobCard;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { NewJob } from '../model';
3
- declare function JobCard({ job }: {
3
+ declare const JobCard: ({ job }: {
4
4
  job: NewJob;
5
- }): React.JSX.Element;
6
- declare const _default: typeof JobCard;
7
- export default _default;
5
+ }) => React.JSX.Element;
6
+ export default JobCard;
@@ -1,11 +1,14 @@
1
1
  import React from 'react';
2
2
  import { observer } from 'mobx-react';
3
3
  import { Card, CardContent, Typography } from '@mui/material';
4
- function JobCard({ job }) {
4
+ const JobCard = observer(function JobCard({ job }) {
5
5
  return (React.createElement(Card, { variant: "outlined" },
6
6
  React.createElement(CardContent, null,
7
7
  React.createElement(Typography, { variant: "body1" },
8
8
  React.createElement("strong", null, 'Name: '),
9
- job.name))));
10
- }
11
- export default observer(JobCard);
9
+ job.name),
10
+ job.statusMessage ? (React.createElement(Typography, { variant: "body1" },
11
+ React.createElement("strong", null, 'Message: '),
12
+ job.statusMessage)) : null)));
13
+ });
14
+ export default JobCard;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { JobsListModel } from '../model';
3
- declare function JobsListWidget({ model }: {
3
+ declare const JobsListWidget: ({ model }: {
4
4
  model: JobsListModel;
5
- }): React.JSX.Element;
6
- declare const _default: typeof JobsListWidget;
7
- export default _default;
5
+ }) => React.JSX.Element;
6
+ export default JobsListWidget;
@@ -13,29 +13,17 @@ const useStyles = makeStyles()(theme => ({
13
13
  expandIcon: {
14
14
  color: theme.palette.tertiary.contrastText,
15
15
  },
16
- button: {
17
- marginTop: theme.spacing(1),
18
- marginRight: theme.spacing(1),
19
- },
20
- adminBadge: {
21
- margin: '0.5em',
22
- borderRadius: 3,
23
- backgroundColor: theme.palette.quaternary.main,
24
- padding: '1em',
25
- display: 'flex',
26
- alignContent: 'center',
27
- },
28
16
  }));
29
- function JobsListWidget({ model }) {
17
+ const JobsListWidget = observer(function ({ model }) {
30
18
  const { classes } = useStyles();
31
- const { jobs, finished, queued } = model;
19
+ const { jobs, finished, queued, aborted } = model;
32
20
  return (React.createElement("div", { className: classes.root },
33
21
  React.createElement(Accordion, { defaultExpanded: true },
34
22
  React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, { className: classes.expandIcon }) },
35
- React.createElement(Typography, { variant: "h5" }, "Jobs")),
23
+ React.createElement(Typography, { variant: "h5" }, "Running jobs")),
36
24
  jobs.length ? (jobs.map((job, index) => (React.createElement(CurrentJobCard, { job: job, key: `${JSON.stringify(job)}-${index}` })))) : (React.createElement(Card, { variant: "outlined" },
37
25
  React.createElement(CardContent, null,
38
- React.createElement(Typography, { variant: "body1" }, "No jobs"))))),
26
+ React.createElement(Typography, { variant: "body1" }, "No running jobs"))))),
39
27
  React.createElement(Accordion, { defaultExpanded: true },
40
28
  React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, { className: classes.expandIcon }) },
41
29
  React.createElement(Typography, { variant: "h5" }, "Queued jobs")),
@@ -44,9 +32,15 @@ function JobsListWidget({ model }) {
44
32
  React.createElement(Typography, { variant: "body1" }, "No queued jobs"))))),
45
33
  React.createElement(Accordion, { defaultExpanded: true },
46
34
  React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, { className: classes.expandIcon }) },
47
- React.createElement(Typography, { variant: "h5" }, "Jobs completed")),
35
+ React.createElement(Typography, { variant: "h5" }, "Completed jobs")),
48
36
  finished.length ? (finished.map((job, index) => (React.createElement(JobCard, { key: `${JSON.stringify(job)}-${index}`, job: job })))) : (React.createElement(Card, { variant: "outlined" },
49
37
  React.createElement(CardContent, null,
50
- React.createElement(Typography, { variant: "body1" }, "No jobs completed")))))));
51
- }
52
- export default observer(JobsListWidget);
38
+ React.createElement(Typography, { variant: "body1" }, "No completed jobs"))))),
39
+ React.createElement(Accordion, { defaultExpanded: true },
40
+ React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, { className: classes.expandIcon }) },
41
+ React.createElement(Typography, { variant: "h5" }, "Aborted jobs")),
42
+ aborted.length ? (aborted.map((job, index) => (React.createElement(JobCard, { key: `${JSON.stringify(job)}-${index}`, job: job })))) : (React.createElement(Card, { variant: "outlined" },
43
+ React.createElement(CardContent, null,
44
+ React.createElement(Typography, { variant: "body1" }, "No aborted jobs")))))));
45
+ });
46
+ export default JobsListWidget;
@@ -13,8 +13,9 @@ export declare const Job: import("mobx-state-tree").IModelType<{
13
13
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
14
14
  export interface NewJob extends SnapshotIn<typeof Job> {
15
15
  cancelCallback(): void;
16
+ setStatusMessage(msg?: string): void;
16
17
  }
17
- export default function f(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
18
+ export default function f(_pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
18
19
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
19
20
  type: import("mobx-state-tree").ISimpleType<"JobsListWidget">;
20
21
  jobs: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
@@ -50,6 +51,17 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
50
51
  setStatusMessage(message?: string | undefined): void;
51
52
  setProgressPct(pct: number): void;
52
53
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
54
+ aborted: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
55
+ name: import("mobx-state-tree").ISimpleType<string>;
56
+ statusMessage: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
57
+ progressPct: import("mobx-state-tree").ISimpleType<number>;
58
+ }, {
59
+ cancelCallback(): void;
60
+ } & {
61
+ setCancelCallback(cancelCallback: () => void): void;
62
+ setStatusMessage(message?: string | undefined): void;
63
+ setProgressPct(pct: number): void;
64
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
53
65
  }, {
54
66
  addJob(job: NewJob): {
55
67
  name: string;
@@ -135,6 +147,27 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
135
147
  setStatusMessage(message?: string | undefined): void;
136
148
  setProgressPct(pct: number): void;
137
149
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
150
+ addAbortedJob(job: NewJob): import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IModelType<{
151
+ name: import("mobx-state-tree").ISimpleType<string>;
152
+ statusMessage: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
153
+ progressPct: import("mobx-state-tree").ISimpleType<number>;
154
+ }, {
155
+ cancelCallback(): void;
156
+ } & {
157
+ setCancelCallback(cancelCallback: () => void): void;
158
+ setStatusMessage(message?: string | undefined): void;
159
+ setProgressPct(pct: number): void;
160
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
161
+ name: import("mobx-state-tree").ISimpleType<string>;
162
+ statusMessage: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
163
+ progressPct: import("mobx-state-tree").ISimpleType<number>;
164
+ }, {
165
+ cancelCallback(): void;
166
+ } & {
167
+ setCancelCallback(cancelCallback: () => void): void;
168
+ setStatusMessage(message?: string | undefined): void;
169
+ setProgressPct(pct: number): void;
170
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
138
171
  removeQueuedJob(jobName: string): {
139
172
  name: string;
140
173
  statusMessage: string | undefined;
@@ -6,7 +6,7 @@ export const Job = types
6
6
  statusMessage: types.maybe(types.string),
7
7
  progressPct: types.number,
8
8
  })
9
- .volatile(self => ({
9
+ .volatile(() => ({
10
10
  cancelCallback() { },
11
11
  }))
12
12
  .actions(self => ({
@@ -20,7 +20,7 @@ export const Job = types
20
20
  self.progressPct = pct;
21
21
  },
22
22
  }));
23
- export default function f(pluginManager) {
23
+ export default function f(_pluginManager) {
24
24
  return types
25
25
  .model('JobsListModel', {
26
26
  id: ElementId,
@@ -28,6 +28,7 @@ export default function f(pluginManager) {
28
28
  jobs: types.array(Job),
29
29
  finished: types.array(Job),
30
30
  queued: types.array(Job),
31
+ aborted: types.array(Job),
31
32
  })
32
33
  .actions(self => ({
33
34
  addJob(job) {
@@ -51,6 +52,10 @@ export default function f(pluginManager) {
51
52
  self.queued.push(job);
52
53
  return self.finished;
53
54
  },
55
+ addAbortedJob(job) {
56
+ self.aborted.push(job);
57
+ return self.aborted;
58
+ },
54
59
  removeQueuedJob(jobName) {
55
60
  const indx = self.queued.findIndex(job => job.name === jobName);
56
61
  const removed = self.queued[indx];
package/esm/index.js CHANGED
@@ -14,7 +14,7 @@ export default class extends Plugin {
14
14
  pluginManager.addWidgetType(() => {
15
15
  return new WidgetType({
16
16
  name: 'JobsListWidget',
17
- heading: 'Running jobs',
17
+ heading: 'Jobs list',
18
18
  configSchema: JobsListConfigSchema,
19
19
  stateModel: JobsListStateModelFactory(pluginManager),
20
20
  ReactComponent: lazy(() => import('../../jobs-management/src/JobsListWidget/components/JobsListWidget')),
@@ -32,6 +32,7 @@ export default class extends Plugin {
32
32
  let jobStatusWidget = widgets.get('JobsList');
33
33
  if (!jobStatusWidget) {
34
34
  jobStatusWidget = session.addWidget('JobsListWidget', 'JobsList');
35
+ session.showWidget(jobStatusWidget);
35
36
  }
36
37
  else {
37
38
  session.showWidget(jobStatusWidget);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-jobs-management",
3
- "version": "2.6.3",
3
+ "version": "2.7.0",
4
4
  "description": "JBrowse 2 jobs management",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -36,14 +36,14 @@
36
36
  "clean": "rimraf dist esm *.tsbuildinfo"
37
37
  },
38
38
  "dependencies": {
39
- "@jbrowse/text-indexing": "^2.6.3",
39
+ "@jbrowse/text-indexing": "^2.7.0",
40
40
  "@mui/icons-material": "^5.0.0"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "@jbrowse/core": "^2.0.0",
44
44
  "@mui/material": "^5.0.0",
45
45
  "mobx": "^6.0.0",
46
- "mobx-react": "^7.0.0",
46
+ "mobx-react": "^9.0.0",
47
47
  "mobx-state-tree": "^5.0.0",
48
48
  "react": ">=16.8.0",
49
49
  "tss-react": "^4.0.0"
@@ -54,5 +54,5 @@
54
54
  "publishConfig": {
55
55
  "access": "public"
56
56
  },
57
- "gitHead": "ed402c87efb0904858d602c363bd1757d5742129"
57
+ "gitHead": "dbe7fb1af01fc89f833d2744635eb44a17365b41"
58
58
  }