Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ function getInitialSuite() {
return suite.id
}
}
return null
return OFFICE_SUITES.find((s) => s.isPrimary)?.id ?? null
}
/**
Expand Down
31 changes: 16 additions & 15 deletions apps/appstore/src/service/OfficeSuites.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,23 @@ import { t } from '@nextcloud/l10n'
export const OFFICE_SUITES = Object.freeze([
{
id: 'nextcloud-office',
appId: 'richdocuments',
appId: 'eurooffice',
name: 'Nextcloud Office',
features: [
t('settings', 'Powered by Euro-Office'),
t('settings', 'Good Nextcloud integration'),
t('settings', 'Open source'),
t('settings', 'Best performance'),
t('settings', 'Limited ODF compatibility'),
t('settings', 'Best Microsoft compatibility'),
],
learnMoreUrl: 'https://github.com/Euro-Office',
isPrimary: true,
},
{
id: 'collabora-office',
appId: 'richdocuments',
name: 'Collabora Office',
features: [
t('settings', 'Best Nextcloud integration'),
t('settings', 'Open source'),
Expand All @@ -19,20 +34,6 @@ export const OFFICE_SUITES = Object.freeze([
t('settings', 'Best support for legacy files'),
],
learnMoreUrl: 'https://nextcloud.com/collaboraonline/',
isPrimary: true,
},
{
id: 'onlyoffice',
appId: 'onlyoffice',
name: 'Onlyoffice',
features: [
t('settings', 'Good Nextcloud integration'),
t('settings', 'Open core'),
t('settings', 'Best performance'),
t('settings', 'Limited ODF compatibility'),
t('settings', 'Best Microsoft compatibility'),
],
learnMoreUrl: 'https://nextcloud.com/onlyoffice/',
isPrimary: false,
},
])
Expand Down
2 changes: 0 additions & 2 deletions dist/AppstoreBrowse-BXK5seoy.chunk.mjs

This file was deleted.

1 change: 0 additions & 1 deletion dist/AppstoreBrowse-BXK5seoy.chunk.mjs.map

This file was deleted.

2 changes: 2 additions & 0 deletions dist/AppstoreBrowse-DPfA49Og.chunk.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
import{t as e}from"./translation-DoG5ZELJ-DGHp0fUA.chunk.mjs";import{N as O,u as q}from"./logger-D3RVzcfQ-Bkys46hi.chunk.mjs";import{N as C}from"./NcEmptyContent--TRhmNAW-ynM-mZKT.chunk.mjs";import{N as L}from"./TrashCanOutline-ImpP8zID.chunk.mjs";import{u as V,a as z,b as D}from"./AppstoreSearch-Dr3mpHrL.chunk.mjs";import{e as E}from"./index-C1xmmKTZ-CeESs0Yi.chunk.mjs";import{_ as A,l as G}from"./public-C1mLBHT3.chunk.mjs";import{N as R}from"./mdi-BsuzcJkY.chunk.mjs";import{b as j,n as T,U as H,o,f as S,y as f,g as d,u as t,j as B,t as n,h as P,k as b,N as M,F as $,B as U,w as I,s as J,v as k,l as F,z as K,c as v,C as Q}from"./Web-CVG0oWkS.chunk.mjs";import{N as W}from"./NcCheckboxRadioSwitch-B0KUiKrb-BMjYufv5.chunk.mjs";import{u as N,c as X,n as Y,a as Z,b as ee,d as te}from"./appstore-main.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./createElementId-DhjFt1I9-BR-WXAA3.chunk.mjs";import"./NcInputField-C3iof9pY-BIeFuK2c.chunk.mjs";import"./PencilOutline-CVTKhaas.chunk.mjs";import"./NcModal-DyOZxq9E-DJ8lRVba.chunk.mjs";import"./NcTextArea-BwFQx9Bj-DytVB1wt.chunk.mjs";import"./NcContent-Dd15hgck-BO82eoqa.chunk.mjs";import"./index-HEii3ZrW.chunk.mjs";import"./TrayArrowDown-pWpgffUY.chunk.mjs";import"./index-BwhGLTdD.chunk.mjs";import"./NcAvatar-QYahYt2p-B6sbjze-.chunk.mjs";import"./index-BrNm47xe.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-CLsEMAPw.chunk.mjs";import"./colors-2YFh1g7z-Esf5_Pnk.chunk.mjs";import"./NcUserStatusIcon-CNh1vXUF-BrBSNJ0h.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-B4upiZjL-GKzS94MD.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-CW5QNUA_.chunk.mjs";import"./NcPasswordField-ykWHv_hw-Cw2SHBDh.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-DgvCZDmR-CrGIqP5N.chunk.mjs";/* empty css */import"./Plus-DrYPk6mX.chunk.mjs";import"./index-BL1zU5ZX.chunk.mjs";import"./index-B8j2UOwE.chunk.mjs";import"./NcEmojiPicker-DG3qO_fi-C6ID1-jK.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-bfyY3p45.chunk.mjs";/* empty css */import"./index-B7Ckn99n.chunk.mjs";import"./NcSelectTags-D3tAMWYx-B8zEI_63.chunk.mjs";import"./ContentCopy-BebwfDO9.chunk.mjs";import"./NcUserBubble-BnaGHDoD-CXGIMXGu.chunk.mjs";import"./index-BpJn58mk.chunk.mjs";import"./pinia-Dn16KcVd.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-C5RtAcX5.chunk.mjs";const ie=["id"],ae={key:0},se=["aria-label"],oe=j({__name:"OfficeSuiteSwitcherItem",props:J({suite:{},loading:{type:Boolean}},{selected:{},selectedModifiers:{}}),emits:["update:selected"],setup(p){const r=T(p,"selected"),m=H(),_=N(),s=k(()=>_.getAppById(p.suite.appId)),y=k(()=>!!s.value?.installed),w=k(()=>!s.value||!y.value&&!X(s.value));return(a,l)=>(o(),S("div",{class:f([a.$style.officeSuiteSwitcherItem,{[a.$style.officeSuiteSwitcherItem_selected]:r.value===p.suite.id}]),onClick:l[3]||(l[3]=i=>r.value=p.suite.id)},[d("div",{class:f(a.$style.officeSuiteSwitcherItem__header)},[d("h3",{id:t(m),class:f(a.$style.officeSuiteSwitcherItem__title)},[B(n(p.suite.name)+" ",1),y.value?(o(),S("span",ae,"("+n(t(e)("appstore","installed"))+")",1)):P("",!0)],10,ie),b(t(W),{modelValue:r.value,"onUpdate:modelValue":l[0]||(l[0]=i=>r.value=i),"aria-labelledby":t(m),disabled:w.value,loading:p.loading,type:"radio",name:"office-suite",value:p.suite.id,onClick:l[1]||(l[1]=M(()=>{},["stop"]))},null,8,["modelValue","aria-labelledby","disabled","loading","value"])],2),d("ul",{"aria-label":t(e)("appstore","Features"),class:f(a.$style.officeSuiteSwitcherItem__features)},[(o(!0),S($,null,U(p.suite.features,(i,c)=>(o(),S("li",{key:c},n(i),1))),128))],10,se),b(t(O),{href:p.suite.learnMoreUrl,onClick:l[2]||(l[2]=M(()=>{},["stop"]))},{default:I(()=>[B(n(t(e)("appstore","Learn more"))+"↗ ",1)]),_:1},8,["href"])],2))}}),re="_officeSuiteSwitcherItem_1x2g7_2",le="_officeSuiteSwitcherItem_selected_1x2g7_23",ce="_officeSuiteSwitcherItem__header_1x2g7_29",pe="_officeSuiteSwitcherItem__title_1x2g7_36",ue="_officeSuiteSwitcherItem__features_1x2g7_42",fe="_officeSuiteSwitcherItem__link_1x2g7_55",ne={officeSuiteSwitcherItem:re,officeSuiteSwitcherItem_selected:le,officeSuiteSwitcherItem__header:ce,officeSuiteSwitcherItem__title:pe,officeSuiteSwitcherItem__features:ue,officeSuiteSwitcherItem__link:fe},me={$style:ne},de=A(oe,[["__cssModules",me]]),g=Object.freeze([{id:"nextcloud-office",appId:"eurooffice",name:"Nextcloud Office",features:[e("settings","Powered by Euro-Office"),e("settings","Good Nextcloud integration"),e("settings","Open source"),e("settings","Best performance"),e("settings","Limited ODF compatibility"),e("settings","Best Microsoft compatibility")],learnMoreUrl:"https://github.com/Euro-Office",isPrimary:!0},{id:"collabora-office",appId:"richdocuments",name:"Collabora Office",features:[e("settings","Best Nextcloud integration"),e("settings","Open source"),e("settings","Good performance"),e("settings","Best security: documents never leave your server"),e("settings","Best ODF compatibility"),e("settings","Best support for legacy files")],learnMoreUrl:"https://nextcloud.com/collaboraonline/",isPrimary:!1}]),_e=j({__name:"OfficeSuiteSwitcher",setup(p){const r=N(),m=G("appstore","isAllInOne",!1),_=F(!1),s=F(y());K(s,l);function y(){for(const i of g){const c=r.apps.find(u=>u.id===i.appId&&u.installed);if(c&&c.active)return i.id}return g.find(i=>i.isPrimary)?.id??null}function w(){s.value=null}async function a(i){const c=r.getAppById(i.appId);c&&Z(c)&&await r.disableApp(i.appId)}async function l(i,c){if(!(_.value||i===c))try{_.value=!0;const u=g.find(h=>h.id===i);if(!u){for(const h of g)await a(h);return}const x=r.getAppById(u.appId);if(Y(x))if(await E({name:e("appstore","Force enable {suite}?",{suite:u.name}),text:e("appstore","Enabling {suite} requires force enabling the app. This may cause issues with your Nextcloud instance. Are you sure you want to proceed?",{suite:u.name}),labelConfirm:e("appstore","Force enable"),labelReject:e("appstore","Cancel"),severity:"warning"}))await r.enableApp(u.appId,!0);else{s.value=c;return}for(const h of g)h.id===i?await r.enableApp(h.appId):await a(h)}finally{_.value=!1}}return(i,c)=>t(m)?(o(),v(t(R),{key:0,type:"info"},{default:I(()=>[d("p",null,n(t(e)("appstore","Office suite switching is managed through the Nextcloud All-in-One interface.")),1),d("p",null,n(t(e)("appstore","Please use the AIO interface to switch between office suites.")),1)]),_:1})):(o(),S("section",{key:1,class:f(i.$style.officeSuiteSwitcher)},[d("h3",{class:f(i.$style.officeSuiteSwitcher__title)},n(t(e)("appstore","Select your preferred office suite.")),3),d("p",null,n(t(e)("appstore","Please note that installing requires manual server setup.")),1),d("fieldset",{class:f(i.$style.officeSuiteSwitcher__cards)},[(o(!0),S($,null,U(t(g),u=>(o(),v(de,{key:u.id,selected:s.value,"onUpdate:selected":c[0]||(c[0]=x=>s.value=x),class:f(i.$style.officeSuiteSwitcher__cardsItem),suite:u,loading:_.value},null,8,["selected","class","suite","loading"]))),128))],2),d("div",{class:f(i.$style.officeSuiteSwitcher__actions)},[b(t(O),{disabled:!s.value,onClick:w},{default:I(()=>[B(n(t(e)("appstore","Disable office suites")),1)]),_:1},8,["disabled"])],2)],2))}}),Se="_officeSuiteSwitcher_1ajfj_2",he="_officeSuiteSwitcher__cards_1ajfj_19",ye="_officeSuiteSwitcher__cardsItem_1ajfj_25",we="_officeSuiteSwitcher__actions_1ajfj_29",ge="_officeSuiteSwitcher__disableButton_1ajfj_33",ve={officeSuiteSwitcher:Se,officeSuiteSwitcher__cards:he,officeSuiteSwitcher__cardsItem:ye,officeSuiteSwitcher__actions:we,officeSuiteSwitcher__disableButton:ge},be={$style:ve},Ie=A(_e,[["__cssModules",be]]),ke=j({__name:"AppstoreBrowse",setup(p){const r=q(),m=N(),_=ee(),s=k(()=>r.params.category),y=k(()=>s.value==="featured"?m.apps.filter(a=>a.level===200):s.value==="supported"?m.apps.filter(a=>a.level===300):m.getAppsByCategory(s.value)),w=V(y);return(a,l)=>(o(),S($,null,[b(z),t(m).isLoadingApps?(o(),v(t(C),{key:0,name:t(e)("appstore","Loading app list")},{icon:I(()=>[b(t(L),{size:64})]),_:1},8,["name"])):(o(),S($,{key:1},[s.value==="office"?(o(),v(Ie,{key:0})):P("",!0),t(w).length?(o(),v(Q(t(_).isGridView?D:te),{key:1,class:f(a.$style.appstoreBrowse),apps:t(w)},null,8,["class","apps"])):(o(),v(t(C),{key:2,name:t(e)("appstore","No matching apps found")},{action:I(()=>[b(t(O),{variant:"primary",onClick:l[0]||(l[0]=i=>a.$router.push({query:a.$route.query,name:"apps-search"}))},{default:I(()=>[B(n(t(e)("appstore","Search everywhere")),1)]),_:1})]),_:1},8,["name"]))],64))],64))}}),Be="_appstoreBrowse_1w3np_2",$e={appstoreBrowse:Be},xe={$style:$e},vt=A(ke,[["__cssModules",xe]]);export{vt as default};
//# sourceMappingURL=AppstoreBrowse-DPfA49Og.chunk.mjs.map
1 change: 1 addition & 0 deletions dist/AppstoreBrowse-DPfA49Og.chunk.mjs.map

Large diffs are not rendered by default.

Loading
Loading