]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix breaking changes of nc/vue update
authorGeorg Ehrke <developer@georgehrke.com>
Thu, 16 Jul 2020 12:39:26 +0000 (14:39 +0200)
committerGeorg Ehrke <developer@georgehrke.com>
Wed, 22 Jul 2020 13:55:59 +0000 (15:55 +0200)
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
apps/files/css/detailsView.scss
apps/files/src/views/Sidebar.vue
apps/settings/src/views/Apps.vue
apps/settings/src/views/Users.vue
tests/acceptance/features/bootstrap/AppNavigationContext.php
tests/acceptance/features/bootstrap/AppsManagementContext.php
tests/acceptance/features/bootstrap/FilesAppContext.php
tests/acceptance/features/bootstrap/SettingsMenuContext.php
tests/acceptance/features/bootstrap/ToastContext.php

index e13cf0d7a4e6291445db8134f3d6c33b0ffe3249..d035b24de92bfbabbebb56b2eade4586c20f5574 100644 (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;
                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;
        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;
        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;
index 16abb3ca76fc2beb456604ddbc936bdfdcf0b640..1fc89c6a7ee6374f3763c7316adce7ebbed9fee3 100644 (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;
index 6afdb2536aa62530608fc34027bcc9e4c56f037f..ccdb2d1b8de49ea99fb6af7174f8edc6de44c3cc 100644 (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" />
index d174768fc8015e3f0ac1e2aaf6edb684e58e922f..0e837979b85c1fa11df32bf4d6de3dabbb0b208d 100644 (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"
                                                </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>
index 427af0e40c9395c9d2802b9e3668f55e4c16227e..df6ed228960e3b8c42f89716891e6bc394913c77 100644 (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");
        }
 
index 1e36ac72ef6339603564a82fb8a2b70129da1184..1f3b2dbe28ab642a2c39334442d085bf53294495 100644 (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");
        }
 
index a5dcfb700bab0c81c4fa50ca66ee93a8f9006dfd..906a57b9e6192d4b59e1760806d597fbc3f9e6ba 100644 (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");
        }
 
index 485f945f04c6fc348778604390ca18924e588508..678d7c5eabba8ab81f20efd710cefd90dfc36321 100644 (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");
        }
 
index 62b15c74c711c758bbd0ff5280d34c343d99298d..5a67d7f25814e2e1f76e242b97c545f4c997d6c2 100644 (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");
        }