Disable main address dropdown when lacking permissions

Instead of rendering it as a span with no label.
This commit is contained in:
Travis Ralston 2019-02-21 16:33:02 -07:00
parent 2990cf41e7
commit 58b9a0675e
2 changed files with 27 additions and 35 deletions

View file

@ -186,40 +186,33 @@ export default class AliasSettings extends React.Component {
const EditableItemList = sdk.getComponent("elements.EditableItemList"); const EditableItemList = sdk.getComponent("elements.EditableItemList");
const localDomain = MatrixClientPeg.get().getDomain(); const localDomain = MatrixClientPeg.get().getDomain();
let canonicalAliasSection; let found = false;
if (this.props.canSetCanonicalAlias) { const canonicalValue = this.state.canonicalAlias || "";
let found = false; const canonicalAliasSection = (
const canonicalValue = this.state.canonicalAlias || ""; <Field onChange={this.onCanonicalAliasChange} value={canonicalValue}
canonicalAliasSection = ( disabled={this.state.updatingCanonicalAlias || !this.props.canSetCanonicalAlias}
<Field onChange={this.onCanonicalAliasChange} value={canonicalValue} element='select' id='canonicalAlias' label={_t('Main address')}>
disabled={this.state.updatingCanonicalAlias} element='select' <option value="" key="unset">{ _t('not specified') }</option>
id='canonicalAlias' label={_t('Main address')}> {
<option value="" key="unset">{ _t('not specified') }</option> Object.keys(this.state.domainToAliases).map((domain, i) => {
{ return this.state.domainToAliases[domain].map((alias, j) => {
Object.keys(this.state.domainToAliases).map((domain, i) => { if (alias === this.state.canonicalAlias) found = true;
return this.state.domainToAliases[domain].map((alias, j) => { return (
if (alias === this.state.canonicalAlias) found = true; <option value={alias} key={i + "_" + j}>
return ( { alias }
<option value={alias} key={i + "_" + j}> </option>
{ alias } );
</option> });
); })
}); }
}) {
} found || !this.state.canonicalAlias ? '' :
{ <option value={ this.state.canonicalAlias } key='arbitrary'>
found || !this.state.canonicalAlias ? '' : { this.state.canonicalAlias }
<option value={ this.state.canonicalAlias } key='arbitrary'> </option>
{ this.state.canonicalAlias } }
</option> </Field>
} );
</Field>
);
} else {
canonicalAliasSection = (
<b>{ this.state.canonicalAlias || _t('not set') }</b>
);
}
let remoteAliasesSection; let remoteAliasesSection;
if (this.state.remoteDomains.length) { if (this.state.remoteDomains.length) {

View file

@ -814,7 +814,6 @@
"There was an error removing that alias. It may no longer exist or a temporary error occurred.": "There was an error removing that alias. It may no longer exist or a temporary error occurred.", "There was an error removing that alias. It may no longer exist or a temporary error occurred.": "There was an error removing that alias. It may no longer exist or a temporary error occurred.",
"Main address": "Main address", "Main address": "Main address",
"not specified": "not specified", "not specified": "not specified",
"not set": "not set",
"Remote addresses for this room:": "Remote addresses for this room:", "Remote addresses for this room:": "Remote addresses for this room:",
"Local addresses for this room:": "Local addresses for this room:", "Local addresses for this room:": "Local addresses for this room:",
"This room has no local addresses": "This room has no local addresses", "This room has no local addresses": "This room has no local addresses",