Merge pull request #21867 from nextcloud/dependageorg/npm_and_yarn/nextcloud/vue-2.2.1

This commit is contained in:
John Molakvoæ 2020-07-22 17:47:18 +02:00 committed by GitHub
commit 5fea50b770
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
63 changed files with 226 additions and 180 deletions

View File

@ -1,19 +1,19 @@
#app-sidebar .detailFileInfoContainer { .app-sidebar .detailFileInfoContainer {
min-height: 50px; min-height: 50px;
padding: 15px; padding: 15px;
} }
#app-sidebar .detailFileInfoContainer > div { .app-sidebar .detailFileInfoContainer > div {
clear: both; clear: both;
} }
#app-sidebar .mainFileInfoView .icon { .app-sidebar .mainFileInfoView .icon {
display: inline-block; display: inline-block;
background-size: 16px 16px; background-size: 16px 16px;
} }
#app-sidebar .mainFileInfoView .permalink { .app-sidebar .mainFileInfoView .permalink {
padding: 6px 10px; padding: 6px 10px;
vertical-align: top; vertical-align: top;
opacity: .6; opacity: .6;
@ -23,22 +23,22 @@
opacity: 1; opacity: 1;
} }
} }
#app-sidebar .mainFileInfoView .permalink-field>input { .app-sidebar .mainFileInfoView .permalink-field>input {
clear: both; clear: both;
width: 90%; width: 90%;
} }
#app-sidebar .thumbnailContainer.large { .app-sidebar .thumbnailContainer.large {
margin-left: -15px; margin-left: -15px;
margin-right: -35px; /* 15 + 20 for the close button */ margin-right: -35px; /* 15 + 20 for the close button */
margin-top: -15px; margin-top: -15px;
} }
#app-sidebar .thumbnailContainer.large.portrait { .app-sidebar .thumbnailContainer.large.portrait {
margin: 0; /* if we don't fit the image anyway we give it back the margin */ margin: 0; /* if we don't fit the image anyway we give it back the margin */
} }
#app-sidebar .large .thumbnail { .app-sidebar .large .thumbnail {
width:100%; width:100%;
display:block; display:block;
background-repeat: no-repeat; background-repeat: no-repeat;
@ -49,21 +49,21 @@
height: auto; height: auto;
} }
#app-sidebar .large .thumbnail .stretcher { .app-sidebar .large .thumbnail .stretcher {
content: ''; content: '';
display: block; display: block;
padding-bottom: 56.25%; /* sets height of .thumbnail to 9/16 of the width */ padding-bottom: 56.25%; /* sets height of .thumbnail to 9/16 of the width */
} }
#app-sidebar .large.portrait .thumbnail { .app-sidebar .large.portrait .thumbnail {
background-position: 50% top; background-position: 50% top;
} }
#app-sidebar .large.portrait .thumbnail { .app-sidebar .large.portrait .thumbnail {
background-size: contain; background-size: contain;
} }
#app-sidebar .large.text { .app-sidebar .large.text {
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;
padding-top: 14px; padding-top: 14px;
@ -71,7 +71,7 @@
margin-left: 0; margin-left: 0;
} }
#app-sidebar .thumbnail { .app-sidebar .thumbnail {
width: 100%; width: 100%;
min-height: 75px; min-height: 75px;
display: inline-block; display: inline-block;
@ -81,44 +81,44 @@
background-repeat: no-repeat; background-repeat: no-repeat;
} }
#app-sidebar .ellipsis { .app-sidebar .ellipsis {
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
} }
#app-sidebar .fileName { .app-sidebar .fileName {
font-size: 16px; font-size: 16px;
padding-top: 13px; padding-top: 13px;
padding-bottom: 3px; padding-bottom: 3px;
} }
#app-sidebar .fileName h3 { .app-sidebar .fileName h3 {
width: calc(100% - 42px); /* 36px is the with of the copy link icon, but this breaks so we add some more to be sure */ width: calc(100% - 42px); /* 36px is the with of the copy link icon, but this breaks so we add some more to be sure */
display: inline-block; display: inline-block;
padding: 5px 0; padding: 5px 0;
margin: -5px 0; margin: -5px 0;
} }
#app-sidebar .file-details { .app-sidebar .file-details {
color: var(--color-text-maxcontrast); color: var(--color-text-maxcontrast);
} }
#app-sidebar .action-favorite { .app-sidebar .action-favorite {
vertical-align: sub; vertical-align: sub;
padding: 10px; padding: 10px;
margin: -10px; margin: -10px;
} }
#app-sidebar .action-favorite > span{ .app-sidebar .action-favorite > span{
opacity: .7 !important; opacity: .7 !important;
} }
#app-sidebar .detailList { .app-sidebar .detailList {
float: left; float: left;
} }
#app-sidebar .close { .app-sidebar .close {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;

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

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

