mirror of
https://github.com/nextcloud/server.git
synced 2026-04-22 14:50:17 -04:00
Create right table view
Signed-off-by: julia.kirschenheuter <julia.kirschenheuter@nextcloud.com>
This commit is contained in:
parent
9df4da86ff
commit
8b6029564e
10 changed files with 125 additions and 54 deletions
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["settings.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAOC,0BACC,WAKF,OACC,WAID,4BC+CC,2CD3CD,mBC2CC,kDDvCD,qBCuCC,yCDnCD,0BCmCC,wCD/BD,oEC+BC,2CD3BD,oCACC,oBACA,0BACA,+BACA,mBAGD,4BACC,oBACA,kCAGD,yBACC,WAIA,wCACC,kBACA,yDACC,gBAIA,mOACC,WAKH,uCACC,aAGD,sCACC,WAED,uDACC,WAKD,gBACC,WAIF,mBACC,aACA,aACA,iBACA,4DACA,qBAEA,4BACC,kBACA,SAEA,+BACC,mBAIA,qCACC,iBAKH,kCACC,iBACA,mBACA,gBAGD,mGACC,4BACA,kBACA,WAMF,oBACC,kBACA,wCACC,0BACA,8CACC,oDAKH,aACC,qBACA,YACA,kBACA,8CACA,WACA,wCACA,8CACA,6CAEA,0DAGC,mCACA,mDACA,qDAGD,uBACC,kBACA,yBAIF,6BACC,oBACA,kCAEA,mCACC,WAIA,oCACC,kBACA,oBACA,iBACA,2BACA,WACA,mBACA,QAEA,0CACC,mBACA,uBACA,gBAKD,gIACC,kBACA,UACA,UACA,oBACA,YAKH,qCACC,kBACA,UACA,MACA,SAEA,yCACC,qBAIF,4CACC,eAGD,4CACC,sBACA,WACA,YACA,YAMF,qBACC,aACA,WACA,SACA,YAEA,uBACC,aAGD,uCACC,sBACA,cACA,yBAIF,iBACC,kBACA,eACA,WACA,YACA,aACA,SACA,gBACA,YAEA,8CAEC,+CACA,wCAEA,0FACC,WAIF,uCACC,kBACA,qBACA,gCACA,WACA,eAEA,wDACC,qBACA,sBACA,eAIF,sCACC,SAGC,4DAEC,iBACA,kBAEA,kFACC,YAGD,mEACC,oDAEA,kFACC,iBAIF,qEACC,WAEA,eAEA,uEACC,eAQN,gBACC,YAIA,2BACC,kCAGD,mBACC,YAIF,sCAEC,aAGD,eACC,WAGD,YACC,qBAIA,aACC,WACA,yBACA,YAGD,WACC,WACA,yBACA,YAMD,oBACC,iBAGD,iBACC,eAKD,iCACC,aACA,eACA,sBACA,SACA,gDACC,aACA,eACA,sBACA,sDACC,oBAIF,kGACC,cACA,YACA,gBAKA,iEACC,kBACA,UAED,+EACC,oBACA,eACA,wBACA,UAIF,wCACC,WAGD,iDACC,qBAGD,sDACC,kBACA,OACA,WACA,0BACA,eACA,gBACA,WAQF,oBACC,gBAGD,wBACC,iBAGD,oDACC,WACA,YACA,mBACA,wCAOD,oBACC,UACA,cACA,gBACA,uBAGD,2BACC,UAKD,oCAEC,cAKD,wEAEC,aAIF,gBACC,kBACA,QACA,QAEA,sBACC,YAGD,sBACC,iBAKF,WACC,WAEA,cACC,WACA,WACA,4CACA,eACA,kBACA,gBACA,mBAGD,cACC,4CACA,eACA,kBACA,gBACA,mBAKD,gBACC,kBACA,cACA,eACA,uBACA,gBAGD,wBACC,kBAEA,gCACC,kBAIF,sCACC,kBAGD,sDAEC,cACA,eACA,eAEA,0EACC,UACA,qBACA,uBACA,gBAIF,8BACC,eAGD,kCACC,mBACA,cAIF,2BACC,mBAID,4BACC,WACA,SACA,QAGD,0BACC,mBAGD,SACC,gBAKA,oBACC,mBACA,iBACA,WAGD,gCACC,kBAIA,gGACC,cAIF,4BACC,gBAGD,iCACC,gBAGD,8BACC,oCAIF,aACC,gBACA,iBACA,oCAGD,aACC,oCAIA,gBACC,oCACA,+BACA,+CACA,mCACA,gBAGD,aACC,aACA,YACA,mBAGD,qBACC,gCACA,+BACA,kBAGD,sBACC,kCACA,gCACA,+BACA,kBACA,2BAIF,WACC,kBACA,QACA,WAIA,qCACC,aAMD,0BACC,SAGD,2BACC,cACA,aAGD,yDACC,eAGD,8BACC,WAGD,qDACC,WACA,aACA,qBACA,WAGD,kCACC,YAGD,0BACC,gBAMA,4FAEC,qBACA,WACA,YACA,kBACA,WAIF,0CACC,YACA,WAEA,yGAEC,mBAGD,2DACC,YAIF,uFACC,oCAGD,iDACC,cAGD,kDACC,cAGD,sCACC,kBACA,MACA,QACA,aACA,WACA,UACA,WACA,YAGD,wCACC,aACA,mBAEA,oDACC,YAIF,yCACC,0BACA,iBAGD,iOAKC,cAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,0CACC,gBACC,UAED,kCACC,YAIF,2CACC,gBACC,WAIF,0CACC,gBACC,YAKF,0CAEE,kEACC,yBAKH,0CACC,iCACC,yBAIF,SACC,gBAEA,0BACC,4CAID,YACC,mBAEA,uBACC,iBACA,2BACA,qBAKH,iBACC,cACA,yBAGD,WACC,kBACA,aACA,UACA,gBAGD,6CACC,qBAGD,0DACC,WACA,cACA,eACA,WAGD,2BACC,WACA,kBACA,QAGD,iBACC,WAGD,gBACC,mBAKD,kBACC,0BAGD,kBACC,cAGD,sBACC,mBACA,wBACA,2BAGD,WAyGC,aACA,eACA,yBAvGA,oBACC,eAGD,0BACC,wBAGD,gCACC,iBAGD,oBACC,OAfgB,KAgBhB,QAjBiB,IAmBjB,aAlBgB,KAmBhB,WACA,8CACA,gBACA,MACA,UACA,aACA,mBAGD,qBAQC,oBAPA,0CACC,cACA,WACA,YACA,WAjCe,KAsChB,8BACC,kBACA,UACA,SAEA,gCACC,mBACA,eACA,sBACA,WACA,4CACA,YACA,sBAGD,uCACC,8CAKF,oCACC,aAEA,0CACC,iBAIF,gCACC,WACA,YACA,iBAGD,kGAEC,eACA,WACA,YACA,WACA,sBACA,qBAGD,8BACC,iBAEA,kDACC,qBACA,QACA,kBAKH,+CACC,kBACA,YAEA,WACA,YACA,WAOD,kBACC,aAGD,oBACC,kBACA,cAEA,gCACC,cACA,aAGD,0BACC,8CAKD,8BACC,cAGD,+BACC,gBAGD,+BACC,mBAEA,oEACC,kBAKD,8DACC,iBAKD,oEACC,kBAMH,wBACC,kBACA,kBAEA,4BACC,mBACA,YAGD,2BACC,mBACA,kBACA,iBACA,iBAEA,mCACC,kBACA,SACA,iBAGD,oCACC,gBAQF,8BACC,gBAMH,KACC,mBACA,mBAGD,SACC,aAGD,mBACC,mBAGD,eACC,gBAOA,+IACC,sBAEA,+KACC,aAGD,mKACC,WACA,YACA,kCACA,qBACA,kBAGD,mOACC,sCAGD,mNACC,sCAGD,mNACC,oCAMF,sBACC,aAGD,YACC,oBAGD,kBACC,kBAGD,yBACC,kBAGD,sBACC,kBAIF,yCACC,kBAGD,wBACC,qBAGD,2BACC,wBAEA,gBACA,aACA,iBACA,sBAKD,WACC,kBACA,2BACA,WAGD,2DAGC,qBAIA,mCACC,qBACA,YACA,iBAGD,+EAEC,YAIF,eACC,WAGD,SACC,iBAGD,QACC,qBACA,YACA,WACA,2BAEA,gBACC,kBAIF,qBACC,sBACA,qBACA,YACA,iBAGD,kBACC,qBACA,gBAIA,aACC,sCACA,mCAGD,WACC,oCAGD,mBACC,sCACA,oBAMF,8CACC,WACA,YAGD,wBACC,WACA,YACA,mBACA,kBACA,+DAIA,oBACC,iBACA,gBAEA,uBACC,cAGD,uBACC,kBAIF,0BACC,YACA,gCAGD,oDACC,yBAGD,wDACC,2BAGD,uBACC,cAKD,oBACC,0BAGD,oCACC,gBAIF,eACC,mBAEA,iBACC,qBACA,cAIF,SACC,UAGD,eACC,iBACA,mBACA,WAGD,UACI,+CAGJ,2BACE,GACE,YAGJ,mCACE,GACE","file":"settings.css"}
|
||||
{"version":3,"sourceRoot":"","sources":["settings.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAOC,0BACC,WAKF,OACC,WAID,4BC+CC,2CD3CD,mBC2CC,kDDvCD,qBCuCC,yCDnCD,0BCmCC,wCD/BD,oEC+BC,2CD3BD,oCACC,oBACA,0BACA,+BACA,mBAGD,4BACC,oBACA,kCAGD,yBACC,WAIA,wCACC,kBACA,yDACC,gBAIA,mOACC,WAKH,uCACC,aAGD,sCACC,WAED,uDACC,WAKD,gBACC,WAIF,mBACC,aACA,aACA,iBACA,4DACA,qBAEA,4BACC,kBACA,SAEA,+BACC,mBAIA,qCACC,iBAKH,kCACC,iBACA,mBACA,gBAGD,mGACC,4BACA,kBACA,WAMF,oBACC,kBACA,wCACC,0BACA,8CACC,oDAKH,aACC,qBACA,YACA,kBACA,8CACA,WACA,wCACA,8CACA,6CAEA,0DAGC,mCACA,mDACA,qDAGD,uBACC,kBACA,yBAIF,6BACC,oBACA,kCAEA,mCACC,WAIA,oCACC,kBACA,oBACA,iBACA,2BACA,WACA,mBACA,QAEA,0CACC,mBACA,uBACA,gBAKD,gIACC,kBACA,UACA,UACA,oBACA,YAKH,qCACC,kBACA,UACA,MACA,SAEA,yCACC,qBAIF,4CACC,eAGD,4CACC,sBACA,WACA,YACA,YAMF,qBACC,aACA,WACA,SACA,YAEA,uBACC,aAGD,uCACC,sBACA,cACA,yBAIF,iBACC,kBACA,eACA,WACA,YACA,aACA,SACA,gBACA,YAEA,8CAEC,+CACA,wCAEA,0FACC,WAIF,uCACC,kBACA,qBACA,gCACA,WACA,eAEA,wDACC,qBACA,sBACA,eAIF,sCACC,SAGC,4DAEC,iBACA,kBAEA,kFACC,YAGD,mEACC,oDAEA,kFACC,iBAIF,qEACC,WAEA,eAEA,uEACC,eAQN,gBACC,YAIA,2BACC,kCAGD,mBACC,YAIF,sCAEC,aAGD,eACC,WAGD,YACC,qBAIA,aACC,WACA,yBACA,YAGD,WACC,WACA,yBACA,YAMD,oBACC,iBAGD,iBACC,eAKD,iCACC,aACA,eACA,sBACA,SACA,gDACC,aACA,eACA,sBACA,sDACC,oBAIF,kGACC,cACA,YACA,gBAKA,iEACC,kBACA,UAED,+EACC,oBACA,eACA,wBACA,UAIF,wCACC,WAGD,iDACC,qBAGD,sDACC,kBACA,OACA,WACA,0BACA,eACA,gBACA,WAQF,oBACC,gBAGD,wBACC,iBAGD,oDACC,WACA,YACA,mBACA,wCAOD,oBACC,UACA,cACA,gBACA,uBAGD,2BACC,UAKD,oCAEC,cAKD,wEAEC,aAIF,gBACC,kBACA,QACA,QAEA,sBACC,YAGD,sBACC,iBAKF,WACC,WAEA,cACC,WACA,WACA,4CACA,eACA,kBACA,gBACA,mBAGD,cACC,4CACA,eACA,kBACA,gBACA,mBAKD,gBACC,kBACA,cACA,eACA,uBACA,gBAGD,wBACC,kBAEA,gCACC,kBAIF,sCACC,kBAGD,sDAEC,cACA,eACA,eAEA,0EACC,UACA,qBACA,uBACA,gBAIF,8BACC,eAGD,kCACC,mBACA,cAIF,2BACC,mBAID,4BACC,WACA,SACA,QAGD,0BACC,mBAGD,SACC,gBAKA,oBACC,mBACA,iBACA,WAGD,gCACC,kBAIA,gGACC,cAIF,4BACC,gBAGD,iCACC,gBAGD,8BACC,oCAIF,aACC,gBACA,iBACA,oCAGD,aACC,oCAIA,gBACC,oCACA,+BACA,+CACA,mCACA,gBAGD,aACC,aACA,YACA,mBAGD,qBACC,gCACA,+BACA,kBAGD,sBACC,kCACA,gCACA,+BACA,kBACA,2BAIF,WACC,kBACA,QACA,WAIA,qCACC,aAMD,0BACC,SAGD,2BACC,cACA,aAGD,yDACC,eAGD,8BACC,WAGD,qDACC,WACA,aACA,qBACA,WAGD,kCACC,YAGD,0BACC,gBAMA,4FAEC,qBACA,WACA,YACA,kBACA,WAIF,0CACC,YACA,WAEA,yGAEC,mBAGD,2DACC,YAIF,uFACC,oCAGD,iDACC,cAGD,kDACC,cAGD,sCACC,kBACA,MACA,QACA,aACA,WACA,UACA,WACA,YAGD,wCACC,aACA,mBAEA,oDACC,YAIF,yCACC,0BACA,iBAGD,iOAKC,cAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,0CACC,gBACC,UAED,kCACC,YAIF,2CACC,gBACC,WAIF,0CACC,gBACC,YAKF,0CAEE,kEACC,yBAKH,0CACC,iCACC,yBAIF,SACC,gBAEA,0BACC,4CAID,YACC,mBAEA,uBACC,iBACA,2BACA,qBAKH,iBACC,cACA,yBAGD,WACC,kBACA,aACA,UACA,gBAGD,0DACC,WACA,cACA,eACA,WAGD,2BACC,WACA,kBACA,QAGD,iBACC,WAGD,gBACC,mBAKD,kBACC,0BAGD,kBACC,cAGD,sBACC,mBACA,wBACA,2BAGD,WAwGC,aACA,eACA,yBAtGA,oBACC,eAGD,0BACC,wBAGD,gCACC,iBAGD,oBACC,OAfgB,KAgBhB,QAjBiB,IAmBjB,aAlBgB,KAmBhB,WACA,8CACA,gBACA,MACA,UACA,aACA,mBAGD,qBAOC,oBANA,0CACC,cACA,WACA,YAKD,8BACC,kBACA,UACA,SAEA,gCACC,mBACA,eACA,sBACA,WACA,4CACA,YACA,sBAGD,uCACC,8CAKF,oCACC,aAEA,0CACC,iBAIF,gCACC,WACA,YACA,iBAGD,kGAEC,eACA,WACA,YACA,WACA,sBACA,qBAGD,8BACC,iBAEA,kDACC,qBACA,QACA,kBAKH,+CACC,kBACA,YAEA,WACA,YACA,WAOD,kBACC,aAGD,oBACC,kBACA,cAEA,gCACC,cACA,aAGD,0BACC,8CAKD,8BACC,cAGD,+BACC,gBAGD,+BACC,mBAEA,oEACC,kBAKD,8DACC,iBAKD,oEACC,kBAMH,wBACC,kBAEA,4BACC,mBACA,YAGD,2BACC,iBACA,iBACA,mBACA,mCACC,kBACA,SACA,iBAGD,oCACC,gBAQF,8BACC,gBAMH,KACC,mBACA,mBAGD,SACC,aAGD,mBACC,mBAGD,eACC,gBAOA,+IACC,sBAEA,+KACC,aAGD,mKACC,WACA,YACA,kCACA,qBACA,kBAGD,mOACC,sCAGD,mNACC,sCAGD,mNACC,oCAMF,sBACC,aAGD,YACC,oBAGD,kBACC,kBAGD,yBACC,kBAGD,sBACC,kBAIF,yCACC,kBAGD,wBACC,qBAGD,2BACC,wBAEA,gBACA,aACA,iBACA,sBAKD,WACC,kBACA,2BACA,WAGD,2DAGC,qBAIA,mCACC,qBACA,YACA,iBAGD,+EAEC,YAIF,eACC,WAGD,SACC,iBAGD,QACC,qBACA,YACA,WACA,2BAEA,gBACC,kBAIF,qBACC,sBACA,qBACA,YACA,iBAGD,kBACC,qBACA,gBAIA,aACC,sCACA,mCAGD,WACC,oCAGD,mBACC,sCACA,oBAMF,8CACC,WACA,YAGD,wBACC,WACA,YACA,mBACA,kBACA,+DAIA,oBACC,iBACA,gBAEA,uBACC,cAGD,uBACC,kBAIF,0BACC,YACA,gCAGD,oDACC,yBAGD,wDACC,2BAGD,uBACC,cAKD,oBACC,0BAGD,oCACC,gBAIF,eACC,mBAEA,iBACC,qBACA,cAIF,SACC,UAGD,eACC,iBACA,mBACA,WAGD,UACI,+CAGJ,2BACE,GACE,YAGJ,mCACE,GACE","file":"settings.css"}
|
||||
|
|
@ -842,10 +842,6 @@ span.version {
|
|||
overflow: hidden;
|
||||
}
|
||||
|
||||
.app-name, .app-version, .app-score, .app-level {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.app-description-toggle-show, .app-description-toggle-hide {
|
||||
clear: both;
|
||||
padding: 7px 0;
|
||||
|
|
@ -918,7 +914,6 @@ span.version {
|
|||
display: table;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
margin-top: $toolbar-height;
|
||||
}
|
||||
|
||||
margin-bottom: 100px;
|
||||
|
|
@ -1042,7 +1037,6 @@ span.version {
|
|||
|
||||
/* Bundle header */
|
||||
.apps-header {
|
||||
display: table-row;
|
||||
position: relative;
|
||||
|
||||
div {
|
||||
|
|
@ -1051,11 +1045,9 @@ span.version {
|
|||
}
|
||||
|
||||
h2 {
|
||||
display: table-cell;
|
||||
position: absolute;
|
||||
padding-left: 6px;
|
||||
padding-top: 15px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
.enable {
|
||||
position: relative;
|
||||
top: -1px;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,24 @@
|
|||
{{ t('settings', 'All apps are up-to-date.') }}
|
||||
</div>
|
||||
|
||||
<transition-group name="app-list" tag="div" class="apps-list-container">
|
||||
<transition-group name="app-list" tag="table" class="apps-list-container">
|
||||
<tr key="app-list-view-header" class="apps-header">
|
||||
<th class="app-image">
|
||||
<span class="hidden-visually">{{ t('settings', 'Icon') }}</span>
|
||||
</th>
|
||||
<th class="app-name">
|
||||
<span class="hidden-visually">{{ t('settings', 'Name') }}</span>
|
||||
</th>
|
||||
<th class="app-version">
|
||||
<span class="hidden-visually">{{ t('settings', 'Version') }}</span>
|
||||
</th>
|
||||
<th class="app-level">
|
||||
<span class="hidden-visually">{{ t('settings', 'Level') }}</span>
|
||||
</th>
|
||||
<th class="actions">
|
||||
<span class="hidden-visually">{{ t('settings', 'Actions') }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
<AppItem v-for="app in apps"
|
||||
:key="app.id"
|
||||
:app="app"
|
||||
|
|
@ -46,27 +63,46 @@
|
|||
</transition-group>
|
||||
</template>
|
||||
|
||||
<transition-group v-if="useBundleView"
|
||||
name="app-list"
|
||||
tag="div"
|
||||
<table v-if="useBundleView"
|
||||
class="apps-list-container">
|
||||
<tr key="app-list-view-header" class="apps-header">
|
||||
<th id="app-table-col-icon" class="app-image">
|
||||
<span class="hidden-visually">{{ t('settings', 'Icon') }}</span>
|
||||
</th>
|
||||
<th id="app-table-col-name" class="app-name">
|
||||
<span class="hidden-visually">{{ t('settings', 'Name') }}</span>
|
||||
</th>
|
||||
<th id="app-table-col-version" class="app-version">
|
||||
<span class="hidden-visually">{{ t('settings', 'Version') }}</span>
|
||||
</th>
|
||||
<th id="app-table-col-level" class="app-level">
|
||||
<span class="hidden-visually">{{ t('settings', 'Level') }}</span>
|
||||
</th>
|
||||
<th id="app-table-col-actions" class="actions">
|
||||
<span class="hidden-visually">{{ t('settings', 'Actions') }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
<template v-for="bundle in bundles">
|
||||
<div :key="bundle.id" class="apps-header">
|
||||
<div class="app-image" />
|
||||
<h2>{{ bundle.name }} <input type="button" :value="bundleToggleText(bundle.id)" @click="toggleBundle(bundle.id)"></h2>
|
||||
<div class="app-version" />
|
||||
<div class="app-level" />
|
||||
<div class="app-groups" />
|
||||
<div class="actions">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<tr :key="bundle.id">
|
||||
<th :id="`app-table-rowgroup-${bundle.id}`" colspan="5" scope="rowgroup">
|
||||
<div class="app-bundle-heading">
|
||||
<span class="app-bundle-header">
|
||||
{{ bundle.name }}
|
||||
</span>
|
||||
<NcButton type="secondary" @click="toggleBundle(bundle.id)">
|
||||
{{ t('settings', bundleToggleText(bundle.id)) }}
|
||||
</NcButton>
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
<AppItem v-for="app in bundleApps(bundle.id)"
|
||||
:key="bundle.id + app.id"
|
||||
:use-bundle-view="true"
|
||||
:headers="`app-table-rowgroup-${bundle.id}`"
|
||||
:app="app"
|
||||
:category="category" />
|
||||
</template>
|
||||
</transition-group>
|
||||
</table>
|
||||
<template v-if="useAppStoreView">
|
||||
<AppItem v-for="app in apps"
|
||||
:key="app.id"
|
||||
|
|
@ -88,8 +124,7 @@
|
|||
<AppItem v-for="app in searchApps"
|
||||
:key="app.id"
|
||||
:app="app"
|
||||
:category="category"
|
||||
:list-view="true" />
|
||||
:category="category" />
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -240,9 +275,24 @@ export default {
|
|||
const limit = pLimit(1)
|
||||
this.apps
|
||||
.filter(app => app.update)
|
||||
.map(app => limit(() => this.$store.dispatch('updateApp', { appId: app.id }))
|
||||
.map(app => limit(() => this.$store.dispatch('updateApp', { appId: app.id })),
|
||||
)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.app-bundle-heading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 20px 10px 20px 0;
|
||||
}
|
||||
.app-bundle-header {
|
||||
margin: 0 10px 0 50px;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
line-height: 30px;
|
||||
color: var(--color-text-light);
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -21,8 +21,14 @@
|
|||
-->
|
||||
|
||||
<template>
|
||||
<div class="section" :class="{ selected: isSelected }" @click="showAppDetails">
|
||||
<div class="app-image app-image-icon" @click="showAppDetails">
|
||||
<component :is="listView ? `tr` : `div`"
|
||||
class="section"
|
||||
:class="{ selected: isSelected }"
|
||||
@click="showAppDetails">
|
||||
<component :is="dataItemTag"
|
||||
class="app-image app-image-icon"
|
||||
:headers="getDataItemHeaders(`app-table-col-icon`)"
|
||||
@click="showAppDetails">
|
||||
<div v-if="(listView && !app.preview) || (!listView && !screenshotLoaded)" class="icon-settings-dark" />
|
||||
|
||||
<svg v-else-if="listView && app.preview"
|
||||
|
|
@ -39,19 +45,28 @@
|
|||
</svg>
|
||||
|
||||
<img v-if="!listView && app.screenshot && screenshotLoaded" :src="app.screenshot" width="100%">
|
||||
</div>
|
||||
<div class="app-name" @click="showAppDetails">
|
||||
</component>
|
||||
<component :is="dataItemTag"
|
||||
class="app-name"
|
||||
:headers="getDataItemHeaders(`app-table-col-name`)"
|
||||
@click="showAppDetails">
|
||||
{{ app.name }}
|
||||
</div>
|
||||
<div v-if="!listView" class="app-summary">
|
||||
</component>
|
||||
<component :is="dataItemTag"
|
||||
v-if="!listView"
|
||||
class="app-summary"
|
||||
:headers="getDataItemHeaders(`app-version`)">
|
||||
{{ app.summary }}
|
||||
</div>
|
||||
<div v-if="listView" class="app-version">
|
||||
</component>
|
||||
<component :is="dataItemTag"
|
||||
v-if="listView"
|
||||
class="app-version"
|
||||
:headers="getDataItemHeaders(`app-table-col-version`)">
|
||||
<span v-if="app.version">{{ app.version }}</span>
|
||||
<span v-else-if="app.appstoreData.releases[0].version">{{ app.appstoreData.releases[0].version }}</span>
|
||||
</div>
|
||||
</component>
|
||||
|
||||
<div class="app-level">
|
||||
<component :is="dataItemTag" :headers="getDataItemHeaders(`app-table-col-level`)" class="app-level">
|
||||
<span v-if="app.level === 300"
|
||||
:title="t('settings', 'This app is supported via your current Nextcloud subscription.')"
|
||||
:aria-label="t('settings', 'This app is supported via your current Nextcloud subscription.')"
|
||||
|
|
@ -63,9 +78,8 @@
|
|||
class="official icon-checkmark">
|
||||
{{ t('settings', 'Featured') }}</span>
|
||||
<AppScore v-if="hasRating && !listView" :score="app.score" />
|
||||
</div>
|
||||
|
||||
<div class="actions">
|
||||
</component>
|
||||
<component :is="dataItemTag" :headers="getDataItemHeaders(`app-table-col-actions`)" class="actions">
|
||||
<div v-if="app.error" class="warning">
|
||||
{{ app.error }}
|
||||
</div>
|
||||
|
|
@ -104,8 +118,8 @@
|
|||
@click.stop="forceEnable(app.id)">
|
||||
{{ forceEnableButtonText }}
|
||||
</NcButton>
|
||||
</div>
|
||||
</div>
|
||||
</component>
|
||||
</component>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
|
@ -128,6 +142,14 @@ export default {
|
|||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
useBundleView: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
headers: {
|
||||
type: String,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -140,6 +162,9 @@ export default {
|
|||
hasRating() {
|
||||
return this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5
|
||||
},
|
||||
dataItemTag() {
|
||||
return this.listView ? 'td' : 'div'
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
'$route.params.id'(id) {
|
||||
|
|
@ -176,6 +201,10 @@ export default {
|
|||
prefix(prefix, content) {
|
||||
return prefix + '_' + content
|
||||
},
|
||||
|
||||
getDataItemHeaders(columnName) {
|
||||
return this.useBundleView ? [this.headers, columnName].join(' ') : null
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
4
dist/settings-apps-view-7418.js
vendored
4
dist/settings-apps-view-7418.js
vendored
File diff suppressed because one or more lines are too long
2
dist/settings-apps-view-7418.js.map
vendored
2
dist/settings-apps-view-7418.js.map
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -33,7 +33,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
|
|||
* @return Locator
|
||||
*/
|
||||
public static function appsList() {
|
||||
return Locator::forThe()->xpath("//main[@id='app-content' or contains(@class, 'app-content')]//div[@id='apps-list']")->
|
||||
return Locator::forThe()->xpath("//main[@id='app-content' or contains(@class, 'app-content')]//*[@id='apps-list']")->
|
||||
describedAs("Apps list in Apps Management");
|
||||
}
|
||||
|
||||
|
|
@ -86,7 +86,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
|
|||
* @return Locator
|
||||
*/
|
||||
public static function enableAllBundleButton($bundle) {
|
||||
return Locator::forThe()->xpath("//div[@class='apps-header']/h2[normalize-space() = '$bundle']/input[@value='Download and enable all']")->
|
||||
return Locator::forThe()->xpath("//th[//*[normalize-space() = '$bundle']]//button[normalize-space() = 'Download and enable all']")->
|
||||
descendantOf(self::appsList())->
|
||||
describedAs("Button to enable bundles");
|
||||
}
|
||||
|
|
@ -95,7 +95,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
|
|||
* @return Locator
|
||||
*/
|
||||
public static function rowForApp($app) {
|
||||
return Locator::forThe()->xpath("//div[@class='app-name'][normalize-space() = '$app']/..")->
|
||||
return Locator::forThe()->xpath("//*[@class='app-name'][normalize-space() = '$app']/..")->
|
||||
descendantOf(self::appsList())->
|
||||
describedAs("Row for app $app in Apps Management");
|
||||
}
|
||||
|
|
@ -104,7 +104,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
|
|||
* @return Locator
|
||||
*/
|
||||
public static function emptyAppList() {
|
||||
return Locator::forThe()->xpath("//div[@id='apps-list-empty']")->
|
||||
return Locator::forThe()->xpath("//*[@id='apps-list-empty']")->
|
||||
descendantOf(self::appsList())->
|
||||
describedAs("Empty apps list view");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue