Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>tags/v28.0.0beta1
@@ -1 +1 @@ | |||
{"version":3,"sourceRoot":"","sources":["files.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,oDAGD,mBACC,kBACA,aACA,SACA,4CACC,iBACA,YACA,SACA,oDACA,8CACA,aACA,iBAIF,gBACC,aAGD,OACC,iBACA,YACA,aACA,aACA,mBAGD,6EAGC,yBACA,gCAID,kBACC,kBACA,WACA,gBACA,cACA,sBAEA,6CACC,aAGD,wBACC,wBACA,gBAEA,SAEA,WACA,cACA,0DAMD,wBACC,cACA,WAEA,mGAEC,8CAEA,6KACC,oCAKF,8DACC,oBAKH,yBACC,aAID,uCACC,cACA,WAGD,wBAGC,yBAEA,qBAGD,6FACC,+DAGD,iCACC,yDAGD,kFACC,0CAGD,4EACC,+DAID,gBC9EC,yCDiFD,iBCjFC,yCDoFD,oBCpFC,0CDuFD,qGCvFC,wCD6FD,0BC7FC,yCDgGD,2BChGC,2CDmGD,mBCnGC,yCDsGD,2BCtGC,4CDyGD,2BCzGC,0CD4GD,4BC5GC,4CDgHD,4CACC,WAGD,iCACC,WACA,YACA,eACA,SACA,eAGD,wCACC,aAGD,0CACC,WAGD,2BACC,YAED,4KAKC,+CAED,wMAKC,oDAGD,qCAEA,yDACC,oCAED,kCACC,iCACA,8BACA,4BACA,yBACA,mBAED,wGAIC,UACA,oCAGD,oBACC,oCAED,uBACC,6BAED,sBACC,cACA,aACA,YACA,sBACA,2BACA,sBACA,oCACC,kBAGF,kCACC,qBACA,mBAED,2BACC,eACA,iBAGD,uCACC,cAGD,yBACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,wJAIC,kBAED,2CACC,eAED,4EAEC,mBAGD,kBAEC,4CACA,gBACA,mBAED,SACC,eACA,kBACA,+BACA,4BAED,qBACC,kBACA,aACA,UAGD,uBACC,kBACA,YAGD,0BACC,gBAED,uCACC,iBAED,8EAEC,2BACA,sBACA,kBAEA,gBAGD,qMAQC,gBACA,qPACC,MAIF,2BACC,0DACA,iBAGD,sDACC,iBAGD,+BACC,kBACA,aAED,kCACC,aAGD,0DAGC,WACA,kBAED,kDAEC,aACA,kBACA,2BACA,sBACA,YACA,iBACA,UAED,qCAEC,QACA,eACA,eACA,YAGA,8DACC,WAED,mEACC,WAGF,6BACC,qBACA,WACA,YACA,wBACA,2BACA,4BACA,gBACA,eACA,mCACA,eACA,kBACA,UAED,oCACC,eAID,2CACC,qCAGD,iDACC,qBACA,4BACA,YAED,uBACC,iBACA,kBACA,SAGD,6IACA,8FAEA,wCACC,kBACA,gBACA,uBACA,YAKA,kBACC,YACA,4BACC,QACA,YACA,aACA,gBACA,mBACA,uBACA,YACA,WACA,mBAID,+BACC,iBACA,aACA,uBACA,mBACA,kCACA,gBAEA,iDACC,iBACA,iBACA,wCACA,iCACA,oCACA,uBACA,mBACA,gBACA,uBACA,iBACA,kBAEA,uDACC,iBACA,sBAID,mEACC,gBAOL,iJAEC,wBAGD,mCACC,iCACA,8BACA,4BACA,yBAED,4BACC,WAGD,2CACC,uBACA,gBACA,kBACA,mBAKD,8BACC,kBACA,mBAEA,iBACA,OACA,SACA,YACA,cAEA,iBACA,eAEA,iBACA,oCACA,uBACA,mBAGD,mBACC,UAID,6DACC,WACA,eAID,iRAIC,UAID,0EACC,WAMA,wEACC,aAGD,oGACC,+CACA,wCACA,wBACA,yDACA,aAIF,oGAEC,mBAGD,+BACC,kBACA,WACA,eACA,gBACA,wJAGD,wFAEC,kBACA,UACA,YAGD,yCACC,qBACA,WAED,8CACC,kBACA,cACA,SACA,WACA,iBACA,kBACA,wDAEC,8CACA,8CACA,oBAEA,WACA,YACA,aACA,qBACA,uBAGF,8DACC,+CAGD,iDAGA,aACC,WAGD,iCACC,kBAID,mDAEC,gBAID,oCACC,qBACA,0BAGD,8EACC,0BAOA,kCACC,eAGD,sEACC,eAGD,sCACC,gBAIF,aACC,YACA,WACA,2BAKA,0EACC,wCAKF,iBACI,kBACA,qBACA,sBAEJ,wBACI,aAEJ,mBACC,eACA,iBACA,iBAGD,0BACC,aAED,uBACC,kBACA,2BACA,mBAGD,8CACC,gBAIA,8BACC,eACA,iBACA,iBACA,WACA,2CACC,kBACA,0FAGC,kBACA,cACA,SACA,UACA,WACA,gBAED,mDACC,qBACA,sBAGF,0CACC,iBACA,oBACA,kBACA,mBAGA,oGACC,WAID,qIAEC,WAED,uDACC,WACA,0HACC,WAIH,wEACC,UAED,oCACC,+CACA,wCAGF,uGACC,WAED,wDACC,UAKF,4EACC,qBACA,eACA,gBACA,uBACA,sBACA,gBAGD,2CACC,yBAGD,yCACC,UAGD,kNAKC,UAGD,qCACC,gBAGD,0FAEC,WAGD,mDACC,eAGD,SACC,oCAGA,aAED,wCACC,WAEA,mBAKD,sBACC,aAED,2DAIC,+BAED,YACC,mBACA,mBACA,iBAED,wBACC,UAED,YACC,qBAGD,iBACC,WACA,aAED,6BACC,kBACA,mBACA,YAGA,gBAED,yBACC,kBAED,MACC,WACA,kBACA,MACA,OACA,QACA,SACA,8CACA,sCACA,wBACA,WACA,yBACA,8BACA,4BACA,6BACA,iCAED,kBACC,UAGD,aACC,gBACA,SACA,sBACA,eACA,gBACA,aAGA,oBACC,qBAKF,gBACC,sBACA,wBACA,gBACA,YACA,UACA,SACA,0DACA,WACA,yBACA,sBACA,qBACA,iBACA,aACA,MACA,kBAKE,0IACC,sBACA,qBACA,aACA,YACA,WACA,YACA,mBACA,uBAED,oFACC,aAQJ,0DACC,OAGD,6KAIC,qBACA,sBACA,0BAMA,sDACC,sBAED,yDACC,uDAIF,iJAGC,aAGD,oJAGC,WACA,YAGD,gCACC,kBACA,YACA,SACA,oDACA,8CACA,aACA,iBAGD,YACC,mBAEA,uBACC,mCAIF,0DAEC,oCAED,qBACC,oCACA,4BACC,2BAIF,cACC,iBACA,kBACA,gBACA,6BACA,cACA,gBACA,YAEA,2BACC,aAGD,kCACC,UACA,kBACA,iBAIF,uBACC,oBACA,YACA,gBACA,+BACA,UACA,YACA,wBACA,sBAEA,6BACC,YAKA,oEACC,0BAIF,kCACC,WACA,mCAWA,kDACC,cACA,4CACA,0DACA,qDACC,WACA,YAMH,+CACC,aACA,+CACA,6BACA,aACA,cAGA,+DACC,cACA,kBACA,aACA,mCAEA,0fAKC,+BAEA,oxDAGC,+CAKH,kDACC,eACA,mBAGC,8EACC,YACA,eACA,kBACA,MAvDQ,MAwDR,OAxDQ,MAyDR,QAxDO,KAyDP,MACA,OACA,WAEA,yFACC,4BACA,6BACA,wBACA,SACA,mCACA,4BACA,2BAKA,wGACC,UACA,UACA,YAKH,uEACC,WACA,SACA,MACA,YAEA,YACA,gBAEA,kBAGD,iEACC,YACA,mCAIA,gBAKA,0BAEA,2EACC,aACA,YACA,iBACA,kBACA,iBACA,UAEA,0FACC,qBACA,kBACA,gBACA,uBACA,mBAED,kFACC,WACA,OACA,eAED,iFACC,WACA,OACA,eAID,sFACC,aAKF,8EACC,aAGD,8EACC,eACA,iBACA,aACA,mBACA,kBACA,QAEA,sFACC,QAxJK,KAyJL,WACA,YACA,aACA,mBACA,uBAGA,wGACC,aAQH,2GACC,yBAEA,6HACC,YACA,kBAIF,6GACC,yBAGD,6GACC,yBAIF,gEACC,iBACA,mCAEA,+EACC,WACA,cACA,YAMH,kHAEC,aAGD,sIAEC,kBACA,SACA,UACA,aACA,WAEA,kJACC,WACA,YACA,oBACA,QAzNO,KA0NP,kKACC,SACA,MA5NM,KA6NN,OA7NM,KAmOT,+DACC,OACA,YACA,aAGA,yFACC,gBACA,uBAMJ,+FACC,cAID,+CACC,aAEA,qEACC,qBACA,cAEA,aAEA,wEACC,iBAEA,iKAEC,aAGD,8EACI,cAQR,aACC,0DACA,YACA,SACA,aACA,WACA,YACA,mCACA,iCACA,YACA,gBAEA,uEAGC,UAGD,oEAEC,mEASF,cACC,eACA,MAOC,uGACC,gBAID,4EACC,WAKF,0BACC,kBACA,QACA,MAKF,gBACC,aAGD,8BACC,gBACA,sBACA,kBACA,kBACA,aACA,eACA,mBAEA,iCACC,WACA,eAGD,6DACC,aACA,YACA","file":"files.css"} | |||
{"version":3,"sourceRoot":"","sources":["files.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,oDAGD,mBACC,kBACA,aACA,SACA,4CACC,iBACA,YACA,SACA,oDACA,8CACA,aACA,iBAIF,gBACC,aAGD,OACC,iBACA,YACA,aACA,aACA,mBAGD,6EAGC,yBACA,gCAID,kBACC,kBACA,WACA,gBACA,cACA,sBAEA,6CACC,aAGD,wBACC,wBACA,gBAEA,SAEA,WACA,cACA,0DAMD,wBACC,cACA,WAEA,mGAEC,8CAEA,6KACC,oCAKF,8DACC,oBAKH,yBACC,aAID,uCACC,cACA,WAGD,wBAGC,yBAEA,qBAGD,6FACC,+DAGD,iCACC,yDAGD,kFACC,0CAGD,4EACC,+DAID,iCACC,WACA,YACA,eACA,SACA,eAGD,wCACC,aAGD,0CACC,WAGD,2BACC,YAED,4KAKC,+CAED,wMAKC,oDAGD,qCAEA,yDACC,oCAED,kCACC,iCACA,8BACA,4BACA,yBACA,mBAED,wGAIC,UACA,oCAGD,oBACC,oCAED,uBACC,6BAED,sBACC,cACA,aACA,YACA,sBACA,2BACA,sBACA,oCACC,kBAGF,kCACC,qBACA,mBAED,2BACC,eACA,iBAGD,uCACC,cAGD,yBACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,wJAIC,kBAED,2CACC,eAED,4EAEC,mBAGD,kBAEC,4CACA,gBACA,mBAED,SACC,eACA,kBACA,+BACA,4BAED,qBACC,kBACA,aACA,UAGD,uBACC,kBACA,YAGD,0BACC,gBAED,uCACC,iBAED,8EAEC,2BACA,sBACA,kBAEA,gBAGD,qMAQC,gBACA,qPACC,MAIF,2BACC,0DACA,iBAGD,sDACC,iBAGD,+BACC,kBACA,aAED,kCACC,aAGD,0DAGC,WACA,kBAED,kDAEC,aACA,kBACA,2BACA,sBACA,YACA,iBACA,UAED,qCAEC,QACA,eACA,eACA,YAGA,8DACC,WAED,mEACC,WAGF,6BACC,qBACA,WACA,YACA,wBACA,2BACA,4BACA,gBACA,eACA,mCACA,eACA,kBACA,UAED,oCACC,eAID,2CACC,qCAGD,iDACC,qBACA,4BACA,YAED,uBACC,iBACA,kBACA,SAGD,6IACA,8FAEA,wCACC,kBACA,gBACA,uBACA,YAKA,kBACC,YACA,4BACC,QACA,YACA,aACA,gBACA,mBACA,uBACA,YACA,WACA,mBAID,+BACC,iBACA,aACA,uBACA,mBACA,kCACA,gBAEA,iDACC,iBACA,iBACA,wCACA,iCACA,oCACA,uBACA,mBACA,gBACA,uBACA,iBACA,kBAEA,uDACC,iBACA,sBAID,mEACC,gBAOL,iJAEC,wBAGD,mCACC,iCACA,8BACA,4BACA,yBAED,4BACC,WAGD,2CACC,uBACA,gBACA,kBACA,mBAKD,8BACC,kBACA,mBAEA,iBACA,OACA,SACA,YACA,cAEA,iBACA,eAEA,iBACA,oCACA,uBACA,mBAGD,mBACC,UAID,6DACC,WACA,eAID,iRAIC,UAID,0EACC,WAMA,wEACC,aAGD,oGACC,+CACA,wCACA,wBACA,yDACA,aAIF,oGAEC,mBAGD,+BACC,kBACA,WACA,eACA,gBACA,wJAGD,wFAEC,kBACA,UACA,YAGD,yCACC,qBACA,WAED,8CACC,kBACA,cACA,SACA,WACA,iBACA,kBACA,wDAEC,8CACA,8CACA,oBAEA,WACA,YACA,aACA,qBACA,uBAGF,8DACC,+CAGD,iDAGA,aACC,WAGD,iCACC,kBAID,mDAEC,gBAID,oCACC,qBACA,0BAGD,8EACC,0BAOA,kCACC,eAGD,sEACC,eAGD,sCACC,gBAIF,aACC,YACA,WACA,2BAKA,0EACC,wCAKF,iBACI,kBACA,qBACA,sBAEJ,wBACI,aAEJ,mBACC,eACA,iBACA,iBAGD,0BACC,aAED,uBACC,kBACA,2BACA,mBAGD,8CACC,gBAIA,8BACC,eACA,iBACA,iBACA,WACA,2CACC,kBACA,0FAGC,kBACA,cACA,SACA,UACA,WACA,gBAED,mDACC,qBACA,sBAGF,0CACC,iBACA,oBACA,kBACA,mBAGA,oGACC,WAID,qIAEC,WAED,uDACC,WACA,0HACC,WAIH,wEACC,UAED,oCACC,+CACA,wCAGF,uGACC,WAED,wDACC,UAKF,4EACC,qBACA,eACA,gBACA,uBACA,sBACA,gBAGD,2CACC,yBAGD,yCACC,UAGD,kNAKC,UAGD,qCACC,gBAGD,0FAEC,WAGD,mDACC,eAGD,SACC,oCAGA,aAED,wCACC,WAEA,mBAKD,sBACC,aAED,2DAIC,+BAED,YACC,mBACA,mBACA,iBAED,wBACC,UAED,YACC,qBAGD,iBACC,WACA,aAED,6BACC,kBACA,mBACA,YAGA,gBAED,yBACC,kBAED,MACC,WACA,kBACA,MACA,OACA,QACA,SACA,8CACA,sCACA,wBACA,WACA,yBACA,8BACA,4BACA,6BACA,iCAED,kBACC,UAGD,aACC,gBACA,SACA,sBACA,eACA,gBACA,aAGA,oBACC,qBAKF,gBACC,sBACA,wBACA,gBACA,YACA,UACA,SACA,0DACA,WACA,yBACA,sBACA,qBACA,iBACA,aACA,MACA,kBAKE,0IACC,sBACA,qBACA,aACA,YACA,WACA,YACA,mBACA,uBAED,oFACC,aAQJ,0DACC,OAGD,6KAIC,qBACA,sBACA,0BAMA,sDACC,sBAED,yDACC,uDAIF,iJAGC,aAGD,oJAGC,WACA,YAGD,gCACC,kBACA,YACA,SACA,oDACA,8CACA,aACA,iBAGD,YACC,mBAEA,uBACC,mCAIF,0DAEC,oCAED,qBACC,oCACA,4BACC,2BAIF,cACC,iBACA,kBACA,gBACA,6BACA,cACA,gBACA,YAEA,2BACC,aAGD,kCACC,UACA,kBACA,iBAIF,uBACC,oBACA,YACA,gBACA,+BACA,UACA,YACA,wBACA,sBAEA,6BACC,YAKA,oEACC,0BAIF,kCACC,WACA,mCAWA,kDACC,cACA,4CACA,0DACA,qDACC,WACA,YAMH,+CACC,aACA,+CACA,6BACA,aACA,cAGA,+DACC,cACA,kBACA,aACA,mCAEA,0fAKC,+BAEA,oxDAGC,+CAKH,kDACC,eACA,mBAGC,8EACC,YACA,eACA,kBACA,MAvDQ,MAwDR,OAxDQ,MAyDR,QAxDO,KAyDP,MACA,OACA,WAEA,yFACC,4BACA,6BACA,wBACA,SACA,mCACA,4BACA,2BAKA,wGACC,UACA,UACA,YAKH,uEACC,WACA,SACA,MACA,YAEA,YACA,gBAEA,kBAGD,iEACC,YACA,mCAIA,gBAKA,0BAEA,2EACC,aACA,YACA,iBACA,kBACA,iBACA,UAEA,0FACC,qBACA,kBACA,gBACA,uBACA,mBAED,kFACC,WACA,OACA,eAED,iFACC,WACA,OACA,eAID,sFACC,aAKF,8EACC,aAGD,8EACC,eACA,iBACA,aACA,mBACA,kBACA,QAEA,sFACC,QAxJK,KAyJL,WACA,YACA,aACA,mBACA,uBAGA,wGACC,aAQH,2GACC,yBAEA,6HACC,YACA,kBAIF,6GACC,yBAGD,6GACC,yBAIF,gEACC,iBACA,mCAEA,+EACC,WACA,cACA,YAMH,kHAEC,aAGD,sIAEC,kBACA,SACA,UACA,aACA,WAEA,kJACC,WACA,YACA,oBACA,QAzNO,KA0NP,kKACC,SACA,MA5NM,KA6NN,OA7NM,KAmOT,+DACC,OACA,YACA,aAGA,yFACC,gBACA,uBAMJ,+FACC,cAID,+CACC,aAEA,qEACC,qBACA,cAEA,aAEA,wEACC,iBAEA,iKAEC,aAGD,8EACI,cAQR,aACC,0DACA,YACA,SACA,aACA,WACA,YACA,mCACA,iCACA,YACA,gBAEA,uEAGC,UAGD,oEAEC,mEASF,cACC,eACA,MAOC,uGACC,gBAID,4EACC,WAKF,0BACC,kBACA,QACA,MAKF,gBACC,aAGD,8BACC,gBACA,sBACA,kBACA,kBACA,aACA,eACA,mBAEA,iCACC,WACA,eAGD,6DACC,aACA,YACA","file":"files.css"} |
@@ -140,44 +140,6 @@ | |||
background-color: var(--color-primary-element-light) !important; | |||
} | |||
/* icons for sidebar */ | |||
.nav-icon-files { | |||
@include icon-color('folder', 'files', variables.$color-black); | |||
} | |||
.nav-icon-recent { | |||
@include icon-color('recent', 'files', variables.$color-black); | |||
} | |||
.nav-icon-favorites { | |||
@include icon-color('starred', 'actions', variables.$color-black, 2, true); | |||
} | |||
.nav-icon-sharinginOld, | |||
.nav-icon-sharingoutOld, | |||
.nav-icon-pendingsharesOld, | |||
.nav-icon-shareoverviewOld { | |||
@include icon-color('share', 'files', variables.$color-black); | |||
} | |||
.nav-icon-sharinglinksOld { | |||
@include icon-color('public', 'files', variables.$color-black); | |||
} | |||
.nav-icon-extstoragemounts { | |||
@include icon-color('external', 'files', variables.$color-black); | |||
} | |||
.nav-icon-trashbin { | |||
@include icon-color('delete', 'files', variables.$color-black); | |||
} | |||
.nav-icon-trashbin-starred { | |||
@include icon-color('delete', 'files', #ff0000); | |||
} | |||
.nav-icon-deletedsharesOld { | |||
@include icon-color('unshare', 'files', variables.$color-black); | |||
} | |||
.nav-icon-favorites-starred { | |||
@include icon-color('starred', 'actions', variables.$color-yellow, 2, true); | |||
} | |||
#app-navigation .nav-files a.nav-icon-files { | |||
width: auto; | |||
} | |||
/* button needs overrides due to navigation styles */ | |||
#app-navigation .nav-files a.new { | |||
width: 40px; |
@@ -0,0 +1 @@ | |||
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-folder" viewBox="0 0 24 24"><path d="M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" /></svg> |
@@ -1 +1 @@ | |||
<svg width="32" height="32" version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><path d="m3 4c-0.5 0-1 0.5-1 1v22c0 0.52 0.48 1 1 1h26c0.52 0 1-0.482 1-1v-18c0-0.5-0.5-1-1-1h-13l-4-4z" fill="#fff"/></svg> | |||
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-folder" viewBox="0 0 24 24"><path d="M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" fill="#fff" /></svg> |
@@ -1 +0,0 @@ | |||
<svg width="24px" height="24px" fill="#000000" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H1c-.55 0-1 .45-1 1s.45 1 1 1h22c.55 0 1-.45 1-1s-.45-1-1-1h-3zM5 6h14c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1z"/></svg> |
@@ -1 +0,0 @@ | |||
<svg width="16" height="16" version="1.1" viewbox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M6.5 1L6 2H3c-.554 0-1 .446-1 1v1h12V3c0-.554-.446-1-1-1h-3l-.5-1zM3 5l.875 9c.06.55.573 1 1.125 1h6c.552 0 1.064-.45 1.125-1L13 5z"/></svg> |
@@ -1 +0,0 @@ | |||
<svg width="16" height="16" version="1.1" viewbox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m8 1 2.4 2.44-3.46 3.5 2.12 2.12 3.5-3.5 2.44 2.44v-7zm-5.25 1.5c-0.68 0-1.25 0.57-1.25 1.25v9.5c0 0.68 0.57 1.25 1.25 1.25h9.5c0.68 0 1.25-0.57 1.25-1.25v-4.25l-1.5-1.5v5.5h-9v-9h5.5l-1.5-1.5z"/></svg> |
@@ -1 +1 @@ | |||
<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m1.5 2c-0.25 0-0.5 0.25-0.5 0.5v11c0 0.26 0.24 0.5 0.5 0.5h13c0.26 0 0.5-0.241 0.5-0.5v-9c0-0.25-0.25-0.5-0.5-0.5h-6.5l-2-2z"/></svg> | |||
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-folder" viewBox="0 0 24 24"><path d="M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" /></svg> |
@@ -1 +0,0 @@ | |||
<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m9.2363 2.166-3.1816 3.1836c-0.7071 0.7072-1.0378 1.6182-0.9883 2.457 0.05 0.8389 0.4333 1.5841 0.9883 2.1387l1.4121-1.416c-0.5672-0.5672-0.5444-1.2192 2e-3 -1.7656l3.1812-3.1817c0.52536-0.52536 1.2507-0.52318 1.772-2e-3 0.48245 0.5556 0.52732 1.2382-4e-3 1.7695l-0.82 0.8203c0.555 0.785 0.645 1.3663 0.593 2.2344l1.641-1.6406c1.2374-1.2374 1.2371-3.3645 0-4.6016-1.236-1.2361-3.342-1.2113-4.5957 4e-3zm0.7071 3.8848-1.4141 1.418h4e-3c0.55 0.55 0.50736 1.2582-4e-3 1.7695l-3.1816 3.1817c-0.696 0.59192-1.2985 0.47105-1.7696 0-0.62636-0.62636-0.5-1.2681 0-1.768l0.85-0.8473c-0.556-0.7835-0.6484-1.365-0.5976-2.2324l-1.666 1.666c-1.2393 1.2393-1.2357 3.36 0 4.5957 1.2353 1.2353 3.362 1.2356 4.5976 0l3.1817-3.182c0.7086-0.7083 1.0396-1.6184 0.9906-2.4586-0.048-0.8401-0.432-1.5864-0.9887-2.1407z"/></svg> |
@@ -1 +0,0 @@ | |||
<svg width="16" height="16" version="1.1" viewbox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><circle cx="8" cy="8" r="7" fill="none" stroke="#000" stroke-width="2"/><path d="m8 3.5-1 5 3.5 2-2-2z" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/></svg> |
@@ -1 +0,0 @@ | |||
<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><circle cx="3.5" cy="8" r="2.5"/><circle cx="12.5" cy="12.5" r="2.5"/><circle cx="12.5" cy="3.5" r="2.5"/><path d="m3.5 8 9 4.5m-9-4.5 9-4.5" fill="none" stroke="#000" stroke-width="2"/></svg> |
@@ -1 +0,0 @@ | |||
<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m8 0.5 2.2 5.3 5.8 0.45-4.5 3.75 1.5 5.5-5-3.1-5 3.1 1.5-5.5-4.5-3.75 5.8-0.45z"/></svg> |
@@ -1 +0,0 @@ | |||
<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m12.5 1a2.5 2.5 0 0 0-2.5 2.5 2.5 2.5 0 0 0 0.003906 0.12891l-4.9023 2.4512a2.5 2.5 0 0 0-1.6016-0.58008 2.5 2.5 0 0 0-2.5 2.5 2.5 2.5 0 0 0 2.5 2.5 2.5 2.5 0 0 0 0.30469-0.021484l3.4395-1.7246-1.25-0.625a2.5 2.5 0 0 0 0.0058594-0.12891 2.5 2.5 0 0 0-0.0039062-0.12891l4.9023-2.4512a2.5 2.5 0 0 0 1.6016 0.58008 2.5 2.5 0 0 0 0.26562-0.013672l1.5625-0.7832a2.5 2.5 0 0 0 0.67188-1.7031 2.5 2.5 0 0 0-2.5-2.5zm0.25391 9.0156-3.7246 1.8672 0.97656 0.48828a2.5 2.5 0 0 0-0.005859 0.12891 2.5 2.5 0 0 0 2.5 2.5 2.5 2.5 0 0 0 2.5-2.5 2.5 2.5 0 0 0-2.2461-2.4844z"/><rect transform="rotate(-26.63)" x="-1.0586" y="11.891" width="11.687" height="2.0029" ry="0" style="paint-order:normal"/></svg> |
@@ -133,7 +133,6 @@ class Application extends App implements IBootstrap { | |||
$context->injectFn([Listener::class, 'register']); | |||
$context->injectFn(Closure::fromCallable([$this, 'registerSearchProvider'])); | |||
$this->registerTemplates(); | |||
$context->injectFn(Closure::fromCallable([$this, 'registerNavigation'])); | |||
$this->registerHooks(); | |||
} | |||
@@ -152,18 +151,6 @@ class Application extends App implements IBootstrap { | |||
$templateManager->registerTemplate('application/vnd.oasis.opendocument.spreadsheet', 'core/templates/filetemplates/template.ods'); | |||
} | |||
private function registerNavigation(IL10N $l10n): void { | |||
\OCA\Files\App::getNavigationManager()->add(function () use ($l10n) { | |||
return [ | |||
'id' => 'files', | |||
'appname' => 'files', | |||
'script' => 'list.php', | |||
'order' => 0, | |||
'name' => $l10n->t('All files') | |||
]; | |||
}); | |||
} | |||
private function registerHooks(): void { | |||
Util::connectHook('\OCP\Config', 'js', '\OCA\Files\App', 'extendJsConfig'); | |||
} |
@@ -22,6 +22,8 @@ | |||
<template> | |||
<Fragment> | |||
<span v-if="source.attributes.failed" class="files-list__row--failed" /> | |||
<td class="files-list__row-checkbox"> | |||
<NcCheckboxRadioSwitch v-if="active" | |||
:aria-label="t('files', 'Select the row for {displayName}', { displayName })" | |||
@@ -342,6 +344,13 @@ export default Vue.extend({ | |||
}, | |||
linkTo() { | |||
if (this.source.attributes.failed) { | |||
return { | |||
title: this.t('files', 'This node is unavailable'), | |||
is: 'span', | |||
} | |||
} | |||
if (this.enabledDefaultActions.length > 0) { | |||
const action = this.enabledDefaultActions[0] | |||
const displayName = action.displayName([this.source], this.currentView) | |||
@@ -404,6 +413,10 @@ export default Vue.extend({ | |||
// Sorted actions that are enabled for this node | |||
enabledActions() { | |||
if (this.source.attributes.failed) { | |||
return [] | |||
} | |||
return actions | |||
.filter(action => !action.enabled || action.enabled([this.source], this.currentView)) | |||
.sort((a, b) => (a.order || 0) - (b.order || 0)) |
@@ -197,6 +197,7 @@ export default Vue.extend({ | |||
align-items: center; | |||
width: 100%; | |||
border-bottom: 1px solid var(--color-border); | |||
user-select: none; | |||
} | |||
td, th { | |||
@@ -221,8 +222,21 @@ export default Vue.extend({ | |||
} | |||
} | |||
.files-list__row--failed { | |||
position: absolute; | |||
display: block; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
bottom: 0; | |||
opacity: .1; | |||
z-index: -1; | |||
background: var(--color-error); | |||
} | |||
.files-list__row-checkbox { | |||
justify-content: center; | |||
.checkbox-radio-switch { | |||
display: flex; | |||
justify-content: center; |
@@ -20,6 +20,7 @@ import NavigationView from './views/Navigation.vue' | |||
import processLegacyFilesViews from './legacy/navigationMapper.js' | |||
import registerFavoritesView from './views/favorites' | |||
import registerRecentView from './views/recent' | |||
import registerFilesView from './views/files' | |||
import registerPreviewServiceWorker from './services/ServiceWorker.js' | |||
import router from './router/router.js' | |||
import RouterService from './services/RouterService' | |||
@@ -80,6 +81,7 @@ FilesList.$mount('#app-content-vue') | |||
// Init legacy and new files views | |||
processLegacyFilesViews() | |||
registerFavoritesView() | |||
registerFilesView() | |||
registerRecentView() | |||
// Register preview service worker |
@@ -19,7 +19,7 @@ | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
import { File, Folder, parseWebdavPermissions } from '@nextcloud/files' | |||
import { File, Folder, davParsePermissions } from '@nextcloud/files' | |||
import { generateRemoteUrl } from '@nextcloud/router' | |||
import { getClient, rootPath } from './WebdavClient' | |||
import { getCurrentUser } from '@nextcloud/auth' | |||
@@ -47,7 +47,7 @@ interface ResponseProps extends DAVResultResponseProps { | |||
const resultToNode = function(node: FileStat): File | Folder { | |||
const props = node.props as ResponseProps | |||
const permissions = parseWebdavPermissions(props?.permissions) | |||
const permissions = davParsePermissions(props?.permissions) | |||
const owner = getCurrentUser()?.uid as string | |||
const nodeData = { |
@@ -0,0 +1,102 @@ | |||
/** | |||
* @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com> | |||
* | |||
* @author John Molakvoæ <skjnldsv@protonmail.com> | |||
* | |||
* @license AGPL-3.0-or-later | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
import type { ContentsWithRoot } from './Navigation' | |||
import type { FileStat, ResponseDataDetailed, DAVResultResponseProps } from 'webdav' | |||
import { File, Folder, davParsePermissions } from '@nextcloud/files' | |||
import { generateRemoteUrl } from '@nextcloud/router' | |||
import { getCurrentUser } from '@nextcloud/auth' | |||
import { getClient, rootPath } from './WebdavClient' | |||
import { getDefaultPropfind } from './DavProperties' | |||
import { hashCode } from '../utils/hashUtils' | |||
import logger from '../logger' | |||
const client = getClient() | |||
interface ResponseProps extends DAVResultResponseProps { | |||
permissions: string, | |||
fileid: number, | |||
size: number, | |||
} | |||
const resultToNode = function(node: FileStat): File | Folder { | |||
const props = node.props as ResponseProps | |||
const permissions = davParsePermissions(props?.permissions) | |||
const owner = getCurrentUser()?.uid as string | |||
const source = generateRemoteUrl('dav' + rootPath + node.filename) | |||
const id = props?.fileid < 0 | |||
? hashCode(source) | |||
: props?.fileid as number || 0 | |||
const nodeData = { | |||
id, | |||
source, | |||
mtime: new Date(node.lastmod), | |||
mime: node.mime as string, | |||
size: props?.size as number || 0, | |||
permissions, | |||
owner, | |||
root: rootPath, | |||
attributes: { | |||
...node, | |||
...props, | |||
hasPreview: props?.['has-preview'], | |||
failed: props?.fileid < 0, | |||
}, | |||
} | |||
delete nodeData.attributes.props | |||
return node.type === 'file' | |||
? new File(nodeData) | |||
: new Folder(nodeData) | |||
} | |||
export const getContents = async (path = '/'): Promise<ContentsWithRoot> => { | |||
const propfindPayload = getDefaultPropfind() | |||
const contentsResponse = await client.getDirectoryContents(path, { | |||
details: true, | |||
data: propfindPayload, | |||
includeSelf: true, | |||
}) as ResponseDataDetailed<FileStat[]> | |||
const root = contentsResponse.data[0] | |||
const contents = contentsResponse.data.slice(1) | |||
if (root.filename !== path) { | |||
throw new Error('Root node does not match requested path') | |||
} | |||
return { | |||
folder: resultToNode(root) as Folder, | |||
contents: contents.map(result => { | |||
try { | |||
return resultToNode(result) | |||
} catch (error) { | |||
logger.error(`Invalid node detected '${result.basename}'`, { error }) | |||
return null | |||
} | |||
}).filter(Boolean) as File[], | |||
} | |||
} |
@@ -19,7 +19,7 @@ | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
import { File, Folder, Permission, parseWebdavPermissions } from '@nextcloud/files' | |||
import { File, Folder, Permission, davParsePermissions } from '@nextcloud/files' | |||
import { generateRemoteUrl } from '@nextcloud/router' | |||
import { getClient, rootPath } from './WebdavClient' | |||
import { getCurrentUser } from '@nextcloud/auth' | |||
@@ -94,7 +94,7 @@ interface ResponseProps extends DAVResultResponseProps { | |||
const resultToNode = function(node: FileStat): File | Folder { | |||
const props = node.props as ResponseProps | |||
const permissions = parseWebdavPermissions(props?.permissions) | |||
const permissions = davParsePermissions(props?.permissions) | |||
const owner = getCurrentUser()?.uid as string | |||
const nodeData = { |
@@ -0,0 +1,42 @@ | |||
/** | |||
* @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com> | |||
* | |||
* @author John Molakvoæ <skjnldsv@protonmail.com> | |||
* | |||
* @license AGPL-3.0-or-later | |||
* | |||
* This program is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License as | |||
* published by the Free Software Foundation, either version 3 of the | |||
* License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
* GNU Affero General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Affero General Public License | |||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
* | |||
*/ | |||
import type NavigationService from '../services/Navigation' | |||
import type { Navigation } from '../services/Navigation' | |||
import { translate as t } from '@nextcloud/l10n' | |||
import FolderSvg from '@mdi/svg/svg/folder.svg?raw' | |||
import { getContents } from '../services/Files' | |||
export default () => { | |||
const Navigation = window.OCP.Files.Navigation as NavigationService | |||
Navigation.register({ | |||
id: 'files', | |||
name: t('files', 'All files'), | |||
caption: t('files', 'List of your files and folders.'), | |||
icon: FolderSvg, | |||
order: 0, | |||
getContents, | |||
} as Navigation) | |||
} |
@@ -21,7 +21,7 @@ | |||
*/ | |||
/* eslint-disable */ | |||
import { getCurrentUser } from '@nextcloud/auth' | |||
import { File, Folder, parseWebdavPermissions } from '@nextcloud/files' | |||
import { File, Folder, davParsePermissions } from '@nextcloud/files' | |||
import { generateRemoteUrl, generateUrl } from '@nextcloud/router' | |||
import type { FileStat, ResponseDataDetailed } from 'webdav' | |||
@@ -43,7 +43,7 @@ const data = `<?xml version="1.0"?> | |||
const resultToNode = function(node: FileStat): File | Folder { | |||
const permissions = parseWebdavPermissions(node.props?.permissions) | |||
const permissions = davParsePermissions(node.props?.permissions) | |||
const owner = getCurrentUser()?.uid as string | |||
const previewUrl = generateUrl('/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32', node.props) | |||
@@ -202,8 +202,8 @@ class UtilTest extends TestCase { | |||
public function dataGetAppImage() { | |||
return [ | |||
['core', 'logo/logo.svg', \OC::$SERVERROOT . '/core/img/logo/logo.svg'], | |||
['files', 'external', \OC::$SERVERROOT . '/apps/files/img/external.svg'], | |||
['files', 'external.svg', \OC::$SERVERROOT . '/apps/files/img/external.svg'], | |||
['files', 'folder', \OC::$SERVERROOT . '/apps/files/img/folder.svg'], | |||
['files', 'folder.svg', \OC::$SERVERROOT . '/apps/files/img/folder.svg'], | |||
['noapplikethis', 'foobar.svg', false], | |||
]; | |||
} |
@@ -19,7 +19,7 @@ | |||
"@nextcloud/capabilities": "^1.0.4", | |||
"@nextcloud/dialogs": "^4.1.0", | |||
"@nextcloud/event-bus": "^3.1.0", | |||
"@nextcloud/files": "^3.0.0-beta.11", | |||
"@nextcloud/files": "^3.0.0-beta.13", | |||
"@nextcloud/initial-state": "^2.0.0", | |||
"@nextcloud/l10n": "^2.1.0", | |||
"@nextcloud/logger": "^2.5.0", | |||
@@ -3670,13 +3670,15 @@ | |||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" | |||
}, | |||
"node_modules/@nextcloud/files": { | |||
"version": "3.0.0-beta.11", | |||
"resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.0.0-beta.11.tgz", | |||
"integrity": "sha512-eYPtUo+pBAvY8H0pSDyBJrpUKWILIadOmPVoHKpwOFwljNN3xh+AeT1ofT3oJI6ALfrKD/lDTe18BKU8uhLADA==", | |||
"version": "3.0.0-beta.14", | |||
"resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.0.0-beta.14.tgz", | |||
"integrity": "sha512-wyq+BcOE2KFjhPtpUOIkLRHLxOPVu/ZlbioII4qoD2NtjUHCx9U8RDBo28kFr45Nj3eDsQ1TFEUipocRMJ6J7g==", | |||
"dependencies": { | |||
"@nextcloud/auth": "^2.0.0", | |||
"@nextcloud/l10n": "^2.1.0", | |||
"@nextcloud/logger": "^2.5.0" | |||
"@nextcloud/auth": "^2.1.0", | |||
"@nextcloud/l10n": "^2.2.0", | |||
"@nextcloud/logger": "^2.5.0", | |||
"@nextcloud/router": "^2.1.2", | |||
"webdav": "^5.2.3" | |||
}, | |||
"engines": { | |||
"node": "^20.0.0", |
@@ -45,7 +45,7 @@ | |||
"@nextcloud/capabilities": "^1.0.4", | |||
"@nextcloud/dialogs": "^4.1.0", | |||
"@nextcloud/event-bus": "^3.1.0", | |||
"@nextcloud/files": "^3.0.0-beta.11", | |||
"@nextcloud/files": "^3.0.0-beta.13", | |||
"@nextcloud/initial-state": "^2.0.0", | |||
"@nextcloud/l10n": "^2.1.0", | |||
"@nextcloud/logger": "^2.5.0", |
@@ -264,7 +264,7 @@ class UrlGeneratorTest extends \Test\TestCase { | |||
public function imagePathProvider(): array { | |||
return [ | |||
['core', 'favicon-mask.svg', \OC::$WEBROOT . '/core/img/favicon-mask.svg'], | |||
['files', 'external.svg', \OC::$WEBROOT . '/apps/files/img/external.svg'], | |||
['files', 'folder.svg', \OC::$WEBROOT . '/apps/files/img/folder.svg'], | |||
]; | |||
} | |||