fix: drop legacy sharing files

Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
pull/39196/head
John Molakvoæ 11 months ago
parent a9f7e66d3d
commit b0418f730f
No known key found for this signature in database
GPG Key ID: 60C25B8C072916CF

File diff suppressed because one or more lines are too long

@ -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,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,gBCxEC,yCD2ED,iBC3EC,yCD8ED,oBC9EC,0CDiFD,yFCjFC,wCDuFD,uBCvFC,yCD0FD,2BC1FC,2CD6FD,mBC7FC,yCDgGD,2BChGC,4CDmGD,wBCnGC,0CDsGD,4BCtGC,4CD0GD,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,2BAGD,qCACC,wCAID,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,kBAGD,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","../../../core/css/functions.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,oDAGD,mBACC,kBACA,aACA,SACA,4CACC,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,gBCxEC,yCD2ED,iBC3EC,yCD8ED,oBC9EC,0CDiFD,qGCjFC,wCDuFD,0BCvFC,yCD0FD,2BC1FC,2CD6FD,mBC7FC,yCDgGD,2BChGC,4CDmGD,2BCnGC,0CDsGD,4BCtGC,4CD0GD,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,2BAGD,qCACC,wCAID,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,kBAGD,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"}

@ -144,13 +144,13 @@
.nav-icon-favorites {
@include icon-color('starred', 'actions', variables.$color-black, 2, true);
}
.nav-icon-sharingin,
.nav-icon-sharingout,
.nav-icon-pendingshares,
.nav-icon-shareoverview {
.nav-icon-sharinginOld,
.nav-icon-sharingoutOld,
.nav-icon-pendingsharesOld,
.nav-icon-shareoverviewOld {
@include icon-color('share', 'files', variables.$color-black);
}
.nav-icon-sharinglinks {
.nav-icon-sharinglinksOld {
@include icon-color('public', 'files', variables.$color-black);
}
.nav-icon-extstoragemounts {
@ -162,7 +162,7 @@
.nav-icon-trashbin-starred {
@include icon-color('delete', 'files', #ff0000);
}
.nav-icon-deletedshares {
.nav-icon-deletedsharesOld {
@include icon-color('unshare', 'files', variables.$color-black);
}
.nav-icon-favorites-starred {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -212,56 +212,6 @@ class ViewControllerTest extends TestCase {
'expanded' => false,
'unread' => 0,
],
'shareoverview' => [
'id' => 'shareoverview',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 18,
'name' => \OC::$server->getL10N('files_sharing')->t('Shares'),
'classes' => 'collapsible',
'sublist' => [
[
'id' => 'sharingout',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 16,
'name' => \OC::$server->getL10N('files_sharing')->t('Shared with others'),
],
[
'id' => 'sharingin',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 15,
'name' => \OC::$server->getL10N('files_sharing')->t('Shared with you'),
],
[
'id' => 'sharinglinks',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 17,
'name' => \OC::$server->getL10N('files_sharing')->t('Shared by link', []),
],
[
'id' => 'deletedshares',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 19,
'name' => \OC::$server->getL10N('files_sharing')->t('Deleted shares'),
],
[
'id' => 'pendingshares',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 19,
'name' => \OC::$server->getL10N('files_sharing')->t('Pending shares'),
],
],
'active' => false,
'icon' => '',
'type' => 'link',
'expanded' => false,
'unread' => 0,
]
]);
$expected = new Http\TemplateResponse(
@ -292,30 +242,6 @@ class ViewControllerTest extends TestCase {
'id' => 'systemtagsfilter',
'content' => null,
],
'sharingout' => [
'id' => 'sharingout',
'content' => null,
],
'sharingin' => [
'id' => 'sharingin',
'content' => null,
],
'sharinglinks' => [
'id' => 'sharinglinks',
'content' => null,
],
'deletedshares' => [
'id' => 'deletedshares',
'content' => null,
],
'pendingshares' => [
'id' => 'pendingshares',
'content' => null
],
'shareoverview' => [
'id' => 'shareoverview',
'content' => null,
],
],
'hiddenFields' => [],
'showgridview' => null

@ -1,409 +0,0 @@
/**
* Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
if (!OCA.Sharing) {
/**
* @namespace OCA.Sharing
*/
OCA.Sharing = {}
}
/**
* @namespace
*/
OCA.Sharing.App = {
_inFileList: null,
_outFileList: null,
_overviewFileList: null,
_pendingFileList: null,
initSharingIn($el) {
if (this._inFileList) {
return this._inFileList
}
this._inFileList = new OCA.Sharing.FileList(
$el,
{
id: 'shares.self',
sharedWithUser: true,
fileActions: this._createFileActions(),
config: OCA.Files.App.getFilesConfig(),
// The file list is created when a "show" event is handled, so
// it should be marked as "shown" like it would have been done
// if handling the event with the file list already created.
shown: true,
}
)
this._extendFileList(this._inFileList)
this._inFileList.appName = t('files_sharing', 'Shared with you')
this._inFileList.$el.find('.emptyfilelist.emptycontent').html('<div class="icon-shared"></div>'
+ '<h2>' + t('files_sharing', 'Nothing shared with you yet') + '</h2>'
+ '<p>' + t('files_sharing', 'Files and folders others share with you will show up here') + '</p>')
return this._inFileList
},
initSharingOut($el) {
if (this._outFileList) {
return this._outFileList
}
this._outFileList = new OCA.Sharing.FileList(
$el,
{
id: 'shares.others',
sharedWithUser: false,
fileActions: this._createFileActions(),
config: OCA.Files.App.getFilesConfig(),
// The file list is created when a "show" event is handled, so
// it should be marked as "shown" like it would have been done
// if handling the event with the file list already created.
shown: true,
}
)
this._extendFileList(this._outFileList)
this._outFileList.appName = t('files_sharing', 'Shared with others')
this._outFileList.$el.find('.emptyfilelist.emptycontent').html('<div class="icon-shared"></div>'
+ '<h2>' + t('files_sharing', 'Nothing shared yet') + '</h2>'
+ '<p>' + t('files_sharing', 'Files and folders you share will show up here') + '</p>')
return this._outFileList
},
initSharingLinks($el) {
if (this._linkFileList) {
return this._linkFileList
}
this._linkFileList = new OCA.Sharing.FileList(
$el,
{
id: 'shares.link',
linksOnly: true,
fileActions: this._createFileActions(),
config: OCA.Files.App.getFilesConfig(),
// The file list is created when a "show" event is handled, so
// it should be marked as "shown" like it would have been done
// if handling the event with the file list already created.
shown: true,
}
)
this._extendFileList(this._linkFileList)
this._linkFileList.appName = t('files_sharing', 'Shared by link')
this._linkFileList.$el.find('.emptyfilelist.emptycontent').html('<div class="icon-public"></div>'
+ '<h2>' + t('files_sharing', 'No shared links') + '</h2>'
+ '<p>' + t('files_sharing', 'Files and folders you share by link will show up here') + '</p>')
return this._linkFileList
},
initSharingDeleted($el) {
if (this._deletedFileList) {
return this._deletedFileList
}
this._deletedFileList = new OCA.Sharing.FileList(
$el,
{
id: 'shares.deleted',
defaultFileActionsDisabled: true,
showDeleted: true,
sharedWithUser: true,
fileActions: this._restoreShareAction(),
config: OCA.Files.App.getFilesConfig(),
// The file list is created when a "show" event is handled, so
// it should be marked as "shown" like it would have been done
// if handling the event with the file list already created.
shown: true,
}
)
this._extendFileList(this._deletedFileList)
this._deletedFileList.appName = t('files_sharing', 'Deleted shares')
this._deletedFileList.$el.find('.emptyfilelist.emptycontent').html('<div class="icon-share"></div>'
+ '<h2>' + t('files_sharing', 'No deleted shares') + '</h2>'
+ '<p>' + t('files_sharing', 'Shares you deleted will show up here') + '</p>')
return this._deletedFileList
},
initSharingPening($el) {
if (this._pendingFileList) {
return this._pendingFileList
}
this._pendingFileList = new OCA.Sharing.FileList(
$el,
{
id: 'shares.pending',
showPending: true,
detailsViewEnabled: false,
defaultFileActionsDisabled: true,
sharedWithUser: true,
fileActions: this._acceptShareAction(),
config: OCA.Files.App.getFilesConfig(),
// The file list is created when a "show" event is handled, so
// it should be marked as "shown" like it would have been done
// if handling the event with the file list already created.
shown: true,
}
)
this._extendFileList(this._pendingFileList)
this._pendingFileList.appName = t('files_sharing', 'Pending shares')
this._pendingFileList.$el.find('.emptyfilelist.emptycontent').html('<div class="icon-share"></div>'
+ '<h2>' + t('files_sharing', 'No pending shares') + '</h2>'
+ '<p>' + t('files_sharing', 'Shares you have received but not confirmed will show up here') + '</p>')
return this._pendingFileList
},
initShareingOverview($el) {
if (this._overviewFileList) {
return this._overviewFileList
}
this._overviewFileList = new OCA.Sharing.FileList(
$el,
{
id: 'shares.overview',
fileActions: this._createFileActions(),
config: OCA.Files.App.getFilesConfig(),
isOverview: true,
// The file list is created when a "show" event is handled, so
// it should be marked as "shown" like it would have been done
// if handling the event with the file list already created.
shown: true,
}
)
this._extendFileList(this._overviewFileList)
this._overviewFileList.appName = t('files_sharing', 'Shares')
this._overviewFileList.$el.find('.emptyfilelist.emptycontent').html('<div class="icon-share"></div>'
+ '<h2>' + t('files_sharing', 'No shares') + '</h2>'
+ '<p>' + t('files_sharing', 'Shares will show up here') + '</p>')
return this._overviewFileList
},
removeSharingIn() {
if (this._inFileList) {
this._inFileList.$fileList.empty()
}
},
removeSharingOut() {
if (this._outFileList) {
this._outFileList.$fileList.empty()
}
},
removeSharingLinks() {
if (this._linkFileList) {
this._linkFileList.$fileList.empty()
}
},
removeSharingDeleted() {
if (this._deletedFileList) {
this._deletedFileList.$fileList.empty()
}
},
removeSharingPending() {
if (this._pendingFileList) {
this._pendingFileList.$fileList.empty()
}
},
removeSharingOverview() {
if (this._overviewFileList) {
this._overviewFileList.$fileList.empty()
}
},
/**
* Destroy the app
*/
destroy() {
OCA.Files.fileActions.off('setDefault.app-sharing', this._onActionsUpdated)
OCA.Files.fileActions.off('registerAction.app-sharing', this._onActionsUpdated)
this.removeSharingIn()
this.removeSharingOut()
this.removeSharingLinks()
this._inFileList = null
this._outFileList = null
this._linkFileList = null
this._overviewFileList = null
delete this._globalActionsInitialized
},
_createFileActions() {
// inherit file actions from the files app
const fileActions = new OCA.Files.FileActions()
// note: not merging the legacy actions because legacy apps are not
// compatible with the sharing overview and need to be adapted first
fileActions.registerDefaultActions()
fileActions.merge(OCA.Files.fileActions)
if (!this._globalActionsInitialized) {
// in case actions are registered later
this._onActionsUpdated = _.bind(this._onActionsUpdated, this)
OCA.Files.fileActions.on('setDefault.app-sharing', this._onActionsUpdated)
OCA.Files.fileActions.on('registerAction.app-sharing', this._onActionsUpdated)
this._globalActionsInitialized = true
}
// when the user clicks on a folder, redirect to the corresponding
// folder in the files app instead of opening it directly
fileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function(filename, context) {
OCA.Files.App.setActiveView('files', { silent: true })
OCA.Files.App.fileList.changeDirectory(OC.joinPaths(context.$file.attr('data-path'), filename), true, true)
})
fileActions.setDefault('dir', 'Open')
return fileActions
},
_restoreShareAction() {
const fileActions = new OCA.Files.FileActions()
fileActions.registerAction({
name: 'Restore',
displayName: t('files_sharing', 'Restore'),
altText: t('files_sharing', 'Restore share'),
mime: 'all',
permissions: OC.PERMISSION_ALL,
iconClass: 'icon-history',
type: OCA.Files.FileActions.TYPE_INLINE,
actionHandler(fileName, context) {
const shareId = context.$file.data('shareId')
$.post(OC.linkToOCS('apps/files_sharing/api/v1/deletedshares', 2) + shareId)
.success(function(result) {
context.fileList.remove(context.fileInfoModel.attributes.name)
}).fail(function() {
OC.Notification.showTemporary(t('files_sharing', 'Something happened. Unable to restore the share.'))
})
},
})
return fileActions
},
_acceptShareAction() {
const fileActions = new OCA.Files.FileActions()
fileActions.registerAction({
name: 'Accept share',
displayName: t('files_sharing', 'Accept share'),
mime: 'all',
permissions: OC.PERMISSION_ALL,
iconClass: 'icon-checkmark',
type: OCA.Files.FileActions.TYPE_INLINE,
actionHandler(fileName, context) {
const shareId = context.$file.data('shareId')
let shareBase = 'shares/pending'
if (context.$file.attr('data-remote-id')) {
shareBase = 'remote_shares/pending'
}
$.post(OC.linkToOCS('apps/files_sharing/api/v1/' + shareBase, 2) + shareId)
.success(function(result) {
context.fileList.remove(context.fileInfoModel.attributes.name)
}).fail(function() {
OC.Notification.showTemporary(t('files_sharing', 'Something happened. Unable to accept the share.'))
})
},
})
fileActions.registerAction({
name: 'Reject share',
displayName: t('files_sharing', 'Reject share'),
mime: 'all',
permissions: OC.PERMISSION_ALL,
iconClass: 'icon-close',
type: OCA.Files.FileActions.TYPE_INLINE,
shouldRender(context) {
// disable rejecting group shares from the pending list because they anyway
// land back into that same list
if (context.$file.attr('data-remote-id') && parseInt(context.$file.attr('data-share-type'), 10) === OC.Share.SHARE_TYPE_REMOTE_GROUP) {
return false
}
return true
},
actionHandler(fileName, context) {
const shareId = context.$file.data('shareId')
let shareBase = 'shares'
if (context.$file.attr('data-remote-id')) {
shareBase = 'remote_shares'
}
$.ajax({
url: OC.linkToOCS('apps/files_sharing/api/v1/' + shareBase, 2) + shareId,
type: 'DELETE',
}).success(function(result) {
context.fileList.remove(context.fileInfoModel.attributes.name)
}).fail(function() {
OC.Notification.showTemporary(t('files_sharing', 'Something happened. Unable to reject the share.'))
})
},
})
return fileActions
},
_onActionsUpdated(ev) {
_.each([this._inFileList, this._outFileList, this._linkFileList], function(list) {
if (!list) {
return
}
if (ev.action) {
list.fileActions.registerAction(ev.action)
} else if (ev.defaultAction) {
list.fileActions.setDefault(
ev.defaultAction.mime,
ev.defaultAction.name
)
}
})
},
_extendFileList(fileList) {
// remove size column from summary
fileList.fileSummary.$el.find('.filesize').remove()
},
}
window.addEventListener('DOMContentLoaded', function() {
$('#app-content-sharinginOld').on('show', function(e) {
OCA.Sharing.App.initSharingIn($(e.target))
})
$('#app-content-sharinginOld').on('hide', function() {
OCA.Sharing.App.removeSharingIn()
})
$('#app-content-sharingoutOld').on('show', function(e) {
OCA.Sharing.App.initSharingOut($(e.target))
})
$('#app-content-sharingoutOld').on('hide', function() {
OCA.Sharing.App.removeSharingOut()
})
$('#app-content-sharinglinksOld').on('show', function(e) {
OCA.Sharing.App.initSharingLinks($(e.target))
})
$('#app-content-sharinglinksOld').on('hide', function() {
OCA.Sharing.App.removeSharingLinks()
})
$('#app-content-deletedsharesOld').on('show', function(e) {
OCA.Sharing.App.initSharingDeleted($(e.target))
})
$('#app-content-deletedsharesOld').on('hide', function() {
OCA.Sharing.App.removeSharingDeleted()
})
$('#app-content-pendingsharesOld').on('show', function(e) {
OCA.Sharing.App.initSharingPening($(e.target))
})
$('#app-content-pendingsharesOld').on('hide', function() {
OCA.Sharing.App.removeSharingPending()
})
$('#app-content-shareoverviewOld').on('show', function(e) {
OCA.Sharing.App.initShareingOverview($(e.target))
})
$('#app-content-shareoverviewOld').on('hide', function() {
OCA.Sharing.App.removeSharingOverview()
})
})

@ -1,541 +0,0 @@
/* eslint-disable */
/*
* Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
(function() {
/**
* @class OCA.Sharing.FileList
* @augments OCA.Files.FileList
*
* @classdesc Sharing file list.
* Contains both "shared with others" and "shared with you" modes.
*
* @param $el container element with existing markup for the .files-controls
* and a table
* @param [options] map of options, see other parameters
* @param {boolean} [options.sharedWithUser] true to return files shared with
* the current user, false to return files that the user shared with others.
* Defaults to false.
* @param {boolean} [options.linksOnly] true to return only link shares
*/
var FileList = function($el, options) {
this.initialize($el, options)
}
FileList.prototype = _.extend({}, OCA.Files.FileList.prototype,
/** @lends OCA.Sharing.FileList.prototype */ {
appName: 'Shares',
/**
* Whether the list shows the files shared with the user (true) or
* the files that the user shared with others (false).
*/
_sharedWithUser: false,
_linksOnly: false,
_showDeleted: false,
_showPending: false,
_clientSideSort: true,
_allowSelection: false,
_isOverview: false,
/**
* @private
*/
initialize: function($el, options) {
OCA.Files.FileList.prototype.initialize.apply(this, arguments)
if (this.initialized) {
return
}
// TODO: consolidate both options
if (options && options.sharedWithUser) {
this._sharedWithUser = true
}
if (options && options.linksOnly) {
this._linksOnly = true
}
if (options && options.showDeleted) {
this._showDeleted = true
}
if (options && options.showPending) {
this._showPending = true
}
if (options && options.isOverview) {
this._isOverview = true
}
},
_renderRow: function() {
// HACK: needed to call the overridden _renderRow
// this is because at the time this class is created
// the overriding hasn't been done yet...
return OCA.Files.FileList.prototype._renderRow.apply(this, arguments)
},
_createRow: function(fileData) {
// TODO: hook earlier and render the whole row here
var $tr = OCA.Files.FileList.prototype._createRow.apply(this, arguments)
$tr.find('.filesize').remove()
$tr.find('td.date').before($tr.children('td:first'))
$tr.find('td.filename input:checkbox').remove()
$tr.attr('data-share-id', _.pluck(fileData.shares, 'id').join(','))
if (this._sharedWithUser) {
$tr.attr('data-share-owner', fileData.shareOwner)
$tr.attr('data-mounttype', 'shared-root')
var permission = parseInt($tr.attr('data-permissions')) | OC.PERMISSION_DELETE
$tr.attr('data-permissions', permission)
}
if (this._showDeleted || this._showPending) {
var permission = fileData.permissions
$tr.attr('data-share-permissions', permission)
}
if (fileData.remoteId) {
$tr.attr('data-remote-id', fileData.remoteId)
}
if (fileData.shareType) {
$tr.attr('data-share-type', fileData.shareType)
}
// add row with expiration date for link only shares - influenced by _createRow of filelist
if (this._linksOnly) {
var expirationTimestamp = 0
if (fileData.shares && fileData.shares[0].expiration !== null) {
expirationTimestamp = moment(fileData.shares[0].expiration).valueOf()
}
$tr.attr('data-expiration', expirationTimestamp)
// date column (1000 milliseconds to seconds, 60 seconds, 60 minutes, 24 hours)
// difference in days multiplied by 5 - brightest shade for expiry dates in more than 32 days (160/5)
var modifiedColor = Math.round((expirationTimestamp - (new Date()).getTime()) / 1000 / 60 / 60 / 24 * 5)
// ensure that the brightest color is still readable
if (modifiedColor >= 160) {
modifiedColor = 160
}
var formatted
var text
if (expirationTimestamp > 0) {
formatted = OC.Util.formatDate(expirationTimestamp)
text = OC.Util.relativeModifiedDate(expirationTimestamp)
} else {
formatted = t('files_sharing', 'No expiration date set')
text = ''
modifiedColor = 160
}
td = $('<td></td>').attr({ 'class': 'date' })
td.append($('<span></span>').attr({
'class': 'modified',
'title': formatted,
'style': 'color:rgb(' + modifiedColor + ',' + modifiedColor + ',' + modifiedColor + ')'
}).text(text))
$tr.append(td)
}
return $tr
},
/**
* Set whether the list should contain outgoing shares
* or incoming shares.
*
* @param state true for incoming shares, false otherwise
*/
setSharedWithUser: function(state) {
this._sharedWithUser = !!state
},
updateEmptyContent: function() {
var dir = this.getCurrentDirectory()
if (dir === '/') {
// root has special permissions
this.$el.find('.emptyfilelist.emptycontent').toggleClass('hidden', !this.isEmpty)
this.$el.find('.files-filestable thead th').toggleClass('hidden', this.isEmpty)
// hide expiration date header for non link only shares
if (!this._linksOnly) {
this.$el.find('th.column-expiration').addClass('hidden')
}
} else {
OCA.Files.FileList.prototype.updateEmptyContent.apply(this, arguments)
}
},
getDirectoryPermissions: function() {
return OC.PERMISSION_READ | OC.PERMISSION_DELETE
},
updateStorageStatistics: function() {
// no op because it doesn't have
// storage info like free space / used space
},
reload: function() {
this.showMask()
if (this._reloadCall?.abort) {
this._reloadCall.abort()
}
// there is only root
this._setCurrentDir('/', false)
var promises = []
var deletedShares = {
url: OC.linkToOCS('apps/files_sharing/api/v1', 2) + 'deletedshares',
/* jshint camelcase: false */
data: {
format: 'json',
include_tags: true
},
type: 'GET',
beforeSend: function(xhr) {
xhr.setRequestHeader('OCS-APIREQUEST', 'true')
}
}
var pendingShares = {
url: OC.linkToOCS('apps/files_sharing/api/v1/shares', 2) + 'pending',
/* jshint camelcase: false */
data: {
format: 'json'
},
type: 'GET',
beforeSend: function(xhr) {
xhr.setRequestHeader('OCS-APIREQUEST', 'true')
}
}
var pendingRemoteShares = {
url: OC.linkToOCS('apps/files_sharing/api/v1/remote_shares', 2) + 'pending',
/* jshint camelcase: false */
data: {
format: 'json'
},
type: 'GET',
beforeSend: function(xhr) {
xhr.setRequestHeader('OCS-APIREQUEST', 'true')
}
}
var shares = {
url: OC.linkToOCS('apps/files_sharing/api/v1') + 'shares',
/* jshint camelcase: false */
data: {
format: 'json',
shared_with_me: this._sharedWithUser !== false,
include_tags: true
},
type: 'GET',
beforeSend: function(xhr) {
xhr.setRequestHeader('OCS-APIREQUEST', 'true')
}
}
var remoteShares = {
url: OC.linkToOCS('apps/files_sharing/api/v1') + 'remote_shares',
/* jshint camelcase: false */
data: {
format: 'json',
include_tags: true
},
type: 'GET',
beforeSend: function(xhr) {
xhr.setRequestHeader('OCS-APIREQUEST', 'true')
}
}
// Add the proper ajax requests to the list and run them
// and make sure we have 2 promises
if (this._showDeleted) {
promises.push($.ajax(deletedShares))
} else if (this._showPending) {
promises.push($.ajax(pendingShares))
promises.push($.ajax(pendingRemoteShares))
} else {
promises.push($.ajax(shares))
if (this._sharedWithUser !== false || this._isOverview) {
promises.push($.ajax(remoteShares))
}
if (this._isOverview) {
shares.data.shared_with_me = !shares.data.shared_with_me
promises.push($.ajax(shares))
}
}
this._reloadCall = $.when.apply($, promises)
var callBack = this.reloadCallback.bind(this)
return this._reloadCall.then(callBack, callBack)
},
reloadCallback: function(shares, remoteShares, additionalShares) {
delete this._reloadCall
this.hideMask()
this.$el.find('#headerSharedWith').text(
t('files_sharing', this._sharedWithUser ? 'Shared by' : 'Shared with')
)
var files = []
// make sure to use the same format
if (shares[0] && shares[0].ocs) {
shares = shares[0]
}
if (remoteShares && remoteShares[0] && remoteShares[0].ocs) {
remoteShares = remoteShares[0]
}
if (additionalShares && additionalShares[0] && additionalShares[0].ocs) {
additionalShares = additionalShares[0]
}
if (shares.ocs && shares.ocs.data) {
files = files.concat(this._makeFilesFromShares(shares.ocs.data, this._sharedWithUser))
}
if (remoteShares && remoteShares.ocs && remoteShares.ocs.data) {
files = files.concat(this._makeFilesFromRemoteShares(remoteShares.ocs.data))
}
if (additionalShares && additionalShares.ocs && additionalShares.ocs.data) {
if (this._showPending) {
// in this case the second callback is about pending remote shares
files = files.concat(this._makeFilesFromRemoteShares(additionalShares.ocs.data))
} else {
files = files.concat(this._makeFilesFromShares(additionalShares.ocs.data, !this._sharedWithUser))
}
}
this.setFiles(files)
return true
},
_makeFilesFromRemoteShares: function(data) {
var files = data
files = _.chain(files)
// convert share data to file data
.map(function(share) {
var file = {
shareOwner: share.owner + '@' + share.remote.replace(/.*?:\/\//g, ''),
name: OC.basename(share.mountpoint),
mtime: share.mtime * 1000,
mimetype: share.mimetype,
type: share.type,
// remote share types are different and need to be mapped
shareType: (parseInt(share.share_type, 10) === 1) ? OC.Share.SHARE_TYPE_REMOTE_GROUP : OC.Share.SHARE_TYPE_REMOTE,
id: share.file_id,
path: OC.dirname(share.mountpoint),
permissions: share.permissions,
tags: share.tags || []
}
if (share.remote_id) {
// remote share
if (share.accepted !== '1') {
file.name = OC.basename(share.name)
file.path = '/'
}
file.remoteId = share.remote_id
file.shareOwnerId = share.owner
}
if (!file.mimetype) {
// pending shares usually have no type, so default to showing a directory icon
file.mimetype = 'dir-shared'
}
file.shares = [{
id: share.id,
type: OC.Share.SHARE_TYPE_REMOTE
}]
return file
})
.value()
return files
},
/**
* Converts the OCS API share response data to a file info
* list
* @param {Array} data OCS API share array
* @param {boolean} sharedWithUser
* @returns {Array.<OCA.Sharing.SharedFileInfo>} array of shared file info
*/
_makeFilesFromShares: function(data, sharedWithUser) {
/* jshint camelcase: false */
var files = data
if (this._linksOnly) {
files = _.filter(data, function(share) {
return share.share_type === OC.Share.SHARE_TYPE_LINK
})
}
// OCS API uses non-camelcased names
files = _.chain(files)
// convert share data to file data
.map(function(share) {
// TODO: use OC.Files.FileInfo
var file = {
id: share.file_source,
icon: OC.MimeType.getIconUrl(share.mimetype),
mimetype: share.mimetype,
hasPreview: share.has_preview,
tags: share.tags || []
}
if (share.item_type === 'folder') {
file.type = 'dir'
file.mimetype = 'httpd/unix-directory'
} else {
file.type = 'file'
}
file.share = {
id: share.id,
type: share.share_type,
target: share.share_with,
stime: share.stime * 1000,
expiration: share.expiration
}
if (sharedWithUser) {
file.shareOwner = share.displayname_owner
file.shareOwnerId = share.uid_owner
file.name = OC.basename(share.file_target)
file.path = OC.dirname(share.file_target)
file.permissions = share.permissions
if (file.path) {
file.extraData = share.file_target
}
} else {
if (share.share_type !== OC.Share.SHARE_TYPE_LINK) {
file.share.targetDisplayName = share.share_with_displayname
file.share.targetShareWithId = share.share_with
}
file.name = OC.basename(share.path)
file.path = OC.dirname(share.path)
file.permissions = OC.PERMISSION_ALL
if (file.path) {
file.extraData = share.path
}
}
return file
})
// Group all files and have a "shares" array with
// the share info for each file.
//
// This uses a hash memo to cumulate share information
// inside the same file object (by file id).
.reduce(function(memo, file) {
var data = memo[file.id]
var recipient = file.share.targetDisplayName
var recipientId = file.share.targetShareWithId
if (!data) {
data = memo[file.id] = file
data.shares = [file.share]
// using a hash to make them unique,
// this is only a list to be displayed
data.recipients = {}
data.recipientData = {}
// share types
data.shareTypes = {}
// counter is cheaper than calling _.keys().length
data.recipientsCount = 0
data.mtime = file.share.stime
} else {
// always take the most recent stime
if (file.share.stime > data.mtime) {
data.mtime = file.share.stime
}
data.shares.push(file.share)
}
if (recipient) {
// limit counterparts for output
if (data.recipientsCount < 4) {
// only store the first ones, they will be the only ones
// displayed
data.recipients[recipient] = true
data.recipientData[data.recipientsCount] = {
'shareWith': recipientId,
'shareWithDisplayName': recipient
}
}
data.recipientsCount++
}
data.shareTypes[file.share.type] = true
delete file.share
return memo
}, {})
// Retrieve only the values of the returned hash
.values()
// Clean up
.each(function(data) {
// convert the recipients map to a flat
// array of sorted names
data.mountType = 'shared'
delete data.recipientsCount
if (sharedWithUser) {
// only for outgoing shares
delete data.shareTypes
} else {
data.shareTypes = _.keys(data.shareTypes)
}
})
// Finish the chain by getting the result
.value()
// Sort by expected sort comparator
return files.sort(this._sortComparator)
}
})
/**
* Share info attributes.
*
* @typedef {Object} OCA.Sharing.ShareInfo
*
* @property {number} id share ID
* @property {number} type share type
* @property {String} target share target, either user name or group name
* @property {number} stime share timestamp in milliseconds
* @property {String} [targetDisplayName] display name of the recipient
* (only when shared with others)
* @property {String} [targetShareWithId] id of the recipient
*
*/
/**
* Recipient attributes
*
* @typedef {Object} OCA.Sharing.RecipientInfo
* @property {String} shareWith the id of the recipient
* @property {String} shareWithDisplayName the display name of the recipient
*/
/**
* Shared file info attributes.
*
* @typedef {OCA.Files.FileInfo} OCA.Sharing.SharedFileInfo
*
* @property {Array.<OCA.Sharing.ShareInfo>} shares array of shares for
* this file
* @property {number} mtime most recent share time (if multiple shares)
* @property {String} shareOwner name of the share owner
* @property {Array.<String>} recipients name of the first 4 recipients
* (this is mostly for display purposes)
* @property {Object.<OCA.Sharing.RecipientInfo>} recipientData (as object for easier
* passing to HTML data attributes with jQuery)
*/
OCA.Sharing.FileList = FileList
})()

@ -117,7 +117,7 @@ class Application extends App implements IBootstrap {
$context->injectFn([$this, 'registerMountProviders']);
$context->injectFn([$this, 'registerEventsScripts']);
$context->injectFn([$this, 'registerDownloadEvents']);
$context->injectFn([$this, 'setupSharingMenus']);
$context->injectFn([$this, 'loadFilesSharing']);
Helper::registerHooks();
@ -215,76 +215,11 @@ class Application extends App implements IBootstrap {
);
}
public function setupSharingMenus(IManager $shareManager, IFactory $l10nFactory, IUserSession $userSession): void {
public function loadFilesSharing(IManager $shareManager): void {
if (!$shareManager->shareApiEnabled() || !class_exists('\OCA\Files\App')) {
return;
}
$navigationManager = \OCA\Files\App::getNavigationManager();
// show_Quick_Access stored as string
$navigationManager->add(function () use ($shareManager, $l10nFactory, $userSession) {
$l = $l10nFactory->get('files_sharing');
$user = $userSession->getUser();
$userId = $user ? $user->getUID() : null;
$sharingSublistArray = [];
if ($shareManager->sharingDisabledForUser($userId) === false) {
$sharingSublistArray[] = [
'id' => 'sharingoutOld',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 16,
'name' => $l->t('Shared with others'),
];
}
$sharingSublistArray[] = [
'id' => 'sharinginOld',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 15,
'name' => $l->t('Shared with you'),
];
if ($shareManager->sharingDisabledForUser($userId) === false) {
// Check if sharing by link is enabled
if ($shareManager->shareApiAllowLinks()) {
$sharingSublistArray[] = [
'id' => 'sharinglinksOld',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 17,
'name' => $l->t('Shared by link'),
];
}
}
$sharingSublistArray[] = [
'id' => 'deletedsharesOld',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 19,
'name' => $l->t('Deleted shares'),
];
$sharingSublistArray[] = [
'id' => 'pendingsharesOld',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 19,
'name' => $l->t('Pending shares'),
];
return [
'id' => 'shareoverviewOld',
'appname' => 'files_sharing',
'script' => 'list.php',
'order' => 18,
'name' => $l->t('Shares (old)'),
'classes' => 'collapsible',
'sublist' => $sharingSublistArray,
];
});
Util::addScript(self::APP_ID, 'files_sharing', 'files');
}
}

@ -37,8 +37,6 @@ class LoadAdditionalListener implements IEventListener {
return;
}
// After files for the files list shared content
Util::addScript(Application::APP_ID, 'files_sharing', 'files');
// After files for the breadcrumb share indicator
Util::addScript(Application::APP_ID, 'additionalScripts', 'files');
Util::addStyle(Application::APP_ID, 'icons');

@ -1,5 +1,5 @@
/**
* @copyright Copyright (c) 2016 John Molakvoæ <skjnldsv@protonmail.com>
* @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
* @author Julius Härtl <jus@bitgrid.net>
@ -20,6 +20,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import registerSharingViews from './views/shares'
import '../js/app.js'
import '../js/sharedfilelist.js'
import './actions/acceptShareAction'
import './actions/rejectShareAction'
import './actions/restoreShareAction'
registerSharingViews()

@ -20,10 +20,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import './actions/acceptShareAction'
import './actions/rejectShareAction'
import './actions/restoreShareAction'
import registerSharingViews from './views/shares'
// register default shares types
Object.assign(window.OC, {
@ -41,5 +37,3 @@ Object.assign(window.OC, {
SHARE_TYPE_SCIENCEMESH: 15,
},
})
registerSharingViews()

@ -58,7 +58,7 @@ module.exports = {
additionalScripts: path.join(__dirname, 'apps/files_sharing/src', 'additionalScripts.js'),
collaboration: path.join(__dirname, 'apps/files_sharing/src', 'collaborationresourceshandler.js'),
files_sharing_tab: path.join(__dirname, 'apps/files_sharing/src', 'files_sharing_tab.js'),
files_sharing: path.join(__dirname, 'apps/files_sharing/src', 'files_sharing.js'),
files_sharing: path.join(__dirname, 'apps/files_sharing/src', 'files_sharing.ts'),
main: path.join(__dirname, 'apps/files_sharing/src', 'main.ts'),
'personal-settings': path.join(__dirname, 'apps/files_sharing/src', 'personal-settings.js'),
},

Loading…
Cancel
Save