Signed-off-by: Christopher Ng <chrng8@gmail.com>tags/v25.0.0beta4
@@ -131,7 +131,8 @@ | |||
field === 'avatar' || | |||
field === 'email' || | |||
field === 'displayname' || | |||
field === 'twitter' | |||
field === 'twitter' || | |||
field === 'address' | |||
) { | |||
return; | |||
} |
@@ -149,8 +149,6 @@ class PersonalInfo implements ISettings { | |||
'avatarScope' => $account->getProperty(IAccountManager::PROPERTY_AVATAR)->getScope(), | |||
'phone' => $account->getProperty(IAccountManager::PROPERTY_PHONE)->getValue(), | |||
'phoneScope' => $account->getProperty(IAccountManager::PROPERTY_PHONE)->getScope(), | |||
'address' => $account->getProperty(IAccountManager::PROPERTY_ADDRESS)->getValue(), | |||
'addressScope' => $account->getProperty(IAccountManager::PROPERTY_ADDRESS)->getScope(), | |||
'website' => $account->getProperty(IAccountManager::PROPERTY_WEBSITE)->getValue(), | |||
'websiteScope' => $account->getProperty(IAccountManager::PROPERTY_WEBSITE)->getScope(), | |||
'websiteVerification' => $account->getProperty(IAccountManager::PROPERTY_WEBSITE)->getVerified(), | |||
@@ -162,8 +160,9 @@ class PersonalInfo implements ISettings { | |||
$personalInfoParameters = [ | |||
'userId' => $uid, | |||
'displayName' => $this->getProperty($account, IAccountManager::PROPERTY_DISPLAYNAME), | |||
'twitter' => $this->getProperty($account, IAccountManager::PROPERTY_TWITTER), | |||
'emailMap' => $this->getEmailMap($account), | |||
'location' => $this->getProperty($account, IAccountManager::PROPERTY_ADDRESS), | |||
'twitter' => $this->getProperty($account, IAccountManager::PROPERTY_TWITTER), | |||
'languageMap' => $this->getLanguageMap($user), | |||
'profileEnabledGlobally' => $this->profileManager->isProfileEnabled(), | |||
'profileEnabled' => $this->profileManager->isProfileEnabled($user), |
@@ -0,0 +1,50 @@ | |||
<!-- | |||
- @copyright 2022 Christopher Ng <chrng8@gmail.com> | |||
- | |||
- @author Christopher Ng <chrng8@gmail.com> | |||
- | |||
- @license AGPL-3.0-or-later | |||
- | |||
- This program is free software: you can redistribute it and/or modify | |||
- it under the terms of the GNU Affero General Public License as | |||
- published by the Free Software Foundation, either version 3 of the | |||
- License, or (at your option) any later version. | |||
- | |||
- This program is distributed in the hope that it will be useful, | |||
- but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
- GNU Affero General Public License for more details. | |||
- | |||
- You should have received a copy of the GNU Affero General Public License | |||
- along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
- | |||
--> | |||
<template> | |||
<AccountPropertySection v-bind.sync="location" | |||
:placeholder="t('settings', 'Your location')" /> | |||
</template> | |||
<script> | |||
import { loadState } from '@nextcloud/initial-state' | |||
import AccountPropertySection from './shared/AccountPropertySection.vue' | |||
import { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js' | |||
const { location } = loadState('settings', 'personalInfoParameters', {}) | |||
export default { | |||
name: 'LocationSection', | |||
components: { | |||
AccountPropertySection, | |||
}, | |||
data() { | |||
return { | |||
location: { ...location, readable: NAME_READABLE_ENUM[location.name] }, | |||
} | |||
}, | |||
} | |||
</script> |
@@ -46,7 +46,7 @@ export const ACCOUNT_PROPERTY_ENUM = Object.freeze({ | |||
/** Enum of account properties to human readable account property names */ | |||
export const ACCOUNT_PROPERTY_READABLE_ENUM = Object.freeze({ | |||
ADDRESS: t('settings', 'Address'), | |||
ADDRESS: t('settings', 'Location'), | |||
AVATAR: t('settings', 'Avatar'), | |||
BIOGRAPHY: t('settings', 'About'), | |||
DISPLAYNAME: t('settings', 'Full name'), |
@@ -28,6 +28,7 @@ import '@nextcloud/dialogs/styles/toast.scss' | |||
import DisplayNameSection from './components/PersonalInfo/DisplayNameSection.vue' | |||
import EmailSection from './components/PersonalInfo/EmailSection/EmailSection.vue' | |||
import LocationSection from './components/PersonalInfo/LocationSection.vue' | |||
import TwitterSection from './components/PersonalInfo/TwitterSection.vue' | |||
import LanguageSection from './components/PersonalInfo/LanguageSection/LanguageSection.vue' | |||
import ProfileSection from './components/PersonalInfo/ProfileSection/ProfileSection.vue' | |||
@@ -49,11 +50,13 @@ Vue.mixin({ | |||
const DisplayNameView = Vue.extend(DisplayNameSection) | |||
const EmailView = Vue.extend(EmailSection) | |||
const LocationView = Vue.extend(LocationSection) | |||
const TwitterView = Vue.extend(TwitterSection) | |||
const LanguageView = Vue.extend(LanguageSection) | |||
new DisplayNameView().$mount('#vue-displayname-section') | |||
new EmailView().$mount('#vue-email-section') | |||
new LocationView().$mount('#vue-location-section') | |||
new TwitterView().$mount('#vue-twitter-section') | |||
new LanguageView().$mount('#vue-language-section') | |||
@@ -136,20 +136,7 @@ script('settings', [ | |||
</form> | |||
</div> | |||
<div class="personal-settings-setting-box"> | |||
<form id="addressform" class="section"> | |||
<h3> | |||
<label for="address"><?php p($l->t('Address')); ?></label> | |||
<a href="#" class="federation-menu" aria-label="<?php p($l->t('Change privacy level of address')); ?>"> | |||
<span class="icon-federation-menu icon-password"> | |||
<span class="icon-triangle-s"></span> | |||
</span> | |||
</a> | |||
</h3> | |||
<input type="text" id="address" name="address" placeholder="<?php p($l->t('Your postal address')); ?>" value="<?php p($_['address']) ?>" autocomplete="on" autocapitalize="none" autocorrect="off" /> | |||
<span class="icon-checkmark hidden"></span> | |||
<span class="icon-error hidden"></span> | |||
<input type="hidden" id="addressscope" value="<?php p($_['addressScope']) ?>"> | |||
</form> | |||
<div id="vue-location-section"></div> | |||
</div> | |||
<div class="personal-settings-setting-box"> | |||
<form id="websiteform" class="section"> |