Skip to content

Commit 9db1e37

Browse files
Merge pull request #60794 from nextcloud/backport/59933/stable34
[stable34] feat(settings): replace OnlyOffice with Euro-Office in office suite s…
2 parents b8f2dd4 + e336417 commit 9db1e37

9 files changed

Lines changed: 22 additions & 21 deletions

apps/appstore/src/components/AppstoreBrowse/OfficeSuiteSwitcher.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ function getInitialSuite() {
3232
return suite.id
3333
}
3434
}
35-
return null
35+
return OFFICE_SUITES.find((s) => s.isPrimary)?.id ?? null
3636
}
3737
3838
/**

apps/appstore/src/service/OfficeSuites.ts

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,23 @@ import { t } from '@nextcloud/l10n'
88
export const OFFICE_SUITES = Object.freeze([
99
{
1010
id: 'nextcloud-office',
11-
appId: 'richdocuments',
11+
appId: 'eurooffice',
1212
name: 'Nextcloud Office',
13+
features: [
14+
t('settings', 'Powered by Euro-Office'),
15+
t('settings', 'Good Nextcloud integration'),
16+
t('settings', 'Open source'),
17+
t('settings', 'Best performance'),
18+
t('settings', 'Limited ODF compatibility'),
19+
t('settings', 'Best Microsoft compatibility'),
20+
],
21+
learnMoreUrl: 'https://github.com/Euro-Office',
22+
isPrimary: true,
23+
},
24+
{
25+
id: 'collabora-office',
26+
appId: 'richdocuments',
27+
name: 'Collabora Office',
1328
features: [
1429
t('settings', 'Best Nextcloud integration'),
1530
t('settings', 'Open source'),
@@ -19,20 +34,6 @@ export const OFFICE_SUITES = Object.freeze([
1934
t('settings', 'Best support for legacy files'),
2035
],
2136
learnMoreUrl: 'https://nextcloud.com/collaboraonline/',
22-
isPrimary: true,
23-
},
24-
{
25-
id: 'onlyoffice',
26-
appId: 'onlyoffice',
27-
name: 'Onlyoffice',
28-
features: [
29-
t('settings', 'Good Nextcloud integration'),
30-
t('settings', 'Open core'),
31-
t('settings', 'Best performance'),
32-
t('settings', 'Limited ODF compatibility'),
33-
t('settings', 'Best Microsoft compatibility'),
34-
],
35-
learnMoreUrl: 'https://nextcloud.com/onlyoffice/',
3637
isPrimary: false,
3738
},
3839
])

dist/AppstoreBrowse-BXK5seoy.chunk.mjs

Lines changed: 0 additions & 2 deletions
This file was deleted.

dist/AppstoreBrowse-BXK5seoy.chunk.mjs.map

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
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};
2+
//# sourceMappingURL=AppstoreBrowse-DPfA49Og.chunk.mjs.map
File renamed without changes.

dist/AppstoreBrowse-DPfA49Og.chunk.mjs.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
File renamed without changes.

0 commit comments

Comments
 (0)