Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Different Visual Appearances for Enums #1790

Merged
merged 21 commits into from
Jan 19, 2021
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
adff27d
Profile setting dialog (#1710)
JohannesDoberer Nov 25, 2020
98d9f73
Merge branch 'master' into feature-user-settings
JohannesDoberer Nov 25, 2020
f13522f
Read/write settings using core api (#1709)
JohannesDoberer Nov 26, 2020
b2f4026
Merge branch 'master' into feature-user-settings
JohannesDoberer Dec 2, 2020
fb7d89f
Merge branch 'master' into feature-user-settings
JohannesDoberer Dec 8, 2020
f653bb0
Dialog box for user settings (#1750)
JohannesDoberer Dec 14, 2020
c3c5f1f
Merge branch 'master' into feature-user-settings
JohannesDoberer Dec 15, 2020
768971b
Adding new configuration for enum displayed as buttons
legteodav Dec 16, 2020
8a1bd2d
Merge remote-tracking branch 'SAP/master' into 1767-different-visual-…
legteodav Dec 17, 2020
9504155
Merge remote-tracking branch 'SAP/master' into 1767-different-visual-…
legteodav Dec 17, 2020
d2ee9a1
Update core/src/UserSettingsEditor.html
legteodav Dec 18, 2020
879b6a3
Changing testdataid with id in html attribute
legteodav Jan 7, 2021
ee9903d
Adding again testid
legteodav Jan 7, 2021
7bf5a1d
Merge branch 'master' into 1767-different-visual-appearances
JohannesDoberer Jan 11, 2021
a223e0d
Update core/src/UserSettingsEditor.html
legteodav Jan 11, 2021
2a0f923
Update core/src/UserSettingsEditor.html
legteodav Jan 11, 2021
3a5c139
Update core/src/UserSettingsEditor.html
legteodav Jan 11, 2021
ed29577
Update core/src/UserSettingsEditor.html
legteodav Jan 11, 2021
b55f0e6
changing button to segment and group....
legteodav Jan 13, 2021
e1b5159
Fixing integration tests
legteodav Jan 19, 2021
1e0825e
Merge remote-tracking branch 'SAP/master' into 1767-different-visual-…
legteodav Jan 19, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 34 additions & 1 deletion core/src/UserSettingsEditor.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,18 @@
userSettings[userSettingsGroupSchema[0]][key] = option;
}

function updateEnumButton(key, option) {
document.querySelectorAll('.enum-buttons-container-'+ key +' button').forEach(button => {
let buttonTestid = button.getAttribute('data-testid');
legteodav marked this conversation as resolved.
Show resolved Hide resolved
let optionTestid = 'lui-us-enum_button_'+key+'_'+option;
legteodav marked this conversation as resolved.
Show resolved Hide resolved
buttonTestid === optionTestid ?
button.classList.add('fd-button--emphasized') :
button.classList.remove('fd-button--emphasized');
});

userSettings[userSettingsGroupSchema[0]][key] = option;
}

</script>

<style>
Expand Down Expand Up @@ -114,6 +126,11 @@
border: 0;
color: var(--sapTextColor, #32363a);
}

.lui-fd-enum-button{
margin-right: 3px;
}

</style>
<div class="lui-usersettings-content">
<div class="lui-us-content-header-container">
Expand Down Expand Up @@ -170,6 +187,22 @@ <h1 class="lui-title lui-title--h2">
</div>
</div>
{/if}
{#if schemaItem.type==='enum_button'}
<div>
<div class="fd-form-item">
<div class="fd-popover enum-buttons-container-{key}">
{#each schemaItem.options as option, optionIndex}
<button class="fd-button lui-fd-enum-button {userSettings[userSettingsGroupSchema[0]][key] === option ? 'fd-button--emphasized':'' }"
on:click="{() => updateEnumButton(key,option)}"
data-testid="lui-us-enum_button_{key}_{option}"
disabled="{schemaItem.isEditable===undefined || schemaItem.isEditable?false:true}">
{$getTranslation(option)}
</button>
{/each}
</div>
</div>
</div>
{/if}
{#if schemaItem.type==='boolean'}
<input type="checkbox"
class="fd-checkbox"
Expand All @@ -180,4 +213,4 @@ <h1 class="lui-title lui-title--h2">
{/each}
</div>
</div>
</div>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
describe('Navigation', () => {
const clearStorage = () => cy.clearLocalStorage('luigi.preferences.userSettings');

const openSettingsDialogBox = () =>{
//Click on User Icon (top menu right)
cy.get('.fd-user-menu button').should('exist').click();

//Click on Setting link and open Dialog Box
cy.get('[data-testid="settings-link"]').should('exist').click();

//Check Dialog is open
cy.get('[data-testid="lui-us-header"]').should('exist');

//Check we have 3 left bar items
cy.get('.lui-usersettings-body .fd-nested-list__link').children().should('have.length', 3);
}

const saveSettings = () => {
//Check save button and click
cy.get('.lui-usersettings-dialog [data-testid="lui-us-saveBtn"]').should('exist').click();

//Check settings dialog box is closed...
cy.get('[data-testid="lui-us-header"]').should('not.exist');
}

const closeSettings = () => {
//Check cancel button and click
cy.get('.lui-usersettings-dialog [data-testid="lui-us-dismissBtn"]').should('exist').click();

//Check settings dialog box is closed...
cy.get('[data-testid="lui-us-header"]').should('not.exist');
}

beforeEach(() => {
cy.visitLoggedIn('/');
openSettingsDialogBox();
});

describe('User Account Configuration', () => {
const setting_name = 'name_'+new Date().getTime();
const setting_date_format = 'df_'+new Date().getTime();
const setting_privacy_policy = 'privacy_policy_'+new Date().getTime();

it('Fill Account and save; reopen and check saved value', () => {
//Clear storage before to save it
clearStorage();

//Click on User Account
cy.get('.lui-usersettings-body .fd-nested-list__link').eq(0).click();

//Check User Account is selected
cy.get('.lui-usersettings-body .fd-nested-list__link').eq(0).should('have.class','is-selected')

//Check Name Input field and type a new name
cy.get('[data-testid="lui-us-input0"]').should('exist').type(setting_name);

//Email Input field should be disabled
cy.get('[data-testid="lui-us-input1"]').should('exist').should('be.disabled');

//Click on Checkbox
cy.get('.lui-usersettings-content .fd-container .lui-value-container')
.eq(3).find('.fd-checkbox').check();

//Check Checkbox is checked
cy.get('.lui-usersettings-content .fd-container .lui-value-container')
.eq(3).find('.fd-checkbox').should('be.checked');

//Save Settings
saveSettings();

//Re-open Setting Dialog Box
openSettingsDialogBox();

//Check Name Input field and type a new name
cy.get('[data-testid="lui-us-input0"]').should('have.value', setting_name);

//Check Checkbox is checked
cy.get('.lui-usersettings-content .fd-container .lui-value-container')
.eq(3).find('.fd-checkbox').should('be.checked');

//Close settings
closeSettings();
});

it('Fill Language and Reason and save; reopen and check saved values', () => {
//Clear storage before to save it
clearStorage();

//Click on Language & Region
cy.get('.lui-usersettings-body .fd-nested-list__link').eq(1).click();

//Check Language & Region is selected
cy.get('.lui-usersettings-body .fd-nested-list__link').eq(1).should('have.class','is-selected');

//Check Language & Region Input field exist
cy.get('[data-testid="lui-us-input0"]').should('exist');

//Open button to show enumeration list options
cy.get('.lui-usersettings-content .fd-page__content .fd-form-item').eq(0).find('.fd-input-group__button').click();

//Check we should have 4 options
cy.get('.lui-usersettings-content .fd-page__content .fd-form-item').eq(0)
.find(' .fd-list--dropdown .fd-list__item').children().should('have.length', 4);

//Click on Spanish list item
cy.get('[data-testid="lui-us-option0_2"]').should('exist').click();

//Check Placeholder of input field is Spanish
cy.get('[data-testid="lui-us-input0"]').should('exist').should('have.attr', 'placeholder', 'Spanish');

//Check Date Formant Input field and type a new format
cy.get('[data-testid="lui-us-input1"]').should('exist').type(setting_date_format);

//Save Settings
saveSettings();

//Re-open Setting Dialog Box
openSettingsDialogBox();

//Click on Language & Region (left menu)
cy.get('.lui-usersettings-body .fd-nested-list__link').eq(1).click();

//Check Placeholder of input field is Spanish
cy.get('[data-testid="lui-us-input0"]').should('exist').should('have.attr', 'placeholder', 'Spanish');

//Check Name Input field and type a new name
cy.get('[data-testid="lui-us-input1"]').should('have.value', setting_date_format);

//Close settings
closeSettings();
});

it('Fill Privacy and save; reopen and check saved value', () => {
//Clear storage before to save it
clearStorage();

//Click on Privacy
cy.get('.lui-usersettings-body .fd-nested-list__link').eq(2).click();

//Check Private Policy Input field exist and placeholder is
cy.get('[data-testid="lui-us-input0"]').should('exist').should('have.attr', 'placeholder', 'Field placeholder text');

//Check Private Policy Input field exist and placeholder is
cy.get('[data-testid="lui-us-input0"]').type(setting_privacy_policy);

//Check Time Format has two buttons
cy.get('.enum-buttons-container-time').children().should('have.length', 2);

//Check Time Format has two buttons with no selected class
cy.get('.lui-usersettings-content .enum-buttons-container-time .lui-fd-enum-button').eq(0).should('not.have.class', 'fd-button--emphasized');
cy.get('.lui-usersettings-content .enum-buttons-container-time .lui-fd-enum-button').eq(1).should('not.have.class', 'fd-button--emphasized');

//Click Time Format 12h
cy.get('.lui-usersettings-content .enum-buttons-container-time .lui-fd-enum-button').eq(0).click();

//Check Time Format 12h is selected
cy.get('.lui-usersettings-content .enum-buttons-container-time .lui-fd-enum-button').eq(0).should('have.class', 'fd-button--emphasized');

//Save Settings
saveSettings();

//Re-open Setting Dialog Box
openSettingsDialogBox();

//Click on Privacy
cy.get('.lui-usersettings-body .fd-nested-list__link').eq(2).click();

//Check Private Policy Input field has saved value
cy.get('[data-testid="lui-us-input0"]').should('have.value', setting_privacy_policy);


//Check Time Format 12h is selected
cy.get('.lui-usersettings-content .enum-buttons-container-time button').eq(0).should('have.class', 'fd-button--emphasized');

//Close settings
closeSettings();
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ class Settings {
policy: {
type: 'string', label: 'Privacy policy has not been defined.'
},
time: { type: 'enum', label: 'Time Format', options: ['12 h', '24 h'] }
time: { type: 'enum_button', label: 'Time Format', options: ['12 h', '24 h'] }
}
}
}
Expand Down