View File

@ -454,7 +454,7 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
#app-sidebar { .app-sidebar {
&.has-preview::v-deep { &.has-preview::v-deep {
.app-sidebar-header__figure { .app-sidebar-header__figure {
background-size: cover; background-size: cover;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
!function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/js/",t(t.s=144)}({144:function(e,n,r){r.p=OC.linkTo("files_sharing","js/dist/"),r.nc=btoa(OC.requestToken),window.OCP.Collaboration.registerType("file",{action:function(){return new Promise((function(e,n){OC.dialogs.filepicker(t("files_sharing","Link to a file"),(function(t){OC.Files.getClient().getFileInfo(t).then((function(n,t){e(t.id)})).fail((function(){n(new Error("Cannot get fileinfo"))}))}),!1,null,!1,OC.dialogs.FILEPICKER_TYPE_CHOOSE,"",{allowDirectoryChooser:!0})}))},typeString:t("files_sharing","Link to a file"),typeIconClass:"icon-files-dark"})}}); !function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/js/",t(t.s=152)}({152:function(e,n,r){r.p=OC.linkTo("files_sharing","js/dist/"),r.nc=btoa(OC.requestToken),window.OCP.Collaboration.registerType("file",{action:function(){return new Promise((function(e,n){OC.dialogs.filepicker(t("files_sharing","Link to a file"),(function(t){OC.Files.getClient().getFileInfo(t).then((function(n,t){e(t.id)})).fail((function(){n(new Error("Cannot get fileinfo"))}))}),!1,null,!1,OC.dialogs.FILEPICKER_TYPE_CHOOSE,"",{allowDirectoryChooser:!0})}))},typeString:t("files_sharing","Link to a file"),typeIconClass:"icon-files-dark"})}});
//# sourceMappingURL=collaboration.js.map //# sourceMappingURL=collaboration.js.map

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/js/",r(r.s=265)}({265:function(e,t){Object.assign(OC,{Share:{SHARE_TYPE_USER:0,SHARE_TYPE_GROUP:1,SHARE_TYPE_LINK:3,SHARE_TYPE_EMAIL:4,SHARE_TYPE_REMOTE:6,SHARE_TYPE_CIRCLE:7,SHARE_TYPE_GUEST:8,SHARE_TYPE_REMOTE_GROUP:9,SHARE_TYPE_ROOM:10}})}}); !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/js/",r(r.s=273)}({273:function(e,t){Object.assign(OC,{Share:{SHARE_TYPE_USER:0,SHARE_TYPE_GROUP:1,SHARE_TYPE_LINK:3,SHARE_TYPE_EMAIL:4,SHARE_TYPE_REMOTE:6,SHARE_TYPE_CIRCLE:7,SHARE_TYPE_GUEST:8,SHARE_TYPE_REMOTE_GROUP:9,SHARE_TYPE_ROOM:10}})}});
//# sourceMappingURL=main.js.map //# sourceMappingURL=main.js.map

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

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

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

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

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

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

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

View File

@ -26,7 +26,7 @@
:content-class="{ 'icon-loading': loadingList }" :content-class="{ 'icon-loading': loadingList }"
:navigation-class="{ 'icon-loading': loading }"> :navigation-class="{ 'icon-loading': loading }">
<AppNavigation> <AppNavigation>
<ul id="appscategories"> <template #list>
<AppNavigationItem <AppNavigationItem
id="app-category-your-apps" id="app-category-your-apps"
:to="{ name: 'apps' }" :to="{ name: 'apps' }"
@ -84,7 +84,7 @@
id="app-developer-docs" id="app-developer-docs"
href="settings.developerDocumentation" href="settings.developerDocumentation"
:title="t('settings', 'Developer documentation') + ' ↗'" /> :title="t('settings', 'Developer documentation') + ' ↗'" />
</ul> </template>
</AppNavigation> </AppNavigation>
<AppContent class="app-settings-content" :class="{ 'icon-loading': loadingList }"> <AppContent class="app-settings-content" :class="{ 'icon-loading': loadingList }">
<AppList :category="category" :app="currentApp" :search="searchQuery" /> <AppList :category="category" :app="currentApp" :search="searchQuery" />

View File

@ -27,7 +27,7 @@
:text="t('settings','New user')" :text="t('settings','New user')"
button-class="icon-add" button-class="icon-add"
@click="toggleNewUserMenu" /> @click="toggleNewUserMenu" />
<ul id="usergrouplist"> <template #list>
<AppNavigationItem <AppNavigationItem
id="addgroup" id="addgroup"
ref="addGroup" ref="addGroup"
@ -92,58 +92,60 @@
</ActionButton> </ActionButton>
</template> </template>
</AppNavigationItem> </AppNavigationItem>
</ul> </template>
<AppNavigationSettings> <template #footer>
<div> <AppNavigationSettings>
<p>{{ t('settings', 'Default quota:') }}</p> <div>
<Multiselect :value="defaultQuota" <p>{{ t('settings', 'Default quota:') }}</p>
:options="quotaOptions" <Multiselect :value="defaultQuota"
tag-placeholder="create" :options="quotaOptions"
:placeholder="t('settings', 'Select default quota')" tag-placeholder="create"
label="label" :placeholder="t('settings', 'Select default quota')"
track-by="id" label="label"
:allow-empty="false" track-by="id"
:taggable="true" :allow-empty="false"
@tag="validateQuota" :taggable="true"
@input="setDefaultQuota" /> @tag="validateQuota"
</div> @input="setDefaultQuota" />
<div> </div>
<input id="showLanguages" <div>
v-model="showLanguages" <input id="showLanguages"
type="checkbox" v-model="showLanguages"
class="checkbox"> type="checkbox"
<label for="showLanguages">{{ t('settings', 'Show Languages') }}</label> class="checkbox">
</div> <label for="showLanguages">{{ t('settings', 'Show Languages') }}</label>
<div> </div>
<input id="showLastLogin" <div>
v-model="showLastLogin" <input id="showLastLogin"
type="checkbox" v-model="showLastLogin"
class="checkbox"> type="checkbox"
<label for="showLastLogin">{{ t('settings', 'Show last login') }}</label> class="checkbox">
</div> <label for="showLastLogin">{{ t('settings', 'Show last login') }}</label>
<div> </div>
<input id="showUserBackend" <div>
v-model="showUserBackend" <input id="showUserBackend"
type="checkbox" v-model="showUserBackend"
class="checkbox"> type="checkbox"
<label for="showUserBackend">{{ t('settings', 'Show user backend') }}</label> class="checkbox">
</div> <label for="showUserBackend">{{ t('settings', 'Show user backend') }}</label>
<div> </div>
<input id="showStoragePath" <div>
v-model="showStoragePath" <input id="showStoragePath"
type="checkbox" v-model="showStoragePath"
class="checkbox"> type="checkbox"
<label for="showStoragePath">{{ t('settings', 'Show storage path') }}</label> class="checkbox">
</div> <label for="showStoragePath">{{ t('settings', 'Show storage path') }}</label>
<div> </div>
<input id="sendWelcomeMail" <div>
v-model="sendWelcomeMail" <input id="sendWelcomeMail"
:disabled="loadingSendMail" v-model="sendWelcomeMail"
type="checkbox" :disabled="loadingSendMail"
class="checkbox"> type="checkbox"
<label for="sendWelcomeMail">{{ t('settings', 'Send email to new user') }}</label> class="checkbox">
</div> <label for="sendWelcomeMail">{{ t('settings', 'Send email to new user') }}</label>
</AppNavigationSettings> </div>
</AppNavigationSettings>
</template>
</AppNavigation> </AppNavigation>
<AppContent> <AppContent>
<UserList #content <UserList #content
@ -514,7 +516,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
// force hiding the editing action for the add group entry // force hiding the editing action for the add group entry
#usergrouplist #addgroup::v-deep .app-navigation-entry__utils { .app-navigation__list #addgroup::v-deep .app-navigation-entry__utils {
display: none; display: none;
} }
</style> </style>

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

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

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

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

