Update nextcloud 0.10.0

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
John Molakvoæ (skjnldsv) 2019-04-15 11:52:24 +02:00
parent d39c5127c9
commit e325286875
No known key found for this signature in database
GPG Key ID: 60C25B8C072916CF
12 changed files with 46 additions and 44 deletions

View File

@ -74,7 +74,7 @@ module.exports = {
'node/no-unpublished-require': ['off'], 'node/no-unpublished-require': ['off'],
'node/no-unsupported-features/es-syntax': ['off'], 'node/no-unsupported-features/es-syntax': ['off'],
// kebab case components for vuejs // kebab case components for vuejs
'vue/component-name-in-template-casing': ['error', 'kebab-case'], 'vue/component-name-in-template-casing': ['error', 'PascalCase'],
// space before self-closing elements // space before self-closing elements
'vue/html-closing-bracket-spacing': 'error', 'vue/html-closing-bracket-spacing': 'error',
// no ending html tag on a new line // no ending html tag on a new line

14
package-lock.json generated
View File

@ -2298,7 +2298,7 @@
}, },
"cdav-library": { "cdav-library": {
"version": "github:nextcloud/cdav-library#8bb139608ae4610efebec7dded1627e8f9ba2731", "version": "github:nextcloud/cdav-library#8bb139608ae4610efebec7dded1627e8f9ba2731",
"from": "github:nextcloud/cdav-library#8bb139608ae4610efebec7dded1627e8f9ba2731", "from": "github:nextcloud/cdav-library",
"requires": { "requires": {
"@babel/polyfill": "^7.4.3" "@babel/polyfill": "^7.4.3"
} }
@ -6996,9 +6996,9 @@
} }
}, },
"nextcloud-vue": { "nextcloud-vue": {
"version": "0.9.7", "version": "0.10.0",
"resolved": "https://registry.npmjs.org/nextcloud-vue/-/nextcloud-vue-0.9.7.tgz", "resolved": "https://registry.npmjs.org/nextcloud-vue/-/nextcloud-vue-0.10.0.tgz",
"integrity": "sha512-47mr8kBQfJW1oNTgKjFdktgX6+Z0c6jryd1xq+515jLef3o1DWdMmRLF5Yab3TTUdha/aG3dL0lpVQ6Z3jf9Aw==", "integrity": "sha512-Ca1eUefMluq5/3Od5hYaG566HmQDGObjGkHNYXJAvGbeMZ2hvbjbkgx9OzpeLV91NWGF4OYsUOsCe9r5WsBp2w==",
"requires": { "requires": {
"hammerjs": "^2.0.8", "hammerjs": "^2.0.8",
"md5": "^2.2.1", "md5": "^2.2.1",
@ -10810,9 +10810,9 @@
"integrity": "sha512-yaX2its9XAJKGuQqf7LsiZHHSkxsIK8rmCOQOvEGEoF41blKRK8qr9my4qYoD6ikdLss4n8tKqYBecmaY0+WJg==" "integrity": "sha512-yaX2its9XAJKGuQqf7LsiZHHSkxsIK8rmCOQOvEGEoF41blKRK8qr9my4qYoD6ikdLss4n8tKqYBecmaY0+WJg=="
}, },
"vue2-datepicker": { "vue2-datepicker": {
"version": "2.10.3", "version": "2.11.0",
"resolved": "https://registry.npmjs.org/vue2-datepicker/-/vue2-datepicker-2.10.3.tgz", "resolved": "https://registry.npmjs.org/vue2-datepicker/-/vue2-datepicker-2.11.0.tgz",
"integrity": "sha512-JfElGcEne5d4rELDSQ+rQ7qqX8g0pdYRYg+KYMqE07628WSyWm2kIoVnKQwvlfMCL4jeeovYVtiDAZHlrxCfGQ==", "integrity": "sha512-EW8M4PPDJG2c2cZXZCYLVregx4dhlJ+GC7rDGuGex0MlnhM8SHegL+/xFxrnUBD9NLvwrgWEEub5i7Ic/EG/+w==",
"requires": { "requires": {
"fecha": "^2.3.3" "fecha": "^2.3.3"
} }

View File

@ -42,7 +42,7 @@
"ical.js": "^1.3.0", "ical.js": "^1.3.0",
"moment": "^2.24.0", "moment": "^2.24.0",
"nextcloud-server": "^0.15.9", "nextcloud-server": "^0.15.9",
"nextcloud-vue": "^0.9.7", "nextcloud-vue": "^0.10.0",
"p-limit": "^2.2.0", "p-limit": "^2.2.0",
"p-queue": "^5.0.0", "p-queue": "^5.0.0",
"qr-image": "^3.2.0", "qr-image": "^3.2.0",

View File

@ -39,7 +39,7 @@
<!-- contact header --> <!-- contact header -->
<header :style="{ 'backgroundColor': colorAvatar }"> <header :style="{ 'backgroundColor': colorAvatar }">
<!-- avatar and upload photo --> <!-- avatar and upload photo -->
<contact-avatar :contact="contact" /> <ContactAvatar :contact="contact" />
<!-- QUESTION: is it better to pass contact as a prop or get it from the store inside <!-- QUESTION: is it better to pass contact as a prop or get it from the store inside
contact-avatar ? :avatar="contact.photo"--> contact-avatar ? :avatar="contact.photo"-->
@ -103,7 +103,7 @@
<!-- using contact.key in the key and index as key to avoid conflicts between similar data and exact key --> <!-- using contact.key in the key and index as key to avoid conflicts between similar data and exact key -->
<!-- passing the debounceUpdateContact so that the contact-property component contains the function <!-- passing the debounceUpdateContact so that the contact-property component contains the function
and allow us to use it on the rfcProps since the scope is forwarded to the actions --> and allow us to use it on the rfcProps since the scope is forwarded to the actions -->
<contact-property v-for="(property, index) in sortedProperties" <ContactProperty v-for="(property, index) in sortedProperties"
:key="`${index}-${contact.key}-${property.name}`" :index="index" :key="`${index}-${contact.key}-${property.name}`" :index="index"
:sorted-properties="sortedProperties" :property="property" :sorted-properties="sortedProperties" :property="property"
:contact="contact" :local-contact="localContact" :contact="contact" :local-contact="localContact"
@ -113,18 +113,18 @@
empty property because this is a required prop on regular property-select. But since empty property because this is a required prop on regular property-select. But since
we are hijacking this... (this is supposed to be used with a ICAL.property, but to avoid code we are hijacking this... (this is supposed to be used with a ICAL.property, but to avoid code
duplication, we created a fake propModel and property with our own options here) --> duplication, we created a fake propModel and property with our own options here) -->
<property-select :prop-model="addressbookModel" :value.sync="addressbook" :is-first-property="true" <PropertySelect :prop-model="addressbookModel" :value.sync="addressbook" :is-first-property="true"
:is-last-property="true" :property="{}" class="property--addressbooks property--last" /> :is-last-property="true" :property="{}" class="property--addressbooks property--last" />
<!-- Groups always visible --> <!-- Groups always visible -->
<property-groups :prop-model="groupsModel" :value.sync="groups" :contact="contact" <PropertyGroups :prop-model="groupsModel" :value.sync="groups" :contact="contact"
:is-read-only="isReadOnly" class="property--groups property--last" /> :is-read-only="isReadOnly" class="property--groups property--last" />
<!-- Last modified--> <!-- Last modified-->
<property-rev v-if="contact.rev" :value="contact.rev" /> <PropertyRev v-if="contact.rev" :value="contact.rev" />
<!-- new property select --> <!-- new property select -->
<add-new-prop v-if="!isReadOnly" :contact="contact" /> <AddNewProp v-if="!isReadOnly" :contact="contact" />
</section> </section>
</template> </template>
</div> </div>

View File

@ -23,7 +23,7 @@
<template> <template>
<div class="grid-span-3 property property--last"> <div class="grid-span-3 property property--last">
<!-- title --> <!-- title -->
<property-title :icon="'icon-add'" :readable-name="t('contacts', 'Add new property')" /> <PropertyTitle :icon="'icon-add'" :readable-name="t('contacts', 'Add new property')" />
<div class="property__row"> <div class="property__row">
<div class="property__label" /> <div class="property__label" />

View File

@ -23,7 +23,7 @@
<template> <template>
<!-- same uid can coexists between different addressbooks <!-- same uid can coexists between different addressbooks
so we need to use the addressbook id as key as well --> so we need to use the addressbook id as key as well -->
<recycle-scroller <RecycleScroller
id="contacts-list" id="contacts-list"
ref="scroller" ref="scroller"
:class="{'icon-loading': loading, showdetails: selectedContact}" :class="{'icon-loading': loading, showdetails: selectedContact}"
@ -32,14 +32,14 @@
:item-size="itemHeight" :item-size="itemHeight"
key-field="key"> key-field="key">
<template v-slot="{ item, index }"> <template v-slot="{ item, index }">
<contacts-list-item <ContactsListItem
v-if="contacts[item.key]" v-if="contacts[item.key]"
:key="item.key" :key="item.key"
:contact="contacts[item.key]" :contact="contacts[item.key]"
:index="index" :index="index"
@deleted="selectContact" /> @deleted="selectContact" />
</template> </template>
</recycle-scroller> </RecycleScroller>
</template> </template>
<script> <script>

View File

@ -23,7 +23,7 @@
<template> <template>
<div v-if="propModel" :class="`grid-span-${gridLength}`" class="property"> <div v-if="propModel" :class="`grid-span-${gridLength}`" class="property">
<!-- title if first element --> <!-- title if first element -->
<property-title v-if="isFirstProperty && propModel.icon" :icon="propModel.icon" :readable-name="propModel.readableName" <PropertyTitle v-if="isFirstProperty && propModel.icon" :icon="propModel.icon" :readable-name="propModel.readableName"
:info="propModel.info" /> :info="propModel.info" />
<div class="property__row"> <div class="property__row">
@ -47,7 +47,7 @@
<action :actions="actions" class="property__actions" /> <action :actions="actions" class="property__actions" />
<!-- Real input where the picker shows --> <!-- Real input where the picker shows -->
<datetime-picker :value="vcardTimeLocalValue.toJSDate()" :minute-step="10" :lang="lang" <DatetimePicker :value="vcardTimeLocalValue.toJSDate()" :minute-step="10" :lang="lang"
:clearable="false" :first-day-of-week="firstDay" :type="inputType" :clearable="false" :first-day-of-week="firstDay" :type="inputType"
:readonly="isReadOnly" :format="dateFormat" class="property__value" :readonly="isReadOnly" :format="dateFormat" class="property__value"
confirm @confirm="updateValue" /> confirm @confirm="updateValue" />

View File

@ -23,7 +23,7 @@
<template> <template>
<div v-if="propModel" :class="`grid-span-${gridLength}`" class="property"> <div v-if="propModel" :class="`grid-span-${gridLength}`" class="property">
<!-- title if first element --> <!-- title if first element -->
<property-title v-if="isFirstProperty && propModel.icon" :icon="propModel.icon" :readable-name="propModel.readableName" <PropertyTitle v-if="isFirstProperty && propModel.icon" :icon="propModel.icon" :readable-name="propModel.readableName"
:info="propModel.info" /> :info="propModel.info" />
<div class="property__row"> <div class="property__row">

View File

@ -23,7 +23,7 @@
<template> <template>
<div v-if="propModel" :class="`grid-span-${gridLength}`" class="property"> <div v-if="propModel" :class="`grid-span-${gridLength}`" class="property">
<!-- title if first element --> <!-- title if first element -->
<property-title v-if="isFirstProperty && propModel.icon" :icon="propModel.icon" :readable-name="propModel.readableName" <PropertyTitle v-if="isFirstProperty && propModel.icon" :icon="propModel.icon" :readable-name="propModel.readableName"
:info="propModel.info" /> :info="propModel.info" />
<div class="property__row"> <div class="property__row">

View File

@ -23,7 +23,7 @@
<template> <template>
<div v-if="propModel" :class="`grid-span-${gridLength}`" class="property"> <div v-if="propModel" :class="`grid-span-${gridLength}`" class="property">
<!-- title if first element --> <!-- title if first element -->
<property-title v-if="isFirstProperty && propModel.icon" :icon="propModel.icon" :readable-name="propModel.readableName" <PropertyTitle v-if="isFirstProperty && propModel.icon" :icon="propModel.icon" :readable-name="propModel.readableName"
:info="propModel.info" /> :info="propModel.info" />
<div class="property__row"> <div class="property__row">

View File

@ -42,7 +42,7 @@
</a> </a>
<!-- sharing input --> <!-- sharing input -->
<share-address-book v-if="shareOpen && !addressbook.readOnly" :addressbook="addressbook" /> <ShareAddressBook v-if="shareOpen && !addressbook.readOnly" :addressbook="addressbook" />
</li> </li>
</template> </template>

View File

@ -22,43 +22,43 @@
--> -->
<template> <template>
<app-content app-name="contacts" :class="{'icon-loading': loading}"> <Content app-name="contacts" :class="{'icon-loading': loading}">
<!-- new-contact-button + navigation + settings --> <!-- new-contact-button + navigation + settings -->
<app-navigation slot="navigation"> <AppNavigation>
<!-- new-contact-button --> <!-- new-contact-button -->
<app-navigation-new v-if="!loading" button-id="new-contact-button" :text="t('contacts','New contact')" <AppNavigationNew v-if="!loading" button-id="new-contact-button" :text="t('contacts','New contact')"
button-class="icon-add" :disabled="!defaultAddressbook" @click="newContact" /> button-class="icon-add" :disabled="!defaultAddressbook" @click="newContact" />
<!-- groups list --> <!-- groups list -->
<ul v-if="!loading" id="groups-list"> <ul v-if="!loading" id="groups-list">
<app-navigation-item v-for="item in menu" :key="item.key" :item="item" /> <AppNavigationItem v-for="item in menu" :key="item.key" :item="item" />
</ul> </ul>
<!-- settings --> <!-- settings -->
<app-navigation-settings v-if="!loading"> <AppNavigationSettings v-if="!loading">
<settings-section /> <SettingsSection />
</app-navigation-settings> </AppNavigationSettings>
</app-navigation> </AppNavigation>
<template slot="content"> <AppContent>
<!-- go back to list when in details mode --> <!-- go back to list when in details mode -->
<div v-if="selectedContact && isMobile" id="app-details-toggle" class="icon-confirm" <div v-if="selectedContact && isMobile" id="app-details-toggle" class="icon-confirm"
tabindex="0" @click="showList" /> tabindex="0" @click="showList" />
<div id="app-content-wrapper"> <div id="app-content-wrapper">
<!-- contacts list --> <!-- contacts list -->
<contacts-list :list="contactsList" :contacts="contacts" :loading="loading" <ContactsList :list="contactsList" :contacts="contacts" :loading="loading"
:search-query="searchQuery" /> :search-query="searchQuery" />
<!-- main contacts details --> <!-- main contacts details -->
<contact-details :loading="loading" :contact-key="selectedContact" /> <ContactDetails :loading="loading" :contact-key="selectedContact" />
</div> </div>
</template> </AppContent>
<modal v-if="isImporting" :clear-view-delay="-1" :can-close="isImportDone" <Modal v-if="isImporting" :clear-view-delay="-1" :can-close="isImportDone"
@close="closeImport"> @close="closeImport">
<import-screen /> <ImportScreen />
</modal> </Modal>
</app-content> </Content>
</template> </template>
<script> <script>
@ -68,6 +68,7 @@ import {
AppNavigationItem, AppNavigationItem,
AppNavigationNew, AppNavigationNew,
AppNavigationSettings, AppNavigationSettings,
Content,
Modal Modal
} from 'nextcloud-vue' } from 'nextcloud-vue'
import isMobile from 'nextcloud-vue/dist/Mixins/isMobile' import isMobile from 'nextcloud-vue/dist/Mixins/isMobile'
@ -98,11 +99,12 @@ export default {
AppNavigationItem, AppNavigationItem,
AppNavigationNew, AppNavigationNew,
AppNavigationSettings, AppNavigationSettings,
SettingsSection,
ContactsList,
ContactDetails, ContactDetails,
ContactsList,
Content,
ImportScreen, ImportScreen,
Modal Modal,
SettingsSection
}, },
mixins: [ mixins: [