1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-19 13:19:43 +02:00

refactored license/smtp/genral settings UI

This commit is contained in:
Harvey Kandola 2017-11-28 12:27:50 +00:00
parent fd6b4c051b
commit 75aa00beca
19 changed files with 221 additions and 117 deletions

View file

@ -9,9 +9,8 @@
//
// https://documize.com
import { empty, and } from '@ember/object/computed';
import $ from 'jquery';
import { empty, and } from '@ember/object/computed';
import Component from '@ember/component';
import { isEmpty } from '@ember/utils';
import { set } from '@ember/object';

View file

@ -0,0 +1,25 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import { empty } from '@ember/object/computed';
import Component from '@ember/component';
export default Component.extend({
LicenseError: empty('model.license'),
actions: {
saveLicense() {
this.get('saveLicense')().then(() => {
window.location.reload();
});
}
}
});

View file

@ -10,7 +10,6 @@
// https://documize.com
import { empty } from '@ember/object/computed';
import Component from '@ember/component';
export default Component.extend({
@ -45,12 +44,6 @@ export default Component.extend({
this.get('saveSMTP')().then(() => {
});
},
saveLicense() {
this.get('saveLicense')().then(() => {
window.location.reload();
});
}
}
});

View file

@ -1,9 +1,11 @@
{{#if folders}}
<div class="row">
<div class="col">
<div class="view-customize">
<h1 class="admin-heading">{{folders.length}} shared {{label}}</h1>
</div>
</div>
</div>
<div class="view-customize">
<div class="space-list">
{{#each folders as |folder|}}

View file

@ -10,17 +10,14 @@
// https://documize.com
import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
import NotifierMixin from "../../../mixins/notifier";
export default Controller.extend(NotifierMixin, {
export default Controller.extend({
orgService: service('organization'),
actions: {
save() {
return this.get('orgService').save(this.model.general).then(() => {
this.showNotification('Saved');
});
}
}

View file

@ -1 +0,0 @@
{{customize/global-settings model=model saveSMTP=(action 'saveSMTP') saveLicense=(action 'saveLicense')}}

View file

@ -10,26 +10,15 @@
// https://documize.com
import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
import NotifierMixin from "../../../mixins/notifier";
export default Controller.extend(NotifierMixin, {
export default Controller.extend({
global: service(),
actions: {
saveSMTP() {
if(this.get('session.isGlobalAdmin')) {
return this.get('global').saveSMTPConfig(this.model.smtp).then(() => {
this.showNotification('Saved');
});
}
},
saveLicense() {
if(this.get('session.isGlobalAdmin')) {
return this.get('global').saveLicense(this.model.license).then(() => {
this.showNotification('Saved');
});
}
}

View file

@ -28,7 +28,6 @@ export default Route.extend(AuthenticatedRouteMixin, {
model() {
return RSVP.hash({
smtp: this.get('global').getSMTPConfig(),
license: this.get('global').getLicense()
});
},

View file

@ -0,0 +1 @@
{{customize/license-key model=model saveLicense=(action 'saveLicense')}}

View file

@ -0,0 +1,26 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
export default Controller.extend({
global: service(),
actions: {
saveSMTP() {
if(this.get('session.isGlobalAdmin')) {
return this.get('global').saveSMTPConfig(this.model.smtp).then(() => {
});
}
}
}
});

View file

@ -0,0 +1,37 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import RSVP from 'rsvp';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
export default Route.extend(AuthenticatedRouteMixin, {
appMeta: service(),
session: service(),
global: service(),
beforeModel() {
if (!this.get("session.isGlobalAdmin")) {
this.transitionTo('auth.login');
}
},
model() {
return RSVP.hash({
smtp: this.get('global').getSMTPConfig()
});
},
activate() {
document.title = "SMTP | Documize";
}
});

View file

@ -0,0 +1 @@
{{customize/smtp-settings model=model saveSMTP=(action 'saveSMTP')}}

View file

@ -16,7 +16,8 @@
{{#link-to 'customize.folders' activeClass='selected' class="tab" tagName="li"}}Spaces{{/link-to}}
{{#link-to 'customize.users' activeClass='selected' class="tab" tagName="li"}}Users{{/link-to}}
{{#if session.isGlobalAdmin}}
{{#link-to 'customize.global' activeClass='selected' class="tab" tagName="li"}}Global{{/link-to}}
{{#link-to 'customize.smtp' activeClass='selected' class="tab" tagName="li"}}SMTP{{/link-to}}
{{#link-to 'customize.license' activeClass='selected' class="tab" tagName="li"}}License{{/link-to}}
{{#link-to 'customize.auth' activeClass='selected' class="tab" tagName="li"}}Authentication{{/link-to}}
{{/if}}
</ul>

View file

@ -55,8 +55,11 @@ export default Router.map(function () {
this.route('folders', {
path: 'folders'
});
this.route('global', {
path: 'global'
this.route('smtp', {
path: 'smtp'
});
this.route('license', {
path: 'license'
});
this.route('auth', {
path: 'auth'

View file

@ -1,10 +1,15 @@
.view-customize {
.admin-heading {
> .admin-heading {
font-size: 1.5rem;
font-weight: bold;
color: $color-black;
}
> .sub-heading {
font-size: 1.1rem;
color: $color-gray;
}
> .user-admin {
margin: 30px 0;

View file

@ -1,34 +1,44 @@
<div class="row">
<div class="col">
<div class="view-customize">
<div class="general-admin">
<form>
<div class="form-header">
<div class="title">Instance Settings</div>
<div class="tip">Settings applicable to your Documize instance</div>
<h1 class="admin-heading">Instance Settings</h1>
<h2 class="sub-heading">Settings applicable to the Documize instance</h2>
</div>
<div class="input-control">
<label>Title</label>
<div class="tip">Describe the title of this Documize instance</div>
{{focus-input id="siteTitle" type="text" value=model.general.title class=(if hasTitleInputError 'error')}}
</div>
<div class="input-control">
<label>Message</label>
<div class="tip">Describe the purpose of this Documize instance</div>
{{textarea id="siteMessage" rows="3" value=model.general.message class=(if hasMessageInputError 'error')}}
</div>
<div class="input-control">
<label>Anonymous Access</label>
<div class="tip">Content within "Everyone" will be made available to anonymous users</div>
<div class="checkbox">
<div class="view-customize">
<form class="mt-5">
<div class="form-group row">
<label for="siteTitle" class="col-sm-2 col-form-label">Instance Name</label>
<div class="col-sm-10">
{{focus-input id="siteTitle" type="text" value=model.general.title class=(if hasTitleInputError 'form-control is-invalid' 'form-control')}}
<small class="form-text text-muted">Provide short title for this Documize instance</small>
</div>
</div>
<div class="form-group row">
<label id="siteMessage" class="col-sm-2 col-form-label">Message</label>
<div class="col-sm-10">
{{textarea id="siteMessage" rows="3" value=model.general.message class=(if hasMessageInputError 'form-control is-invalid' 'form-control')}}
<small class="form-text text-muted">Provide short message explaining this Documize instance</small>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Anonymous Access</label>
<div class="col-sm-10">
<input type="checkbox" id="allowAnonymousAccess" checked={{model.general.allowAnonymousAccess}} />
<label for="allowAnonymousAccess">Allow anyone to access this Documize instance</label>
<small class="form-text text-muted">Content within "Everyone" will be made available to anonymous users</small>
</div>
</div>
<div class="input-control">
<label>Conversion Service URL</label>
<div class="tip">Endpoint for handling import/export (e.g. https://api.documize.com, <a href="https://docs.documize.com/s/WNEpptWJ9AABRnha/administration-guides/d/WO0pt_MXigAB6sJ7/general-options">view documentation</a>)</div>
{{focus-input id="conversionEndpoint" type="text" value=model.general.conversionEndpoint class=(if hasConversionEndpointInputError 'error')}}
<div class="form-group row">
<label for="conversionEndpoint" class="col-sm-2 col-form-label">Conversion Service URL</label>
<div class="col-sm-10">
{{input id="conversionEndpoint" type="text" value=model.general.conversionEndpoint class=(if hasConversionEndpointInputError 'form-control is-invalid' 'form-control')}}
<small class="form-text text-muted">
Endpoint for handling import/export (e.g. https://api.documize.com, <a href="https://docs.documize.com/s/WNEpptWJ9AABRnha/administration-guides/d/WO0pt_MXigAB6sJ7/general-options">view documentation</a>)
</small>
</div>
<div class="regular-button button-blue" {{ action 'save' }}>save</div>
</div>
<div class="btn btn-success mt-4" {{action 'save'}}>Save</div>
</form>
</div>
</div>

View file

@ -1,53 +0,0 @@
<div class="page-customize">
<div class="smtp-admin">
<form>
<div class="form-header">
<div class="title">Mail Server Settings</div>
<div class="tip">Used for sending email notifications</div>
</div>
<div class="input-control">
<label>SMTP Host</label>
<div class="tip">e.g. my.host.com</div>
{{focus-input id="smtp-host" type="text" value=model.smtp.host class=(if SMTPHostEmptyError 'error')}}
</div>
<div class="input-control">
<label>SMTP Port</label>
<div class="tip">e.g. 587</div>
{{input id="smtp-port" type="text" value=model.smtp.port class=(if SMTPPortEmptyError 'error')}}
</div>
<div class="input-control">
<label>SMTP Sender</label>
<div class="tip">e.g. noreply@documize.com</div>
{{input id="smtp-sender" type="text" value=model.smtp.sender class=(if SMTPSenderEmptyError 'error')}}
</div>
<div class="input-control">
<label>SMTP User ID</label>
<div class="tip">Your credentials</div>
{{input id="smtp-userid" type="text" value=model.smtp.userid class=(if SMTPUserIdEmptyError 'error')}}
</div>
<div class="input-control">
<label>SMTP Password</label>
<div class="tip">Your credentials</div>
{{input id="smtp-password" type="text" value=model.smtp.password class=(if SMTPPasswordEmptyError 'error')}}
</div>
<div class="regular-button button-blue" {{ action 'saveSMTP' }}>save</div>
</form>
</div>
<div class="margin-top-50" />
<div class="license-admin">
<form class="form-bordered">
<div class="form-header">
<div class="title">Optional Edition License</div>
<div class="tip">Only applies to Enterprise Edition</div>
</div>
<div class="input-control">
<label>License</label>
<div class="tip">XML format accepted</div>
{{textarea value=model.license rows="15"}}
</div>
<div class="regular-button button-blue" {{ action 'saveLicense' }}>save</div>
</form>
</div>
</div>

View file

@ -0,0 +1,21 @@
<div class="row">
<div class="col">
<div class="view-customize">
<h1 class="admin-heading">Product License</h1>
<h2 class="sub-heading">Optional Enterprise Edition license</h2>
</div>
</div>
</div>
<div class="view-customize">
<form class="mt-5">
<div class="form-group row">
<label for="smtp-host" class="col-sm-2 col-form-label">License Key</label>
<div class="col-sm-10">
{{textarea value=model.license rows="15" class=(if LicenseError 'form-control is-invalid' 'form-control')}}
<small class="form-text text-muted">XML format</small>
</div>
</div>
<div class="btn btn-success mt-4" {{action 'saveLicense'}}>Save</div>
</form>
</div>

View file

@ -0,0 +1,49 @@
<div class="row">
<div class="col">
<div class="view-customize">
<h1 class="admin-heading">SMTP Settings</h1>
<h2 class="sub-heading">Used for sending email notifications</h2>
</div>
</div>
</div>
<div class="view-customize">
<form class="mt-5">
<div class="form-group row">
<label for="smtp-host" class="col-sm-2 col-form-label">SMTP Host</label>
<div class="col-sm-10">
{{focus-input id="smtp-host" type="text" value=model.smtp.host class=(if SMTPHostEmptyError 'form-control is-invalid' 'form-control')}}
<small class="form-text text-muted">e.g. my.host.com</small>
</div>
</div>
<div class="form-group row">
<label for="smtp-port" class="col-sm-2 col-form-label">SMTP Port</label>
<div class="col-sm-10">
{{input id="smtp-port" type="text" value=model.smtp.port class=(if SMTPPortEmptyError 'form-control is-invalid' 'form-control')}}
<small class="form-text text-muted">e.g. 587</small>
</div>
</div>
<div class="form-group row">
<label for="smtp-sender" class="col-sm-2 col-form-label">SMTP Sender</label>
<div class="col-sm-10">
{{input id="smtp-sender" type="text" value=model.smtp.sender class=(if SMTPSenderEmptyError 'form-control is-invalid' 'form-control')}}
<small class="form-text text-muted">e.g. user@some-domain.com</small>
</div>
</div>
<div class="form-group row">
<label for="smtp-userid" class="col-sm-2 col-form-label">SMTP Username</label>
<div class="col-sm-10">
{{input id="smtp-userid" type="text" value=model.smtp.userid class=(if SMTPUserIdEmptyError 'form-control is-invalid' 'form-control')}}
<small class="form-text text-muted">e.g. Login username for SMTP server</small>
</div>
</div>
<div class="form-group row">
<label for="smtp-password" class="col-sm-2 col-form-label">SMTP Password</label>
<div class="col-sm-10">
{{input id="smtp-password" type="password" value=model.smtp.password class=(if SMTPPasswordEmptyError 'form-control is-invalid' 'form-control')}}
<small class="form-text text-muted">e.g. Login password for SMTP server</small>
</div>
</div>
<div class="btn btn-success mt-4" {{action 'saveSMTP'}}>Save</div>
</form>
</div>