92
package-lock.json generated
View File

@ -4184,26 +4184,35 @@
} }
}, },
"@nextcloud/vue": { "@nextcloud/vue": {
"version": "1.5.0", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-2.2.1.tgz",
"integrity": "sha512-z0KZP0PcWyHsD5zpzBJRusToGzC/1DTjapuDMrSAOSuA5lThg/Td7brmIQSwWTrw66OrL5MIRK+8HoKMWmQPAA==", "integrity": "sha512-A2vrP+8cMM67Q9q5ZhUriNn4WDb/X6Q7zNqUT6iCQWI5pf/aun0DbWatZQRtH9OIDfdoj5seUlpNXlPFd8eccg==",
"requires": { "requires": {
"@nextcloud/axios": "^1.1.0", "@nextcloud/auth": "^1.2.3",
"@nextcloud/l10n": "^1.1.0", "@nextcloud/axios": "^1.3.2",
"@nextcloud/router": "^1.0.0", "@nextcloud/dialogs": "^1.3.0",
"core-js": "^3.4.4", "@nextcloud/event-bus": "^1.1.4",
"@nextcloud/l10n": "^1.2.3",
"@nextcloud/router": "^1.0.2",
"core-js": "^3.6.5",
"debounce": "1.2.0", "debounce": "1.2.0",
"escape-html": "^1.0.3",
"hammerjs": "^2.0.8", "hammerjs": "^2.0.8",
"md5": "^2.2.1", "md5": "^2.2.1",
"regenerator-runtime": "^0.13.3", "regenerator-runtime": "^0.13.5",
"v-click-outside": "^3.0.0", "v-click-outside": "^3.0.1",
"v-tooltip": "^2.0.0-rc.33", "v-tooltip": "^2.0.3",
"vue": "^2.6.7", "vue": "^2.6.11",
"vue-color": "^2.7.0", "vue-color": "^2.7.1",
"vue-multiselect": "^2.1.3", "vue-multiselect": "^2.1.6",
"vue-visible": "^1.0.2", "vue-visible": "^1.0.2",
"vue2-datepicker": "^3.3.1" "vue2-datepicker": "^3.4.1"
},
"dependencies": {
"popper.js": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
}
} }
}, },
"@nodelib/fs.scandir": { "@nodelib/fs.scandir": {
@ -6110,9 +6119,9 @@
} }
}, },
"date-fns": { "date-fns": {
"version": "2.12.0", "version": "2.14.0",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.12.0.tgz", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.14.0.tgz",
"integrity": "sha512-qJgn99xxKnFgB1qL4jpxU7Q2t0LOn1p8KMIveef3UZD7kqjT3tpFNNdXJelEHhE+rUgffriXriw/sOSU+cS1Hw==" "integrity": "sha512-1zD+68jhFgDIM0rF05rcwYO8cExdNqxjq4xP1QKM60Q45mnO6zaMWB4tOzrIr4M4GSLntsKeE4c9Bdl2jhL/yw=="
}, },
"date-format-parse": { "date-format-parse": {
"version": "0.2.5", "version": "0.2.5",
@ -10112,6 +10121,31 @@
"@nextcloud/vue": "^1.3.0", "@nextcloud/vue": "^1.3.0",
"lodash": "^4.17.11", "lodash": "^4.17.11",
"vue": "^2.6.11" "vue": "^2.6.11"
},
"dependencies": {
"@nextcloud/vue": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-1.5.0.tgz",
"integrity": "sha512-z0KZP0PcWyHsD5zpzBJRusToGzC/1DTjapuDMrSAOSuA5lThg/Td7brmIQSwWTrw66OrL5MIRK+8HoKMWmQPAA==",
"requires": {
"@nextcloud/axios": "^1.1.0",
"@nextcloud/l10n": "^1.1.0",
"@nextcloud/router": "^1.0.0",
"core-js": "^3.4.4",
"debounce": "1.2.0",
"escape-html": "^1.0.3",
"hammerjs": "^2.0.8",
"md5": "^2.2.1",
"regenerator-runtime": "^0.13.3",
"v-click-outside": "^3.0.0",
"v-tooltip": "^2.0.0-rc.33",
"vue": "^2.6.7",
"vue-color": "^2.7.0",
"vue-multiselect": "^2.1.3",
"vue-visible": "^1.0.2",
"vue2-datepicker": "^3.3.1"
}
}
} }
}, },
"nice-try": { "nice-try": {
@ -10792,9 +10826,9 @@
"integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
}, },
"popper.js": { "popper.js": {
"version": "1.15.0", "version": "1.16.1",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.15.0.tgz", "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
"integrity": "sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA==" "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
}, },
"portfinder": { "portfinder": {
"version": "1.0.27", "version": "1.0.27",
@ -12850,12 +12884,12 @@
"integrity": "sha512-FITcAM0R3JEPUSGiO7hfhKDODZHkOQTk/FyI9mwxNcz6LbMbJhABhjevLI5VsU00PRksloQx8vmpFIqlAfX6nw==" "integrity": "sha512-FITcAM0R3JEPUSGiO7hfhKDODZHkOQTk/FyI9mwxNcz6LbMbJhABhjevLI5VsU00PRksloQx8vmpFIqlAfX6nw=="
}, },
"v-tooltip": { "v-tooltip": {
"version": "2.0.2", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/v-tooltip/-/v-tooltip-2.0.2.tgz", "resolved": "https://registry.npmjs.org/v-tooltip/-/v-tooltip-2.0.3.tgz",
"integrity": "sha512-xQ+qzOFfywkLdjHknRPgMMupQNS8yJtf9Utd5Dxiu/0n4HtrxqsgDtN2MLZ0LKbburtSAQgyypuE/snM8bBZhw==", "integrity": "sha512-KZZY3s+dcijzZmV2qoDH4rYmjMZ9YKGBVoUznZKQX0e3c2GjpJm3Sldzz8HHH2Ud87JqhZPB4+4gyKZ6m98cKQ==",
"requires": { "requires": {
"lodash": "^4.17.11", "lodash": "^4.17.15",
"popper.js": "^1.15.0", "popper.js": "^1.16.0",
"vue-resize": "^0.4.5" "vue-resize": "^0.4.5"
} }
}, },
@ -13038,9 +13072,9 @@
"integrity": "sha512-yaX2its9XAJKGuQqf7LsiZHHSkxsIK8rmCOQOvEGEoF41blKRK8qr9my4qYoD6ikdLss4n8tKqYBecmaY0+WJg==" "integrity": "sha512-yaX2its9XAJKGuQqf7LsiZHHSkxsIK8rmCOQOvEGEoF41blKRK8qr9my4qYoD6ikdLss4n8tKqYBecmaY0+WJg=="
}, },
"vue2-datepicker": { "vue2-datepicker": {
"version": "3.4.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/vue2-datepicker/-/vue2-datepicker-3.4.1.tgz", "resolved": "https://registry.npmjs.org/vue2-datepicker/-/vue2-datepicker-3.6.1.tgz",
"integrity": "sha512-gCPZAwIyPLeN1P3xDg/Oj/UyQTIqnoFFzXw+yfvmUDxL430u/rHq1/JqFSGISEhTvJJu0brgHHrop3A7VBW6rA==", "integrity": "sha512-U6iQWSDsNoq/u6QJCtAMcyWlcZSx0rmPmqaJ8LQtGvwu9x12jXDoe3YNeG4y7E45OYAMLXs9WzGkDqDmNj3jkw==",
"requires": { "requires": {
"date-fns": "^2.0.1", "date-fns": "^2.0.1",
"date-format-parse": "^0.2.5" "date-format-parse": "^0.2.5"

View File

@ -38,7 +38,7 @@
"@nextcloud/password-confirmation": "^1.0.1", "@nextcloud/password-confirmation": "^1.0.1",
"@nextcloud/paths": "^1.1.2", "@nextcloud/paths": "^1.1.2",
"@nextcloud/router": "^1.1.0", "@nextcloud/router": "^1.1.0",
"@nextcloud/vue": "^1.5.0", "@nextcloud/vue": "^2.2.1",
"autosize": "^4.0.2", "autosize": "^4.0.2",
"backbone": "^1.4.0", "backbone": "^1.4.0",
"blueimp-md5": "^2.16.0", "blueimp-md5": "^2.16.0",
@ -71,7 +71,7 @@
"strengthify": "git+https://github.com/MorrisJobke/strengthify.git#0.5.8", "strengthify": "git+https://github.com/MorrisJobke/strengthify.git#0.5.8",
"underscore": "^1.10.2", "underscore": "^1.10.2",
"url-search-params-polyfill": "^8.0.0", "url-search-params-polyfill": "^8.0.0",
"v-tooltip": "^2.0.2", "v-tooltip": "^2.0.3",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-click-outside": "^1.1.0", "vue-click-outside": "^1.1.0",
"vue-clipboard2": "^0.3.1", "vue-clipboard2": "^0.3.1",

View File

@ -31,7 +31,7 @@ class AppNavigationContext implements Context, ActorAwareInterface {
* @return Locator * @return Locator
*/ */
public static function appNavigation() { public static function appNavigation() {
return Locator::forThe()->id("app-navigation")-> return Locator::forThe()->xpath("//*[@id=\"app-navigation\" or contains(@class, 'app-navigation')]")->
describedAs("App navigation"); describedAs("App navigation");
} }

View File

@ -59,7 +59,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
* @return Locator * @return Locator
*/ */
public static function bundleButton($bundle) { public static function bundleButton($bundle) {
return Locator::forThe()->xpath("//main[@id='app-content']//div[@class='apps-header']/h2[normalize-space() = '$bundle']/input")-> return Locator::forThe()->xpath("//main[@id='app-content' or contains(@class, 'app-content')]//div[@class='apps-header']/h2[normalize-space() = '$bundle']/input")->
describedAs("Button to enable / disable bundles"); describedAs("Button to enable / disable bundles");
} }
@ -67,7 +67,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
* @return Locator * @return Locator
*/ */
public static function rowForApp($app) { public static function rowForApp($app) {
return Locator::forThe()->xpath("//main[@id='app-content']//div[@class='app-name'][normalize-space() = '$app']/..")-> return Locator::forThe()->xpath("//main[@id='app-content' or contains(@class, 'app-content')]//div[@class='app-name'][normalize-space() = '$app']/..")->
describedAs("Row for app $app in Apps Management"); describedAs("Row for app $app in Apps Management");
} }
@ -75,7 +75,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
* @return Locator * @return Locator
*/ */
public static function emptyAppList() { public static function emptyAppList() {
return Locator::forThe()->xpath("//main[@id='app-content']//div[@id='apps-list-empty']")-> return Locator::forThe()->xpath("//main[@id='app-content' or contains(@class, 'app-content')]//div[@id='apps-list-empty']")->
describedAs("Empty apps list view"); describedAs("Empty apps list view");
} }
@ -83,7 +83,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
* @return Locator * @return Locator
*/ */
public static function appEntries() { public static function appEntries() {
return Locator::forThe()->xpath("//main[@id='app-content']//div[@class='section']")-> return Locator::forThe()->xpath("//main[@id='app-content' or contains(@class, 'app-content')]//div[@class='section']")->
describedAs("Entries in apps list"); describedAs("Entries in apps list");
} }
@ -109,7 +109,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
* @return Locator * @return Locator
*/ */
public static function sidebar() { public static function sidebar() {
return Locator::forThe()->id("app-sidebar")-> return Locator::forThe()->xpath("//*[@id=\"app-sidebar\" or contains(@class, 'app-sidebar')]")->
describedAs("Sidebar in apps management"); describedAs("Sidebar in apps management");
} }

View File

@ -80,7 +80,7 @@ class FilesAppContext implements Context, ActorAwareInterface {
* @return Locator * @return Locator
*/ */
public static function detailsView() { public static function detailsView() {
return Locator::forThe()->id("app-sidebar")-> return Locator::forThe()->xpath("//*[@id=\"app-sidebar\" or contains(@class, 'app-sidebar')]")->
describedAs("Details view in Files app"); describedAs("Details view in Files app");
} }

View File

@ -328,6 +328,17 @@ class FilesAppSharingContext implements Context, ActorAwareInterface {
* @Given I write down the shared link * @Given I write down the shared link
*/ */
public function iWriteDownTheSharedLink() { public function iWriteDownTheSharedLink() {
// Close the share link menu if it is open to ensure that it does not
// cover the copy link button.
if (!WaitFor::elementToBeEventuallyNotShown(
$this->actor,
self::shareLinkMenu(),
$timeout = 2 * $this->actor->getFindTimeoutMultiplier())) {
// It may not be possible to click on the menu button (due to the
// menu itself covering it), so "Esc" key is pressed instead.
$this->actor->find(self::shareLinkMenu(), 2)->getWrappedElement()->keyPress(27);
}
$this->actor->find(self::copyLinkButton(), 10)->click(); $this->actor->find(self::copyLinkButton(), 10)->click();
// Clicking on the menu item copies the link to the clipboard, but it is // Clicking on the menu item copies the link to the clipboard, but it is

View File

@ -88,7 +88,7 @@ class SettingsMenuContext implements Context, ActorAwareInterface {
* @return Locator * @return Locator
*/ */
private static function settingsPanelFor($itemText) { private static function settingsPanelFor($itemText) {
return Locator::forThe()->xpath("//div[@id = 'app-navigation']//ul//li[@class = 'app-navigation-caption' and normalize-space() = '$itemText']")-> return Locator::forThe()->xpath("//div[@id = 'app-navigation' or contains(@class, 'app-navigation')]//ul//li[@class = 'app-navigation-caption' and normalize-space() = '$itemText']")->
describedAs($itemText . " item in Settings panel"); describedAs($itemText . " item in Settings panel");
} }
@ -97,7 +97,7 @@ class SettingsMenuContext implements Context, ActorAwareInterface {
* @return Locator * @return Locator
*/ */
private static function settingsPanelEntryFor($itemText) { private static function settingsPanelEntryFor($itemText) {
return Locator::forThe()->xpath("//div[@id = 'app-navigation']//ul//li[normalize-space() = '$itemText']")-> return Locator::forThe()->xpath("//div[@id = 'app-navigation' or contains(@class, 'app-navigation')]//ul//li[normalize-space() = '$itemText']")->
describedAs($itemText . " entry in Settings panel"); describedAs($itemText . " entry in Settings panel");
} }

View File

@ -39,7 +39,7 @@ class ToastContext implements Context, ActorAwareInterface {
* @return Locator * @return Locator
*/ */
private static function toastContainer() { private static function toastContainer() {
return Locator::forThe()->id("content")-> return Locator::forThe()->xpath("//*[@id=\"content\" or contains(@class, 'content')]")->
describedAs("Toast container"); describedAs("Toast container");
} }

View File

@ -85,8 +85,7 @@ module.exports = []
loader: 'babel-loader', loader: 'babel-loader',
// automatically detect necessary packages to // automatically detect necessary packages to
// transpile in the node_modules folder // transpile in the node_modules folder
exclude: /node_modules(?!(\/|\\)(nextcloud-vue-collections|p-finally|p-limit|p-locate|p-queue|p-timeout|p-try)(\/|\\))/ exclude: /node_modules(?!(\/|\\)(nextcloud-vue-collections|p-finally|p-limit|p-locate|p-queue|p-timeout|p-try|toastify-js|v-tooltip)(\/|\\))/
}, },
{ {
test: /\.(png|jpg|gif)$/, test: /\.(png|jpg|gif)$/,