D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
psa
/
admin
/
cp
/
public
/
javascript
/
views
/
smb
/
database
/
Filename :
list.js
back
Copy
(self.webpackChunkPlesk=self.webpackChunkPlesk||[]).push([["views/smb/database/list"],{2603:(e,t,s)=>{var a={"./colored-icons-sprite.svg":1873,"./mariadb.svg":2604,"./mssql.svg":2605,"./mysql.svg":2606,"./percona.svg":2607,"./postgresql.svg":2608,"./sitejet-ai.svg":1886};function i(e){var t=n(e);return s(t)}function n(e){if(!s.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}i.keys=function(){return Object.keys(a)},i.resolve=n,e.exports=i,i.id=2603},2477:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>r});var a=s(286),i=s(89),n=s(285);const o=i.Locale.getTranslate("components.buttons"),r=({children:e,confirmationText:t,onClick:s,isCritical:i=!1,isProcessing:r=!1,target:d,...l})=>{const[c,m]=(0,n.useState)(!1),u=(0,n.jsx)(a.Button,{onClick:()=>m(!0),state:r?"loading":void 0,...l,children:r?(0,n.jsx)(o,{content:"wait"}):e});return(0,n.jsxs)(a.Popover,{target:d?(0,n.cloneElement)(d,{onClick:()=>m(!0)}):u,placement:"top",visible:c,onClose:()=>m(!1),children:[(0,n.jsx)(a.Paragraph,{children:t}),(0,n.jsx)(a.Button,{id:"buttonYes",intent:i?"danger":"primary",onClick:()=>{m(!1),s()},children:(0,n.jsx)(o,{content:"yes"})})," ",(0,n.jsx)(a.Button,{id:"buttonCancel",onClick:()=>m(!1),ghost:!0,children:(0,n.jsx)(o,{content:"cancel"})})]})}},2595:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>d});var a=s(285),i=s(286),n=s(89);const o=n.Locale.getTranslate("components.common.DatabasePasswordPrompt"),r=n.Locale.getTranslate("components.buttons"),d=({isMultistep:e=!1,onPasswordSubmit:t,userLogin:s,isOpen:n,onClose:d,size:l="sm",...c})=>{const[m,u]=(0,a.useState)(!1),[p,h]=(0,a.useState)("");let b={title:(0,a.jsx)(o,{content:"title"}),subtitle:(0,a.jsx)(o,{content:"description",params:{login:(0,a.jsx)("b",{children:s})}}),form:(0,a.jsx)(i.Form,{onSubmit:({password:e})=>{e&&(t?.(e),u(!0))},submitButton:{children:(0,a.jsx)(r,{content:"ok"}),disabled:!p.length},cancelButton:{children:(0,a.jsx)(r,{content:"cancel"})},applyButton:!1,onFieldChange:(e,t)=>{"password"===e&&h(t)},children:(0,a.jsx)(i.FormFieldPassword,{name:"password",label:(0,a.jsx)(o,{content:"password"}),autoFocus:!0,size:"fill",hideGenerateButton:!0,hidePasswordMeter:!0})},"passwordForm")};return e&&m&&(b=c),(0,a.jsx)(i.Drawer,{isOpen:n,onClose:d,size:l,...b})}},2594:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>a.default});var a=s(2595)},1534:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>c});var a=s(596),i=s.n(a),n=s(89),o=s(1535);const r={id:i().string,dataUrl:i().string,operations:i().array,itemActions:i().object,columns:i().array,data:i().shape({data:i().array,state:i().object,pager:i().object,locale:i().object,additional:i().object,pathbar:i().any}),searchFilters:i().object,searchOveral:i().string,disabledSelectHint:i().string,isDisabledItem:i().func,onRedraw:i().func,emptyViewMode:i().oneOf(["all","items"]),emptyView:i().any},d={id:void 0,dataUrl:void 0,operations:void 0,itemActions:void 0,columns:void 0,data:void 0,searchFilters:void 0,searchOveral:void 0,disabledSelectHint:void 0,isDisabledItem:void 0,onRedraw:void 0,emptyViewMode:void 0,emptyView:void 0},l=(0,o.default)(n.List,{propsList:Object.keys(r),defaultProps:d});l.displayName="JswList",l.propTypes=r;const c=l},1535:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(285),i=s(89);const n=(e,{propsList:t=[],setters:s={},defaultProps:n={}})=>o=>{const r=(0,a.useRef)(),d=(0,a.useRef)(),[l,c]=Object.entries({...n,...o}).reduce(((e,[s,a])=>(e[t.includes(s)?0:1][s]=a,e)),[{},{}]),m=t.map((e=>{const t=l[e];return s[e]?(d.current?.[s[e]](t),null):t}));return(0,a.useLayoutEffect)((()=>(d.current=new e(l),(0,i.render)(r.current,d.current),()=>{d.current.remove(),d.current=null})),[c.key,...m]),(0,a.jsx)("div",{ref:r,...c})}},2596:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>o});var a=s(286),i=s(646),n=s(285);const o=({buttons:e})=>{const t=(0,i.useNavigateCallback)();return(0,n.jsx)(a.ToolbarGroup,{title:"",children:Object.entries(e).map((([e,{title:s,url:i,description:o}])=>(0,n.jsx)(a.Button,{id:e,component:"a",role:"link",href:i,tooltip:o,onClick:t,children:s},e)))})}},2598:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>v});var a=s(579),i=s(286),n=s(89),o=s(1873),r=s.n(o),d=s(646),l=s(536),c=s(285);const m=n.Locale.getTranslate("components.pages.Databases.List"),u=n.Locale.getSection("components.pages.Databases.List"),p=e=>(0,c.jsx)(i.Icon,{size:"24",className:"smb-web-view-dynamic-list-actions__item-icon smb-web-view-dynamic-list-actions__item-icon--colored",...e}),h=({icon:e})=>(0,c.jsx)("svg",{focusable:"false",children:(0,c.jsx)("use",{href:`${r()}#${e}`})}),b=e=>(0,c.jsx)("a",{onClick:(0,d.useNavigateCallback)(),...e}),g=e=>"name"in e,v=({databaseId:e,buttons:t,urlPrefix:s,subscriptionStatus:n,onCheckAndRepair:o,onWebAdmin:r})=>{const d={openWebAdmin:{icon:"phpmyadmin",props:{"data-action-name":"openWebAdmin",onClick:r}},connectionInfo:{icon:"connection",props:{component:a.Link,"data-action-name":"connectionInfo",to:`${s}${e}/connection-info`}},downloadDump:{icon:"export",props:{component:a.Link,"data-action-name":"downloadDump",to:n?`${s}${e}/dump`:"",onClick:()=>{n||(0,l.addToast)({intent:"danger",message:(0,c.jsx)(m,{content:"dumpSubscriptionIsTurnedOff",params:{action:u.lmsg("dumpExport")}})})}}},uploadDump:{icon:"import",props:{component:a.Link,"data-action-name":"uploadDump",to:n?`${s}${e}/import`:"",onClick:()=>{n||(0,l.addToast)({intent:"danger",message:(0,c.jsx)(m,{content:"dumpSubscriptionIsTurnedOff",params:{action:u.lmsg("dumpImport")}})})}}},copy:{icon:"copy",props:{component:a.Link,"data-action-name":"copyDb",to:`${s}${e}/copy`}},checkDatabase:{icon:"repair",props:{"data-action-name":"checkDatabase",onClick:()=>o()}},assignToSubscription:{icon:"globe",props:{component:a.Link,"data-action-name":"assignToSubscription",to:`${s}${e}/assign`}}};return(0,c.jsx)("div",{className:"smb-web-view-dynamic-list-actions","data-cy":`database-actions-${e}`,children:(0,c.jsx)(i.ItemList,{minColumnWidth:220,gap:"xs",className:"smb-web-view-dynamic-list-item-list",children:t.map((e=>{if(g(e)&&e.name in d){const t=d[e.name],{component:s,...a}=t.props;return(0,c.jsx)(i.Item,{className:"smb-web-view-dynamic-list-actions__item",title:(0,c.jsx)(m,{content:e.name}),icon:(0,c.jsx)(p,{children:(0,c.jsx)(h,{icon:t.icon})}),component:s,...a},e.name)}return(e=>!g(e))(e)?(0,c.jsx)(i.Item,{className:"smb-web-view-dynamic-list-actions__item",title:e.title,icon:(0,c.jsx)(p,{src:e.icon}),component:b,href:e.href,tooltip:e.comment},e.title):null}))})})}},2593:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>P});var a=s(1120),i=s(628),n=s(580),o=s(579),r=s(285),d=s(596),l=s.n(d),c=s(286),m=s(89),u=s(2477),p=s(2594),h=s(536),b=s(2596),g=s(2597),v=s(2598),f=s(2599),y=s(2600),w=s(2601),_=s(620),k=s(1173),x=s(1426);s(2602);const C=m.Locale.getTranslate("components.pages.Databases.List"),S=m.Locale.getSection("components.pages.Databases.List"),j=a.gql` mutation DeleteDatabase($input: DeleteDatabaseInput!) { deleteDatabase(input: $input) { ids } } `,I=({domainId:e,data:t={},subscriptionStatus:a=!1,allowCreateDatabase:d=!1,registerListReloader:l})=>{const I=void 0!==(0,n.useParams)().domainId?"":`${e}/`,P=`/smb/database/list/domainId/${e}`,[$,L]=(0,r.useState)(t),[T,D]=(0,r.useState)(d),[E,B]=(0,r.useState)([]),N=(0,y.usePasswordPrompt)(),R=(0,r.useCallback)((async()=>{try{const t=await m.api.get(`/smb/database/list-size-data/domainId/${e}`);B(t)}catch(e){if(Array.isArray(e.statusMessages))return e.statusMessages.forEach((({content:e})=>(0,h.addToast)({intent:"danger",message:e})));(0,h.addToast)({intent:"danger",message:e.message})}}),[e]);(0,r.useEffect)((()=>{R()}),[R]);const M=async({url:e=P,params:t}={})=>{t&&(e=(0,k.buildUrl)(e,t));const{activeListProps:s,allowCreateDatabase:a}=await m.api.get(e);L(s),D(a)},{renderPagination:U,sortParams:F,loading:A,filter:O,handleFilter:q,handleReload:H}=(0,_.useList)({initialFilter:Object.entries($.state.searchFilters??{}).reduce(((e,[t,{searchText:s}])=>({...e,[t]:s})),{}),pagination:{current:$.pager.current,totalPage:$.pager.pageCount,itemsPerPage:$.pager.itemCountPerPage,async onSort(){},async onPageChange(e){await M({params:{page:e}})},async onChangeItemsPerPage(e){await M({params:{"items-per-page":e}})}},sort:{direction:"up"===$.state.sortDirection?"ASC":"DESC",column:$.state.sortField,async onChange({sortColumn:e,sortDirection:t}){const s=`${P}/sort-field/${e}/sort-dir/${"ASC"===t?"up":"down"}`;await M({url:s})}},async onFilter(e){await M({params:Object.entries(e).reduce(((e,[t,s])=>({...e,[`searchFilter[${t}][searchText]`]:s})),{})})},async onReload(){R(),await M()}});l((()=>H()));const W=!!O.name,[z]=(0,i.useMutation)(j,{awaitRefetchQueries:!0,onCompleted:()=>{(0,h.addToast)({intent:"success",message:(0,r.jsx)(C,{content:"databaseRemoved"})}),H()},onError:e=>{(0,h.addToast)({intent:"danger",message:(0,x.getGraphQlErrorMessage)(e)})}}),V=({id:e,askPasswordForWebadmin:t,webadminUserLogin:s})=>N.getButtonClickHandler({isPasswordRequired:t,userLogin:s,onPasswordlessClick:()=>(0,w.openWebAdmin)(e),onPasswordSubmit:t=>(0,w.openWebAdmin)(e,{dbPassword:t})}),Q=(0,r.jsx)(c.Button,{component:o.Link,to:`${I}add`,intent:"primary",icon:"plus","data-action-name":"btn-add",children:(0,r.jsx)(C,{content:"add"})}),{0:J,...G}=$.toolbar.buttons,Y=(0,r.jsx)(c.List,{loading:A,data:$.data,"data-test-id":"databases-list",rowKey:"id",filtered:W,renderRowBody:t=>{const s=["deleteConfirmation"];return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(v.default,{databaseId:t.id,urlPrefix:I,subscriptionStatus:a,buttons:t.buttons.filter((({name:e})=>!e||!s.includes(e))),onCheckAndRepair:()=>(async e=>{try{await m.api.post(`/smb/database/check/id/${e}`),H()}catch({message:e}){(0,h.addToast)({intent:"danger",message:e})}})(t.id),onWebAdmin:V(t)}),(0,r.jsx)(f.default,{domainId:e,database:t,sizeData:E.find((({id:e})=>e===t.id))})]})},totalRows:$.pager.totalItemCount,...F,pagination:U(),toolbar:(0,r.jsxs)(c.Toolbar,{children:[T&&(0,r.jsx)(c.ToolbarGroup,{title:"",children:Q}),Object.keys(G).length>0&&(0,r.jsx)(b.default,{buttons:G}),(0,r.jsx)(c.ToolbarExpander,{}),(0,r.jsx)(c.ToolbarGroup,{groupable:!1,title:"",children:(0,r.jsx)(c.SearchBar,{name:"search",inputProps:{value:O.name,placeholder:S.lmsg("find")},onSearch:e=>q({name:e})})})]}),columns:[{type:"title",title:(0,r.jsx)(C,{content:"databaseColumn"}),sortable:!0,key:"name",width:"28%",render:({name:e,fork:t,type:a})=>{const i=(t||a).toLowerCase();return(0,r.jsxs)(c.Status,{icon:{size:"24",src:s(2603)(`./${i}.svg`)},children:[e,(0,r.jsx)("div",{className:"database-page-title-actions",children:(0,r.jsx)(c.Tooltip,{title:(0,r.jsx)(C,{content:"copyDatabaseName"}),children:(0,r.jsx)(c.Action,{icon:{name:"copy",size:12},className:"database-page-title-actions__action",onClick:()=>{(0,c.copyToClipboard)(e),(0,h.addToast)({intent:"success",message:(0,r.jsx)(C,{content:"copySuccess",params:{name:(0,r.jsx)(c.Text,{bold:!0,children:e})}})})},"data-action-name":"copyDatabaseName"})})})]})}},{type:"title",title:(0,r.jsx)(C,{content:"relatedToColumn"}),key:"relatedTo",render:({isUsedByApp:e,assignedDomainName:t,id:s})=>{if(e)return t&&(0,r.jsx)(C,{content:"relatedToDomains",params:{domains:t}});const a=$.domains.filter((({lastDatabaseSelectedId:e})=>s===e)),i=a.map((({name:e})=>e));let n=(0,r.jsx)(C,{content:"relatedToDomains",params:{domains:i.join(", ")}}),o={};return 0===a.length&&(n=null,o={icon:null,children:(0,r.jsx)(C,{content:"noRelatedDomains"}),"data-action-name":"assign"}),(0,r.jsxs)(g.default,{value:a[0]?.id??"",onChange:e=>(async(e,t)=>{await m.api.post("/smb/database/set-related-domain",{id:e,domainId:t}),H()})(s,e),label:n,editButtonProps:o,children:[(0,r.jsx)("option",{value:"",children:S.lmsg("noDomainRelations")}),$.domains.map((({id:e,name:t})=>(0,r.jsx)("option",{value:e,children:t},e)))]})}},{type:"actions",render:({id:e,name:t,allowWebadmin:s,askPasswordForWebadmin:a,webadminUserLogin:i,hasConnectionError:n,isUsedByApp:o,type:d,MSSQLClientInstruction:l,MSSQLClientInstructionLink:m})=>(0,r.jsxs)(c.ListActions,{children:["mssql"===d.toLowerCase()?(0,r.jsx)(c.ListAction,{primary:!0,icon:"my-little-admin",component:"a",href:m,target:"_blank",rel:"noopener noreferrer",hidden:!l,tooltip:(0,r.jsx)(C,{content:"downloadMsSqlClientHint"}),children:(0,r.jsx)(C,{content:"downloadMsSqlClient"})}):(0,r.jsx)(c.ListAction,{primary:!0,icon:"phpmyadmin","data-cy":"phpmyadmin",hidden:!s,disabled:n,tooltip:(0,r.jsx)(C,{content:"webadminHint"}),onClick:V({id:e,askPasswordForWebadmin:a,webadminUserLogin:i}),children:(0,r.jsx)(C,{content:"webadmin"})}),(0,r.jsx)(c.ListAction,{primary:!0,icon:"recycle","data-action-name":"deleteConfirmation",disabled:o,tooltip:o?(0,r.jsx)(C,{content:"removeButtonDisabledHint"}):null,children:({wrap:s})=>(0,r.jsx)(u.default,{target:s((0,r.jsx)(C,{content:"remove"})),confirmationText:(0,r.jsx)(C,{content:"removeConfirmation",params:{name:(0,r.jsx)("b",{children:t})}}),isCritical:!0,onClick:()=>(async e=>{await z({variables:{input:{ids:[btoa(`Database:${e}`)]}}})})(e)})})]})}],emptyView:(0,r.jsx)(c.ListEmptyView,{actions:!W&&T&&Q})});return(0,r.jsxs)(r.Fragment,{children:[Y,(0,r.jsx)(p.default,{...N.drawerProps})]})};I.propTypes={allowCreateDatabase:l().bool,subscriptionStatus:l().bool,domainId:l().number.isRequired,domains:l().arrayOf(l().shape({id:l().number.isRequired,name:l().string.isRequired,lastDatabaseSelectedId:l().number}).isRequired),data:l().arrayOf(l().shape({id:l().number.isRequired,name:l().string.isRequired,fork:l().string.isRequired,type:l().string.isRequired,serverHost:l().string.isRequired,serverPort:l().string.isRequired,typeTitle:l().string.isRequired,serverId:l().number.isRequired,allowWebadmin:l().bool.isRequired,hasConnectionError:l().bool.isRequired,isUsedByApp:l().bool.isRequired,assignedDomainName:l().string,actions:l().arrayOf(l().shape({name:l().string.isRequired})),users:l().arrayOf(l().shape({id:l().number.isRequired,login:l().string.isRequired}))}).isRequired),registerListReloader:l().func.isRequired};const P=I},2599:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>m});var a=s(596),i=s.n(a),n=s(286),o=s(89),r=s(646),d=s(285);const l=o.Locale.getTranslate("components.pages.Databases.DatabaseSummary"),c=({domainId:e,database:{id:t,serverHost:s,serverPort:a,typeTitle:i,hasConnectionError:o,users:c},sizeData:m=null})=>(0,d.jsx)("div",{className:"smb-web-view-dynamic-list-item-summary",children:(0,d.jsxs)("div",{className:"smb-web-view-dynamic-list-item-summary__list",children:[(0,d.jsxs)("div",{className:"smb-web-view-dynamic-list-item-summary__item",children:[(0,d.jsx)(n.Text,{intent:"muted",children:(0,d.jsx)(l,{content:"host"})})," ",s,":",a," ",`(${i})`,o&&(0,d.jsxs)(n.Text,{intent:"danger",children:[" ",(0,d.jsx)(l,{content:"serverUnavailable"})]})]}),(0,d.jsx)("div",{className:"smb-web-view-dynamic-list-item-summary__item",children:(()=>{if(c.length>0){const t=c.slice(0,4);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.Text,{intent:"muted",children:(0,d.jsx)(l,{content:1===c.length?"user":"users"})})," ",t.map((({id:e,login:s},a)=>(0,d.jsxs)("span",{children:[(0,d.jsx)(r.default,{to:`/smb/database/edit-user/id/${e}`,children:s}),a<t.length-1?", ":""]},e))),t.length<c.length&&(0,d.jsxs)("span",{children:["... ",(0,d.jsx)(r.default,{to:`/smb/database/users-list/domainId/${e}`,className:"smb-web-view-dynamic-list-item-summary__item-static-link",children:(0,d.jsx)(l,{content:"seeAll"})})]})]})}return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.Text,{intent:"danger",children:(0,d.jsx)(l,{content:"noUser"})})," ",!o&&(0,d.jsx)(r.default,{to:`/smb/database/create-user/domainId/${e}/database/${t}`,children:(0,d.jsx)(l,{content:"createUser"})})]})})()}),o?null:m?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"smb-web-view-dynamic-list-item-summary__item",children:[(0,d.jsx)(n.Text,{intent:"muted",children:(0,d.jsx)(l,{content:"tablesCount"})})," ",m.tables]}),(0,d.jsxs)("div",{className:"smb-web-view-dynamic-list-item-summary__item",children:[(0,d.jsx)(n.Text,{intent:"muted",children:(0,d.jsx)(l,{content:"size"})})," ",m.size]})]}):(0,d.jsx)("div",{className:"smb-web-view-dynamic-list-item-summary__item",children:(0,d.jsx)(n.Status,{progress:!0,children:(0,d.jsx)(l,{content:"calculatingSize"})})})]})});c.propTypes={domainId:i().number.isRequired,database:i().shape({id:i().number.isRequired,serverHost:i().string.isRequired,serverPort:i().string.isRequired,typeTitle:i().string.isRequired,hasConnectionError:i().bool.isRequired,users:i().arrayOf(i().shape({id:i().number.isRequired,login:i().string.isRequired}))}).isRequired,sizeData:i().shape({tables:i().number.isRequired,size:i().string.isRequired})};const m=c},2592:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>m});var a=s(580),i=s(596),n=s.n(i),o=s(2593),r=s(2609),d=s(2258),l=s(285);const c=({activeListProps:e,domainId:t,subscriptionStatus:s=!1,allowCreateDatabase:i=!1})=>{const n=(0,r.default)();return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(d.default,{domainId:t}),(0,l.jsx)(o.default,{allowCreateDatabase:i,subscriptionStatus:s,domainId:t,data:e,registerListReloader:n.setCallback},t),(0,l.jsx)(a.Outlet,{context:{reloadDatabaseList:n.callback}})]})};c.propTypes={allowCreateDatabase:n().bool,subscriptionStatus:n().bool,activeListProps:n().object.isRequired,domainId:n().string.isRequired};const m=c},2597:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>o});var a=s(286),i=s(285);const n=s(89).Locale.getTranslate("components.pages.Databases.InPlaceSelect"),o=({onChange:e,value:t,label:s,children:o,editButtonProps:r={},...d})=>{const[l,c]=(0,i.useState)(!1),[m,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(t),b=()=>c((e=>!e));return(0,i.jsxs)("div",{children:[!l&&s,!l&&(0,i.jsx)(a.Button,{ghost:!0,state:m?"loading":void 0,onClick:b,icon:{name:"pencil"},tooltip:(0,i.jsx)(n,{content:"editButtonHint"}),...r}),l&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.Select,{onClick:e=>{e.preventDefault(),e.stopPropagation()},...d,searchable:!0,defaultValue:t,onChange:e=>{h(e)},children:o}),(0,i.jsx)(a.Button,{ghost:!0,"data-action-name":"assign-confirm",onClick:async()=>{u(!0),b(),await(e?.(p)),u(!1)},icon:{name:"check-mark"},tooltip:(0,i.jsx)(n,{content:"saveButtonHint"})}),(0,i.jsx)(a.Button,{ghost:!0,"data-action-name":"assign-cancel",onClick:()=>{h(t),b()},icon:{name:"cross-mark"},tooltip:(0,i.jsx)(n,{content:"closeButtonHint"})})]})]})}},2591:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>a.default});var a=s(2592)},2601:(e,t,s)=>{"use strict";s.r(t),s.d(t,{openWebAdmin:()=>i});var a=s(89);const i=(e,t={})=>(0,a.redirect)({url:`/database/webadmin/id/${e}`,method:t.dbPassword?"post":"get",data:t,target:"dbedit"})},2600:(e,t,s)=>{"use strict";s.r(t),s.d(t,{usePasswordPrompt:()=>i});var a=s(285);const i=(e=!1)=>{const[t,s]=(0,a.useState)(e),[i,n]=(0,a.useState)(null);return{getButtonClickHandler:({isPasswordRequired:e,userLogin:t,onPasswordlessClick:a,onPasswordSubmit:i})=>e?()=>{n({userLogin:t,onPasswordSubmit:e=>{i(e),s(!1)}}),s(!0)}:()=>a(),drawerProps:{isOpen:t,onClose:()=>s(!1),...i}}}},2590:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>u});var a=s(596),i=s.n(a),n=s(286),o=s(89),r=s(646),d=s(1172),l=s(285);const c=o.Locale.getTranslate("smb.controllers.database.list"),m=({domainId:e,canManageServerDb:t,canManageBackup:s})=>(0,l.jsx)(d.default,{id:"panel-database-commonButtonsSection",children:(0,l.jsxs)(n.ItemList,{children:[(0,l.jsx)(n.Item,{icon:(0,l.jsx)(n.Icon,{name:"user",size:"16"}),component:r.default,to:`/smb/database/users-list/domainId/${e}`,children:(0,l.jsx)(c,{content:"buttonUsersManagement"})}),t?(0,l.jsx)(n.Item,{icon:(0,l.jsx)(n.Icon,{name:"server",size:"16"}),component:r.default,to:"/cp/server/db/",children:(0,l.jsx)(c,{content:"buttonDatabaseServers"})}):null,s?(0,l.jsx)(n.Item,{icon:(0,l.jsx)(n.Icon,{name:"backup",size:"16"}),component:"a",href:`/smb/account/switch/id/${e}?hideNotice=1&returnUrl=/smb/web/backup`,children:(0,l.jsx)(c,{content:"buttonBackup"})}):null]})});m.propTypes={domainId:i().number.isRequired,canManageServerDb:i().bool.isRequired,canManageBackup:i().bool.isRequired};const u=m},2258:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>h});var a=s(285),i=s(586),n=s(580),o=s(581),r=s(286),d=s(89),l=s(646),c=s(2259),m=s(2260),u=s.n(m);const p=d.Locale.getTranslate("components.pages.Databases.Page"),h=({domainId:e})=>{const{data:t}=(0,i.useQuery)(u(),{variables:{domainId:btoa(`Domain:${e}`)}}),{type:s,permissions:{manageServerDb:d}}=t.viewer,{packages:{isBackupManagerInstalled:m}}=t.capability;(0,c.assertNodeTypename)(t.domain,"Domain");const{subscription:{permissions:{manageBackupRestore:h}}}=t.domain,b=(0,a.useMemo)((()=>"ADMIN"===s&&d),[s,d]),g=(0,a.useMemo)((()=>m&&h),[m,h]),v=(0,a.useMemo)((()=>[{"data-id":"databaseTab",title:(0,a.jsx)(p,{content:"databaseTab"}),url:`/smb/database/list/domainId/${e}`},{"data-id":"userTab",title:(0,a.jsx)(p,{content:"userTab"}),url:`/smb/database/users-list/domainId/${e}`}]),[e]),{pathname:f}=(0,n.useLocation)(),y=(0,a.useMemo)((()=>v.findIndex((({url:e})=>(0,o.matchPath)(e,f)))+1),[v,f]);return(0,a.jsx)(r.Tabs,{active:y,addon:[b,g].some(Boolean)?(0,a.jsxs)(r.ButtonGroup,{children:[b&&(0,a.jsx)(r.Button,{component:l.default,ghost:!0,icon:"server",to:"/cp/server/db","data-id":"databaseServers",children:(0,a.jsx)(p,{content:"serversLink"})}),g&&(0,a.jsx)(r.Button,{component:l.default,ghost:!0,icon:"backup",to:`/smb/account/switch/id/${e}?hideNotice=1&returnUrl=/smb/web/backup`,"data-id":"backup",children:(0,a.jsx)(p,{content:"backupLink"})})]}):void 0,children:v.map((({url:e,...t})=>(0,a.jsx)(r.Tab,{component:l.default,to:e,...t},e)))})}},1426:(e,t,s)=>{"use strict";s.r(t),s.d(t,{getGraphQlErrorMessage:()=>a});const a=({graphQLErrors:e,message:t})=>{if(e.length){const{message:t,extensions:s}=e[0];return`${s?.debugMessage||t}`}return t}},2259:(e,t,s)=>{"use strict";function a(e,t){if(e.__typename!==t)throw new Error(`GraphQL type assertion failed: expected ${t} but received ${e.__typename}`)}s.r(t),s.d(t,{assertNodeTypename:()=>a})},2609:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>i});var a=s(285);const i=()=>{const e=(0,a.useRef)();return{setCallback(t){e.current=t},callback:e.current}}},2611:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>h});var a=s(596),i=s.n(a),n=s(89),o=s(646),r=s(1535),d=s(536),l=s(285);class c extends n.ActiveList{_initConfiguration(e){super._initConfiguration(e),this.domains=this._getConfigParam("domains",[])}itemCaptionHeadView(e){const t=super.itemCaptionHeadView(e),s=e.users.slice(0,4);return t.children.push((0,n.createElement)(".caption-summary",(0,n.createElement)(".caption-summary-wrap",(0,n.createElement)("span.summary-item",(0,n.createElement)("b",this.lmsg("hostLabel")+(0,n.escapeHtml)(`${e.serverHost}${e.serverPort>0?`:${e.serverPort}`:""} (${e.typeTitle})`)),e.hasConnectionError?[" ",(0,n.createElement)("span.state-error",this.lmsg("serverUnavailable"))]:""),(0,n.createElement)("span.summary-item",e.users.length?[this.lmsg("users"),": ",(0,n.createElement)("b",s.map((({id:e,login:t})=>`<a href="${this.urls["edit-user"]}/id/${e}">${t}</a>`)).join(", ")+(e.users.length>s.length?", ...":""))]:[(0,n.createElement)("span.state-error",this.lmsg("noUsers")),e.hasConnectionError?"":[" ",(0,n.createElement)("a",{href:`${this.urls["create-user"]}/database/${e.id}`},`[${this.lmsg("addUser")}]`)]]),e.hasConnectionError?"":(0,n.createElement)("span.summary-item.ajax-loading",this.lmsg("calculatingSize"))))),t}itemCaptionHeadWrapView(e){const t=super.itemCaptionHeadWrapView(e);e.MSSQLClientInstruction&&e.MSSQLClientInstruction.length>0&&t.children.unshift((0,n.createElement)("span.caption-head-widget",(0,n.createElement)("a.btn",{onclick:this.itemActions.openMSSQLDownloadLink.bind(this.itemActions,e)},e.MSSQLClientInstruction))),e.allowWebadmin&&t.children.unshift((0,n.createElement)("span.caption-head-widget",(0,n.createElement)("a.btn",{onclick:this.itemActions.openWebAdmin.bind(this.itemActions,e)},e.webAdminTitle)));const s=this.domains.filter((({lastDatabaseSelectedId:t})=>e.id===t)).map((({name:e})=>e));return t.children.push((0,n.createElement)("span.caption-head-action",e.isUsedByApp?e.assignedDomainName?this.lmsg("relatedToDomains",{domains:e.assignedDomainName}):"":s.length>0?[this.lmsg("relatedToDomains",{domains:s.join(", ")})," ",(0,n.createElement)("a.toggler",{onclick:this.changeRelatedDomains.bind(this,e)},this.lmsg("changeRelatedDomain"))]:(0,n.createElement)("a.toggler",{onclick:this.changeRelatedDomains.bind(this,e)},this.lmsg("noRelatedDomains")))),e.isUsedByApp||t.children.push((0,n.createElement)("span.caption-head-action",{style:"display: none;"},this.lmsg("relatedToDomains",{domains:""}),(0,n.createElement)("select",(0,n.createElement)("option",{value:""},this.lmsg("noDomainRelations")),this.domains.map((({id:t,name:s,lastDatabaseSelectedId:a})=>(0,n.createElement)("option"+(e.id===a?"[selected]":""),{value:t},s))))," ",(0,n.createElement)("a.btn",{onclick:this.setRelatedDomains.bind(this,e)},this.lmsg("buttonOk")))),t}render(){super.render(),n.api.get(this.urls["list-size-data"]).then((e=>{if(!Array.isArray(e))throw e;return e})).then((e=>e.forEach((e=>{const t=this.getItemElement(e);if(!t)return;const s=t.querySelector(".summary-item");if(s.querySelector(".state-error"))return;const a=t.querySelectorAll(".summary-item"),i=a[a.length-1];e.hasConnectionError?(0,n.render)(s,` <span class="state-error">${this.lmsg("serverUnavailable")}</span>`):(0,n.render)(i,`<span class="summary-item">${this.lmsg("tables")}: <b>${e.tables}</b></span><span class="summary-item">${this.lmsg("size")}: <b>${e.size}</b></span>`,"before"),i.parentNode.removeChild(i)})))).catch((e=>{if(Array.isArray(e.statusMessages))return e.statusMessages.forEach((({content:e})=>(0,d.addToast)({intent:"danger",message:e})));(0,d.addToast)({intent:"danger",message:e.message})}))}changeRelatedDomains(e){const t=this.getItemElement(e).querySelectorAll(".caption-head-action");t[0].style.display="none",t[1].style.display=""}setRelatedDomains(e){const t=this.getItemElement(e);(0,n.redirectPost)(this.urls["set-related-domain"],{id:e.id,domainId:t.querySelector(".caption-head-action select").value})}}const m={additional:i().object,countMoreItems:i().number,data:i().array,domains:i().array,id:i().string,isCollapsible:i().bool,isNew:i().bool,itemActions:i().object,locale:i().object,pager:i().object,state:i().object,toolbar:i().object,urls:i().object,onNavigate:i().func},u={additional:void 0,countMoreItems:void 0,data:void 0,domains:void 0,id:void 0,isCollapsible:void 0,isNew:void 0,itemActions:void 0,locale:void 0,pager:void 0,state:void 0,toolbar:void 0,urls:void 0,onNavigate:void 0},p=(0,r.default)(c,{propsList:Object.keys(m),defaultProps:u});p.displayName="ActiveList",p.propTypes=m;const h=e=>{const t=(0,o.useNavigateCallback)();return(0,l.jsx)(p,{...e,onNavigate:t})}},2616:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(89);class i extends a.PopupForm{_initConfiguration(e){super._initConfiguration({locale:a.Locale.getSection("smb.components.lists.databases"),fullHeight:!0,...e}),this._ids=this._getConfigParam("ids",[]),this._handlerUrl=this._getConfigParam("handlerUrl","/database/assign-to-subscription"),this._sendButtonId=this._getConfigParam("sendButtonId","btn-send"),this._cancelButtonId=this._getConfigParam("cancelButtonId","btn-cancel")}render(){super.render(),this.setBoxType("form-box"),this.setTitle(this.lmsg("assignToSubscriptionPopupTitle")),document.getElementById(this._contentAreaId).innerHTML=`<p>${this.lmsg("assignToSubscriptionPopupDesc")}</p><form method="post" id="${this._id}-form"><div class="form-row"><div class="field-name"><label for="${this._id}-domain-name">${this.lmsg("assignToSubscription")}</label></div><div class="field-value" id="${this._id}-container"></div></form>`,this.initSearch(),this.initOnSubmitEvent(),this.addOkButton(),this.addCancelButton()}initSearch(){this._searchComponent=new a.LookUp({id:`${this._id}-domain-name`,name:`${this._id}-domain-name`,renderTo:`${this._id}-container`,locale:this.getLocale(),dataUrl:"/database/subscription-list/",copyTitleValue:!0})}onSubmitEvent(e){return this.handler(),e.preventDefault(),!1}initOnSubmitEvent(){const e=document.getElementById(`${this._id}-form`);e._formSubmit=e.submit,e.submit=this.onOkClick.bind(this),e.addEventListener("submit",this.onSubmitEvent.bind(this))}addOkButton(){this.addRightButton(a.Locale.getSection("components.buttons").lmsg("ok"),this.onOkClick,!0,!0,{id:this._sendButtonId})}addCancelButton(){this.addRightButton(a.Locale.getSection("components.buttons").lmsg("cancel"),this.onCancelClick,!1,!1,{id:this._cancelButtonId})}onOkClick(){this.handler()}onCancelClick(){this.hide()}disable(){const e=document.getElementById(this._sendButtonId);e&&(e.disabled=!0,e.classList.add("disabled"),this._sendButtonTitle||(this._sendButtonTitle=e.innerHTML),e.innerHTML=`<span class="wait">${this.lmsg("loading")}</span>`);const t=document.getElementById(this._cancelButtonId);t&&(t.disabled=!0,t.classList.add("disabled"))}enable(){const e=document.getElementById(this._sendButtonId);e&&(e.disabled=!1,e.innerHTML=this._sendButtonTitle,e.classList.remove("disabled"));const t=document.getElementById(this._cancelButtonId);t&&(t.disabled=!1,t.classList.remove("disabled"))}onException(e){this._addErrorMessage(`Internal error: ${e}`),this.enable()}onSuccess(e){(0,a.clearStatusMessages)(),this.processForm(e)}processForm(e){e.status&&"error"===e.status?((e.statusMessages||[]).forEach((function(e){(0,a.addStatusMessage)(e.status,e.content,{title:e.title})})),this.hide()):document.location.reload()}handler(){const e=this._searchComponent.getDisplayValue();e&&a.api.post((0,a.prepareUrl)(this._handlerUrl),{domainName:e,ids:this._ids}).then(this.onSuccess.bind(this)).catch(this.onException.bind(this))}}const n=i},2610:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>u});var a=s(285),i=s(596),n=s.n(i),o=s(89),r=s(1534);const d=o.Locale.getSection("smb.controllers.database.list"),l=o.Locale.getSection("smb.components.lists.databases"),c=e=>{switch(e){case"mysql":return s(2358);case"mariadb":return s(2361);case"percona":return s(2362);case"mssql":return s(2359);case"postgresql":return s(2360)}return""},m=({domainId:e,data:t,searchFilters:s,allowCreateDatabase:i=!1,resourceUsage:n,itemActions:m})=>{const u=(0,a.useMemo)((()=>[o.list.COLUMN_SELECTION,{header:l.lmsg("type"),headerCls:"icon",sortable:!0,dataIndex:"type",cls:"min",renderer:({typeTitle:e,fork:t})=>(0,o.createElement)("img",{width:"16",height:"16",title:e,src:c(t)})},{header:l.lmsg("name"),sortable:!0,dataIndex:"name",renderer:({name:e,isUsedByApp:t})=>`${e}${t?` (${l.lmsg("disabledSelectHint")})`:""}`},{header:l.lmsg("server"),sortable:!1,dataIndex:"server",renderer:({serverHost:e,serverPort:t,typeTitle:s})=>`${e}${0<t?`:${t}`:""}(${s})`},{header:l.lmsg("users"),sortable:!1,dataIndex:"users",renderer({users:e}){const t=e.slice(0,4).map((({id:e,login:t})=>(0,o.createElement)("a",{href:`/smb/database/edit-user/id/${e}`},t)));return[...t.map(((e,s)=>[e,s===t.length-1?"":", "])),e.length>t.length?", ...":""]}},o.list.COLUMN_ACTIONS]),[]),p=(0,a.useMemo)((()=>[i?{componentType:o.SmallButton,id:"buttonAddDatabase",title:d.lmsg("buttonAddNewDatabase"),description:`${d.lmsg("buttonAddNewDatabaseHint")} ${n}`,addCls:"sb-add-db btn-primary",href:`/smb/database/create/domainId/${e}`}:null,i?{componentType:o.bar.Separator}:null,{componentType:o.SmallButton,id:"buttonRemoveDatabase",title:l.lmsg("remove"),description:l.lmsg("hintRemove"),addCls:"sb-remove-selected",handler(e){const t=(0,o.getComponent)("databases-list"),s=t.getSelectedItems();t.execGroupOperation({url:"/smb/database/delete",subtype:o.messageBox.SUBTYPE_DELETE,mouseEvent:e,text:l.formatMessage("confirmOnDelete",{name:`<b>${(0,o.escapeHtml)(s[0]?.name)}</b>`,count:s.length})})}},{componentType:o.list.AdditionalActions,cls:"actions-menu list-type-switcher",titleAddCls:"sb-manage",operations:[{componentType:o.SmallButton,id:"buttonActiveList",title:l.lmsg("buttonActiveList"),description:l.lmsg("buttonActiveListHint"),cls:"sb-btn",addCls:"sb-active-list",handler(){(0,o.redirect)("?list-type=active")}}]}]),[i,e,n]);return(0,a.jsx)(r.default,{data:t,columns:u,operations:p,searchFilters:s,id:"databases-list",searchOveral:"name",dataUrl:`/smb/database/list-data/domainId/${e}`,disabledSelectHint:l.lmsg("disabledSelectHint"),isDisabledItem:({isUsedByApp:e})=>!!e,itemActions:m})};m.propTypes={domainId:n().number.isRequired,data:n().object.isRequired,searchFilters:n().object.isRequired,allowCreateDatabase:n().bool,resourceUsage:n().string,itemActions:n().object.isRequired};const u=m},2613:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(89);class i extends a.PopupForm{_initConfiguration(e){super._initConfiguration(e),this._serverAddress=this._getConfigParam("serverAddress"),this._databaseName=this._getConfigParam("databaseName"),this._userLogin=this._getConfigParam("userLogin"),this._userPassword=this._getConfigParam("userPassword")}render(){super.render(),this.setBoxType("form-box"),this.setTitle(this.lmsg("connectionInfoTitle").replace("%%database%%",(0,a.escapeHtml)(this._databaseName))),this.setHint1(this.lmsg("connectionInfoDesc")),document.getElementById(this._contentAreaId).innerHTML=`<div class="form-row"><div class="field-name">${this.lmsg("connectionInfoServerAddress")}</div><div class="field-value"><div class="text-value"><b>${(0,a.escapeHtml)(this._serverAddress)}</b></div></div></div><div class="form-row"><div class="field-name">${this.lmsg("connectionInfoDatabaseName")}</div><div class="field-value"><div class="text-value"><b>${(0,a.escapeHtml)(this._databaseName)}</b></div></div></div><div class="form-row"><div class="field-name">${this.lmsg("connectionInfoUserLogin")}</div><div class="field-value"><div class="text-value"><b>${(0,a.escapeHtml)(this._userLogin)}</b></div></div></div><div class="form-row"><div class="field-name">${this.lmsg("connectionInfoUserPassword")}</div><div class="field-value"><div class="text-value"><b>${(0,a.escapeHtml)(this._userPassword)}</b></div></div></div>`,this.addRightButton(this.lmsg("buttonClose"),(()=>{this.hide()}))}}const n=i},2589:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>b});var a=s(596),i=s.n(a),n=s(89),o=s(603),r=s(2590),d=s(2591),l=s(2610),c=s(2611),m=s(2612),u=s(285);const p=n.Locale.getTranslate("smb.controllers.database.list"),h=({activeListProps:e,dumpPathMaxLength:t,invalidPathChars:s,showNewDatabaseList:a=!1,subscriptionStatus:i=!0,...n})=>{if(a)return(0,u.jsx)(d.default,{activeListProps:e,subscriptionStatus:i,...n});const o=new m.default({dumpPathMaxLength:t,invalidPathChars:s,subscriptionStatus:i});return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("p",{children:(0,u.jsx)(p,{content:"hint"})}),e?(0,u.jsx)(c.default,{itemActions:o,...e}):(0,u.jsx)(l.default,{itemActions:o,...n})]})};h.propTypes={activeListProps:i().object,dumpPathMaxLength:i().number.isRequired,invalidPathChars:i().string.isRequired,subscriptionStatus:i().bool,showNewDatabaseList:i().bool};const b=(0,o.withPageLayout)(h,(({sidebarProps:e,showNewDatabaseList:t})=>({secondary:t?void 0:(0,u.jsx)(r.default,{...e})})))},2614:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(89);class i extends a.PopupForm{_initConfiguration(e){super._initConfiguration(e),this._databaseId=this._getConfigParam("databaseId"),this._databaseName=this._getConfigParam("databaseName"),this._isWebspace=this._getConfigParam("isWebspace",!1),this._dumpExt="mssql"===this._getConfigParam("databaseType")?".zip":".sql.zip",this._dumpPathMaxLength=this._getConfigParam("dumpPathMaxLength"),this._invalidPathChars=this._getConfigParam("invalidPathChars",""),this._dbPassword=this._getConfigParam("dbPassword","")}getDateString(){const e=function(e){return`0${e}`.slice(-2)},t=new Date;return`${t.getFullYear()}-${e(t.getMonth()+1)}-${e(t.getDate())}_${e(t.getHours())}-${e(t.getMinutes())}-${e(t.getSeconds())}`}render(){super.render(),this.setBoxType("form-box"),this.setTitle(this.lmsg("downloadPopupTitle")),this.setTitleType(this._getConfigParam("titleCls","pp-download"));const e=(0,a.escapeHtml)(`${this._databaseName}_${this.getDateString()}`),t=this._isWebspace?`<div class="form-row"><div class="field-name"><label>${this.lmsg("downloadRelativePath")}</label></div><div class="field-value"><div class="scrollable fm-scrollable"><div class="scrollable-wrap"><div id="${this._id}-files-tree" class="tree"></div></div></div></div></div>`:"";document.getElementById(this._contentAreaId).innerHTML=`<form method="post" id="${this._id}-form"><p>${this.lmsg("downloadHint").replace("%%database%%",`<b>${(0,a.escapeHtml)(this._databaseName)}</b>`)}</p>${t}<div class="form-row"><div class="field-name"><label for="${this._id}-dump-name">${this.lmsg("downloadDumpName")}</label></div><div class="field-value"><input id="${this._id}-dump-name" type="text" class="input-text f-middle-size" value="${e}">${this._dumpExt}<span class="field-errors" style="display: none;"></span></div></div><div class="form-row"><div class="single-row"><div class="indent-box"><input type="checkbox" id="${this._id}-download-dump-automatically" class="checkbox"><div class="indent-box-content"><label for="${this._id}-download-dump-automatically">${this.lmsg("downloadDumpAutomatically")}</label></div></div></div></div></form>`,this._isWebspace&&(this._tree=new a.FileManager.Tree({applyTo:`${this._id}-files-tree`,data:null,dataUrl:`/file-manager/tree-data/domainId/${this._getConfigParam("domainId")}`,rootNodeTitle:this.lmsg("rootDirectory"),waitMessage:this.lmsg("waitMessage"),onReload(){this.setDirectory("/")}})),document.getElementById(`${this._id}-form`).addEventListener("submit",(e=>{this.onOkClick(e)})),this._buttonOk=this.addRightButton(a.Locale.getSection("components.buttons").lmsg("ok"),this.onOkClick,!0,!0),this._buttonCancel=this.addRightButton(a.Locale.getSection("components.buttons").lmsg("cancel"),this.onCancelClick,!1,!1),document.getElementById(`${this._id}-dump-name`).focus()}onOkClick(e){if(e&&e.preventDefault(),this._buttonOk.disabled)return;this.clearFieldErrors();const t=document.getElementById(`${this._id}-dump-name`).value;if(""===t)return void this.addFieldError(this.lmsg("errorDumpNameEmpty"));if(this._invalidPathChars.length&&t.match(new RegExp(`[${this._invalidPathChars}]`)))return void this.addFieldError(this.lmsg("errorDumpNameInvalid").replace("%%chars%%",this._invalidPathChars));const s={relativePath:this._isWebspace&&this._tree.getSelectedItemData()?this._tree.getSelectedItemData().path:"",dumpName:t+this._dumpExt,dbPassword:this._dbPassword};if(`${s.relativePath}/${s.dumpName}`.length>this._dumpPathMaxLength)return void this.addFieldError(this.lmsg("errorDumpNameTooLong").replace("%%maxLength%%",this._dumpPathMaxLength));let i=document.getElementById(`${this._id}-download-dump-automatically`).checked;this._updateButton(this._buttonOk,{disabled:!0}),this._updateButton(this._buttonCancel,{disabled:!0});const n=Element.cumulativeOffset(this._buttonOk),o=(0,a.getComponent)("asyncProgressBarWrapper"),r=o.fly(n,this.lmsg("downloadTask").replace("%%database%%",(0,a.escapeHtml)(this._databaseName)),(()=>{this.hide(),a.api.post((0,a.prepareUrl)(`/database/download-dump/id/${this._databaseId}`),s).then((e=>{e.redirect?(0,a.redirect)(e.redirect):(a.Observer.append((e=>{if(i&&"database-download"===e.type&&"done"===e.status){const t=document.createElement("div");t.innerHTML=e.progressTitleHtml;const a=t.querySelector(".download-link");if(a){const e=new URLSearchParams(a.href.split("?")[1]);e.get("file")===s.dumpName&&e.get("currentDir")===s.relativePath&&(i=!1,a.dispatchEvent(new MouseEvent("click")))}}}),"plesk:taskComplete"),o.update())})).catch((({message:e})=>{o.failPreparingItem(r,e)}))}))}onCancelClick(){this.hide()}addFieldError(e){const t=document.getElementById(`${this._id}-dump-name`).parentNode.querySelector(".field-errors");t.closest(".form-row").classList.add("error"),t.innerHTML=`<span class="error-hint">${(0,a.escapeHtml)(e)}</span>`,t.style.display=""}clearFieldErrors(){const e=document.getElementById(`${this._id}-dump-name`).parentNode.querySelector(".field-errors");e.closest(".form-row").classList.remove("error"),e.style.display="none"}}const n=i},2612:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>c});var a=s(89),i=s(2613),n=s(2614),o=s(2615),r=s(2616),d=s(2617);class l extends a.Component{_initConfiguration(e){super._initConfiguration({locale:a.Locale.getSection("smb.components.lists.databases"),...e}),this._dumpPathMaxLength=this._getConfigParam("dumpPathMaxLength"),this._invalidPathChars=this._getConfigParam("invalidPathChars",""),this._subscriptionStatus=this._getConfigParam("subscriptionStatus",!0)}openMSSQLDownloadLink(e){(0,a.redirect)({url:e.MSSQLClientInstructionLink,method:"get",target:"dbedit"})}openWebAdmin(e){new d.default({askPassword:e.askPasswordForWebadmin,dbUser:e.webadminUserLogin,handleSubmit:t=>(0,a.redirect)({url:`/database/webadmin/id/${e.id}`,method:t.dbPassword?"post":"get",data:t,target:"dbedit"}),locale:this.getLocale(),params:{}})}connectionInfo(e){new i.default({locale:this.getLocale(),serverAddress:e.serverHost+(e.serverPort>0?`:${e.serverPort}`:""),databaseName:e.name,userLogin:e.webadminUserLogin||this.lmsg("connectionInfoNoUserLogin"),userPassword:e.webadminUserLogin&&(e.webadminUserPassword||"******")||""})}downloadDump(e){if(!this._subscriptionStatus)return(0,a.clearStatusMessages)(),void(0,a.addStatusMessage)("error",a.Locale.getSection("smb.controllers.database.download-dump").lmsg("subscriptionIsTurnedOff"));const t={locale:this.getLocale(),domainId:e.domainId,databaseId:e.id,databaseName:e.name,databaseType:e.type,dumpPathMaxLength:this._dumpPathMaxLength,isWebspace:e.isWebspace,invalidPathChars:this._invalidPathChars};new d.default({askPassword:e.askPasswordForDump,dbUser:e.webadminUserLogin,handleSubmit:e=>new n.default(e),locale:this.getLocale(),params:t})}uploadDump(e){if(!this._subscriptionStatus)return(0,a.clearStatusMessages)(),void(0,a.addStatusMessage)("error",a.Locale.getSection("smb.controllers.database.upload-dump").lmsg("subscriptionIsTurnedOff"));const t={locale:this.getLocale(),domainId:e.domainId,databaseId:e.id,databaseName:e.name,allowRecreateDatabase:e.allowRecreateDatabase,isWebspace:e.isWebspace};new d.default({askPassword:e.askPasswordForImport,dbUser:e.webadminUserLogin,handleSubmit:e=>new o.default(e),locale:this.getLocale(),params:t})}assignToSubscription(e){new r.default({locale:this.getLocale(),ids:[e.id]})}checkDatabase(e,t){const s=Element.cumulativeOffset(t.target),i=(0,a.getComponent)("asyncProgressBarWrapper"),n=i.fly(s,this.lmsg("taskCheckDatabase"),(()=>{a.api.post((0,a.prepareUrl)(`/database/check/id/${e.id}`)).then((()=>{i.update()})).catch((({message:e})=>{i.failPreparingItem(n,e)}))}))}deleteConfirmation({id:e,name:t}){a.messageBox.show({type:a.messageBox.TYPE_YESNO,subtype:a.messageBox.SUBTYPE_DELETE,text:this.lmsg("buttonDeleteConfirmationText",{name:`<b>${t}</b>`}),onYesClick(){(0,a.redirectPost)("/database/delete",{ids:{0:e},redirect:!0})}})}}const c=l},2617:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(89);class i extends a.PopupForm{_initConfiguration(e){super._initConfiguration(e),this._askPassword=this._getConfigParam("askPassword"),this._dbUser=this._getConfigParam("dbUser"),this._params=this._getConfigParam("params"),this._handleSubmit=this._getConfigParam("handleSubmit")}render(){if(super.render(),!this._askPassword)return this.hide(),void this._handleSubmit(this._params);this.setBoxType("form-box"),this.setTitle(this.lmsg("promptPasswordPopupTitle")),this.setHint1(this.lmsg("promptPassword",{login:this._dbUser})),document.getElementById(this._contentAreaId).innerHTML=`<div class="form-row"><div class="single-row"><input type="password" name="${this._dbUser}_password" id="${this._dbUser}-password" class="f-max-size"></div></div>`,this._passwordInputElement=document.getElementById(`${this._dbUser}-password`),this._passwordInputElement.addEventListener("keydown",this.handleKeyPress.bind(this)),this._passwordInputElement.addEventListener("input",this.handleInput.bind(this)),this._buttonOk=this.addRightButton(a.Locale.getSection("components.buttons").lmsg("ok"),this.handleOk,!0,!0,{disabled:!0}),this._updateButton(this._buttonOk,{disabled:!0}),this._buttonCancel=this.addRightButton(a.Locale.getSection("components.buttons").lmsg("cancel"),this.handleCancel,!1,!1),this._passwordInputElement.focus()}handleInput(){this._updateButton(this._buttonOk,{disabled:0===this._passwordInputElement.value.length})}handleKeyPress(e){13===e.keyCode&&(e.preventDefault(),this.handleOk())}handleOk(){this.hide(),this._handleSubmit({...this._params,dbPassword:this._passwordInputElement.value})}handleCancel(){this.hide()}}const n=i},2615:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>n});var a=s(89);class i extends a.PopupForm{_initConfiguration(e){super._initConfiguration(e),this._databaseId=this._getConfigParam("databaseId"),this._databaseName=this._getConfigParam("databaseName"),this._isWebspace=this._getConfigParam("isWebspace"),this._allowRecreateDatabase=this._getConfigParam("allowRecreateDatabase",!1),this._dbPassword=this._getConfigParam("dbPassword","")}render(){super.render(),this.setBoxType("form-box"),this.setTitle(this.lmsg("uploadPopupTitle")),this.setTitleType(this._getConfigParam("titleCls","pp-upload"));const e=this._allowRecreateDatabase?`<div class="form-row"><div class="single-row"><div class="indent-box"><input type="checkbox" value="1" name="recreateDatabase" id="${this._id}-recreate-database" class="checkbox" checked="checked"><div class="indent-box-content"><label for="${this._id}-recreate-database">${this.lmsg("recreateDatabase")}</label></div></div></div></div>`:"";document.getElementById(this._contentAreaId).innerHTML=`<form method="post" action="${(0,a.prepareUrl)(`/database/upload-dump/id/${this._databaseId}`)}" enctype="multipart/form-data" id="${this._id}-form" target="_uploadIFrame"><input name="forgery_protection_token" type="hidden" value="${document.getElementById("forgery_protection_token").content}"/><p>${this.lmsg("uploadHint").replace("%%database%%",`<b>${(0,a.escapeHtml)(this._databaseName)}</b>`)}</p>${this._isWebspace?`<div class="form-row"><div class="single-row"><div class="indent-box"><input type="radio" value="file" id="${this._id}-upload-type-file" class="radio" name="${this._id}-upload-type" checked><div class="indent-box-content"><label for="${this._id}-upload-type-file">${this.lmsg("uploadFromFile")}</label><div class="form-row"><div class="single-row"><input id="${this._id}-dump-file" name="file[]" type="file" class="input-file f-max-size"></div></div></div></div><div class="indent-box"><input type="radio" value="webspace" id="${this._id}-upload-type-webspace" class="radio" name="${this._id}-upload-type"><div class="indent-box-content"><label for="${this._id}-upload-type-webspace">${this.lmsg("uploadFromWebspace")}</label><div class="form-row"><div class="single-row"><div class="scrollable fm-scrollable"><div class="scrollable-wrap"><div id="${this._id}-files-tree" class="tree"></div></div></div></div></div></div></div></div></div>`:`<div class="form-row"><div class="single-row"><input id="${this._id}-dump-file" name="file[]" type="file" class="input-file f-max-size"></div></div>`}${e}</form>`,this._isWebspace&&(this._tree=new a.FileManager.Tree({applyTo:`${this._id}-files-tree`,data:null,dataUrl:`/file-manager/tree-data/domainId/${this._getConfigParam("domainId")}`,showFiles:!0,rootNodeTitle:this.lmsg("rootDirectory"),waitMessage:this.lmsg("waitMessage"),onNodeClick:this.onTreeNodeClick.bind(this),onReload(){this.setDirectory("/")}})),this._fileInputElement=document.getElementById(`${this._id}-dump-file`),this._fileInputElement.addEventListener("click",this.onFileInputClick.bind(this)),this._fileInputElement.addEventListener("change",this.updateOkStatus.bind(this)),this._isWebspace&&(this._uploadTypeFile=document.getElementById(`${this._id}-upload-type-file`),this._uploadTypeFile.addEventListener("change",this.updateOkStatus.bind(this)),this._uploadTypeWebspace=document.getElementById(`${this._id}-upload-type-webspace`),this._uploadTypeWebspace.addEventListener("change",this.updateOkStatus.bind(this))),this._uploadAdapter=new a.FileManager.UploadAdapterIframe({contentAreaId:this._contentAreaId,handlerUrl:this._fileInputElement.closest("form").action,startUploadHandler:a.emptyFn,finishUploadHandler:this.onFinishUpload.bind(this),progressUploadHandler:a.emptyFn}),this._buttonOk=this.addRightButton(a.Locale.getSection("components.buttons").lmsg("ok"),this.onOkClick,!0,!0,{disabled:!0}),this._updateButton(this._buttonOk,{disabled:!0}),this._buttonCancel=this.addRightButton(a.Locale.getSection("components.buttons").lmsg("cancel"),this.onCancelClick,!1,!1)}onTreeNodeClick(){this._uploadTypeWebspace.checked=!0,this.updateOkStatus()}onFileInputClick(){this._uploadTypeFile.checked=!0,this.updateOkStatus()}updateOkStatus(){let e=this._fileInputElement.value;this._isWebspace&&(e=e&&this._uploadTypeFile.checked||this._uploadTypeWebspace.checked&&!this._tree.getSelectedItemData().isDirectory),this._updateButton(this._buttonOk,{disabled:!e})}onOkClick(){this._updateButton(this._buttonOk,{title:`<span class="wait">${this.lmsg("uploading")}</span>`,disabled:!0}),this._updateButton(this._buttonCancel,{disabled:!0});const e=this._allowRecreateDatabase&&document.getElementById(`${this._id}-recreate-database`).checked?"1":"0",t=!this._isWebspace||this._uploadTypeFile.checked,s=Element.cumulativeOffset(this._buttonOk),i=(0,a.getComponent)("asyncProgressBarWrapper");if(t)return void i.fly(s,this.lmsg("uploadTask").replace("%%database%%",(0,a.escapeHtml)(this._databaseName)),(()=>{this.hide(),this._fileInputElement.closest("form").submit()}));const n=i.fly(s,this.lmsg("uploadTask").replace("%%database%%",(0,a.escapeHtml)(this._databaseName)),(()=>{this.hide(),a.api.post((0,a.prepareUrl)(`/database/upload-dump/id/${this._databaseId}`),{recreateDatabase:e,dumpPath:this._isWebspace&&this._tree.getSelectedItemData()?this._tree.getSelectedItemData().path:"",dbPassword:this._dbPassword}).then((()=>{i.update()})).catch((({message:e})=>{i.failPreparingItem(n,e)}))}))}onFinishUpload(){(0,a.getComponent)("asyncProgressBarWrapper").update()}onCancelClick(){this.hide()}}const n=i},2588:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>a.default});var a=s(2589)},2361:e=>{e.exports=Jsw.skinUrl+"/icons/16/plesk/mariadb.png?7bb08a94b753b7fa7d53e994238873ab"},2359:e=>{e.exports=Jsw.skinUrl+"/icons/16/plesk/mssql.png?cef152af421a073477c90aa8001bef49"},2358:e=>{e.exports=Jsw.skinUrl+"/icons/16/plesk/mysql.png?c5c7e38a14aa2ec76ec4656a58b6dcc7"},2362:e=>{e.exports=Jsw.skinUrl+"/icons/16/plesk/percona.png?c9390f7e0aaad1e448de90386ec84dd6"},2360:e=>{e.exports=Jsw.skinUrl+"/icons/16/plesk/postgresql.png?ed7a3e52b63253fa542b90e5981bdcaa"},1873:e=>{e.exports=Jsw.skinUrl+"/icons/24/colored-icons-sprite.svg?0ca73947c3035a4461b4dd5d57894f2b"},2604:e=>{e.exports=Jsw.skinUrl+"/icons/24/mariadb.svg?40e885b924e68121f8e5ebe315f9a4f1"},2605:e=>{e.exports=Jsw.skinUrl+"/icons/24/mssql.svg?407cb3501d66a7aa259aa515b6db8824"},2606:e=>{e.exports=Jsw.skinUrl+"/icons/24/mysql.svg?43a445498b746b73c066fee852ddcbbd"},2607:e=>{e.exports=Jsw.skinUrl+"/icons/24/percona.svg?7314a1db507b6a928dbd363c10716377"},2608:e=>{e.exports=Jsw.skinUrl+"/icons/24/postgresql.svg?f6ecc0a25ee74459478cdf93d345a51b"},1886:e=>{e.exports=Jsw.skinUrl+"/icons/24/sitejet-ai.svg?3587ccb60b06bb3c63bb204f4f0b224e"},2260:e=>{var t={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"DatabasesTabs"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"domainId"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"ID"}}},directives:[]}],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"viewer"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"login"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"type"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"permissions"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"manageServerDb"},arguments:[],directives:[]}]}}]}},{kind:"Field",name:{kind:"Name",value:"capability"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"packages"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"isBackupManagerInstalled"},arguments:[],directives:[]}]}}]}},{kind:"Field",alias:{kind:"Name",value:"domain"},name:{kind:"Name",value:"node"},arguments:[{kind:"Argument",name:{kind:"Name",value:"id"},value:{kind:"Variable",name:{kind:"Name",value:"domainId"}}}],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"InlineFragment",typeCondition:{kind:"NamedType",name:{kind:"Name",value:"Domain"}},directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"subscription"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"permissions"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"manageBackupRestore"},arguments:[],directives:[]}]}}]}}]}}]}}]}}],loc:{start:0,end:452}};t.loc.source={body:"query DatabasesTabs($domainId: ID!) {\n viewer {\n login\n type\n permissions {\n manageServerDb\n }\n }\n capability {\n packages {\n isBackupManagerInstalled\n }\n }\n domain: node(id: $domainId) {\n ... on Domain {\n id\n subscription {\n permissions {\n manageBackupRestore\n }\n }\n }\n }\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};function s(e,t){if("FragmentSpread"===e.kind)t.add(e.name.value);else if("VariableDefinition"===e.kind){var a=e.type;"NamedType"===a.kind&&t.add(a.name.value)}e.selectionSet&&e.selectionSet.selections.forEach((function(e){s(e,t)})),e.variableDefinitions&&e.variableDefinitions.forEach((function(e){s(e,t)})),e.definitions&&e.definitions.forEach((function(e){s(e,t)}))}var a={};function i(e,t){for(var s=0;s<e.definitions.length;s++){var a=e.definitions[s];if(a.name&&a.name.value==t)return a}}t.definitions.forEach((function(e){if(e.name){var t=new Set;s(e,t),a[e.name.value]=t}})),e.exports=t,e.exports.DatabasesTabs=function(e,t){var s={kind:e.kind,definitions:[i(e,t)]};e.hasOwnProperty("loc")&&(s.loc=e.loc);var n=a[t]||new Set,o=new Set,r=new Set;for(n.forEach((function(e){r.add(e)}));r.size>0;){var d=r;r=new Set,d.forEach((function(e){o.has(e)||(o.add(e),(a[e]||new Set).forEach((function(e){r.add(e)})))}))}return o.forEach((function(t){var a=i(e,t);a&&s.definitions.push(a)})),s}(t,"DatabasesTabs")},2602:(e,t,s)=>{"use strict";s.r(t)}}]); //# sourceMappingURL=list.js.map?b6acae14561b1689065b