Skip to content

Commit d4603ee

Browse files
committed
save mode into db, user doesn't need to set every time
1 parent a4f78bc commit d4603ee

File tree

4 files changed

+35
-15
lines changed

4 files changed

+35
-15
lines changed

imports/ui/Editor.js

+26-12
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export class Editor extends Component {
4747
availableUsersForPermission: [],
4848
userIdsWithPermission: [],
4949
firstTimeLoad: true,
50-
mode: "javascript",
50+
mode: "",
5151
defaultValue: ""
5252
}
5353

@@ -80,6 +80,21 @@ export class Editor extends Component {
8080
});
8181
}
8282

83+
// Find the document on this editor page for updating title
84+
Meteor.call('findDocument', id, (error, result) => {
85+
if(error) {
86+
console.log("Can't find Document");
87+
} else {
88+
console.log("result.mode", result.mode)
89+
this.setState({
90+
title: result.title,
91+
documentCreatedBy: result.createdBy,
92+
mode: (result.mode != "") ? result.mode : "javascript" //default mode is JS
93+
})
94+
console.log("current mode", this.state.mode)
95+
}
96+
});
97+
8398
// Get all users so that we can give permission
8499
Meteor.call('getAllUsers', (error, result) => {
85100
if(error) {
@@ -112,15 +127,6 @@ export class Editor extends Component {
112127
}
113128
});
114129

115-
// Find the document on this editor page for updating title
116-
Meteor.call('findDocument', id, (error, result) => {
117-
if(error) {
118-
console.log("Can't find Document");
119-
} else {
120-
this.setState({title: result.title, documentCreatedBy: result.createdBy})
121-
}
122-
});
123-
124130
}
125131

126132
// onChange Event of input, setState of title
@@ -238,14 +244,22 @@ export class Editor extends Component {
238244
}
239245

240246
setMode(e) {
241-
247+
const {id, mode} = this.state;
242248
if(this.state.mode = 'openedge') {
243249
this.refs.aceEditor.editor.getSession().setMode(customMode);
244250
}
245251

246252
this.setState({
247253
mode: e.target.value
248254
})
255+
256+
Meteor.call('updateMode', id, e.target.value, (error) => {
257+
if(error) {
258+
console.log("Fail to update the document mode", error.reason);
259+
} else {
260+
console.log("Mode updated successfully");
261+
}
262+
});
249263
}
250264

251265
onLoad(editor) {
@@ -298,7 +312,7 @@ export class Editor extends Component {
298312

299313
this.lastTimeInsert = DocumentContents.findOne({ docId: id }, { sort: { createdAt: -1, limit: 1 } }).createdAt;
300314
this.prevValues = editor.getValue().split('\n');
301-
315+
302316
this.setState({defaultValue: editor.getValue()})
303317
}
304318
}

imports/ui/LandingPage.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ export class LandingPage extends Component {
8282
Documents.insert({
8383
title: "Untitled Document",
8484
createdAt: new Date(), // current time
85-
createdBy: currentUser
85+
createdBy: currentUser,
86+
mode: ""
8687
}, function (error, results) {
8788
if (error) {
8889
console.log("Documents Insert Failed: ", error.reason);

imports/ui/NavBar.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,8 @@ class NavBar extends React.Component {
147147
Documents.insert({
148148
title: "Untitled Document",
149149
createdAt: new Date(), // current time
150-
createdBy: currentUser
150+
createdBy: currentUser,
151+
mode: ""
151152
}, function (error, results) {
152153
if (error) {
153154
console.log("Documents Insert Failed: ", error.reason);
@@ -167,7 +168,7 @@ class NavBar extends React.Component {
167168
}
168169
});
169170
}
170-
171+
171172
signOut() {
172173
// event.preventDefault();
173174
console.log("--sign out--")

server/main.js

+4
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ Meteor.startup(() => {
4646
Documents.update({ _id: docId }, {$set: {title: docTitle}});
4747
},
4848

49+
updateMode(docId, docMode) {
50+
Documents.update({ _id: docId }, {$set: {mode: docMode}});
51+
},
52+
4953
upsertUserDocument(userId, docId, documentCreatedBy) {
5054
UserDocuments.upsert({
5155
// Selector

0 commit comments

Comments
 (0)