Fix breaking changes of nc/vue update
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
This commit is contained in:
parent
b73aedb81e
commit
f217b11443
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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" />
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue