Skip to content

Commit c3a2717

Browse files
Merge pull request #126 from documize/nov-17-improvements
All new UX
2 parents e265323 + 34d7a97 commit c3a2717

File tree

878 files changed

+126919
-26576
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

878 files changed

+126919
-26576
lines changed

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Integrations for embedding SaaS data within documents.
4242

4343
## Latest version
4444

45-
v1.54.1
45+
v1.55.0
4646

4747
## OS support
4848

@@ -56,8 +56,8 @@ Documize runs on the following:
5656

5757
Documize is built with the following technologies:
5858

59-
- EmberJS (v2.15.0)
60-
- Go (v1.9.0)
59+
- EmberJS (v2.16.2)
60+
- Go (v1.9.2)
6161

6262
...and supports the following databases:
6363

build.sh

+5
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,8 @@ for arch in amd64 ; do
5050
done
5151

5252
echo "Finished."
53+
54+
55+
# CGO_ENABLED=0 GOOS=linux go build -a -ldflags="-s -w" -installsuffix cgo
56+
# go build -ldflags '-d -s -w' -a -tags netgo -installsuffix netgo test.go
57+
# ldd test

core/database/database_test.go

-18
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,6 @@ package database
1313

1414
import "testing"
1515

16-
//
17-
// // go test github.com/documize/community/core/database -run TestVersionExtract
18-
// func TestVersionExtract(t *testing.T) {
19-
// ts(t, "5", 5)
20-
// ts(t, "45-0ubuntu0-12.12.3", 45)
21-
// ts(t, "untu0-12.12.3", 0)
22-
// ts(t, "junk-string", 0)
23-
// ts(t, "somethingstring", 0)
24-
// }
25-
//
26-
// func ts(t *testing.T, in string, out int) {
27-
// got := ExtractVersionNumber(in)
28-
//
29-
// if got != out {
30-
// t.Errorf("version input `%s` got `%d` expected `%d`\n", in, got, out)
31-
// }
32-
// }
33-
3416
// go test github.com/documize/community/core/database -run TestGetVersion
3517
func TestGetVersion(t *testing.T) {
3618
ts2(t, "5.7.10", []int{5, 7, 10})

core/database/templates/db-error.html

+11-13
Original file line numberDiff line numberDiff line change
@@ -100,20 +100,18 @@
100100
</head>
101101

102102
<body>
103-
<div id="wrapper">
104-
<div class="container">
105-
<div class="logo">
106-
<img src="/assets/img/setup/logo.png" alt="Documize">
103+
<div class="container">
104+
<div class="logo">
105+
<img src="/assets/img/setup/logo.png" alt="Documize">
106+
</div>
107+
<div class="content clearfix">
108+
<div class="image">
109+
<img style="-webkit-user-select: none;" src="/assets/img/setup/error.png" width="184" height="159" alt="Database error">
107110
</div>
108-
<div class="content clearfix">
109-
<div class="image">
110-
<img style="-webkit-user-select: none;" src="/assets/img/setup/error.png" width="184" height="159" alt="Database error">
111-
</div>
112-
<div class="text">
113-
<h1>Database Error</h1>
114-
<p>There seems to be a problem with the Documize database: <strong>{{.DBname}}</strong></p>
115-
<p><em>{{.Issue}}</em></p>
116-
</div>
111+
<div class="text">
112+
<h1>Database Error</h1>
113+
<p>There seems to be a problem with the Documize database: <strong>{{.DBname}}</strong></p>
114+
<p><em>{{.Issue}}</em></p>
117115
</div>
118116
</div>
119117
</div>

domain/page/endpoint.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ func (h *Handler) GetPage(w http.ResponseWriter, r *http.Request) {
191191

192192
// GetPages gets all pages for document.
193193
func (h *Handler) GetPages(w http.ResponseWriter, r *http.Request) {
194-
method := "page.GetPage"
194+
method := "page.GetPages"
195195
ctx := domain.GetRequestContext(r)
196196

197197
documentID := request.Param(r, "documentID")
@@ -219,6 +219,8 @@ func (h *Handler) GetPages(w http.ResponseWriter, r *http.Request) {
219219
pages = []page.Page{}
220220
}
221221

222+
page.Numberize(pages)
223+
222224
if err != nil {
223225
response.WriteServerError(w, method, err)
224226
h.Runtime.Log.Error(method, err)
@@ -337,7 +339,7 @@ func (h *Handler) DeletePages(w http.ResponseWriter, r *http.Request) {
337339
return
338340
}
339341

340-
model := new([]page.PageLevelRequest)
342+
model := new([]page.LevelRequest)
341343
err = json.Unmarshal(body, &model)
342344
if err != nil {
343345
response.WriteBadRequestError(w, method, "JSON marshal")
@@ -589,7 +591,7 @@ func (h *Handler) ChangePageSequence(w http.ResponseWriter, r *http.Request) {
589591
return
590592
}
591593

592-
model := new([]page.PageSequenceRequest)
594+
model := new([]page.SequenceRequest)
593595
err = json.Unmarshal(body, &model)
594596
if err != nil {
595597
response.WriteBadRequestError(w, method, err.Error())
@@ -650,7 +652,7 @@ func (h *Handler) ChangePageLevel(w http.ResponseWriter, r *http.Request) {
650652
return
651653
}
652654

653-
model := new([]page.PageLevelRequest)
655+
model := new([]page.LevelRequest)
654656
err = json.Unmarshal(body, &model)
655657
if err != nil {
656658
response.WriteBadRequestError(w, method, err.Error())

edition/community.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ func main() {
4141
// product details
4242
rt.Product = env.ProdInfo{}
4343
rt.Product.Major = "1"
44-
rt.Product.Minor = "54"
45-
rt.Product.Patch = "1"
44+
rt.Product.Minor = "55"
45+
rt.Product.Patch = "0"
4646
rt.Product.Version = fmt.Sprintf("%s.%s.%s", rt.Product.Major, rt.Product.Minor, rt.Product.Patch)
4747
rt.Product.Edition = "Community"
4848
rt.Product.Title = fmt.Sprintf("%s Edition", rt.Product.Edition)

embed/bindata_assetfs.go

+2,888-1,356
Large diffs are not rendered by default.

gui/.eslintrc.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,17 @@ module.exports = {
1919
"_": true,
2020
"tinymce": true,
2121
"CodeMirror": true,
22-
"Drop": true,
2322
"Mousetrap": true,
2423
"Sortable": true,
2524
"moment": true,
2625
"Dropzone": true,
27-
"Tooltip": true,
2826
"server": true,
2927
"authenticateUser": true,
3028
"stubAudit": true,
3129
"stubUserNotification": true,
3230
"userLogin": true,
3331
"Keycloak": true,
34-
"slug": true
32+
"slug": true,
33+
"interact": true
3534
}
3635
};

gui/app/app.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
//
1010
// https://documize.com
1111

12-
import Ember from 'ember';
12+
import Application from '@ember/application';
1313
import Resolver from './resolver';
1414
import loadInitializers from 'ember-load-initializers';
1515
import config from './config/environment';
@@ -23,7 +23,7 @@ let App;
2323
// console.log(error);
2424
// });
2525

26-
App = Ember.Application.extend({
26+
App = Application.extend({
2727
modulePrefix: config.modulePrefix,
2828
podModulePrefix: config.podModulePrefix,
2929
Resolver

gui/app/authenticators/anonymous.js

+2-5
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,9 @@
99
//
1010
// https://documize.com
1111

12-
import Ember from 'ember';
13-
import Base from 'ember-simple-auth/authenticators/base';
12+
import { resolve } from 'rsvp';
1413

15-
const {
16-
RSVP: { resolve }
17-
} = Ember;
14+
import Base from 'ember-simple-auth/authenticators/base';
1815

1916
export default Base.extend({
2017
restore(data) {

gui/app/authenticators/documize.js

+6-9
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,14 @@
99
//
1010
// https://documize.com
1111

12-
import Ember from 'ember';
12+
import { isPresent } from '@ember/utils';
13+
14+
import { reject, resolve } from 'rsvp';
15+
import { inject as service } from '@ember/service';
1316
import Base from 'ember-simple-auth/authenticators/base';
1417
import encodingUtil from '../utils/encoding';
1518
import netUtil from '../utils/net';
1619

17-
const {
18-
isPresent,
19-
RSVP: { resolve, reject },
20-
inject: { service }
21-
} = Ember;
22-
2320
export default Base.extend({
2421
ajax: service(),
2522
appMeta: service(),
@@ -42,14 +39,14 @@ export default Base.extend({
4239
let { password, email } = credentials;
4340

4441
if (!isPresent(password) || !isPresent(email)) {
45-
return Ember.RSVP.reject("invalid");
42+
return reject("invalid");
4643
}
4744

4845
encoded = encodingUtil.Base64.encode(`${domain}:${email}:${password}`);
4946
} else if (typeof credentials === 'string') {
5047
encoded = credentials;
5148
} else {
52-
return Ember.RSVP.reject("invalid");
49+
return reject("invalid");
5350
}
5451

5552
let headers = { 'Authorization': 'Basic ' + encoded };

gui/app/authenticators/keycloak.js

+5-8
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,13 @@
99
//
1010
// https://documize.com
1111

12-
import Ember from 'ember';
12+
import { isPresent } from '@ember/utils';
13+
14+
import { reject, resolve } from 'rsvp';
15+
import { inject as service } from '@ember/service';
1316
import Base from 'ember-simple-auth/authenticators/base';
1417
import netUtil from '../utils/net';
1518

16-
const {
17-
isPresent,
18-
RSVP: { resolve, reject },
19-
inject: { service }
20-
} = Ember;
21-
2219
export default Base.extend({
2320
ajax: service(),
2421
appMeta: service(),
@@ -38,7 +35,7 @@ export default Base.extend({
3835
data.domain = netUtil.getSubdomain();
3936

4037
if (!isPresent(data.token) || !isPresent(data.email)) {
41-
return Ember.RSVP.reject("invalid");
38+
return reject("invalid");
4239
}
4340

4441
return this.get('ajax').post('public/authenticate/keycloak', {

gui/app/components/customize/auth-settings.js

+21-25
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,25 @@
99
//
1010
// https://documize.com
1111

12-
import Ember from 'ember';
12+
import { equal, empty } from '@ember/object/computed';
13+
import { set } from '@ember/object';
14+
import { copy } from '@ember/object/internals';
15+
import { inject as service } from '@ember/service';
16+
import Component from '@ember/component';
1317
import constants from '../../utils/constants';
1418
import encoding from '../../utils/encoding';
15-
import NotifierMixin from "../../mixins/notifier";
16-
17-
const {
18-
computed
19-
} = Ember;
20-
21-
export default Ember.Component.extend(NotifierMixin, {
22-
appMeta: Ember.inject.service(),
23-
isDocumizeProvider: computed.equal('authProvider', constants.AuthProvider.Documize),
24-
isKeycloakProvider: computed.equal('authProvider', constants.AuthProvider.Keycloak),
25-
KeycloakUrlError: computed.empty('keycloakConfig.url'),
26-
KeycloakRealmError: computed.empty('keycloakConfig.realm'),
27-
KeycloakClientIdError: computed.empty('keycloakConfig.clientId'),
28-
KeycloakPublicKeyError: computed.empty('keycloakConfig.publicKey'),
29-
KeycloakAdminUserError: computed.empty('keycloakConfig.adminUser'),
30-
KeycloakAdminPasswordError: computed.empty('keycloakConfig.adminPassword'),
31-
keycloakConfig: {
19+
20+
export default Component.extend({
21+
appMeta: service(),
22+
isDocumizeProvider: equal('authProvider', constants.AuthProvider.Documize),
23+
isKeycloakProvider: equal('authProvider', constants.AuthProvider.Keycloak),
24+
KeycloakUrlError: empty('keycloakConfig.url'),
25+
KeycloakRealmError: empty('keycloakConfig.realm'),
26+
KeycloakClientIdError: empty('keycloakConfig.clientId'),
27+
KeycloakPublicKeyError: empty('keycloakConfig.publicKey'),
28+
KeycloakAdminUserError: empty('keycloakConfig.adminUser'),
29+
KeycloakAdminPasswordError: empty('keycloakConfig.adminPassword'),
30+
keycloakConfig: {
3231
url: '',
3332
realm: '',
3433
clientId: '',
@@ -109,7 +108,7 @@ export default Ember.Component.extend(NotifierMixin, {
109108
return;
110109
}
111110

112-
config = Ember.copy(this.get('keycloakConfig'));
111+
config = copy(this.get('keycloakConfig'));
113112
config.url = config.url.trim();
114113
config.realm = config.realm.trim();
115114
config.clientId = config.clientId.trim();
@@ -124,10 +123,10 @@ export default Ember.Component.extend(NotifierMixin, {
124123
config.url = config.url.substring(0, config.url.length-1);
125124
}
126125

127-
Ember.set(config, 'publicKey', encoding.Base64.encode(this.get('keycloakConfig.publicKey')));
126+
set(config, 'publicKey', encoding.Base64.encode(this.get('keycloakConfig.publicKey')));
128127
break;
129128
}
130-
129+
131130
let data = { authProvider: provider, authConfig: JSON.stringify(config) };
132131

133132
this.get('onSave')(data).then(() => {
@@ -137,18 +136,15 @@ export default Ember.Component.extend(NotifierMixin, {
137136
this.showNotification(response.message);
138137
data.authProvider = constants.AuthProvider.Documize;
139138
this.get('onSave')(data).then(() => {
140-
this.showNotification('Reverted back to Documize');
141139
});
142140
} else {
143141
if (data.authProvider === this.get('appMeta.authProvider')) {
144-
this.showNotification(response.message);
142+
// this.showNotification(response.message);
145143
} else {
146144
this.get('onChange')(data);
147145
}
148146
}
149147
});
150-
} else {
151-
this.showNotification('Saved');
152148
}
153149
});
154150
}

gui/app/components/customize/general-settings.js

+14-16
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,19 @@
99
//
1010
// https://documize.com
1111

12-
import Ember from 'ember';
13-
14-
const {
15-
isEmpty,
16-
computed,
17-
set
18-
} = Ember;
19-
20-
export default Ember.Component.extend({
21-
titleEmpty: computed.empty('model.general.title'),
22-
messageEmpty: computed.empty('model.general.message'),
23-
conversionEndpointEmpty: computed.empty('model.general.conversionEndpoint'),
24-
hasTitleInputError: computed.and('titleEmpty', 'titleError'),
25-
hasMessageInputError: computed.and('messageEmpty', 'messageError'),
26-
hasConversionEndpointInputError: computed.and('conversionEndpointEmpty', 'conversionEndpointError'),
12+
import $ from 'jquery';
13+
import { empty, and } from '@ember/object/computed';
14+
import Component from '@ember/component';
15+
import { isEmpty } from '@ember/utils';
16+
import { set } from '@ember/object';
17+
18+
export default Component.extend({
19+
titleEmpty: empty('model.general.title'),
20+
messageEmpty: empty('model.general.message'),
21+
conversionEndpointEmpty: empty('model.general.conversionEndpoint'),
22+
hasTitleInputError: and('titleEmpty', 'titleError'),
23+
hasMessageInputError: and('messageEmpty', 'messageError'),
24+
hasConversionEndpointInputError: and('conversionEndpointEmpty', 'conversionEndpointError'),
2725

2826
actions: {
2927
save() {
@@ -47,7 +45,7 @@ export default Ember.Component.extend({
4745
this.set('model.general.conversionEndpoint', e.substring(0, e.length-1));
4846
}
4947

50-
this.model.general.set('allowAnonymousAccess', Ember.$("#allowAnonymousAccess").prop('checked'));
48+
this.model.general.set('allowAnonymousAccess', $("#allowAnonymousAccess").prop('checked'));
5149

5250
this.get('save')().then(() => {
5351
set(this, 'titleError', false);

0 commit comments

Comments
 (0)