@nocobase/plugin-async-task-manager 2.0.0-alpha.9 → 2.1.0-alpha.1

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.
@@ -12,6 +12,7 @@ import { Plugin } from '@nocobase/client';
12
12
  type TaskOrigin = {
13
13
  Result?: React.ComponentType<any>;
14
14
  ResultButton?: React.ComponentType<any>;
15
+ namespace?: string;
15
16
  };
16
17
  export declare class PluginAsyncTaskManagerClient extends Plugin {
17
18
  taskOrigins: Registry<TaskOrigin>;
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("dayjs"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager",["react","dayjs","@nocobase/client","@nocobase/utils/client","antd"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager"]=t(require("react"),require("dayjs"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd")):e["@nocobase/plugin-async-task-manager"]=t(e.react,e.dayjs,e["@nocobase/client"],e["@nocobase/utils/client"],e.antd)}(self,function(e,t,n,r,o){var a={379:function(e,t,n){e.exports=function(e){"use strict";var t={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,t){return"W"===t?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,t){var n=100*e+t;return n<600?"凌晨":n<900?"早上":n<1100?"上午":n<1300?"中午":n<1800?"下午":"晚上"}};return(e&&"object"==typeof e&&"default"in e?e:{default:e}).default.locale(t,null,!0),t}(n(760))},809:function(e){e.exports=function(e,t,n){e=e||{};var r=t.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function a(e,t,n,o){return r.fromToBase(e,t,n,o)}n.en.relativeTime=o,r.fromToBase=function(t,r,a,i,l){for(var s,u,c,f=a.$locale().relativeTime||o,d=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],p=d.length,y=0;y<p;y+=1){var m=d[y];m.d&&(s=i?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var v=(e.rounding||Math.round)(Math.abs(s));if(c=s>0,v<=m.r||!m.r){v<=1&&y>0&&(m=d[y-1]);var b=f[m.l];l&&(v=l(""+v)),u="string"==typeof b?b.replace("%d",v):b(v,r,m.l,c);break}}if(r)return u;var h=c?f.future:f.past;return"function"==typeof h?h(u):h.replace("%s",u)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var i=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(i(this),e)},r.fromNow=function(e){return this.from(i(this),e)}}},772:function(e){"use strict";e.exports=n},584:function(e){"use strict";e.exports=r},721:function(e){"use strict";e.exports=o},760:function(e){"use strict";e.exports=t},156:function(t){"use strict";t.exports=e}},i={};function l(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={exports:{}};return a[e].call(n.exports,n,n.exports,l),n.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};return!function(){"use strict";l.r(s),l.d(s,{PluginAsyncTaskManagerClient:function(){return j},default:function(){return L}});var e,t=l(584),n=l(772),r=l(156),o=l.n(r),a=l(721),i=l(760),u=l.n(i);l(379);var c=l(809),f=l.n(c),d=JSON.parse('{"u2":"@nocobase/plugin-async-task-manager"}');function p(){var e=(0,n.useApp)();return function(t,n){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:[d.u2,"client"]},n))}}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m="@nocobase/plugin-async-task-manager",v={PENDING:null,RUNNING:0,SUCCEEDED:1,FAILED:-1,CANCELED:-2},b=(y(e={},v.PENDING,{value:v.PENDING,label:"{{t('Waiting', { ns: '".concat(m,"' })}}"),color:"default",icon:"ClockCircleOutlined"}),y(e,v.RUNNING,{value:v.RUNNING,label:"{{t('Processing', { ns: '".concat(m,"' })}}"),color:"processing",icon:"LoadingOutlined"}),y(e,v.SUCCEEDED,{value:v.SUCCEEDED,label:"{{t('Completed', { ns: '".concat(m,"' })}}"),color:"success",icon:"CheckCircleOutlined"}),y(e,v.FAILED,{value:v.FAILED,label:"{{t('Failed', { ns: '".concat(m,"' })}}"),color:"error",icon:"CloseCircleOutlined"}),y(e,v.CANCELED,{value:v.CANCELED,label:"{{t('Canceled', { ns: '".concat(m,"' })}}"),color:"warning",icon:"StopOutlined"}),e);function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function E(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){g(a,r,o,i,l,"next",e)}function l(e){g(a,r,o,i,l,"throw",e)}i(void 0)})}}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||w(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){if(e){if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(e,t)}}function _(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){var s=[a,l];if(n)throw TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}var C=(0,n.createStyles)(function(e){return{button:{color:e.token.colorTextHeaderMenu+" !important"}}});u().extend(f());var S=function(e){var t,n,r=e.record,i=p();if(r.status!==v.SUCCEEDED||!(null==(n=r.result)||null==(t=n.message)?void 0:t.messageId))return null;var l=r.result.message,s=l.messageId,u=l.messageValues;return o().createElement("div",{style:{marginLeft:8}},o().createElement(a.Tag,{color:"success"},i(s,u)))},x=function(e){var t=e.popoverVisible,r=e.setPopoverVisible,i=e.tasks,l=e.refresh,s=e.loading;e.hasProcessingTasks;var c=(0,n.useAPIClient)(),f=p(),d=C().styles,y=(0,n.usePlugin)("async-task-manager");(0,n.useCollectionManager)();var m=(0,n.useCompile)(),h=function(e){r(!1)},g=[{title:f("Created at"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return o().createElement(a.Tooltip,{title:u()(e).format("YYYY-MM-DD HH:mm:ss")},u()(e).fromNow())}},{title:f("Task"),dataIndex:"title",key:"title"},{title:f("Status"),dataIndex:"status",key:"status",width:160,render:function(e,t){var r=b[e]||{},i=r.color,l=r.label;return o().createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},o().createElement("div",{style:{flex:1}},function(){var n,r,i={width:100,margin:0};switch(e){case v.PENDING:return o().createElement(a.Alert,{showIcon:!1,message:m(l),banner:!0});case v.RUNNING:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:Number(((null!=(n=t.progressCurrent)?n:0)/(null!=(r=t.progressTotal)?r:1)*100).toFixed(2)),status:"active",style:i,format:function(e){return"".concat(e.toFixed(1),"%")}});case v.SUCCEEDED:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"success",style:i,format:function(){return""}});case v.FAILED:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"exception",style:i,format:function(){return""}});default:return null}}()),o().createElement(a.Tag,{color:i,icon:(null==r?void 0:r.icon)?o().createElement(n.Icon,{type:r.icon}):null,style:{margin:0,padding:"0 4px",height:22,width:22}}),o().createElement(S,{record:t}))}},{title:f("Actions"),key:"actions",width:180,render:function(e,t){var i,s,u=[],d=null!=(s=y.taskOrigins.get(t.origin))?s:{},p=d.Result,m=d.ResultButton,b=p||function(){return null};return t.cancelable&&(t.status===v.RUNNING||t.status===v.PENDING)&&u.push(o().createElement(a.Popconfirm,{key:"cancel",title:f("Confirm cancel"),description:f("Confirm cancel description"),onConfirm:E(function(){return _(this,function(e){switch(e.label){case 0:return[4,c.resource("asyncTasks").stop({filterByTk:t.id})];case 1:return e.sent(),l(),[2]}})}),okText:f("Confirm"),cancelText:f("Cancel"),disabled:!1},o().createElement(a.Button,{type:"link",size:"small",icon:o().createElement(n.Icon,{type:"StopOutlined"}),disabled:!1},f("Stop")))),t.status===v.SUCCEEDED&&t.result&&(m?u.push(o().createElement(m,{key:"result-button",task:t})):u.push(o().createElement(a.Button,{key:"view",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"EyeOutlined"}),onClick:function(){h(t),a.Modal.info({title:f("Task result"),content:p?o().createElement(b,{payload:t.result,task:t}):o().createElement("div",null,f("No renderer available for this task type, payload: ".concat(t.result)))})}},f("View result")))),t.status===v.FAILED&&(null==(i=t.result)?void 0:i.length)>0&&u.push(o().createElement(a.Button,{key:"error",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"ExclamationCircleOutlined"}),onClick:function(){var e;r(!1),a.Modal.info({title:f("Error Details"),content:null==(e=t.result)?void 0:e.map(function(e,t){return o().createElement("div",{key:t,style:{marginBottom:16}},o().createElement("div",{style:{color:"#ff4d4f",marginBottom:8}},e.message),e.code&&o().createElement("div",{style:{color:"#999",fontSize:12}},f("Error code"),": ",e.code))}),closable:!0,width:400})}},f("Error details"))),o().createElement(a.Space,{size:"middle"},u)}}];i.filter(function(e){return[v.SUCCEEDED,v.FAILED].includes(e.status)}).length;var k=o().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:i.length>0?800:200}},i.length>0?o().createElement(a.Table,{loading:s,columns:g,dataSource:i,size:"small",pagination:!1,rowKey:"taskId"}):o().createElement("div",{style:{padding:"24px 0",display:"flex",justifyContent:"center"}},o().createElement(a.Empty,{description:f("No tasks"),image:a.Empty.PRESENTED_IMAGE_SIMPLE})));return o().createElement(o().Fragment,null,o().createElement(a.Popover,{content:k,trigger:"click",placement:"bottom",open:t,onOpenChange:r},o().createElement(a.Button,{className:["sync-task-button",d.button].join(" "),onClick:function(){r(!t),t||l()},icon:o().createElement(n.Icon,{type:"SyncOutlined",spin:i.some(function(e){return v.RUNNING===e.status})})})))},O=function(){var e=(0,n.useApp)(),t=(0,n.useRequest)({resource:"asyncTasks",action:"list",params:{sort:"-createdAt"}}),a=t.data,i=t.refresh;t.loading;var l=k((0,r.useState)((null==a?void 0:a.data)||[]),2),s=l[0],u=l[1],c=k((0,r.useState)(!1),2),f=c[0],d=c[1];(0,r.useEffect)(function(){u((null==a?void 0:a.data)||[])},[a]);var p=(0,r.useCallback)(E(function(){return _(this,function(e){return d(!0),i(),console.log("handleTaskCreated"),[2]})}),[]),y=(0,r.useCallback)(function(e){var t=e.detail;u(function(e){var n=e.findIndex(function(e){return e.id===t.id});return -1===n?e.unshift(t):e.splice(n,1,t),function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||w(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()})},[]),m=(0,r.useCallback)(function(){i(),console.log("handleTaskStatus")},[]),v=(0,r.useCallback)(function(){i(),console.log("handleTaskDeleted")},[]);return(0,r.useEffect)(function(){return e.eventBus.addEventListener("ws:message:async-tasks:created",p),e.eventBus.addEventListener("ws:message:async-tasks:progress",y),e.eventBus.addEventListener("ws:message:async-tasks:status",m),e.eventBus.addEventListener("ws:message:async-tasks:deleted",v),function(){e.eventBus.removeEventListener("ws:message:async-tasks:created",p),e.eventBus.removeEventListener("ws:message:async-tasks:progress",y),e.eventBus.removeEventListener("ws:message:async-tasks:status",m),e.eventBus.removeEventListener("ws:message:async-tasks:deleted",v)}},[e,v,p,y,m]),(null==s?void 0:s.length)>0&&o().createElement(x,{tasks:s,refresh:i,popoverVisible:f,setPopoverVisible:d})},D=function(e){return o().createElement(n.PinnedPluginListProvider,{items:{asyncTasks:{order:300,component:"AsyncTasks",pin:!0,snippet:"*"}}},o().createElement(n.SchemaComponentOptions,{components:{AsyncTasks:O}},e.children))};function P(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function N(e,t,n){return(N=Y()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&T(o,n.prototype),o}).apply(null,arguments)}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function T(e,t){return(T=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function M(e){var t="function"==typeof Map?new Map:void 0;return(M=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return N(e,arguments,I(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),T(n,e)})(e)}function Y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Y=function(){return!!e})()}var j=function(e){var n;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,n,o,a,i,l;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return n=r,o=arguments,n=I(n),a=e=function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,Y()?Reflect.construct(n,o||[],I(this).constructor):n.apply(this,o)),i="taskOrigins",l=new t.Registry,i in a?Object.defineProperty(a,i,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[i]=l,e}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&T(r,e),n=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){var s=[a,l];if(n)throw TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=t.call(e,i)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}(this,function(e){return t.app.use(D),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){P(a,r,o,i,l,"next",e)}function l(e){P(a,r,o,i,l,"throw",e)}i(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(r.prototype,n),r}(M(n.Plugin)),L=j}(),s});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("dayjs"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd"),require("react-i18next")):"function"==typeof define&&define.amd?define("@nocobase/plugin-async-task-manager",["react","dayjs","@nocobase/client","@nocobase/utils/client","antd","react-i18next"],t):"object"==typeof exports?exports["@nocobase/plugin-async-task-manager"]=t(require("react"),require("dayjs"),require("@nocobase/client"),require("@nocobase/utils/client"),require("antd"),require("react-i18next")):e["@nocobase/plugin-async-task-manager"]=t(e.react,e.dayjs,e["@nocobase/client"],e["@nocobase/utils/client"],e.antd,e["react-i18next"])}(self,function(e,t,n,r,o,a){var i={379:function(e,t,n){e.exports=function(e){"use strict";var t={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,t){return"W"===t?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,t){var n=100*e+t;return n<600?"凌晨":n<900?"早上":n<1100?"上午":n<1300?"中午":n<1800?"下午":"晚上"}};return(e&&"object"==typeof e&&"default"in e?e:{default:e}).default.locale(t,null,!0),t}(n(760))},809:function(e){e.exports=function(e,t,n){e=e||{};var r=t.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function a(e,t,n,o){return r.fromToBase(e,t,n,o)}n.en.relativeTime=o,r.fromToBase=function(t,r,a,i,s){for(var l,c,u,f=a.$locale().relativeTime||o,p=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],d=p.length,y=0;y<d;y+=1){var m=p[y];m.d&&(l=i?n(t).diff(a,m.d,!0):a.diff(t,m.d,!0));var b=(e.rounding||Math.round)(Math.abs(l));if(u=l>0,b<=m.r||!m.r){b<=1&&y>0&&(m=p[y-1]);var v=f[m.l];s&&(b=s(""+b)),c="string"==typeof v?v.replace("%d",b):v(b,r,m.l,u);break}}if(r)return c;var h=u?f.future:f.past;return"function"==typeof h?h(c):h.replace("%s",c)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var i=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(i(this),e)},r.fromNow=function(e){return this.from(i(this),e)}}},772:function(e){"use strict";e.exports=n},584:function(e){"use strict";e.exports=r},721:function(e){"use strict";e.exports=o},760:function(e){"use strict";e.exports=t},156:function(t){"use strict";t.exports=e},238:function(e){"use strict";e.exports=a}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return i[e].call(n.exports,n,n.exports,l),n.exports}l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var c={};return!function(){"use strict";l.r(c),l.d(c,{PluginAsyncTaskManagerClient:function(){return Y},default:function(){return M}});var e,t=l(584),n=l(772),r=l(156),o=l.n(r),a=l(721),i=l(238),s=l(760),u=l.n(s);l(379);var f=l(809),p=l.n(f),d=JSON.parse('{"u2":"@nocobase/plugin-async-task-manager"}');function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m="@nocobase/plugin-async-task-manager",b={PENDING:null,RUNNING:0,SUCCEEDED:1,FAILED:-1,CANCELED:-2},v=(y(e={},b.PENDING,{value:b.PENDING,label:"{{t('Waiting', { ns: '".concat(m,"' })}}"),color:"default",icon:"ClockCircleOutlined"}),y(e,b.RUNNING,{value:b.RUNNING,label:"{{t('Processing', { ns: '".concat(m,"' })}}"),color:"processing",icon:"LoadingOutlined"}),y(e,b.SUCCEEDED,{value:b.SUCCEEDED,label:"{{t('Completed', { ns: '".concat(m,"' })}}"),color:"success",icon:"CheckCircleOutlined"}),y(e,b.FAILED,{value:b.FAILED,label:"{{t('Failed', { ns: '".concat(m,"' })}}"),color:"error",icon:"CloseCircleOutlined"}),y(e,b.CANCELED,{value:b.CANCELED,label:"{{t('Canceled', { ns: '".concat(m,"' })}}"),color:"warning",icon:"StopOutlined"}),e);function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}function E(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){g(a,r,o,i,s,"next",e)}function s(e){g(a,r,o,i,s,"throw",e)}i(void 0)})}}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,s=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw r}}return a}}(e,t)||w(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){if(e){if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(e,t)}}function O(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){var l=[a,s];if(n)throw TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}var _=(0,n.createStyles)(function(e){return{button:{color:e.token.colorTextHeaderMenu+" !important"}}});u().extend(p());var S=function(e){var t,r=e.popoverVisible,s=e.setPopoverVisible,l=e.tasks,c=e.refresh,f=e.loading;e.hasProcessingTasks;var p=(0,n.useAPIClient)(),y=(t=(0,n.useApp)(),function(e,n){return t.i18n.t(e,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:[d.u2,"client"]},n))}),m=(0,i.useTranslation)().t,h=_().styles,g=(0,n.usePlugin)("async-task-manager"),k=(0,n.useCompile)(),w=function(e){s(!1)},S=[{title:y("Created at"),dataIndex:"createdAt",key:"createdAt",width:180,render:function(e){return o().createElement(a.Tooltip,{title:u()(e).format("YYYY-MM-DD HH:mm:ss")},u()(e).fromNow())}},{title:y("Task"),dataIndex:"title",key:"title"},{title:y("Status"),dataIndex:"status",key:"status",width:160,render:function(e,t){var r=v[e]||{},i=r.color,s=r.label;return o().createElement("div",{style:{display:"flex",alignItems:"center",gap:8}},o().createElement("div",{style:{flex:1}},function(){var n,r,i={width:100,margin:0};switch(e){case b.PENDING:return o().createElement(a.Alert,{showIcon:!1,message:k(s),banner:!0});case b.RUNNING:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:Number(((null!=(n=t.progressCurrent)?n:0)/(null!=(r=t.progressTotal)?r:1)*100).toFixed(2)),status:"active",style:i,format:function(e){return"".concat(e.toFixed(1),"%")}});case b.SUCCEEDED:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"success",style:i,format:function(){return""}});case b.FAILED:return o().createElement(a.Progress,{type:"line",size:"small",strokeWidth:4,percent:100,status:"exception",style:i,format:function(){return""}});default:return null}}()),o().createElement(a.Tag,{color:i,icon:(null==r?void 0:r.icon)?o().createElement(n.Icon,{type:r.icon}):null,style:{margin:0,padding:"0 4px",height:22,width:22}}))}},{title:y("Actions"),dataIndex:"result",key:"actions",width:180,render:function(e,t){var r,i=[],l=null!=(r=g.taskOrigins.get(t.origin))?r:{},u=l.Result,f=l.ResultButton,d=u||function(){return null};return t.cancelable&&(t.status===b.RUNNING||t.status===b.PENDING)&&i.push(o().createElement(a.Popconfirm,{key:"cancel",title:y("Confirm cancel"),description:y("Confirm to cancel this task?"),onConfirm:E(function(){return O(this,function(e){switch(e.label){case 0:return[4,p.resource("asyncTasks").stop({filterByTk:t.id})];case 1:return e.sent(),c(),[2]}})}),okText:y("Confirm"),cancelText:y("Cancel"),disabled:!1},o().createElement(a.Button,{type:"link",size:"small",icon:o().createElement(n.Icon,{type:"StopOutlined"}),disabled:!1},y("Stop")))),t.status===b.SUCCEEDED&&e&&(f?i.push(o().createElement(f,{key:"result-button",task:t})):i.push(o().createElement(a.Button,{key:"view",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"EyeOutlined"}),onClick:function(){w(t),a.Modal.info({title:y("Task result"),content:u?o().createElement(d,{payload:e,task:t}):o().createElement("div",null,y("No renderer available for this task type, payload: ".concat(t.result)))})}},y("View result")))),t.status===b.FAILED&&e&&i.push(o().createElement(a.Button,{key:"error",type:"link",size:"small",icon:o().createElement(n.Icon,{type:"ExclamationCircleOutlined"}),onClick:function(){s(!1);var n,r,i=g.taskOrigins.get(t.origin).namespace;a.Modal.info({title:y("Error Details"),content:o().createElement(a.Typography.Text,null,m(e.message,(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},e.params),r=r={ns:void 0===i?"client":i},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n))),closable:!0,width:400})}},y("Error details"))),o().createElement(a.Space,{size:"middle"},i)}}];l.filter(function(e){return[b.SUCCEEDED,b.FAILED].includes(e.status)}).length;var x=o().createElement("div",{style:{maxHeight:"70vh",overflow:"auto",width:l.length>0?800:200}},l.length>0?o().createElement(a.Table,{loading:f,columns:S,dataSource:l,size:"small",pagination:!1,rowKey:"taskId"}):o().createElement("div",{style:{padding:"24px 0",display:"flex",justifyContent:"center"}},o().createElement(a.Empty,{description:y("No tasks"),image:a.Empty.PRESENTED_IMAGE_SIMPLE})));return o().createElement(o().Fragment,null,o().createElement(a.Popover,{content:x,trigger:"click",placement:"bottom",open:r,onOpenChange:s},o().createElement(a.Button,{className:["sync-task-button",h.button].join(" "),onClick:function(){s(!r),r||c()},icon:o().createElement(n.Icon,{type:"SyncOutlined",spin:l.some(function(e){return b.RUNNING===e.status})})})))},x=function(){var e=(0,n.useApp)(),t=(0,n.useRequest)({resource:"asyncTasks",action:"list",params:{sort:"-createdAt"}}),a=t.data,i=t.refresh;t.loading;var s=k((0,r.useState)((null==a?void 0:a.data)||[]),2),l=s[0],c=s[1],u=k((0,r.useState)(!1),2),f=u[0],p=u[1];(0,r.useEffect)(function(){c((null==a?void 0:a.data)||[])},[a]);var d=(0,r.useCallback)(E(function(){return O(this,function(e){return p(!0),i(),console.log("handleTaskCreated"),[2]})}),[]),y=(0,r.useCallback)(function(e){var t=e.detail;c(function(e){var n=e.findIndex(function(e){return e.id===t.id});return -1===n?e.unshift(t):e.splice(n,1,t),function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||w(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()})},[]),m=(0,r.useCallback)(function(){i(),console.log("handleTaskStatus")},[]),b=(0,r.useCallback)(function(){i(),console.log("handleTaskDeleted")},[]);return(0,r.useEffect)(function(){return e.eventBus.addEventListener("ws:message:async-tasks:created",d),e.eventBus.addEventListener("ws:message:async-tasks:progress",y),e.eventBus.addEventListener("ws:message:async-tasks:status",m),e.eventBus.addEventListener("ws:message:async-tasks:deleted",b),function(){e.eventBus.removeEventListener("ws:message:async-tasks:created",d),e.eventBus.removeEventListener("ws:message:async-tasks:progress",y),e.eventBus.removeEventListener("ws:message:async-tasks:status",m),e.eventBus.removeEventListener("ws:message:async-tasks:deleted",b)}},[e,b,d,y,m]),(null==l?void 0:l.length)>0&&o().createElement(S,{tasks:l,refresh:i,popoverVisible:f,setPopoverVisible:p})},P=function(e){return o().createElement(n.PinnedPluginListProvider,{items:{asyncTasks:{order:300,component:"AsyncTasks",pin:!0,snippet:"*"}}},o().createElement(n.SchemaComponentOptions,{components:{AsyncTasks:x}},e.children))};function C(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}function j(e,t,n){return(j=I()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&N(o,n.prototype),o}).apply(null,arguments)}function D(e){return(D=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function N(e,t){return(N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function T(e){var t="function"==typeof Map?new Map:void 0;return(T=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return j(e,arguments,D(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),N(n,e)})(e)}function I(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(I=function(){return!!e})()}var Y=function(e){var n;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function r(){var e,n,o,a,i,s;if(!(this instanceof r))throw TypeError("Cannot call a class as a function");return n=r,o=arguments,n=D(n),a=e=function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,I()?Reflect.construct(n,o||[],D(this).constructor):n.apply(this,o)),i="taskOrigins",s=new t.Registry,i in a?Object.defineProperty(a,i,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[i]=s,e}return r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&N(r,e),n=[{key:"load",value:function(){var e,t=this;return(e=function(){return function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){var l=[a,s];if(n)throw TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(e){return t.app.use(P),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){C(a,r,o,i,s,"next",e)}function s(e){C(a,r,o,i,s,"throw",e)}i(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(r.prototype,n),r}(T(n.Plugin)),M=Y}(),c});
@@ -9,6 +9,8 @@
9
9
  declare const _default: {
10
10
  name: string;
11
11
  autoGenId: boolean;
12
+ dumpRules: string;
13
+ migrationRules: string[];
12
14
  createdAt: boolean;
13
15
  updatedAt: boolean;
14
16
  createdBy: boolean;
@@ -32,6 +32,8 @@ module.exports = __toCommonJS(asyncTasks_exports);
32
32
  var asyncTasks_default = {
33
33
  name: "asyncTasks",
34
34
  autoGenId: false,
35
+ dumpRules: "required",
36
+ migrationRules: ["schema-only"],
35
37
  createdAt: true,
36
38
  updatedAt: true,
37
39
  createdBy: true,
@@ -8,14 +8,15 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "2.0.0-alpha.9",
11
+ "@nocobase/client": "2.1.0-alpha.1",
12
12
  "react": "18.2.0",
13
- "@nocobase/utils": "2.0.0-alpha.9",
13
+ "@nocobase/utils": "2.1.0-alpha.1",
14
14
  "lodash": "4.17.21",
15
- "@nocobase/server": "2.0.0-alpha.9",
16
- "@nocobase/logger": "2.0.0-alpha.9",
17
- "@nocobase/database": "2.0.0-alpha.9",
15
+ "@nocobase/server": "2.1.0-alpha.1",
16
+ "@nocobase/logger": "2.1.0-alpha.1",
17
+ "@nocobase/database": "2.1.0-alpha.1",
18
18
  "antd": "5.24.2",
19
+ "react-i18next": "11.18.6",
19
20
  "dayjs": "1.11.13",
20
- "@nocobase/actions": "2.0.0-alpha.9"
21
+ "@nocobase/actions": "2.1.0-alpha.1"
21
22
  };
@@ -1,45 +1,45 @@
1
1
  {
2
- "Export": "Exportieren",
3
- "Import": "Importieren",
4
- "Data": "Daten",
5
- "Task": "Aufgabe",
6
- "Status": "Status",
7
2
  "Actions": "Aktionen",
8
- "Created at": "Erstellt am",
9
- "Type": "Typ",
10
- "Waiting": "Wartend",
11
- "Processing": "In Bearbeitung",
12
- "Completed": "Abgeschlossen",
13
- "Failed": "Fehlgeschlagen",
14
- "Cancelled": "Abgebrochen",
15
3
  "Cancel": "Abbrechen",
4
+ "Cancelled": "Abgebrochen",
16
5
  "Cancelling": "Wird abgebrochen",
17
- "Download": "Herunterladen",
18
- "Error details": "Fehlerdetails",
19
- "Confirm cancel": "Abbruch bestätigen",
20
- "Confirm cancel description": "Sind Sie sicher, dass Sie diese Aufgabe abbrechen möchten?",
6
+ "Close": "Schließen",
7
+ "Completed": "Abgeschlossen",
21
8
  "Confirm": "Bestätigen",
22
- "Task cancelled": "Aufgabe abgebrochen",
23
- "Task completed": "Aufgabe abgeschlossen",
24
- "Task failed": "Aufgabe fehlgeschlagen",
9
+ "Confirm cancel": "Abbruch bestätigen",
10
+ "Confirm to cancel this task?": "Sind Sie sicher, dass Sie diese Aufgabe abbrechen möchten?",
11
+ "Created at": "Erstellt am",
12
+ "Data": "Daten",
13
+ "Download": "Herunterladen",
25
14
  "Error Details": "Fehlerdetails",
26
- "Close": "Schließen",
27
15
  "Error code": "Fehlercode",
28
- "Unknown error": "Unbekannter Fehler",
29
- "OK": "OK",
30
- "Import result": "Importergebnis",
16
+ "Error details": "Fehlerdetails",
17
+ "Export": "Exportieren",
18
+ "Export {collection} attachments": "Export von {collection} Anhängen",
19
+ "Export {collection} data": "Export von {collection} Daten",
20
+ "Failed": "Fehlgeschlagen",
21
+ "Import": "Importieren",
31
22
  "Import completed": "Import abgeschlossen: {{success}} Datensätze importiert, {{updated}} Datensätze aktualisiert, {{skipped}} Datensätze übersprungen, insgesamt {{total}} Datensätze",
32
- "Import summary": "{{success}}/{{total}} Datensätze importiert",
33
23
  "Import details": "{{success}} erfolgreich importiert, {{updated}} aktualisiert, {{skipped}} übersprungen, insgesamt {{total}}",
24
+ "Import result": "Importergebnis",
25
+ "Import summary": "{{success}}/{{total}} Datensätze importiert",
26
+ "Import {collection} data": "Import von {collection} Daten",
27
+ "ImportResult": "{{success}} importiert, {{updated}} aktualisiert, {{skipped}} übersprungen, insgesamt {{total}}",
34
28
  "Imported": "{{count}}/{{total}} importiert",
35
- "Successfully imported": "Erfolgreich importiert",
36
- "Updated records": "Aktualisierte Datensätze",
29
+ "OK": "OK",
30
+ "Processing": "In Bearbeitung",
37
31
  "Skipped records": "Übersprungene Datensätze",
32
+ "Status": "Status",
33
+ "Successfully imported": "Erfolgreich importiert",
34
+ "Task": "Aufgabe",
35
+ "Task cancelled": "Aufgabe abgebrochen",
36
+ "Task completed": "Aufgabe abgeschlossen",
37
+ "Task failed": "Aufgabe fehlgeschlagen",
38
+ "Task result": "Aufgabenergebnis",
38
39
  "Total records": "Gesamtzahl der Datensätze",
40
+ "Type": "Typ",
41
+ "Unknown error": "Unbekannter Fehler",
42
+ "Updated records": "Aktualisierte Datensätze",
39
43
  "View result": "Ergebnis anzeigen",
40
- "ImportResult": "{{success}} importiert, {{updated}} aktualisiert, {{skipped}} übersprungen, insgesamt {{total}}",
41
- "Task result": "Aufgabenergebnis",
42
- "Export {collection} attachments": "Export von {collection} Anhängen",
43
- "Export {collection} data": "Export von {collection} Daten",
44
- "Import {collection} data": "Import von {collection} Daten"
44
+ "Waiting": "Wartend"
45
45
  }
@@ -1,6 +1,45 @@
1
1
  {
2
+ "Actions": "Actions",
3
+ "Cancel": "Cancel",
4
+ "Cancelled": "Cancelled",
5
+ "Cancelling": "Cancelling",
6
+ "Close": "Close",
7
+ "Completed": "Completed",
8
+ "Confirm": "Confirm",
9
+ "Confirm cancel": "Confirm cancel",
10
+ "Confirm to cancel this task?": "Confirm to cancel this task?",
11
+ "Created at": "Created at",
12
+ "Data": "Data",
13
+ "Download": "Download",
14
+ "Error Details": "Error Details",
15
+ "Error code": "Error code",
16
+ "Error details": "Error details",
17
+ "Export": "Export",
2
18
  "Export {collection} attachments": "{collection} attachments export",
3
19
  "Export {collection} data": "{collection} data export",
20
+ "Failed": "Failed",
21
+ "Import": "Import",
22
+ "Import completed": "Import completed",
23
+ "Import details": "Import details",
24
+ "Import result": "Import result",
25
+ "Import summary": "Import summary",
4
26
  "Import {collection} data": "{collection} data import",
5
- "Waiting": "Being in a queue..."
27
+ "ImportResult": "ImportResult",
28
+ "Imported": "Imported",
29
+ "OK": "OK",
30
+ "Processing": "Processing",
31
+ "Skipped records": "Skipped records",
32
+ "Status": "Status",
33
+ "Successfully imported": "Successfully imported",
34
+ "Task": "Task",
35
+ "Task cancelled": "Task cancelled",
36
+ "Task completed": "Task completed",
37
+ "Task failed": "Task failed",
38
+ "Task result": "Task result",
39
+ "Total records": "Total records",
40
+ "Type": "Type",
41
+ "Unknown error": "Unknown error",
42
+ "Updated records": "Updated records",
43
+ "View result": "View result",
44
+ "Waiting": "Waiting"
6
45
  }
@@ -0,0 +1,45 @@
1
+ {
2
+ "Actions": "Actions",
3
+ "Cancel": "Cancel",
4
+ "Cancelled": "Cancelled",
5
+ "Cancelling": "Cancelling",
6
+ "Close": "Close",
7
+ "Completed": "Completed",
8
+ "Confirm": "Confirm",
9
+ "Confirm cancel": "Confirm cancel",
10
+ "Confirm to cancel this task?": "Confirm to cancel this task?",
11
+ "Created at": "Created at",
12
+ "Data": "Data",
13
+ "Download": "Download",
14
+ "Error Details": "Error Details",
15
+ "Error code": "Error code",
16
+ "Error details": "Error details",
17
+ "Export": "Export",
18
+ "Export {collection} attachments": "{collection} attachments export",
19
+ "Export {collection} data": "{collection} data export",
20
+ "Failed": "Failed",
21
+ "Import": "Import",
22
+ "Import completed": "Import completed",
23
+ "Import details": "Import details",
24
+ "Import result": "Import result",
25
+ "Import summary": "Import summary",
26
+ "Import {collection} data": "{collection} data import",
27
+ "ImportResult": "ImportResult",
28
+ "Imported": "Imported",
29
+ "OK": "OK",
30
+ "Processing": "Processing",
31
+ "Skipped records": "Skipped records",
32
+ "Status": "Status",
33
+ "Successfully imported": "Successfully imported",
34
+ "Task": "Task",
35
+ "Task cancelled": "Task cancelled",
36
+ "Task completed": "Task completed",
37
+ "Task failed": "Task failed",
38
+ "Task result": "Task result",
39
+ "Total records": "Total records",
40
+ "Type": "Type",
41
+ "Unknown error": "Unknown error",
42
+ "Updated records": "Updated records",
43
+ "View result": "View result",
44
+ "Waiting": "Waiting"
45
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "Actions": "Actions",
3
+ "Cancel": "Cancel",
4
+ "Cancelled": "Cancelled",
5
+ "Cancelling": "Cancelling",
6
+ "Close": "Close",
7
+ "Completed": "Completed",
8
+ "Confirm": "Confirm",
9
+ "Confirm cancel": "Confirm cancel",
10
+ "Confirm to cancel this task?": "Confirm to cancel this task?",
11
+ "Created at": "Created at",
12
+ "Data": "Data",
13
+ "Download": "Download",
14
+ "Error Details": "Error Details",
15
+ "Error code": "Error code",
16
+ "Error details": "Error details",
17
+ "Export": "Export",
18
+ "Export {collection} attachments": "{collection} attachments export",
19
+ "Export {collection} data": "{collection} data export",
20
+ "Failed": "Failed",
21
+ "Import": "Import",
22
+ "Import completed": "Import completed",
23
+ "Import details": "Import details",
24
+ "Import result": "Import result",
25
+ "Import summary": "Import summary",
26
+ "Import {collection} data": "{collection} data import",
27
+ "ImportResult": "ImportResult",
28
+ "Imported": "Imported",
29
+ "OK": "OK",
30
+ "Processing": "Processing",
31
+ "Skipped records": "Skipped records",
32
+ "Status": "Status",
33
+ "Successfully imported": "Successfully imported",
34
+ "Task": "Task",
35
+ "Task cancelled": "Task cancelled",
36
+ "Task completed": "Task completed",
37
+ "Task failed": "Task failed",
38
+ "Task result": "Task result",
39
+ "Total records": "Total records",
40
+ "Type": "Type",
41
+ "Unknown error": "Unknown error",
42
+ "Updated records": "Updated records",
43
+ "View result": "View result",
44
+ "Waiting": "Waiting"
45
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "Actions": "Műveletek",
3
+ "Cancel": "Mégsem",
4
+ "Cancelled": "Megszakítva",
5
+ "Cancelling": "Megszakítás alatt",
6
+ "Close": "Bezárás",
7
+ "Completed": "Befejezett",
8
+ "Confirm": "Megerősítés",
9
+ "Confirm cancel": "Megerősítés megszakítása",
10
+ "Confirm cancel description": "Megerősítés megszakítása leírása",
11
+ "Created at": "Létrehozva",
12
+ "Data": "Adat",
13
+ "Download": "Letöltés",
14
+ "Error Details": "Hiba részletei",
15
+ "Error code": "Hiba kód",
16
+ "Error details": "Hiba részletei",
17
+ "Export": "Exportálás",
18
+ "Export {collection} attachments": "{collection} mellékletek exportálása",
19
+ "Export {collection} data": "{collection} adatok exportálása",
20
+ "Failed": "Sikertelen",
21
+ "Import": "Importálás",
22
+ "Import completed": "Importálás befejezve",
23
+ "Import details": "Import részletei",
24
+ "Import result": "Import eredménye",
25
+ "Import summary": "Import összegzés",
26
+ "Import {collection} data": "{collection} adatok importálása",
27
+ "ImportResult": "ImportEredmény",
28
+ "Imported": "Importálva",
29
+ "OK": "Rendben",
30
+ "Processing": "Feldolgozás",
31
+ "Skipped records": "Kihagyott rekordok",
32
+ "Status": "Állapot",
33
+ "Successfully imported": "Sikeresen importálva",
34
+ "Task": "Feladat",
35
+ "Task cancelled": "Feladat megszakítva",
36
+ "Task completed": "Feladat befejezve",
37
+ "Task failed": "Feladat nem sikerült",
38
+ "Task result": "Feladat eredménye",
39
+ "Total records": "Összes rekord",
40
+ "Type": "Típus",
41
+ "Unknown error": "Ismeretlen hiba",
42
+ "Updated records": "Frissített rekordok",
43
+ "View result": "Eredmény megtekintése",
44
+ "Waiting": "Várakozás"
45
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "Actions": "Aksi",
3
+ "Cancel": "Batal",
4
+ "Cancelled": "Dibatalkan",
5
+ "Cancelling": "Membatalkan",
6
+ "Close": "Tutup",
7
+ "Completed": "Selesai",
8
+ "Confirm": "Konfirmasi",
9
+ "Confirm cancel": "Konfirmasi pembatalan",
10
+ "Confirm cancel description": "Konfirmasi deskripsi pembatalan",
11
+ "Created at": "Dibuat pada",
12
+ "Data": "Data",
13
+ "Download": "Unduh",
14
+ "Error Details": "Detail Kesalahan",
15
+ "Error code": "Kode kesalahan",
16
+ "Error details": "Detail kesalahan",
17
+ "Export": "Ekspor",
18
+ "Export {collection} attachments": "Ekspor lampiran {collection}",
19
+ "Export {collection} data": "Ekspor data {collection}",
20
+ "Failed": "Gagal",
21
+ "Import": "Impor",
22
+ "Import completed": "Impor selesai",
23
+ "Import details": "Detail impor",
24
+ "Import result": "Hasil impor",
25
+ "Import summary": "Ringkasan impor",
26
+ "Import {collection} data": "Impor data {collection}",
27
+ "ImportResult": "Hasil Impor",
28
+ "Imported": "Diimpor",
29
+ "OK": "OK",
30
+ "Processing": "Memproses",
31
+ "Skipped records": "Catatan yang dilewati",
32
+ "Status": "Status",
33
+ "Successfully imported": "Berhasil diimpor",
34
+ "Task": "Tugas",
35
+ "Task cancelled": "Tugas dibatalkan",
36
+ "Task completed": "Tugas selesai",
37
+ "Task failed": "Tugas gagal",
38
+ "Task result": "Hasil tugas",
39
+ "Total records": "Total catatan",
40
+ "Type": "Tipe",
41
+ "Unknown error": "Kesalahan tidak diketahui",
42
+ "Updated records": "Catatan yang diperbarui",
43
+ "View result": "Lihat hasil",
44
+ "Waiting": "Menunggu"
45
+ }
@@ -1,45 +1,45 @@
1
1
  {
2
- "Export": "Esporta",
3
- "Import": "Importa",
4
- "Data": "Dati",
5
- "Task": "Attività",
6
- "Status": "Stato",
7
2
  "Actions": "Azioni",
8
- "Created at": "Creato alle",
9
- "Type": "Tipo",
10
- "Waiting": "In attesa",
11
- "Processing": "In elaborazione",
12
- "Completed": "Completato",
13
- "Failed": "Fallito",
14
- "Cancelled": "Annullato",
15
3
  "Cancel": "Annulla",
4
+ "Cancelled": "Annullato",
16
5
  "Cancelling": "Annullamento in corso",
17
- "Download": "Scarica",
18
- "Error details": "Dettagli errore",
19
- "Confirm cancel": "Conferma annullamento",
20
- "Confirm cancel description": "Sei sicuro di voler annullare questa attività?",
6
+ "Close": "Chiudi",
7
+ "Completed": "Completato",
21
8
  "Confirm": "Conferma",
22
- "Task cancelled": "Attività annullata",
23
- "Task completed": "Attività completata",
24
- "Task failed": "Esecuzione attività fallita",
9
+ "Confirm cancel": "Conferma annullamento",
10
+ "Confirm to cancel this task?": "Sei sicuro di voler annullare questa attività?",
11
+ "Created at": "Creato alle",
12
+ "Data": "Dati",
13
+ "Download": "Scarica",
25
14
  "Error Details": "Dettagli errore",
26
- "Close": "Chiudi",
27
15
  "Error code": "Codice errore",
28
- "Unknown error": "Errore sconosciuto",
29
- "OK": "OK",
30
- "Import result": "Risultato importazione",
16
+ "Error details": "Dettagli errore",
17
+ "Export": "Esporta",
18
+ "Export {collection} attachments": "Esporta allegati {collection}",
19
+ "Export {collection} data": "Esporta dati {collection}",
20
+ "Failed": "Fallito",
21
+ "Import": "Importa",
31
22
  "Import completed": "Importazione completata: {{success}} record importati con successo, {{updated}} record aggiornati, {{skipped}} record saltati, totale {{total}} record",
32
- "Import summary": "{{success}}/{{total}} record importati",
33
23
  "Import details": "{{success}} record importati con successo, {{updated}} record aggiornati, {{skipped}} record saltati, totale {{total}} record",
24
+ "Import result": "Risultato importazione",
25
+ "Import summary": "{{success}}/{{total}} record importati",
26
+ "Import {collection} data": "Importa dati {collection}",
27
+ "ImportResult": "Importati {{success}}, aggiornati {{updated}}, saltati {{skipped}}, totale {{total}}",
34
28
  "Imported": "{{count}}/{{total}} importati",
35
- "Successfully imported": "Importazione riuscita",
36
- "Updated records": "Record aggiornati",
29
+ "OK": "OK",
30
+ "Processing": "In elaborazione",
37
31
  "Skipped records": "Record saltati",
32
+ "Status": "Stato",
33
+ "Successfully imported": "Importazione riuscita",
34
+ "Task": "Attività",
35
+ "Task cancelled": "Attività annullata",
36
+ "Task completed": "Attività completata",
37
+ "Task failed": "Esecuzione attività fallita",
38
+ "Task result": "Risultato attività",
38
39
  "Total records": "Record totali",
40
+ "Type": "Tipo",
41
+ "Unknown error": "Errore sconosciuto",
42
+ "Updated records": "Record aggiornati",
39
43
  "View result": "Visualizza risultato",
40
- "ImportResult": "Importati {{success}}, aggiornati {{updated}}, saltati {{skipped}}, totale {{total}}",
41
- "Task result": "Risultato attività",
42
- "Export {collection} attachments": "Esporta allegati {collection}",
43
- "Export {collection} data": "Esporta dati {collection}",
44
- "Import {collection} data": "Importa dati {collection}"
44
+ "Waiting": "In attesa"
45
45
  }
@@ -0,0 +1,45 @@
1
+ {
2
+ "Actions": "操作",
3
+ "Cancel": "キャンセル",
4
+ "Cancelled": "キャンセル済み",
5
+ "Cancelling": "キャンセル中",
6
+ "Close": "閉じる",
7
+ "Completed": "完了",
8
+ "Confirm": "確定",
9
+ "Confirm cancel": "キャンセルの確認",
10
+ "Confirm to cancel this task?": "このタスクをキャンセルしてもよろしいですか?",
11
+ "Created at": "作成日時",
12
+ "Data": "データ",
13
+ "Download": "ダウンロード",
14
+ "Error Details": "エラー詳細",
15
+ "Error code": "エラーコード",
16
+ "Error details": "エラー詳細",
17
+ "Export": "エクスポート",
18
+ "Export {collection} attachments": "{collection}添付ファイルのエクスポート",
19
+ "Export {collection} data": "{collection}データのエクスポート",
20
+ "Failed": "実行失敗",
21
+ "Import": "インポート",
22
+ "Import completed": "インポート完了:{{success}}件新規追加、{{updated}}件更新、{{skipped}}件スキップ、合計{{total}}件",
23
+ "Import details": "正常にインポートされたレコード: {{success}}、更新されたレコード: {{updated}}、スキップされたレコード: {{skipped}}、合計レコード: {{total}}",
24
+ "Import result": "インポート結果",
25
+ "Import summary": "インポート済み {{success}}/{{total}} レコード",
26
+ "Import {collection} data": "{collection}データのインポート",
27
+ "ImportResult": "インポート結果:新規{{success}}件、更新{{updated}}件、スキップ{{skipped}}件、合計{{total}}件",
28
+ "Imported": "インポート済み {{count}}/{{total}}",
29
+ "OK": "確定",
30
+ "Processing": "処理中",
31
+ "Skipped records": "スキップされたレコード",
32
+ "Status": "ステータス",
33
+ "Successfully imported": "インポートに成功しました",
34
+ "Task": "タスク",
35
+ "Task cancelled": "タスクがキャンセルされました",
36
+ "Task completed": "タスクが完了しました",
37
+ "Task failed": "タスクの実行に失敗しました",
38
+ "Task result": "タスク結果",
39
+ "Total records": "総レコード数",
40
+ "Type": "タイプ",
41
+ "Unknown error": "不明なエラー",
42
+ "Updated records": "更新済みレコード",
43
+ "View result": "結果を表示",
44
+ "Waiting": "待機中"
45
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "Actions": "작업",
3
+ "Cancel": "취소",
4
+ "Cancelled": "취소됨",
5
+ "Cancelling": "취소 중",
6
+ "Close": "닫기",
7
+ "Completed": "완료됨",
8
+ "Confirm": "확인",
9
+ "Confirm cancel": "취소 확인",
10
+ "Confirm to cancel this task?": "취소를 확인하시겠습니까?",
11
+ "Created at": "생성일",
12
+ "Data": "데이터",
13
+ "Download": "다운로드",
14
+ "Error Details": "오류 세부정보",
15
+ "Error code": "오류 코드",
16
+ "Error details": "오류 세부정보",
17
+ "Export": "내보내기",
18
+ "Export {collection} attachments": "{collection} 첨부 파일 내보내기",
19
+ "Export {collection} data": "{collection} 데이터 내보내기",
20
+ "Failed": "실패",
21
+ "Import": "가져오기",
22
+ "Import completed": "가져오기 완료",
23
+ "Import details": "세부 정보 가져오기",
24
+ "Import result": "가져오기 결과",
25
+ "Import summary": "가져오기 요약",
26
+ "Import {collection} data": "{collection} 데이터 가져오기",
27
+ "ImportResult": "가져오기 결과",
28
+ "Imported": "가져옴",
29
+ "OK": "확인",
30
+ "Processing": "처리 중",
31
+ "Skipped records": "건너뛴 레코드",
32
+ "Status": "상태",
33
+ "Successfully imported": "성공적으로 가져왔습니다",
34
+ "Task": "작업",
35
+ "Task cancelled": "작업이 취소되었습니다",
36
+ "Task completed": "작업 완료",
37
+ "Task failed": "작업 실패",
38
+ "Task result": "작업 결과",
39
+ "Total records": "총 레코드",
40
+ "Type": "유형",
41
+ "Unknown error": "알 수 없는 오류",
42
+ "Updated records": "업데이트된 레코드",
43
+ "View result": "결과 보기",
44
+ "Waiting": "대기 중"
45
+ }