Fix breaking changes of nc/vue update

Signed-off-by: Georg Ehrke <developer@georgehrke.com>
This commit is contained in:
Georg Ehrke 2020-07-16 14:39:26 +02:00
parent b73aedb81e
commit f217b11443
No known key found for this signature in database
GPG Key ID: 9D98FD9380A1CB43
9 changed files with 90 additions and 88 deletions

View File

@ -1,19 +1,19 @@
#app-sidebar .detailFileInfoContainer {
.app-sidebar .detailFileInfoContainer {
min-height: 50px;
padding: 15px;
}
#app-sidebar .detailFileInfoContainer > div {
.app-sidebar .detailFileInfoContainer > div {
clear: both;
}
#app-sidebar .mainFileInfoView .icon {
.app-sidebar .mainFileInfoView .icon {
display: inline-block;
background-size: 16px 16px;
}
#app-sidebar .mainFileInfoView .permalink {
.app-sidebar .mainFileInfoView .permalink {
padding: 6px 10px;
vertical-align: top;
opacity: .6;
@ -23,22 +23,22 @@
opacity: 1;
}
}
#app-sidebar .mainFileInfoView .permalink-field>input {
.app-sidebar .mainFileInfoView .permalink-field>input {
clear: both;
width: 90%;
}
#app-sidebar .thumbnailContainer.large {
.app-sidebar .thumbnailContainer.large {
margin-left: -15px;
margin-right: -35px; /* 15 + 20 for the close button */
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 */
}
#app-sidebar .large .thumbnail {
.app-sidebar .large .thumbnail {
width:100%;
display:block;
background-repeat: no-repeat;
@ -49,21 +49,21 @@
height: auto;
}
#app-sidebar .large .thumbnail .stretcher {
.app-sidebar .large .thumbnail .stretcher {
content: '';
display: block;
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;
}
#app-sidebar .large.portrait .thumbnail {
.app-sidebar .large.portrait .thumbnail {
background-size: contain;
}
#app-sidebar .large.text {
.app-sidebar .large.text {
overflow-y: scroll;
overflow-x: hidden;
padding-top: 14px;
@ -71,7 +71,7 @@
margin-left: 0;
}
#app-sidebar .thumbnail {
.app-sidebar .thumbnail {
width: 100%;
min-height: 75px;
display: inline-block;
@ -81,44 +81,44 @@
background-repeat: no-repeat;
}
#app-sidebar .ellipsis {
.app-sidebar .ellipsis {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
#app-sidebar .fileName {
.app-sidebar .fileName {
font-size: 16px;
padding-top: 13px;
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 */
display: inline-block;
padding: 5px 0;
margin: -5px 0;
}
#app-sidebar .file-details {
.app-sidebar .file-details {
color: var(--color-text-maxcontrast);
}
#app-sidebar .action-favorite {
.app-sidebar .action-favorite {
vertical-align: sub;
padding: 10px;
margin: -10px;
}
#app-sidebar .action-favorite > span{
.app-sidebar .action-favorite > span{
opacity: .7 !important;
}
#app-sidebar .detailList {
.app-sidebar .detailList {
float: left;
}
#app-sidebar .close {
.app-sidebar .close {
position: absolute;
top: 0;
right: 0;

View File

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

View File

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

View File

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

View File

@ -31,7 +31,7 @@ class AppNavigationContext implements Context, ActorAwareInterface {
* @return Locator
*/
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");
}

View File

@ -59,7 +59,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
* @return Locator
*/
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");
}
@ -67,7 +67,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
* @return Locator
*/
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");
}
@ -75,7 +75,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
* @return Locator
*/
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");
}
@ -83,7 +83,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
* @return Locator
*/
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");
}
@ -109,7 +109,7 @@ class AppsManagementContext implements Context, ActorAwareInterface {
* @return Locator
*/
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");
}

View File

@ -80,7 +80,7 @@ class FilesAppContext implements Context, ActorAwareInterface {
* @return Locator
*/
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");
}

View File

@ -88,7 +88,7 @@ class SettingsMenuContext implements Context, ActorAwareInterface {
* @return Locator
*/
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");
}
@ -97,7 +97,7 @@ class SettingsMenuContext implements Context, ActorAwareInterface {
* @return Locator
*/
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");
}

View File

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