Skip to content

Commit

Permalink
[WHIP]
Browse files Browse the repository at this point in the history
- Design updates
- Naming updates

Signed-off-by: Christopher Ng <chrng8@gmail.com>
  • Loading branch information
Pytal committed Sep 30, 2021
1 parent 93de9fa commit e09fcf9
Show file tree
Hide file tree
Showing 19 changed files with 209 additions and 188 deletions.
24 changes: 12 additions & 12 deletions apps/provisioning_api/lib/Controller/UsersController.php
Original file line number Diff line number Diff line change
Expand Up @@ -611,8 +611,8 @@ public function getEditableFieldsForUser(string $userId): DataResponse {
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS;
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE;
$permittedFields[] = IAccountManager::PROPERTY_TWITTER;
$permittedFields[] = IAccountManager::PROPERTY_COMPANY;
$permittedFields[] = IAccountManager::PROPERTY_JOB_TITLE;
$permittedFields[] = IAccountManager::PROPERTY_ORGANISATION;
$permittedFields[] = IAccountManager::PROPERTY_ROLE;
$permittedFields[] = IAccountManager::PROPERTY_HEADLINE;
$permittedFields[] = IAccountManager::PROPERTY_BIOGRAPHY;
$permittedFields[] = IAccountManager::PROPERTY_PROFILE_ENABLED;
Expand Down Expand Up @@ -772,17 +772,17 @@ public function editUser(string $userId, string $key, string|bool $value): DataR
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS;
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE;
$permittedFields[] = IAccountManager::PROPERTY_TWITTER;
$permittedFields[] = IAccountManager::PROPERTY_COMPANY;
$permittedFields[] = IAccountManager::PROPERTY_JOB_TITLE;
$permittedFields[] = IAccountManager::PROPERTY_ORGANISATION;
$permittedFields[] = IAccountManager::PROPERTY_ROLE;
$permittedFields[] = IAccountManager::PROPERTY_HEADLINE;
$permittedFields[] = IAccountManager::PROPERTY_BIOGRAPHY;
$permittedFields[] = IAccountManager::PROPERTY_PROFILE_ENABLED;
$permittedFields[] = IAccountManager::PROPERTY_PHONE . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_TWITTER . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_COMPANY . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_JOB_TITLE . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_ORGANISATION . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_ROLE . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_HEADLINE . self::SCOPE_SUFFIX;
$permittedFields[] = IAccountManager::PROPERTY_BIOGRAPHY . self::SCOPE_SUFFIX;

Expand Down Expand Up @@ -816,8 +816,8 @@ public function editUser(string $userId, string $key, string|bool $value): DataR
$permittedFields[] = IAccountManager::PROPERTY_ADDRESS;
$permittedFields[] = IAccountManager::PROPERTY_WEBSITE;
$permittedFields[] = IAccountManager::PROPERTY_TWITTER;
$permittedFields[] = IAccountManager::PROPERTY_COMPANY;
$permittedFields[] = IAccountManager::PROPERTY_JOB_TITLE;
$permittedFields[] = IAccountManager::PROPERTY_ORGANISATION;
$permittedFields[] = IAccountManager::PROPERTY_ROLE;
$permittedFields[] = IAccountManager::PROPERTY_HEADLINE;
$permittedFields[] = IAccountManager::PROPERTY_BIOGRAPHY;
$permittedFields[] = IAccountManager::PROPERTY_PROFILE_ENABLED;
Expand Down Expand Up @@ -937,8 +937,8 @@ public function editUser(string $userId, string $key, string|bool $value): DataR
case IAccountManager::PROPERTY_ADDRESS:
case IAccountManager::PROPERTY_WEBSITE:
case IAccountManager::PROPERTY_TWITTER:
case IAccountManager::PROPERTY_COMPANY:
case IAccountManager::PROPERTY_JOB_TITLE:
case IAccountManager::PROPERTY_ORGANISATION:
case IAccountManager::PROPERTY_ROLE:
case IAccountManager::PROPERTY_HEADLINE:
case IAccountManager::PROPERTY_BIOGRAPHY:
$userAccount = $this->accountManager->getAccount($targetUser);
Expand Down Expand Up @@ -982,8 +982,8 @@ public function editUser(string $userId, string $key, string|bool $value): DataR
case IAccountManager::PROPERTY_ADDRESS . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_WEBSITE . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_TWITTER . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_COMPANY . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_JOB_TITLE . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_ORGANISATION . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_ROLE . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_HEADLINE . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_BIOGRAPHY . self::SCOPE_SUFFIX:
case IAccountManager::PROPERTY_AVATAR . self::SCOPE_SUFFIX:
Expand Down
36 changes: 18 additions & 18 deletions apps/provisioning_api/tests/Controller/UsersControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -1002,8 +1002,8 @@ public function testGetUserDataAsAdmin() {
IAccountManager::PROPERTY_PHONE => ['value' => 'phone'],
IAccountManager::PROPERTY_TWITTER => ['value' => 'twitter'],
IAccountManager::PROPERTY_WEBSITE => ['value' => 'website'],
IAccountManager::PROPERTY_COMPANY => ['value' => 'company'],
IAccountManager::PROPERTY_JOB_TITLE => ['value' => 'job_title'],
IAccountManager::PROPERTY_ORGANISATION => ['value' => 'organisation'],
IAccountManager::PROPERTY_ROLE => ['value' => 'role'],
IAccountManager::PROPERTY_HEADLINE => ['value' => 'headline'],
IAccountManager::PROPERTY_BIOGRAPHY => ['value' => 'biography'],
]);
Expand Down Expand Up @@ -1075,8 +1075,8 @@ public function testGetUserDataAsAdmin() {
'setPassword' => true,
],
'additional_mail' => [],
'company' => 'company',
'job_title' => 'job_title',
'organisation' => 'organisation',
'role' => 'role',
'headline' => 'headline',
'biography' => 'biography',
'profile_enabled' => '1',
Expand Down Expand Up @@ -1179,8 +1179,8 @@ public function testGetUserDataAsSubAdminAndUserIsAccessible() {
IAccountManager::PROPERTY_PHONE => ['value' => 'phone'],
IAccountManager::PROPERTY_TWITTER => ['value' => 'twitter'],
IAccountManager::PROPERTY_WEBSITE => ['value' => 'website'],
IAccountManager::PROPERTY_COMPANY => ['value' => 'company'],
IAccountManager::PROPERTY_JOB_TITLE => ['value' => 'job_title'],
IAccountManager::PROPERTY_ORGANISATION => ['value' => 'organisation'],
IAccountManager::PROPERTY_ROLE => ['value' => 'role'],
IAccountManager::PROPERTY_HEADLINE => ['value' => 'headline'],
IAccountManager::PROPERTY_BIOGRAPHY => ['value' => 'biography'],
]);
Expand Down Expand Up @@ -1213,8 +1213,8 @@ public function testGetUserDataAsSubAdminAndUserIsAccessible() {
'setPassword' => true,
],
'additional_mail' => [],
'company' => 'company',
'job_title' => 'job_title',
'organisation' => 'organisation',
'role' => 'role',
'headline' => 'headline',
'biography' => 'biography',
'profile_enabled' => '1',
Expand Down Expand Up @@ -1356,8 +1356,8 @@ public function testGetUserDataAsSubAdminSelfLookup() {
IAccountManager::PROPERTY_PHONE => ['value' => 'phone'],
IAccountManager::PROPERTY_TWITTER => ['value' => 'twitter'],
IAccountManager::PROPERTY_WEBSITE => ['value' => 'website'],
IAccountManager::PROPERTY_COMPANY => ['value' => 'company'],
IAccountManager::PROPERTY_JOB_TITLE => ['value' => 'job_title'],
IAccountManager::PROPERTY_ORGANISATION => ['value' => 'organisation'],
IAccountManager::PROPERTY_ROLE => ['value' => 'role'],
IAccountManager::PROPERTY_HEADLINE => ['value' => 'headline'],
IAccountManager::PROPERTY_BIOGRAPHY => ['value' => 'biography'],
]);
Expand Down Expand Up @@ -1389,8 +1389,8 @@ public function testGetUserDataAsSubAdminSelfLookup() {
'setPassword' => false,
],
'additional_mail' => [],
'company' => 'company',
'job_title' => 'job_title',
'organisation' => 'organisation',
'role' => 'role',
'headline' => 'headline',
'biography' => 'biography',
'profile_enabled' => '1',
Expand Down Expand Up @@ -3909,8 +3909,8 @@ public function dataGetEditableFields() {
IAccountManager::PROPERTY_ADDRESS,
IAccountManager::PROPERTY_WEBSITE,
IAccountManager::PROPERTY_TWITTER,
IAccountManager::PROPERTY_COMPANY,
IAccountManager::PROPERTY_JOB_TITLE,
IAccountManager::PROPERTY_ORGANISATION,
IAccountManager::PROPERTY_ROLE,
IAccountManager::PROPERTY_HEADLINE,
IAccountManager::PROPERTY_BIOGRAPHY,
IAccountManager::PROPERTY_PROFILE_ENABLED,
Expand All @@ -3923,8 +3923,8 @@ public function dataGetEditableFields() {
IAccountManager::PROPERTY_ADDRESS,
IAccountManager::PROPERTY_WEBSITE,
IAccountManager::PROPERTY_TWITTER,
IAccountManager::PROPERTY_COMPANY,
IAccountManager::PROPERTY_JOB_TITLE,
IAccountManager::PROPERTY_ORGANISATION,
IAccountManager::PROPERTY_ROLE,
IAccountManager::PROPERTY_HEADLINE,
IAccountManager::PROPERTY_BIOGRAPHY,
IAccountManager::PROPERTY_PROFILE_ENABLED,
Expand All @@ -3936,8 +3936,8 @@ public function dataGetEditableFields() {
IAccountManager::PROPERTY_ADDRESS,
IAccountManager::PROPERTY_WEBSITE,
IAccountManager::PROPERTY_TWITTER,
IAccountManager::PROPERTY_COMPANY,
IAccountManager::PROPERTY_JOB_TITLE,
IAccountManager::PROPERTY_ORGANISATION,
IAccountManager::PROPERTY_ROLE,
IAccountManager::PROPERTY_HEADLINE,
IAccountManager::PROPERTY_BIOGRAPHY,
IAccountManager::PROPERTY_PROFILE_ENABLED,
Expand Down
40 changes: 20 additions & 20 deletions apps/settings/lib/Settings/Personal/PersonalInfo.php
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,8 @@ public function getForm(): TemplateResponse {
'emailMap' => $this->getEmailMap($account),
'languageMap' => $this->getLanguageMap($user),
'profileEnabled' => $this->isProfileEnabled($account),
'companyMap' => $this->getCompanyMap($account),
'jobTitleMap' => $this->getJobTitleMap($account),
'organisationMap' => $this->getOrganisationMap($account),
'roleMap' => $this->getRoleMap($account),
'headlineMap' => $this->getHeadlineMap($account),
'biographyMap' => $this->getBiographyMap($account),
];
Expand Down Expand Up @@ -196,21 +196,21 @@ private function getBiographyMap(IAccount $account): array {
}

/**
* returns the primary company in an
* returns the primary organisation in an
* associative array
*/
private function getCompanyMap(IAccount $account): array {
$primaryCompany = [
'value' => $account->getProperty(IAccountManager::PROPERTY_COMPANY)->getValue(),
'scope' => $account->getProperty(IAccountManager::PROPERTY_COMPANY)->getScope(),
'verified' => $account->getProperty(IAccountManager::PROPERTY_COMPANY)->getVerified(),
private function getOrganisationMap(IAccount $account): array {
$primaryOrganisation = [
'value' => $account->getProperty(IAccountManager::PROPERTY_ORGANISATION)->getValue(),
'scope' => $account->getProperty(IAccountManager::PROPERTY_ORGANISATION)->getScope(),
'verified' => $account->getProperty(IAccountManager::PROPERTY_ORGANISATION)->getVerified(),
];

$companyMap = [
'primaryCompany' => $primaryCompany,
$organisationMap = [
'primaryOrganisation' => $primaryOrganisation,
];

return $companyMap;
return $organisationMap;
}

/**
Expand All @@ -232,21 +232,21 @@ private function getHeadlineMap(IAccount $account): array {
}

/**
* returns the primary job title in an
* returns the primary role in an
* associative array
*/
private function getJobTitleMap(IAccount $account): array {
$primaryJobTitle = [
'value' => $account->getProperty(IAccountManager::PROPERTY_JOB_TITLE)->getValue(),
'scope' => $account->getProperty(IAccountManager::PROPERTY_JOB_TITLE)->getScope(),
'verified' => $account->getProperty(IAccountManager::PROPERTY_JOB_TITLE)->getVerified(),
private function getRoleMap(IAccount $account): array {
$primaryRole = [
'value' => $account->getProperty(IAccountManager::PROPERTY_ROLE)->getValue(),
'scope' => $account->getProperty(IAccountManager::PROPERTY_ROLE)->getScope(),
'verified' => $account->getProperty(IAccountManager::PROPERTY_ROLE)->getVerified(),
];

$jobTitleMap = [
'primaryJobTitle' => $primaryJobTitle,
$roleMap = [
'primaryRole' => $primaryRole,
];

return $jobTitleMap;
return $roleMap;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,18 @@
-->

<template>
<div class="jobtitle">
<div class="organisation">
<input
id="jobtitle"
id="organisation"
type="text"
:placeholder="t('settings', 'Your job title')"
:value="jobTitle"
:placeholder="t('settings', 'Your organisation')"
:value="organisation"
autocapitalize="none"
autocomplete="on"
autocorrect="off"
@input="onJobTitleChange">
@input="onOrganisationChange">

<div class="jobtitle__actions-container">
<div class="organisation__actions-container">
<transition name="fade">
<span v-if="showCheckmarkIcon" class="icon-checkmark" />
<span v-else-if="showErrorIcon" class="icon-error" />
Expand All @@ -50,10 +50,10 @@ import { ACCOUNT_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstan
import { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService'

export default {
name: 'JobTitle',
name: 'Organisation',

props: {
jobTitle: {
organisation: {
type: String,
required: true,
},
Expand All @@ -65,43 +65,43 @@ export default {

data() {
return {
initialJobTitle: this.jobTitle,
initialOrganisation: this.organisation,
localScope: this.scope,
showCheckmarkIcon: false,
showErrorIcon: false,
}
},

methods: {
onJobTitleChange(e) {
this.$emit('update:job-title', e.target.value)
this.debounceJobTitleChange(e.target.value.trim())
onOrganisationChange(e) {
this.$emit('update:organisation', e.target.value)
this.debounceOrganisationChange(e.target.value.trim())
},

debounceJobTitleChange: debounce(async function(jobTitle) {
await this.updatePrimaryJobTitle(jobTitle)
debounceOrganisationChange: debounce(async function(organisation) {
await this.updatePrimaryOrganisation(organisation)
}, 500),

async updatePrimaryJobTitle(jobTitle) {
async updatePrimaryOrganisation(organisation) {
try {
const responseData = await savePrimaryAccountProperty(ACCOUNT_PROPERTY_ENUM.JOB_TITLE, jobTitle)
const responseData = await savePrimaryAccountProperty(ACCOUNT_PROPERTY_ENUM.ORGANISATION, organisation)
this.handleResponse({
jobTitle,
organisation,
status: responseData.ocs?.meta?.status,
})
} catch (e) {
this.handleResponse({
errorMessage: t('settings', 'Unable to update job title'),
errorMessage: t('settings', 'Unable to update organisation'),
error: e,
})
}
},

handleResponse({ jobTitle, status, errorMessage, error }) {
handleResponse({ organisation, status, errorMessage, error }) {
if (status === 'ok') {
// Ensure that local state reflects server state
this.initialJobTitle = jobTitle
emit('settings:job-title:updated', jobTitle)
this.initialOrganisation = organisation
emit('settings:organisation:updated', organisation)
this.showCheckmarkIcon = true
setTimeout(() => { this.showCheckmarkIcon = false }, 2000)
} else {
Expand All @@ -120,7 +120,7 @@ export default {
</script>

<style lang="scss" scoped>
.jobtitle {
.organisation {
display: grid;
align-items: center;

Expand All @@ -138,7 +138,7 @@ export default {
cursor: text;
}

.jobtitle__actions-container {
.organisation__actions-container {
grid-area: 1 / 1;
justify-self: flex-end;
height: 30px;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,37 +24,37 @@
<section>
<HeaderBar
:account-property="accountProperty"
label-for="jobtitle"
:scope.sync="primaryJobTitle.scope" />
label-for="organisation"
:scope.sync="primaryOrganisation.scope" />

<JobTitle
:job-title.sync="primaryJobTitle.value"
:scope.sync="primaryJobTitle.scope" />
<Organisation
:organisation.sync="primaryOrganisation.value"
:scope.sync="primaryOrganisation.scope" />
</section>
</template>

<script>
import { loadState } from '@nextcloud/initial-state'

import JobTitle from './JobTitle'
import Organisation from './Organisation'
import HeaderBar from '../shared/HeaderBar'

import { ACCOUNT_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants'

const { jobTitleMap: { primaryJobTitle } } = loadState('settings', 'personalInfoParameters', {})
const { organisationMap: { primaryOrganisation } } = loadState('settings', 'personalInfoParameters', {})

export default {
name: 'JobTitleSection',
name: 'OrganisationSection',

components: {
JobTitle,
Organisation,
HeaderBar,
},

data() {
return {
accountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.JOB_TITLE,
primaryJobTitle,
accountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,
primaryOrganisation,
}
},
}
Expand Down
Loading

0 comments on commit e09fcf9

Please sign in to comment.