@strapi/admin 4.12.0-beta.4 → 4.12.0-beta.5
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.
- package/build/7065.ec811562.chunk.js +114 -0
- package/build/{9806.91360bb6.chunk.js → 9806.aa25371d.chunk.js} +10 -10
- package/build/{Admin-authenticatedApp.24998de8.chunk.js → Admin-authenticatedApp.6b8dfa45.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/{main.ef5fb1a8.js → main.af84ad9c.js} +281 -281
- package/build/review-workflows-settings-create-view.05758184.chunk.js +1 -0
- package/build/review-workflows-settings-edit-view.c33f7c58.chunk.js +1 -0
- package/build/{runtime~main.c99f4c36.js → runtime~main.a65ca6fb.js} +2 -2
- package/build/sso-settings-page.7c9b2fd9.chunk.js +1 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/WorkflowAttributes/WorkflowAttributes.js +85 -9
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js +61 -4
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js +71 -21
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +1 -1
- package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +2 -8
- package/ee/server/validation/authentication.js +6 -1
- package/package.json +9 -9
- package/build/7065.99ca8ab1.chunk.js +0 -112
- package/build/review-workflows-settings-create-view.d4b5dbb8.chunk.js +0 -1
- package/build/review-workflows-settings-edit-view.77299c63.chunk.js +0 -1
- package/build/sso-settings-page.3a1ed8c9.chunk.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8936],{80252:function(ue,y,t){t.r(y),t.d(y,{default:function(){return K}});var e=t(32735),i=t(19565),g=t(15062),E=t(30305),F=t(41415),m=t(87933),V=t(23866),k=t(49372),X=t(66456),d=t(92802),Y=t(3040),Z=t.n(Y),z=t(67879),B=t(20108),H=t(53038),N=t(90769),P=t(61234),j=t(50337),S=t(77061),u=t(27187),c=t(90562),J=t(45594),Q=t(165),n=t(2121),G=t(32329),C=t(79989),U=t(82920);function $(){const{formatMessage:s}=(0,z.Z)(),{post:b}=(0,i.kY)(),{push:q}=(0,H.k6)(),{formatAPIError:_}=(0,i.So)(),w=(0,g.I0)(),ee=(0,g.v9)(E._),T=(0,i.lm)(),{collectionTypes:te,singleTypes:oe,isLoading:se}=(0,N.G)(),{isLoading:M,meta:v,workflows:I}=(0,G.n)(),{clientState:{currentWorkflow:{data:l,isDirty:ne}}}=(0,g.v9)(o=>o?.[n.sN]??C.E),{allowedActions:{canCreate:ae}}=(0,i.ss)(ee.settings["review-workflows"]),[L,f]=e.useState(!1),{isLoading:W,getFeature:le}=(0,j.q5)(),[re,ie]=e.useState(null),[A,h]=e.useState({}),a=le("review-workflows"),R=I.flatMap(o=>o.contentTypes),{mutateAsync:ce,isLoading:D}=(0,B.useMutation)(async({workflow:o})=>{const{data:{data:r}}=await b("/admin/review-workflows/workflows",{data:o});return r},{onSuccess(){T({type:"success",message:{id:"Settings.review-workflows.create.page.notification.success",defaultMessage:"Workflow successfully created"}})}}),O=async()=>{h({});try{const o=await ce({workflow:l});return q(`/settings/review-workflows/${o.id}`),o}catch(o){return o.response.data?.error?.name==="ValidationError"&&o.response.data?.error?.details?.errors?.length>0&&ie(o.response.data?.error?.details?.errors.reduce((r,x)=>(Z()(r,x.path,x.message),r),{})),T({type:"warning",message:_(o)}),null}},fe=async()=>{await O()},ge=()=>{h({})},p=(0,d.TA)({enableReinitialize:!0,initialErrors:re,initialValues:l,async onSubmit(){const o=l.contentTypes.some(r=>R.includes(r));a?.[n.Ef]&&v?.workflowCount>=parseInt(a[n.Ef],10)?f("workflow"):a?.[n._X]&&l.stages.length>=parseInt(a[n._X],10)?f("stage"):o?h(r=>({...r,hasReassignedContentTypes:!0})):O()},validate(o){return(0,U.V)({values:o,formatMessage:s})}});return(0,P.v)(n.sN,C.I),e.useEffect(()=>{w((0,S.Js)()),w((0,S.CI)({name:""}))},[w]),e.useEffect(()=>{!M&&!W&&(a?.[n.Ef]&&v?.workflowsTotal>=parseInt(a[n.Ef],10)?f("workflow"):a?.[n._X]&&l.stages.length>=parseInt(a[n._X],10)&&f("stage"))},[W,M,a,v?.workflowsTotal,l.stages.length]),e.createElement(e.Fragment,null,e.createElement(u.lx,null),e.createElement(d.Hy,{value:p},e.createElement(d.l0,{onSubmit:p.handleSubmit},e.createElement(u.h4,{navigationAction:e.createElement(u.eJ,{href:"/settings/review-workflows"}),primaryAction:e.createElement(F.z,{startIcon:e.createElement(X.Z,null),type:"submit",size:"M",disabled:!ne||!ae,isLoading:D},s({id:"global.save",defaultMessage:"Save"})),title:s({id:"Settings.review-workflows.create.page.title",defaultMessage:"Create Review Workflow"}),subtitle:s({id:"Settings.review-workflows.page.subtitle",defaultMessage:"{count, plural, one {# stage} other {# stages}}"},{count:l?.stages?.length??0})}),e.createElement(u.fC,null,e.createElement(m.k,{alignItems:"stretch",direction:"column",gap:7},se?e.createElement(V.a,null,s({id:"Settings.review-workflows.page.isLoading",defaultMessage:"Workflow is loading"})):e.createElement(m.k,{alignItems:"stretch",direction:"column",gap:7},e.createElement(Q.Y,{contentTypes:{collectionTypes:te,singleTypes:oe},workflows:I}),e.createElement(J.U,{stages:p.values?.stages})))))),e.createElement(i.QH.Root,{isConfirmButtonLoading:D,isOpen:Object.keys(A).length>0,onToggleDialog:ge,onConfirm:fe},e.createElement(i.QH.Body,null,e.createElement(m.k,{direction:"column",gap:5},A.hasReassignedContentTypes&&e.createElement(k.Z,{textAlign:"center",variant:"omega"},s({id:"Settings.review-workflows.page.delete.confirm.contentType.body",defaultMessage:"{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed."},{count:R.filter(o=>l.contentTypes.includes(o)).length})),e.createElement(k.Z,{textAlign:"center",variant:"omega"},s({id:"Settings.review-workflows.page.delete.confirm.confirm",defaultMessage:"Are you sure you want to save?"}))))),e.createElement(c.fC,{isOpen:L==="workflow",onClose:()=>f(!1)},e.createElement(c.Dx,null,s({id:"Settings.review-workflows.create.page.workflows.limit.title",defaultMessage:"You\u2019ve reached the limit of workflows in your plan"})),e.createElement(c.uT,null,s({id:"Settings.review-workflows.create.page.workflows.limit.body",defaultMessage:"Delete a workflow or contact Sales to enable more workflows."}))),e.createElement(c.fC,{isOpen:L==="stage",onClose:()=>f(!1)},e.createElement(c.Dx,null,s({id:"Settings.review-workflows.create.page.stages.limit.title",defaultMessage:"You have reached the limit of stages for this workflow in your plan"})),e.createElement(c.uT,null,s({id:"Settings.review-workflows.create.page.stages.limit.body",defaultMessage:"Try deleting some stages or contact Sales to enable more stages."}))))}function K(){const s=(0,g.v9)(E._);return e.createElement(i.O4,{permissions:s.settings["review-workflows"].create},e.createElement($,null))}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4409],{45696:function(Ee,M,t){t.r(M),t.d(M,{default:function(){return oe}});var e=t(32735),i=t(19565),d=t(15062),T=t(30305),B=t(41415),h=t(87933),H=t(23866),p=t(49372),N=t(66456),y=t(92802),P=t(3040),U=t.n(P),J=t(67879),Q=t(20108),G=t(53038),$=t(90769),K=t(61234),b=t(50337),I=t(77061),g=t(27187),c=t(90562),q=t(45594),_=t(165),l=t(2121),ee=t(32329),L=t(79989),te=t(82920);function se(){const{workflowId:u}=(0,G.UO)(),ne=(0,d.v9)(T._),{formatMessage:n}=(0,J.Z)(),E=(0,d.I0)(),{put:ae}=(0,i.kY)(),{formatAPIError:le}=(0,i.So)(),A=(0,i.lm)(),{isLoading:D,meta:m,workflows:k,status:W,refetch:re}=(0,ee.n)(),{collectionTypes:ie,singleTypes:ce,isLoading:fe}=(0,$.G)(),{status:de,clientState:{currentWorkflow:{data:a,isDirty:ge,hasDeletedServerStages:O}}}=(0,d.v9)(s=>s?.[l.sN]??L.E),{allowedActions:{canDelete:ue,canUpdate:S}}=(0,i.ss)(ne.settings["review-workflows"]),[w,v]=e.useState({}),{getFeature:me,isLoading:R}=(0,b.q5)(),[x,f]=e.useState(!1),[we,F]=e.useState(null),V=k.find(s=>s.id===parseInt(u,10)),Z=k.filter(s=>s.id!==parseInt(u,10)).flatMap(s=>s.contentTypes),{mutateAsync:ve,isLoading:j}=(0,Q.useMutation)(async({workflow:s})=>{const{data:{data:o}}=await ae(`/admin/review-workflows/workflows/${s.id}`,{data:s});return o},{onSuccess(){A({type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"}})}}),he=async s=>{F(null);try{return await ve({workflow:s})}catch(o){return o.response.data?.error?.name==="ValidationError"&&o.response.data?.error?.details?.errors?.length>0&&F(o.response.data?.error?.details?.errors.reduce((Y,z)=>(U()(Y,z.path,z.message),Y),{})),A({type:"warning",message:le(o)}),null}},X=async()=>{await he(a),await re(),v({})},pe=async()=>{await X()},ye=()=>{v({})},C=(0,y.TA)({enableReinitialize:!0,initialErrors:we,initialValues:a,async onSubmit(){const s=a.contentTypes.some(o=>Z.includes(o));r?.[l.Ef]&&m?.workflowCount>parseInt(r[l.Ef],10)?f("workflow"):r?.[l._X]&&a.stages.length>parseInt(r[l._X],10)?f("stage"):O||s?(O&&v(o=>({...o,hasDeletedServerStages:!0})),s&&v(o=>({...o,hasReassignedContentTypes:!0}))):X()},validate(s){return(0,te.V)({values:s,formatMessage:n})}});(0,K.v)(l.sN,L.I);const r=me("review-workflows");return e.useEffect(()=>(E((0,I.fC)({status:W,data:V})),()=>{E((0,I.Js)())}),[W,V,E]),e.useEffect(()=>{!D&&!R&&(r?.[l.Ef]&&m?.workflowCount>parseInt(r[l.Ef],10)?f("workflow"):r?.[l._X]&&a.stages.length>parseInt(r[l._X],10)&&f("stage"))},[a.stages.length,R,D,r,m?.workflowCount,m.workflowsTotal]),e.createElement(e.Fragment,null,e.createElement(g.lx,null),e.createElement(y.Hy,{value:C},e.createElement(y.l0,{onSubmit:C.handleSubmit},e.createElement(g.h4,{navigationAction:e.createElement(g.eJ,{href:"/settings/review-workflows"}),primaryAction:e.createElement(B.z,{startIcon:e.createElement(N.Z,null),type:"submit",size:"M",disabled:!ge||!S,loading:!Object.keys(w).length>0&&j},n({id:"global.save",defaultMessage:"Save"})),subtitle:a.stages.length>0&&n({id:"Settings.review-workflows.page.subtitle",defaultMessage:"{count, plural, one {# stage} other {# stages}}"},{count:a.stages.length}),title:a.name}),e.createElement(g.fC,null,fe||de==="loading"?e.createElement(h.k,{justifyContent:"center"},e.createElement(H.a,null,n({id:"Settings.review-workflows.page.isLoading",defaultMessage:"Workflow is loading"}))):e.createElement(h.k,{alignItems:"stretch",direction:"column",gap:7},e.createElement(_.Y,{canUpdate:S,contentTypes:{collectionTypes:ie,singleTypes:ce},currentWorkflow:a,workflows:k}),e.createElement(q.U,{canDelete:ue,canUpdate:S,stages:C.values?.stages}))))),e.createElement(i.QH.Root,{isConfirmButtonLoading:j,isOpen:Object.keys(w).length>0,onToggleDialog:ye,onConfirm:pe},e.createElement(i.QH.Body,null,e.createElement(h.k,{direction:"column",gap:5},w.hasDeletedServerStages&&e.createElement(p.Z,{textAlign:"center",variant:"omega"},n({id:"Settings.review-workflows.page.delete.confirm.stages.body",defaultMessage:"All entries assigned to deleted stages will be moved to the previous stage."})),w.hasReassignedContentTypes&&e.createElement(p.Z,{textAlign:"center",variant:"omega"},n({id:"Settings.review-workflows.page.delete.confirm.contentType.body",defaultMessage:"{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed."},{count:Z.filter(s=>a.contentTypes.includes(s)).length})),e.createElement(p.Z,{textAlign:"center",variant:"omega"},n({id:"Settings.review-workflows.page.delete.confirm.confirm",defaultMessage:"Are you sure you want to save?"}))))),e.createElement(c.fC,{isOpen:x==="workflow",onClose:()=>f(!1)},e.createElement(c.Dx,null,n({id:"Settings.review-workflows.edit.page.workflows.limit.title",defaultMessage:"You\u2019ve reached the limit of workflows in your plan"})),e.createElement(c.uT,null,n({id:"Settings.review-workflows.edit.page.workflows.limit.body",defaultMessage:"Delete a workflow or contact Sales to enable more workflows."}))),e.createElement(c.fC,{isOpen:x==="stage",onClose:()=>f(!1)},e.createElement(c.Dx,null,n({id:"Settings.review-workflows.edit.page.stages.limit.title",defaultMessage:"You have reached the limit of stages for this workflow in your plan"})),e.createElement(c.uT,null,n({id:"Settings.review-workflows.edit.page.stages.limit.body",defaultMessage:"Try deleting some stages or contact Sales to enable more stages."}))))}function oe(){const u=(0,d.v9)(T._);return e.createElement(i.O4,{permissions:u.settings["review-workflows"].main},e.createElement(se,null))}}}]);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(){"use strict";var j={},m={};function e(n){var i=m[n];if(i!==void 0)return i.exports;var t=m[n]={id:n,loaded:!1,exports:{}};return j[n].call(t.exports,t,t.exports,e),t.loaded=!0,t.exports}e.m=j,function(){var n=[];e.O=function(i,t,o,r){if(t){r=r||0;for(var s=n.length;s>0&&n[s-1][2]>r;s--)n[s]=n[s-1];n[s]=[t,o,r];return}for(var a=1/0,s=0;s<n.length;s++){for(var t=n[s][0],o=n[s][1],r=n[s][2],d=!0,l=0;l<t.length;l++)(r&!1||a>=r)&&Object.keys(e.O).every(function(p){return e.O[p](t[l])})?t.splice(l--,1):(d=!1,r<a&&(a=r));if(d){n.splice(s--,1);var c=o();c!==void 0&&(i=c)}}return i}}(),function(){e.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(i,{a:i}),i}}(),function(){var n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},i;e.t=function(t,o){if(o&1&&(t=this(t)),o&8||typeof t=="object"&&t&&(o&4&&t.__esModule||o&16&&typeof t.then=="function"))return t;var r=Object.create(null);e.r(r);var s={};i=i||[null,n({}),n([]),n(n)];for(var a=o&2&&t;typeof a=="object"&&!~i.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach(function(d){s[d]=function(){return t[d]}});return s.default=function(){return t},e.d(r,s),r}}(),function(){e.d=function(n,i){for(var t in i)e.o(i,t)&&!e.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:i[t]})}}(),function(){e.f={},e.e=function(n){return Promise.all(Object.keys(e.f).reduce(function(i,t){return e.f[t](n,i),i},[]))}}(),function(){e.u=function(n){return""+({46:"content-type-builder-translation-zh-Hans-json",90:"i18n-translation-de-json",92:"api-tokens-edit-page",96:"email-translation-de-json",123:"ru-json",129:"i18n-translation-es-json",302:"sso-settings-page",320:"en-json",349:"review-workflows-settings-list-view",395:"tr-json",435:"email-translation-it-json",562:"no-json",585:"upload-translation-pt-json",606:"sk-json",615:"upload-translation-uk-json",695:"upload-settings",742:"content-type-builder-translation-th-json",744:"email-translation-cs-json",749:"th-json",801:"Admin-authenticatedApp",830:"he-json",931:"content-type-builder-translation-en-json",994:"content-manager",1001:"content-type-builder-translation-nl-json",1009:"upload-translation-ms-json",1011:"zh-json",1018:"email-translation-ko-json",1023:"content-type-builder-translation-it-json",1056:"upload-translation-tr-json",1157:"email-translation-pt-BR-json",1167:"users-permissions-translation-ko-json",1180:"i18n-translation-tr-json",1312:"ja-json",1331:"upload-translation-es-json",1375:"upload-translation-pt-BR-json",1377:"ko-json",1442:"users-permissions-translation-cs-json",1495:"email-settings-page",1674:"users-permissions-translation-ru-json",1930:"users-permissions-translation-pt-json",2137:"i18n-translation-fr-json",2151:"content-type-builder-translation-id-json",2246:"content-type-builder-translation-dk-json",2248:"gu-json",2282:"users-providers-settings-page",2380:"users-permissions-translation-tr-json",2411:"email-translation-tr-json",2464:"users-permissions-translation-de-json",2489:"upload-translation-ko-json",2492:"transfer-tokens-edit-page",2544:"admin-edit-roles-page",2553:"zh-Hans-json",2567:"content-type-builder-translation-ko-json",2603:"email-translation-en-json",2648:"email-translation-ar-json",2657:"content-type-builder-translation-cs-json",2671:"nl-json",2742:"users-permissions-translation-zh-Hans-json",2812:"audit-logs-settings-page",3025:"ms-json",3038:"upload-translation-sk-json",3043:"email-translation-zh-Hans-json",3095:"users-permissions-translation-sk-json",3098:"users-permissions-translation-fr-json",3166:"email-translation-pt-json",3206:"email-translation-nl-json",3278:"vi-json",3304:"content-type-builder-translation-tr-json",3340:"pt-json",3455:"admin-roles-list",3516:"ca-json",3530:"users-permissions-translation-vi-json",3552:"i18n-settings-page",3650:"upload",3677:"Admin_pluginsPage",3702:"users-permissions-translation-pl-json",3825:"email-translation-dk-json",3948:"content-type-builder-translation-pl-json",3964:"content-type-builder-translation-ms-json",3981:"Admin_homePage",4021:"upload-translation-de-json",4121:"webhook-list-page",4179:"users-permissions-translation-id-json",4263:"admin-edit-users",4299:"api-tokens-create-page",4302:"content-type-builder-translation-zh-json",4409:"review-workflows-settings-edit-view",4587:"email-translation-th-json",4693:"email-translation-fr-json",4804:"upload-translation-ru-json",4816:"transfer-tokens-create-page",4987:"upload-translation-pl-json",5053:"upload-translation-zh-json",5162:"webhook-edit-page",5199:"admin-users",5222:"upload-translation-it-json",5296:"i18n-translation-dk-json",5388:"email-translation-ru-json",5396:"users-permissions-translation-zh-json",5516:"Admin_marketplace",5538:"admin-app",5751:"email-translation-es-json",5880:"upload-translation-ja-json",5894:"hu-json",5895:"Admin_settingsPage",5905:"content-type-builder-list-view",5906:"content-type-builder-translation-pt-BR-json",6232:"upload-translation-th-json",6280:"i18n-translation-ko-json",6332:"hi-json",6377:"users-permissions-translation-dk-json",6434:"upload-translation-en-json",6460:"users-permissions-translation-en-json",6745:"email-translation-uk-json",6784:"email-translation-ms-json",6817:"it-json",6831:"upload-translation-zh-Hans-json",6836:"users-permissions-translation-uk-json",6848:"email-translation-zh-json",6901:"de-json",7048:"users-permissions-translation-nl-json",7094:"users-permissions-translation-ar-json",7155:"content-type-builder-translation-de-json",7186:"content-type-builder-translation-ru-json",7327:"email-translation-vi-json",7347:"highlight.js",7403:"uk-json",7465:"upload-translation-dk-json",7519:"cs-json",7663:"email-translation-id-json",7808:"i18n-translation-zh-json",7817:"users-permissions-translation-es-json",7828:"users-permissions-translation-th-json",7833:"upload-translation-fr-json",7846:"pl-json",7898:"dk-json",7934:"content-type-builder-translation-pt-json",7958:"ar-json",7997:"content-type-builder-translation-sk-json",8006:"fr-json",8056:"api-tokens-list-page",8175:"i18n-translation-en-json",8178:"email-translation-ja-json",8329:"content-type-builder-translation-sv-json",8342:"content-type-builder-translation-es-json",8360:"eu-json",8367:"es-json",8418:"users-email-settings-page",8423:"upload-translation-ca-json",8467:"users-permissions-translation-sv-json",8481:"email-translation-pl-json",8573:"content-type-builder-translation-uk-json",8736:"users-permissions-translation-pt-BR-json",8853:"users-roles-settings-page",8880:"content-type-builder",8897:"id-json",8907:"content-type-builder-translation-ja-json",8936:"review-workflows-settings-create-view",8965:"content-type-builder-translation-fr-json",9220:"users-permissions-translation-ms-json",9303:"sv-json",9366:"i18n-translation-pl-json",9412:"email-translation-sk-json",9460:"users-advanced-settings-page",9497:"Admin_profilePage",9501:"Admin_InternalErrorPage",9502:"users-permissions-translation-ja-json",9511:"content-type-builder-translation-ar-json",9514:"Upload_ConfigureTheView",9600:"transfer-tokens-list-page",9647:"pt-BR-json",9726:"sa-json",9737:"i18n-translation-ru-json",9762:"i18n-translation-zh-Hans-json",9797:"upload-translation-he-json",9903:"ml-json",9905:"users-permissions-translation-it-json"}[n]||n)+"."+{46:"6ff57db6",90:"362384a6",92:"58139df9",96:"1b334230",123:"8193d8c4",129:"87b494d1",302:"3a1ed8c9",311:"cb0884bb",320:"4c733bd1",349:"3ee9190d",395:"56c32cf6",435:"a2ed8c78",448:"829e1344",502:"8ae8ef60",562:"19a2dbfa",585:"6b937fdf",606:"bf2f057a",615:"9950466a",695:"cac210a0",742:"122277cc",744:"6eaeec6a",749:"5f659396",801:"24998de8",830:"3cf0b48a",918:"54414509",931:"ed29ff4d",994:"8772445b",1001:"997fe8cc",1009:"74f6d746",1011:"1cc86ff0",1018:"4de49b23",1023:"e268ab74",1049:"758a01f5",1056:"74117e5c",1157:"81cca553",1167:"357d7a33",1180:"10f0600d",1312:"91286391",1331:"ba2eb03a",1375:"d1704f0b",1377:"fcf3ec4b",1386:"762d6eb8",1387:"a86ac314",1442:"7e23424a",1495:"d494d1eb",1674:"8e883c67",1727:"b49f0713",1930:"a7eda429",2137:"57ddc77e",2151:"65255f93",2225:"15d1df72",2246:"fd626b67",2248:"5bd62812",2282:"8876c1ee",2379:"0ca87a89",2380:"2bd7ff98",2395:"df7a044a",2411:"e6c0f8fc",2464:"a6fb670f",2489:"a52eab64",2492:"8741529f",2544:"a49b9f4f",2553:"36d81cdc",2567:"04cb309d",2603:"4211d4d0",2648:"88304564",2657:"1ef9e106",2671:"b2b16eea",2742:"6ab714ee",2801:"b1140c9b",2812:"4b422831",3025:"0eddffd9",3038:"483a18f6",3043:"c6841563",3095:"7f37180f",3098:"7e55bbbb",3100:"2ba4df95",3166:"2a2a0643",3206:"377bdd9f",3278:"ee4c5537",3304:"41f44f77",3340:"ee554a41",3455:"0c129e98",3483:"e2ee2547",3516:"a53c10b6",3530:"6722a8a2",3552:"47f78016",3650:"cbfeefa5",3677:"8728ff6e",3702:"0a7287d1",3739:"63e352f1",3825:"85402492",3948:"634f638b",3964:"f6b743b9",3981:"ac9dfb86",3984:"dda474f7",4021:"420c943b",4121:"65e1b5bb",4179:"a5a0fb59",4263:"67704088",4299:"46c2ea84",4302:"3532b962",4409:"77299c63",4546:"ff9fdf30",4587:"660fa9a8",4628:"9cbb6df5",4693:"78be2787",4804:"675f6b93",4816:"1597e6ab",4987:"426f31c9",5053:"e1dd6eb2",5162:"a91f27a1",5199:"3279ffb0",5222:"e87d7966",5296:"89401417",5388:"6bce37dd",5396:"7978eaa6",5483:"6dd2e776",5516:"f0b87fce",5538:"c2e4e128",5542:"2415a393",5751:"0b6b1006",5880:"44b88e7a",5894:"9f4aae42",5895:"8c600d1a",5905:"bf9be456",5906:"6a95dc71",6158:"c974fd83",6232:"98d35574",6280:"ef4f9471",6332:"9104eb78",6377:"60e50f48",6434:"8b7573ce",6460:"4b302272",6691:"f880a0b6",6745:"bd1fb6bf",6784:"7390477e",6817:"bfe27ed8",6831:"db163b6b",6836:"6a0a1572",6848:"7a2232ea",6901:"b3be02c7",7030:"b98dcedf",7048:"c9f92a3c",7065:"99ca8ab1",7094:"7d87d54d",7155:"63fcff7b",7186:"3af65503",7327:"9fb7e6d7",7347:"28a1547e",7403:"b7e38370",7464:"8a6c1e6c",7465:"bbb2fa05",7519:"4b44411c",7663:"c97239fe",7808:"bef2dc07",7817:"35007573",7828:"1e9c0247",7833:"baab9911",7846:"f094a417",7898:"842aa391",7934:"ddb44f8c",7958:"f530bc3f",7997:"c6078082",8006:"aa8839d2",8056:"505bf7e0",8175:"1ec7becf",8178:"63eebd02",8276:"6c7b8e6e",8329:"a6df2462",8342:"a4a361a9",8360:"633025f0",8367:"f57b5335",8418:"a87978e5",8423:"57954414",8467:"17187818",8481:"97d0db97",8573:"e1315acd",8736:"1b6d2920",8853:"0431f48c",8880:"40534de5",8897:"41e07c46",8907:"9be0d5b2",8936:"d4b5dbb8",8965:"499c3a46",9220:"c83f87c4",9303:"fd0e86c6",9366:"dfac513d",9412:"53da2fcd",9460:"18379a56",9497:"a968035f",9501:"f45f2462",9502:"891fe76e",9511:"3e808e2f",9514:"345ac1e0",9600:"22147d2c",9647:"dec7fb01",9726:"a56836f1",9737:"401bc498",9762:"757ce62d",9797:"0a830937",9806:"91360bb6",9903:"557aa14c",9905:"0705465d",9944:"7af075a5"}[n]+".chunk.js"}}(),function(){e.miniCssF=function(n){}}(),function(){e.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}()}(),function(){e.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)}}(),function(){var n={},i="@strapi/admin:";e.l=function(t,o,r,s){if(n[t]){n[t].push(o);return}var a,d;if(r!==void 0)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var f=l[c];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==i+r){a=f;break}}a||(d=!0,a=document.createElement("script"),a.charset="utf-8",a.timeout=120,e.nc&&a.setAttribute("nonce",e.nc),a.setAttribute("data-webpack",i+r),a.src=t),n[t]=[o];var u=function(g,p){a.onerror=a.onload=null,clearTimeout(b);var h=n[t];if(delete n[t],a.parentNode&&a.parentNode.removeChild(a),h&&h.forEach(function(v){return v(p)}),g)return g(p)},b=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),d&&document.head.appendChild(a)}}(),function(){e.r=function(n){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})}}(),function(){e.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n}}(),function(){e.p="/admin/"}(),function(){e.b=document.baseURI||self.location.href;var n={1303:0};e.f.j=function(o,r){var s=e.o(n,o)?n[o]:void 0;if(s!==0)if(s)r.push(s[2]);else if(o!=1303){var a=new Promise(function(f,u){s=n[o]=[f,u]});r.push(s[2]=a);var d=e.p+e.u(o),l=new Error,c=function(f){if(e.o(n,o)&&(s=n[o],s!==0&&(n[o]=void 0),s)){var u=f&&(f.type==="load"?"missing":f.type),b=f&&f.target&&f.target.src;l.message="Loading chunk "+o+` failed.
|
|
2
|
-
(`+u+": "+b+")",l.name="ChunkLoadError",l.type=u,l.request=b,s[1](l)}};e.l(d,
|
|
1
|
+
(function(){"use strict";var j={},m={};function e(n){var i=m[n];if(i!==void 0)return i.exports;var t=m[n]={id:n,loaded:!1,exports:{}};return j[n].call(t.exports,t,t.exports,e),t.loaded=!0,t.exports}e.m=j,function(){var n=[];e.O=function(i,t,o,r){if(t){r=r||0;for(var s=n.length;s>0&&n[s-1][2]>r;s--)n[s]=n[s-1];n[s]=[t,o,r];return}for(var a=1/0,s=0;s<n.length;s++){for(var t=n[s][0],o=n[s][1],r=n[s][2],c=!0,l=0;l<t.length;l++)(r&!1||a>=r)&&Object.keys(e.O).every(function(p){return e.O[p](t[l])})?t.splice(l--,1):(c=!1,r<a&&(a=r));if(c){n.splice(s--,1);var d=o();d!==void 0&&(i=d)}}return i}}(),function(){e.n=function(n){var i=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(i,{a:i}),i}}(),function(){var n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},i;e.t=function(t,o){if(o&1&&(t=this(t)),o&8||typeof t=="object"&&t&&(o&4&&t.__esModule||o&16&&typeof t.then=="function"))return t;var r=Object.create(null);e.r(r);var s={};i=i||[null,n({}),n([]),n(n)];for(var a=o&2&&t;typeof a=="object"&&!~i.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach(function(c){s[c]=function(){return t[c]}});return s.default=function(){return t},e.d(r,s),r}}(),function(){e.d=function(n,i){for(var t in i)e.o(i,t)&&!e.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:i[t]})}}(),function(){e.f={},e.e=function(n){return Promise.all(Object.keys(e.f).reduce(function(i,t){return e.f[t](n,i),i},[]))}}(),function(){e.u=function(n){return""+({46:"content-type-builder-translation-zh-Hans-json",90:"i18n-translation-de-json",92:"api-tokens-edit-page",96:"email-translation-de-json",123:"ru-json",129:"i18n-translation-es-json",302:"sso-settings-page",320:"en-json",349:"review-workflows-settings-list-view",395:"tr-json",435:"email-translation-it-json",562:"no-json",585:"upload-translation-pt-json",606:"sk-json",615:"upload-translation-uk-json",695:"upload-settings",742:"content-type-builder-translation-th-json",744:"email-translation-cs-json",749:"th-json",801:"Admin-authenticatedApp",830:"he-json",931:"content-type-builder-translation-en-json",994:"content-manager",1001:"content-type-builder-translation-nl-json",1009:"upload-translation-ms-json",1011:"zh-json",1018:"email-translation-ko-json",1023:"content-type-builder-translation-it-json",1056:"upload-translation-tr-json",1157:"email-translation-pt-BR-json",1167:"users-permissions-translation-ko-json",1180:"i18n-translation-tr-json",1312:"ja-json",1331:"upload-translation-es-json",1375:"upload-translation-pt-BR-json",1377:"ko-json",1442:"users-permissions-translation-cs-json",1495:"email-settings-page",1674:"users-permissions-translation-ru-json",1930:"users-permissions-translation-pt-json",2137:"i18n-translation-fr-json",2151:"content-type-builder-translation-id-json",2246:"content-type-builder-translation-dk-json",2248:"gu-json",2282:"users-providers-settings-page",2380:"users-permissions-translation-tr-json",2411:"email-translation-tr-json",2464:"users-permissions-translation-de-json",2489:"upload-translation-ko-json",2492:"transfer-tokens-edit-page",2544:"admin-edit-roles-page",2553:"zh-Hans-json",2567:"content-type-builder-translation-ko-json",2603:"email-translation-en-json",2648:"email-translation-ar-json",2657:"content-type-builder-translation-cs-json",2671:"nl-json",2742:"users-permissions-translation-zh-Hans-json",2812:"audit-logs-settings-page",3025:"ms-json",3038:"upload-translation-sk-json",3043:"email-translation-zh-Hans-json",3095:"users-permissions-translation-sk-json",3098:"users-permissions-translation-fr-json",3166:"email-translation-pt-json",3206:"email-translation-nl-json",3278:"vi-json",3304:"content-type-builder-translation-tr-json",3340:"pt-json",3455:"admin-roles-list",3516:"ca-json",3530:"users-permissions-translation-vi-json",3552:"i18n-settings-page",3650:"upload",3677:"Admin_pluginsPage",3702:"users-permissions-translation-pl-json",3825:"email-translation-dk-json",3948:"content-type-builder-translation-pl-json",3964:"content-type-builder-translation-ms-json",3981:"Admin_homePage",4021:"upload-translation-de-json",4121:"webhook-list-page",4179:"users-permissions-translation-id-json",4263:"admin-edit-users",4299:"api-tokens-create-page",4302:"content-type-builder-translation-zh-json",4409:"review-workflows-settings-edit-view",4587:"email-translation-th-json",4693:"email-translation-fr-json",4804:"upload-translation-ru-json",4816:"transfer-tokens-create-page",4987:"upload-translation-pl-json",5053:"upload-translation-zh-json",5162:"webhook-edit-page",5199:"admin-users",5222:"upload-translation-it-json",5296:"i18n-translation-dk-json",5388:"email-translation-ru-json",5396:"users-permissions-translation-zh-json",5516:"Admin_marketplace",5538:"admin-app",5751:"email-translation-es-json",5880:"upload-translation-ja-json",5894:"hu-json",5895:"Admin_settingsPage",5905:"content-type-builder-list-view",5906:"content-type-builder-translation-pt-BR-json",6232:"upload-translation-th-json",6280:"i18n-translation-ko-json",6332:"hi-json",6377:"users-permissions-translation-dk-json",6434:"upload-translation-en-json",6460:"users-permissions-translation-en-json",6745:"email-translation-uk-json",6784:"email-translation-ms-json",6817:"it-json",6831:"upload-translation-zh-Hans-json",6836:"users-permissions-translation-uk-json",6848:"email-translation-zh-json",6901:"de-json",7048:"users-permissions-translation-nl-json",7094:"users-permissions-translation-ar-json",7155:"content-type-builder-translation-de-json",7186:"content-type-builder-translation-ru-json",7327:"email-translation-vi-json",7347:"highlight.js",7403:"uk-json",7465:"upload-translation-dk-json",7519:"cs-json",7663:"email-translation-id-json",7808:"i18n-translation-zh-json",7817:"users-permissions-translation-es-json",7828:"users-permissions-translation-th-json",7833:"upload-translation-fr-json",7846:"pl-json",7898:"dk-json",7934:"content-type-builder-translation-pt-json",7958:"ar-json",7997:"content-type-builder-translation-sk-json",8006:"fr-json",8056:"api-tokens-list-page",8175:"i18n-translation-en-json",8178:"email-translation-ja-json",8329:"content-type-builder-translation-sv-json",8342:"content-type-builder-translation-es-json",8360:"eu-json",8367:"es-json",8418:"users-email-settings-page",8423:"upload-translation-ca-json",8467:"users-permissions-translation-sv-json",8481:"email-translation-pl-json",8573:"content-type-builder-translation-uk-json",8736:"users-permissions-translation-pt-BR-json",8853:"users-roles-settings-page",8880:"content-type-builder",8897:"id-json",8907:"content-type-builder-translation-ja-json",8936:"review-workflows-settings-create-view",8965:"content-type-builder-translation-fr-json",9220:"users-permissions-translation-ms-json",9303:"sv-json",9366:"i18n-translation-pl-json",9412:"email-translation-sk-json",9460:"users-advanced-settings-page",9497:"Admin_profilePage",9501:"Admin_InternalErrorPage",9502:"users-permissions-translation-ja-json",9511:"content-type-builder-translation-ar-json",9514:"Upload_ConfigureTheView",9600:"transfer-tokens-list-page",9647:"pt-BR-json",9726:"sa-json",9737:"i18n-translation-ru-json",9762:"i18n-translation-zh-Hans-json",9797:"upload-translation-he-json",9903:"ml-json",9905:"users-permissions-translation-it-json"}[n]||n)+"."+{46:"6ff57db6",90:"362384a6",92:"58139df9",96:"1b334230",123:"8193d8c4",129:"87b494d1",302:"7c9b2fd9",311:"cb0884bb",320:"4c733bd1",349:"3ee9190d",395:"56c32cf6",435:"a2ed8c78",448:"829e1344",502:"8ae8ef60",562:"19a2dbfa",585:"6b937fdf",606:"bf2f057a",615:"9950466a",695:"cac210a0",742:"122277cc",744:"6eaeec6a",749:"5f659396",801:"6b8dfa45",830:"3cf0b48a",918:"54414509",931:"ed29ff4d",994:"8772445b",1001:"997fe8cc",1009:"74f6d746",1011:"1cc86ff0",1018:"4de49b23",1023:"e268ab74",1049:"758a01f5",1056:"74117e5c",1157:"81cca553",1167:"357d7a33",1180:"10f0600d",1312:"91286391",1331:"ba2eb03a",1375:"d1704f0b",1377:"fcf3ec4b",1386:"762d6eb8",1387:"a86ac314",1442:"7e23424a",1495:"d494d1eb",1674:"8e883c67",1727:"b49f0713",1930:"a7eda429",2137:"57ddc77e",2151:"65255f93",2225:"15d1df72",2246:"fd626b67",2248:"5bd62812",2282:"8876c1ee",2379:"0ca87a89",2380:"2bd7ff98",2395:"df7a044a",2411:"e6c0f8fc",2464:"a6fb670f",2489:"a52eab64",2492:"8741529f",2544:"a49b9f4f",2553:"36d81cdc",2567:"04cb309d",2603:"4211d4d0",2648:"88304564",2657:"1ef9e106",2671:"b2b16eea",2742:"6ab714ee",2801:"b1140c9b",2812:"4b422831",3025:"0eddffd9",3038:"483a18f6",3043:"c6841563",3095:"7f37180f",3098:"7e55bbbb",3100:"2ba4df95",3166:"2a2a0643",3206:"377bdd9f",3278:"ee4c5537",3304:"41f44f77",3340:"ee554a41",3455:"0c129e98",3483:"e2ee2547",3516:"a53c10b6",3530:"6722a8a2",3552:"47f78016",3650:"cbfeefa5",3677:"8728ff6e",3702:"0a7287d1",3739:"63e352f1",3825:"85402492",3948:"634f638b",3964:"f6b743b9",3981:"ac9dfb86",3984:"dda474f7",4021:"420c943b",4121:"65e1b5bb",4179:"a5a0fb59",4263:"67704088",4299:"46c2ea84",4302:"3532b962",4409:"c33f7c58",4546:"ff9fdf30",4587:"660fa9a8",4628:"9cbb6df5",4693:"78be2787",4804:"675f6b93",4816:"1597e6ab",4987:"426f31c9",5053:"e1dd6eb2",5162:"a91f27a1",5199:"3279ffb0",5222:"e87d7966",5296:"89401417",5388:"6bce37dd",5396:"7978eaa6",5483:"6dd2e776",5516:"f0b87fce",5538:"c2e4e128",5542:"2415a393",5751:"0b6b1006",5880:"44b88e7a",5894:"9f4aae42",5895:"8c600d1a",5905:"bf9be456",5906:"6a95dc71",6158:"c974fd83",6232:"98d35574",6280:"ef4f9471",6332:"9104eb78",6377:"60e50f48",6434:"8b7573ce",6460:"4b302272",6691:"f880a0b6",6745:"bd1fb6bf",6784:"7390477e",6817:"bfe27ed8",6831:"db163b6b",6836:"6a0a1572",6848:"7a2232ea",6901:"b3be02c7",7030:"b98dcedf",7048:"c9f92a3c",7065:"ec811562",7094:"7d87d54d",7155:"63fcff7b",7186:"3af65503",7327:"9fb7e6d7",7347:"28a1547e",7403:"b7e38370",7464:"8a6c1e6c",7465:"bbb2fa05",7519:"4b44411c",7663:"c97239fe",7808:"bef2dc07",7817:"35007573",7828:"1e9c0247",7833:"baab9911",7846:"f094a417",7898:"842aa391",7934:"ddb44f8c",7958:"f530bc3f",7997:"c6078082",8006:"aa8839d2",8056:"505bf7e0",8175:"1ec7becf",8178:"63eebd02",8276:"6c7b8e6e",8329:"a6df2462",8342:"a4a361a9",8360:"633025f0",8367:"f57b5335",8418:"a87978e5",8423:"57954414",8467:"17187818",8481:"97d0db97",8573:"e1315acd",8736:"1b6d2920",8853:"0431f48c",8880:"40534de5",8897:"41e07c46",8907:"9be0d5b2",8936:"05758184",8965:"499c3a46",9220:"c83f87c4",9303:"fd0e86c6",9366:"dfac513d",9412:"53da2fcd",9460:"18379a56",9497:"a968035f",9501:"f45f2462",9502:"891fe76e",9511:"3e808e2f",9514:"345ac1e0",9600:"22147d2c",9647:"dec7fb01",9726:"a56836f1",9737:"401bc498",9762:"757ce62d",9797:"0a830937",9806:"aa25371d",9903:"557aa14c",9905:"0705465d",9944:"7af075a5"}[n]+".chunk.js"}}(),function(){e.miniCssF=function(n){}}(),function(){e.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}}()}(),function(){e.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)}}(),function(){var n={},i="@strapi/admin:";e.l=function(t,o,r,s){if(n[t]){n[t].push(o);return}var a,c;if(r!==void 0)for(var l=document.getElementsByTagName("script"),d=0;d<l.length;d++){var f=l[d];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==i+r){a=f;break}}a||(c=!0,a=document.createElement("script"),a.charset="utf-8",a.timeout=120,e.nc&&a.setAttribute("nonce",e.nc),a.setAttribute("data-webpack",i+r),a.src=t),n[t]=[o];var u=function(g,p){a.onerror=a.onload=null,clearTimeout(b);var h=n[t];if(delete n[t],a.parentNode&&a.parentNode.removeChild(a),h&&h.forEach(function(v){return v(p)}),g)return g(p)},b=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),c&&document.head.appendChild(a)}}(),function(){e.r=function(n){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})}}(),function(){e.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n}}(),function(){e.p="/admin/"}(),function(){e.b=document.baseURI||self.location.href;var n={1303:0};e.f.j=function(o,r){var s=e.o(n,o)?n[o]:void 0;if(s!==0)if(s)r.push(s[2]);else if(o!=1303){var a=new Promise(function(f,u){s=n[o]=[f,u]});r.push(s[2]=a);var c=e.p+e.u(o),l=new Error,d=function(f){if(e.o(n,o)&&(s=n[o],s!==0&&(n[o]=void 0),s)){var u=f&&(f.type==="load"?"missing":f.type),b=f&&f.target&&f.target.src;l.message="Loading chunk "+o+` failed.
|
|
2
|
+
(`+u+": "+b+")",l.name="ChunkLoadError",l.type=u,l.request=b,s[1](l)}};e.l(c,d,"chunk-"+o,o)}else n[o]=0},e.O.j=function(o){return n[o]===0};var i=function(o,r){var s=r[0],a=r[1],c=r[2],l,d,f=0;if(s.some(function(b){return n[b]!==0})){for(l in a)e.o(a,l)&&(e.m[l]=a[l]);if(c)var u=c(e)}for(o&&o(r);f<s.length;f++)d=s[f],e.o(n,d)&&n[d]&&n[d][0](),n[d]=0;return e.O(u)},t=self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[];t.forEach(i.bind(null,0)),t.push=i.bind(null,t.push.bind(t))}(),function(){e.nc=void 0}()})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[302],{68951:function(J,m,e){e.r(m),e.d(m,{SingleSignOn:function(){return R},default:function(){return k}});var t=e(32735),E=e(96709),M=e(27649),y=e(82055),C=e(41415),I=e(17e3),O=e(87933),b=e(49372),A=e(15335),u=e(5803),P=e(71842),D=e(68465),T=e(84967),f=e(6407),o=e(19565),x=e(66456),F=e(89793),B=e.n(F),G=e(67879),h=e(15062),v=e(2160),S=e(30305),H=e(86209),i=e(24346),Z=i.Ry().shape({autoRegister:i.Xg().required(o.I0.required),defaultRole:i.nK().when("autoRegister",(a,l)=>a?l.required(o.I0.required):l.nullable()),ssoLockedRoles:i.IX().nullable().of(i.nK().when("ssoLockedRoles",(a,l)=>a?l.required(o.I0.required):l.nullable()))});const R=()=>{const{formatMessage:a}=(0,G.Z)(),l=(0,h.v9)(S._),{isLoading:z,allowedActions:{canUpdate:g,canReadRoles:K}}=(0,o.ss)({...l.settings.sso,readRoles:l.settings.roles.read}),[{formErrors:n,initialData:U,isLoading:X,modifiedData:r,showHeaderButtonLoader:N},Y,{handleChange:d,handleSubmit:W}]=(0,v.G4)((0,H.IF)("providers/options"),Z,()=>{},["autoRegister","defaultRole","ssoLockedRoles"]),{roles:L}=(0,v.bF)(K);(0,o.go)();const j=z||X,p=B()(U,r);return t.createElement(E.A,null,t.createElement(o.SL,{name:"SSO"}),t.createElement(M.o,{tabIndex:-1},t.createElement("form",{onSubmit:s=>{if(p){s.preventDefault();return}W(s)}},t.createElement(y.T,{primaryAction:t.createElement(C.z,{"data-testid":"save-button",disabled:p,loading:N,startIcon:t.createElement(x.Z,null),type:"submit",size:"L"},a({id:"global.save",defaultMessage:"Save"})),title:a({id:"Settings.sso.title",defaultMessage:"Single Sign-On"}),subtitle:a({id:"Settings.sso.description",defaultMessage:"Configure the settings for the Single Sign-On feature."})}),t.createElement(I.D,null,j?t.createElement(o.dO,null):t.createElement(O.k,{direction:"column",alignItems:"stretch",gap:4,background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},t.createElement(b.Z,{variant:"delta",as:"h2"},a({id:"global.settings",defaultMessage:"Settings"})),t.createElement(A.r,{gap:4},t.createElement(u.P,{col:6,m:6,s:12},t.createElement(P.s,{"aria-label":"autoRegister","data-testid":"autoRegister",disabled:!g,checked:r.autoRegister,hint:a({id:"Settings.sso.form.registration.description",defaultMessage:"Create new user on SSO login if no account exists"}),label:a({id:"Settings.sso.form.registration.label",defaultMessage:"Auto-registration"}),name:"autoRegister",offLabel:a({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:a({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:s=>{d({target:{name:"autoRegister",value:s.target.checked}})}})),t.createElement(u.P,{col:6,m:6,s:12},t.createElement(D.P,{disabled:!g,hint:a({id:"Settings.sso.form.defaultRole.description",defaultMessage:"It will attach the new authenticated user to the selected role"}),error:n.defaultRole?a({id:n.defaultRole.id,defaultMessage:n.defaultRole.id}):"",label:a({id:"Settings.sso.form.defaultRole.label",defaultMessage:"Default role"}),name:"defaultRole",onChange:s=>{d({target:{name:"defaultRole",value:s}})},placeholder:a({id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"}),value:r.defaultRole},L.map(({id:s,name:c})=>t.createElement(T.W,{key:s,value:s.toString()},c)))),t.createElement(u.P,{col:6,m:6,s:12},t.createElement(f.NU,{disabled:!g,hint:a({id:"Settings.sso.form.localAuthenticationLock.description",defaultMessage:"Select the roles for which you want to disable the local authentication"}),error:n.ssoLockedRoles?a({id:n.ssoLockedRoles.id,defaultMessage:n.ssoLockedRoles.id}):"",label:a({id:"Settings.sso.form.localAuthenticationLock.label",defaultMessage:"Local authentication lock-out"}),name:"ssoLockedRoles",onChange:s=>{d({target:{name:"ssoLockedRoles",value:s}})},placeholder:a({id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"}),onClear:()=>{d({target:{name:"ssoLockedRoles",emptyArray:[]}})},value:r.ssoLockedRoles||[],withTags:!0},L.map(({id:s,name:c})=>t.createElement(f.ML,{key:s,value:s.toString()},c))))))))))};var k=()=>{const a=(0,h.v9)(S._);return t.createElement(o.O4,{permissions:a.settings.sso.main},t.createElement(R,null))}}}]);
|
|
@@ -1,15 +1,37 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
Grid,
|
|
5
|
+
GridItem,
|
|
6
|
+
MultiSelect,
|
|
7
|
+
MultiSelectGroup,
|
|
8
|
+
MultiSelectOption,
|
|
9
|
+
TextInput,
|
|
10
|
+
Typography,
|
|
11
|
+
} from '@strapi/design-system';
|
|
4
12
|
import { useCollator } from '@strapi/helper-plugin';
|
|
5
13
|
import { useField } from 'formik';
|
|
6
14
|
import PropTypes from 'prop-types';
|
|
7
15
|
import { useIntl } from 'react-intl';
|
|
8
16
|
import { useDispatch } from 'react-redux';
|
|
17
|
+
import styled from 'styled-components';
|
|
9
18
|
|
|
10
19
|
import { updateWorkflow } from '../../actions';
|
|
11
20
|
|
|
12
|
-
|
|
21
|
+
const NestedOption = styled(MultiSelectOption)`
|
|
22
|
+
padding-left: ${({ theme }) => theme.spaces[7]};
|
|
23
|
+
`;
|
|
24
|
+
|
|
25
|
+
const ContentTypeTakeNotice = styled(Typography)`
|
|
26
|
+
font-style: italic;
|
|
27
|
+
`;
|
|
28
|
+
|
|
29
|
+
export function WorkflowAttributes({
|
|
30
|
+
canUpdate,
|
|
31
|
+
contentTypes: { collectionTypes, singleTypes },
|
|
32
|
+
currentWorkflow,
|
|
33
|
+
workflows,
|
|
34
|
+
}) {
|
|
13
35
|
const { formatMessage, locale } = useIntl();
|
|
14
36
|
const dispatch = useDispatch();
|
|
15
37
|
const [nameField, nameMeta, nameHelper] = useField('name');
|
|
@@ -39,7 +61,7 @@ export function WorkflowAttributes({ canUpdate, contentTypes: { collectionTypes,
|
|
|
39
61
|
</GridItem>
|
|
40
62
|
|
|
41
63
|
<GridItem col={6}>
|
|
42
|
-
<
|
|
64
|
+
<MultiSelect
|
|
43
65
|
{...contentTypesField}
|
|
44
66
|
customizeContent={(value) =>
|
|
45
67
|
formatMessage(
|
|
@@ -62,7 +84,12 @@ export function WorkflowAttributes({ canUpdate, contentTypes: { collectionTypes,
|
|
|
62
84
|
dispatch(updateWorkflow({ contentTypes: values }));
|
|
63
85
|
contentTypesHelper.setValue(values);
|
|
64
86
|
}}
|
|
65
|
-
|
|
87
|
+
placeholder={formatMessage({
|
|
88
|
+
id: 'Settings.review-workflows.workflow.contentTypes.placeholder',
|
|
89
|
+
defaultMessage: 'Select',
|
|
90
|
+
})}
|
|
91
|
+
>
|
|
92
|
+
{[
|
|
66
93
|
...(collectionTypes.length > 0
|
|
67
94
|
? [
|
|
68
95
|
{
|
|
@@ -94,12 +121,58 @@ export function WorkflowAttributes({ canUpdate, contentTypes: { collectionTypes,
|
|
|
94
121
|
},
|
|
95
122
|
]
|
|
96
123
|
: []),
|
|
97
|
-
]
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
124
|
+
].map((opt) => {
|
|
125
|
+
if ('children' in opt) {
|
|
126
|
+
return (
|
|
127
|
+
<MultiSelectGroup
|
|
128
|
+
key={opt.label}
|
|
129
|
+
label={opt.label}
|
|
130
|
+
values={opt.children.map((child) => child.value.toString())}
|
|
131
|
+
>
|
|
132
|
+
{opt.children.map((child) => {
|
|
133
|
+
const { name: assignedWorkflowName } =
|
|
134
|
+
workflows.find(
|
|
135
|
+
(workflow) =>
|
|
136
|
+
((currentWorkflow && workflow.id !== currentWorkflow.id) ||
|
|
137
|
+
!currentWorkflow) &&
|
|
138
|
+
workflow.contentTypes.includes(child.value)
|
|
139
|
+
) ?? {};
|
|
140
|
+
|
|
141
|
+
return (
|
|
142
|
+
<NestedOption key={child.value} value={child.value}>
|
|
143
|
+
{formatMessage(
|
|
144
|
+
{
|
|
145
|
+
id: 'Settings.review-workflows.workflow.contentTypes.assigned.notice',
|
|
146
|
+
defaultMessage:
|
|
147
|
+
'{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
label: child.label,
|
|
151
|
+
name: assignedWorkflowName,
|
|
152
|
+
em: (...children) => (
|
|
153
|
+
<Typography as="em" fontWeight="bold">
|
|
154
|
+
{children}
|
|
155
|
+
</Typography>
|
|
156
|
+
),
|
|
157
|
+
i: (...children) => (
|
|
158
|
+
<ContentTypeTakeNotice>{children}</ContentTypeTakeNotice>
|
|
159
|
+
),
|
|
160
|
+
}
|
|
161
|
+
)}
|
|
162
|
+
</NestedOption>
|
|
163
|
+
);
|
|
164
|
+
})}
|
|
165
|
+
</MultiSelectGroup>
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return (
|
|
170
|
+
<MultiSelectOption key={opt.value} value={opt.value}>
|
|
171
|
+
{opt.label}
|
|
172
|
+
</MultiSelectOption>
|
|
173
|
+
);
|
|
101
174
|
})}
|
|
102
|
-
|
|
175
|
+
</MultiSelect>
|
|
103
176
|
</GridItem>
|
|
104
177
|
</Grid>
|
|
105
178
|
);
|
|
@@ -114,6 +187,7 @@ const ContentTypeType = PropTypes.shape({
|
|
|
114
187
|
|
|
115
188
|
WorkflowAttributes.defaultProps = {
|
|
116
189
|
canUpdate: true,
|
|
190
|
+
currentWorkflow: undefined,
|
|
117
191
|
};
|
|
118
192
|
|
|
119
193
|
WorkflowAttributes.propTypes = {
|
|
@@ -122,4 +196,6 @@ WorkflowAttributes.propTypes = {
|
|
|
122
196
|
collectionTypes: PropTypes.arrayOf(ContentTypeType).isRequired,
|
|
123
197
|
singleTypes: PropTypes.arrayOf(ContentTypeType).isRequired,
|
|
124
198
|
}).isRequired,
|
|
199
|
+
currentWorkflow: PropTypes.object,
|
|
200
|
+
workflows: PropTypes.array.isRequired,
|
|
125
201
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
|
|
3
|
-
import { Button, Flex, Loader } from '@strapi/design-system';
|
|
3
|
+
import { Button, Flex, Loader, Typography } from '@strapi/design-system';
|
|
4
4
|
import {
|
|
5
|
+
ConfirmDialog,
|
|
5
6
|
useAPIErrorHandler,
|
|
6
7
|
useFetchClient,
|
|
7
8
|
useNotification,
|
|
@@ -42,6 +43,7 @@ export function ReviewWorkflowsCreateView() {
|
|
|
42
43
|
const permissions = useSelector(selectAdminPermissions);
|
|
43
44
|
const toggleNotification = useNotification();
|
|
44
45
|
const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();
|
|
46
|
+
const { isLoading: isWorkflowLoading, meta, workflows } = useReviewWorkflows();
|
|
45
47
|
const {
|
|
46
48
|
clientState: {
|
|
47
49
|
currentWorkflow: { data: currentWorkflow, isDirty: currentWorkflowIsDirty },
|
|
@@ -52,8 +54,11 @@ export function ReviewWorkflowsCreateView() {
|
|
|
52
54
|
} = useRBAC(permissions.settings['review-workflows']);
|
|
53
55
|
const [showLimitModal, setShowLimitModal] = React.useState(false);
|
|
54
56
|
const { isLoading: isLicenseLoading, getFeature } = useLicenseLimits();
|
|
55
|
-
const { meta, isLoading: isWorkflowLoading } = useReviewWorkflows();
|
|
56
57
|
const [initialErrors, setInitialErrors] = React.useState(null);
|
|
58
|
+
const [savePrompts, setSavePrompts] = React.useState({});
|
|
59
|
+
|
|
60
|
+
const limits = getFeature('review-workflows');
|
|
61
|
+
const contentTypesFromOtherWorkflows = workflows.flatMap((workflow) => workflow.contentTypes);
|
|
57
62
|
|
|
58
63
|
const { mutateAsync, isLoading } = useMutation(
|
|
59
64
|
async ({ workflow }) => {
|
|
@@ -79,6 +84,8 @@ export function ReviewWorkflowsCreateView() {
|
|
|
79
84
|
);
|
|
80
85
|
|
|
81
86
|
const submitForm = async () => {
|
|
87
|
+
setSavePrompts({});
|
|
88
|
+
|
|
82
89
|
try {
|
|
83
90
|
const workflow = await mutateAsync({ workflow: currentWorkflow });
|
|
84
91
|
|
|
@@ -110,13 +117,23 @@ export function ReviewWorkflowsCreateView() {
|
|
|
110
117
|
}
|
|
111
118
|
};
|
|
112
119
|
|
|
113
|
-
const
|
|
120
|
+
const handleConfirmDeleteDialog = async () => {
|
|
121
|
+
await submitForm();
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const handleConfirmClose = () => {
|
|
125
|
+
setSavePrompts({});
|
|
126
|
+
};
|
|
114
127
|
|
|
115
128
|
const formik = useFormik({
|
|
116
129
|
enableReinitialize: true,
|
|
117
130
|
initialErrors,
|
|
118
131
|
initialValues: currentWorkflow,
|
|
119
132
|
async onSubmit() {
|
|
133
|
+
const isContentTypeReassignment = currentWorkflow.contentTypes.some((contentType) =>
|
|
134
|
+
contentTypesFromOtherWorkflows.includes(contentType)
|
|
135
|
+
);
|
|
136
|
+
|
|
120
137
|
/**
|
|
121
138
|
* If the current license has a limit, check if the total count of workflows
|
|
122
139
|
* exceeds that limit and display the limits modal instead of sending the
|
|
@@ -140,6 +157,8 @@ export function ReviewWorkflowsCreateView() {
|
|
|
140
157
|
parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)
|
|
141
158
|
) {
|
|
142
159
|
setShowLimitModal('stage');
|
|
160
|
+
} else if (isContentTypeReassignment) {
|
|
161
|
+
setSavePrompts((prev) => ({ ...prev, hasReassignedContentTypes: true }));
|
|
143
162
|
} else {
|
|
144
163
|
submitForm();
|
|
145
164
|
}
|
|
@@ -243,7 +262,10 @@ export function ReviewWorkflowsCreateView() {
|
|
|
243
262
|
</Loader>
|
|
244
263
|
) : (
|
|
245
264
|
<Flex alignItems="stretch" direction="column" gap={7}>
|
|
246
|
-
<WorkflowAttributes
|
|
265
|
+
<WorkflowAttributes
|
|
266
|
+
contentTypes={{ collectionTypes, singleTypes }}
|
|
267
|
+
workflows={workflows}
|
|
268
|
+
/>
|
|
247
269
|
<Stages stages={formik.values?.stages} />
|
|
248
270
|
</Flex>
|
|
249
271
|
)}
|
|
@@ -252,6 +274,41 @@ export function ReviewWorkflowsCreateView() {
|
|
|
252
274
|
</Form>
|
|
253
275
|
</FormikProvider>
|
|
254
276
|
|
|
277
|
+
<ConfirmDialog.Root
|
|
278
|
+
isConfirmButtonLoading={isLoading}
|
|
279
|
+
isOpen={Object.keys(savePrompts).length > 0}
|
|
280
|
+
onToggleDialog={handleConfirmClose}
|
|
281
|
+
onConfirm={handleConfirmDeleteDialog}
|
|
282
|
+
>
|
|
283
|
+
<ConfirmDialog.Body>
|
|
284
|
+
<Flex direction="column" gap={5}>
|
|
285
|
+
{savePrompts.hasReassignedContentTypes && (
|
|
286
|
+
<Typography textAlign="center" variant="omega">
|
|
287
|
+
{formatMessage(
|
|
288
|
+
{
|
|
289
|
+
id: 'Settings.review-workflows.page.delete.confirm.contentType.body',
|
|
290
|
+
defaultMessage:
|
|
291
|
+
'{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed.',
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
count: contentTypesFromOtherWorkflows.filter((contentType) =>
|
|
295
|
+
currentWorkflow.contentTypes.includes(contentType)
|
|
296
|
+
).length,
|
|
297
|
+
}
|
|
298
|
+
)}
|
|
299
|
+
</Typography>
|
|
300
|
+
)}
|
|
301
|
+
|
|
302
|
+
<Typography textAlign="center" variant="omega">
|
|
303
|
+
{formatMessage({
|
|
304
|
+
id: 'Settings.review-workflows.page.delete.confirm.confirm',
|
|
305
|
+
defaultMessage: 'Are you sure you want to save?',
|
|
306
|
+
})}
|
|
307
|
+
</Typography>
|
|
308
|
+
</Flex>
|
|
309
|
+
</ConfirmDialog.Body>
|
|
310
|
+
</ConfirmDialog.Root>
|
|
311
|
+
|
|
255
312
|
<LimitsModal.Root
|
|
256
313
|
isOpen={showLimitModal === 'workflow'}
|
|
257
314
|
onClose={() => setShowLimitModal(false)}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
|
|
3
|
-
import { Button, Flex, Loader } from '@strapi/design-system';
|
|
3
|
+
import { Button, Flex, Loader, Typography } from '@strapi/design-system';
|
|
4
4
|
import {
|
|
5
5
|
ConfirmDialog,
|
|
6
6
|
useAPIErrorHandler,
|
|
@@ -45,10 +45,10 @@ export function ReviewWorkflowsEditView() {
|
|
|
45
45
|
const {
|
|
46
46
|
isLoading: isWorkflowLoading,
|
|
47
47
|
meta,
|
|
48
|
-
workflows
|
|
48
|
+
workflows,
|
|
49
49
|
status: workflowStatus,
|
|
50
50
|
refetch,
|
|
51
|
-
} = useReviewWorkflows(
|
|
51
|
+
} = useReviewWorkflows();
|
|
52
52
|
const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();
|
|
53
53
|
const {
|
|
54
54
|
status,
|
|
@@ -56,18 +56,23 @@ export function ReviewWorkflowsEditView() {
|
|
|
56
56
|
currentWorkflow: {
|
|
57
57
|
data: currentWorkflow,
|
|
58
58
|
isDirty: currentWorkflowIsDirty,
|
|
59
|
-
hasDeletedServerStages
|
|
59
|
+
hasDeletedServerStages,
|
|
60
60
|
},
|
|
61
61
|
},
|
|
62
62
|
} = useSelector((state) => state?.[REDUX_NAMESPACE] ?? initialState);
|
|
63
63
|
const {
|
|
64
64
|
allowedActions: { canDelete, canUpdate },
|
|
65
65
|
} = useRBAC(permissions.settings['review-workflows']);
|
|
66
|
-
const [
|
|
66
|
+
const [savePrompts, setSavePrompts] = React.useState({});
|
|
67
67
|
const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();
|
|
68
68
|
const [showLimitModal, setShowLimitModal] = React.useState(false);
|
|
69
69
|
const [initialErrors, setInitialErrors] = React.useState(null);
|
|
70
70
|
|
|
71
|
+
const workflow = workflows.find((workflow) => workflow.id === parseInt(workflowId, 10));
|
|
72
|
+
const contentTypesFromOtherWorkflows = workflows
|
|
73
|
+
.filter((workflow) => workflow.id !== parseInt(workflowId, 10))
|
|
74
|
+
.flatMap((workflow) => workflow.contentTypes);
|
|
75
|
+
|
|
71
76
|
const { mutateAsync, isLoading } = useMutation(
|
|
72
77
|
async ({ workflow }) => {
|
|
73
78
|
const {
|
|
@@ -125,15 +130,15 @@ export function ReviewWorkflowsEditView() {
|
|
|
125
130
|
await updateWorkflow(currentWorkflow);
|
|
126
131
|
await refetch();
|
|
127
132
|
|
|
128
|
-
|
|
133
|
+
setSavePrompts({});
|
|
129
134
|
};
|
|
130
135
|
|
|
131
136
|
const handleConfirmDeleteDialog = async () => {
|
|
132
137
|
await submitForm();
|
|
133
138
|
};
|
|
134
139
|
|
|
135
|
-
const
|
|
136
|
-
|
|
140
|
+
const handleConfirmClose = () => {
|
|
141
|
+
setSavePrompts({});
|
|
137
142
|
};
|
|
138
143
|
|
|
139
144
|
const formik = useFormik({
|
|
@@ -141,9 +146,11 @@ export function ReviewWorkflowsEditView() {
|
|
|
141
146
|
initialErrors,
|
|
142
147
|
initialValues: currentWorkflow,
|
|
143
148
|
async onSubmit() {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
149
|
+
const isContentTypeReassignment = currentWorkflow.contentTypes.some((contentType) =>
|
|
150
|
+
contentTypesFromOtherWorkflows.includes(contentType)
|
|
151
|
+
);
|
|
152
|
+
|
|
153
|
+
if (
|
|
147
154
|
limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&
|
|
148
155
|
meta?.workflowCount > parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10)
|
|
149
156
|
) {
|
|
@@ -165,6 +172,14 @@ export function ReviewWorkflowsEditView() {
|
|
|
165
172
|
parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10)
|
|
166
173
|
) {
|
|
167
174
|
setShowLimitModal('stage');
|
|
175
|
+
} else if (hasDeletedServerStages || isContentTypeReassignment) {
|
|
176
|
+
if (hasDeletedServerStages) {
|
|
177
|
+
setSavePrompts((prev) => ({ ...prev, hasDeletedServerStages: true }));
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (isContentTypeReassignment) {
|
|
181
|
+
setSavePrompts((prev) => ({ ...prev, hasReassignedContentTypes: true }));
|
|
182
|
+
}
|
|
168
183
|
} else {
|
|
169
184
|
submitForm();
|
|
170
185
|
}
|
|
@@ -243,7 +258,7 @@ export function ReviewWorkflowsEditView() {
|
|
|
243
258
|
disabled={!currentWorkflowIsDirty || !canUpdate}
|
|
244
259
|
// if the confirm dialog is open the loading state is on
|
|
245
260
|
// the confirm button already
|
|
246
|
-
loading={!
|
|
261
|
+
loading={!Object.keys(savePrompts).length > 0 && isLoading}
|
|
247
262
|
>
|
|
248
263
|
{formatMessage({
|
|
249
264
|
id: 'global.save',
|
|
@@ -279,6 +294,8 @@ export function ReviewWorkflowsEditView() {
|
|
|
279
294
|
<WorkflowAttributes
|
|
280
295
|
canUpdate={canUpdate}
|
|
281
296
|
contentTypes={{ collectionTypes, singleTypes }}
|
|
297
|
+
currentWorkflow={currentWorkflow}
|
|
298
|
+
workflows={workflows}
|
|
282
299
|
/>
|
|
283
300
|
<Stages
|
|
284
301
|
canDelete={canDelete}
|
|
@@ -291,17 +308,50 @@ export function ReviewWorkflowsEditView() {
|
|
|
291
308
|
</Form>
|
|
292
309
|
</FormikProvider>
|
|
293
310
|
|
|
294
|
-
<ConfirmDialog
|
|
295
|
-
bodyText={{
|
|
296
|
-
id: 'Settings.review-workflows.page.delete.confirm.body',
|
|
297
|
-
defaultMessage:
|
|
298
|
-
'All entries assigned to deleted stages will be moved to the previous stage. Are you sure you want to save?',
|
|
299
|
-
}}
|
|
311
|
+
<ConfirmDialog.Root
|
|
300
312
|
isConfirmButtonLoading={isLoading}
|
|
301
|
-
isOpen={
|
|
302
|
-
onToggleDialog={
|
|
313
|
+
isOpen={Object.keys(savePrompts).length > 0}
|
|
314
|
+
onToggleDialog={handleConfirmClose}
|
|
303
315
|
onConfirm={handleConfirmDeleteDialog}
|
|
304
|
-
|
|
316
|
+
>
|
|
317
|
+
<ConfirmDialog.Body>
|
|
318
|
+
<Flex direction="column" gap={5}>
|
|
319
|
+
{savePrompts.hasDeletedServerStages && (
|
|
320
|
+
<Typography textAlign="center" variant="omega">
|
|
321
|
+
{formatMessage({
|
|
322
|
+
id: 'Settings.review-workflows.page.delete.confirm.stages.body',
|
|
323
|
+
defaultMessage:
|
|
324
|
+
'All entries assigned to deleted stages will be moved to the previous stage.',
|
|
325
|
+
})}
|
|
326
|
+
</Typography>
|
|
327
|
+
)}
|
|
328
|
+
|
|
329
|
+
{savePrompts.hasReassignedContentTypes && (
|
|
330
|
+
<Typography textAlign="center" variant="omega">
|
|
331
|
+
{formatMessage(
|
|
332
|
+
{
|
|
333
|
+
id: 'Settings.review-workflows.page.delete.confirm.contentType.body',
|
|
334
|
+
defaultMessage:
|
|
335
|
+
'{count} {count, plural, one {content-type} other {content-types}} {count, plural, one {is} other {are}} already mapped to {count, plural, one {another workflow} other {other workflows}}. If you save changes, {count, plural, one {this} other {these}} {count, plural, one {content-type} other {{count} content-types}} will no more be mapped to the {count, plural, one {another workflow} other {other workflows}} and all corresponding information will be removed.',
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
count: contentTypesFromOtherWorkflows.filter((contentType) =>
|
|
339
|
+
currentWorkflow.contentTypes.includes(contentType)
|
|
340
|
+
).length,
|
|
341
|
+
}
|
|
342
|
+
)}
|
|
343
|
+
</Typography>
|
|
344
|
+
)}
|
|
345
|
+
|
|
346
|
+
<Typography textAlign="center" variant="omega">
|
|
347
|
+
{formatMessage({
|
|
348
|
+
id: 'Settings.review-workflows.page.delete.confirm.confirm',
|
|
349
|
+
defaultMessage: 'Are you sure you want to save?',
|
|
350
|
+
})}
|
|
351
|
+
</Typography>
|
|
352
|
+
</Flex>
|
|
353
|
+
</ConfirmDialog.Body>
|
|
354
|
+
</ConfirmDialog.Root>
|
|
305
355
|
|
|
306
356
|
<LimitsModal.Root
|
|
307
357
|
isOpen={showLimitModal === 'workflow'}
|
|
@@ -73,7 +73,7 @@ export function reducer(state = initialState, action) {
|
|
|
73
73
|
|
|
74
74
|
if (!currentWorkflow.hasDeletedServerStages) {
|
|
75
75
|
draft.clientState.currentWorkflow.hasDeletedServerStages = !!(
|
|
76
|
-
state.serverState.
|
|
76
|
+
state.serverState.workflow?.stages ?? []
|
|
77
77
|
).find((stage) => stage.id === stageId);
|
|
78
78
|
}
|
|
79
79
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
Button,
|
|
@@ -62,13 +62,7 @@ export const SingleSignOn = () => {
|
|
|
62
62
|
|
|
63
63
|
const showLoader = isLoadingForPermissions || isLoading;
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
if (formErrors.defaultRole) {
|
|
67
|
-
const selector = `[name="defaultRole"]`;
|
|
68
|
-
|
|
69
|
-
document.querySelector(selector).focus();
|
|
70
|
-
}
|
|
71
|
-
}, [formErrors]);
|
|
65
|
+
// TODO: focus() first error field, but it looks like that requires refactoring from useSettingsForm to Formik
|
|
72
66
|
|
|
73
67
|
const isHeaderButtonDisabled = isEqual(initialData, modifiedData);
|
|
74
68
|
|
|
@@ -6,8 +6,13 @@ const providerOptionsUpdateSchema = yup.object().shape({
|
|
|
6
6
|
autoRegister: yup.boolean().required(),
|
|
7
7
|
defaultRole: yup
|
|
8
8
|
.strapiID()
|
|
9
|
-
.
|
|
9
|
+
.when('autoRegister', (value, initSchema) => {
|
|
10
|
+
return value ? initSchema.required() : initSchema.nullable();
|
|
11
|
+
})
|
|
10
12
|
.test('is-valid-role', 'You must submit a valid default role', (roleId) => {
|
|
13
|
+
if (roleId === null) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
11
16
|
return strapi.admin.services.role.exists({ id: roleId });
|
|
12
17
|
}),
|
|
13
18
|
ssoLockedRoles: yup
|