Преглед изворни кода

remaining tasks are to adjust datetime format create method and update conflict revision

yuto-oweseek пре 4 година
родитељ
комит
8ad2c0a596

+ 4 - 0
packages/app/src/client/services/PageContainer.js

@@ -88,8 +88,10 @@ export default class PageContainer extends Container {
       // latest(on remote) information
       remoteRevisionId: revisionId,
       remoteRevisionBody: null,
+      remoteRevisionUpdateAt: null,
       revisionIdHackmdSynced: mainContent.getAttribute('data-page-revision-id-hackmd-synced') || null,
       lastUpdateUsername: mainContent.getAttribute('data-page-last-update-username') || null,
+      lastUpdateUserImagePath:  mainContent.getAttribute('data-page-updated-at') || null,
       deleteUsername: mainContent.getAttribute('data-page-delete-username') || null,
       pageIdOnHackmd: mainContent.getAttribute('data-page-id-on-hackmd') || null,
       hasDraftOnHackmd: !!mainContent.getAttribute('data-page-has-draft-on-hackmd'),
@@ -365,8 +367,10 @@ export default class PageContainer extends Container {
     const newState = {
       remoteRevisionId: s2cMessagePageUpdated.revisionId,
       remoteRevisionBody: s2cMessagePageUpdated.revisionBody,
+      remoteRevisionUpdateAt: s2cMessagePageUpdated.revisionUpdateAt,
       revisionIdHackmdSynced: s2cMessagePageUpdated.revisionIdHackmdSynced,
       lastUpdateUsername: s2cMessagePageUpdated.lastUpdateUsername,
+      lastUpdateUserImagePath: s2cMessagePageUpdated.lastUpdateUserImagePath,
     };
 
     if (s2cMessagePageUpdated.hasDraftOnHackmd != null) {

+ 18 - 10
packages/app/src/components/PageStatusAlert.jsx

@@ -66,6 +66,13 @@ class PageStatusAlert extends React.Component {
         <button
           type="button"
           onClick={() => {
+
+            const pageEditor = this.props.appContainer.getComponentInstance('PageEditor');
+            let markdownOnEdit = '';
+            // when page mode is not view
+            if (pageEditor != null) {
+              markdownOnEdit = pageEditor.getMarkdown();
+            }
             // create function about following lines
             // when isconflictingonsave no change
             pageContainer.setState({
@@ -73,24 +80,24 @@ class PageStatusAlert extends React.Component {
               revisionsOnConflict: {
                 request: {
                   revisionId: '',
-                  revisionBody: 'markdownOnEdit',
+                  revisionBody: markdownOnEdit,
                   createdAt: (new Date()).toString(),
-                  userName: 'request.user', // required
-                  userImgPath: 'request user img', // required
+                  userName: this.props.appContainer.currentUser.username, // required
+                  userImgPath: this.props.appContainer.currentUser.imageUrlCached, // required
                 },
                 origin: {
-                  revisionId: pageContainer.revisionId,
+                  revisionId: pageContainer.state.revisionId,
                   revisionBody: pageContainer.state.markdown,
                   createdAt: pageContainer.state.updatedAt.toString(),
-                  userName: pageContainer.creator.name,
-                  userImgPath: pageContainer.creator.createdAt,
+                  userName: pageContainer.state.creator.username,
+                  userImgPath: pageContainer.state.creator.imageUrlCached,
                 },
                 latest: {
-                  revisionId: pageContainer.remoteRevisionId,
+                  revisionId: pageContainer.state.remoteRevisionId,
                   revisionBody: pageContainer.state.remoteRevisionBody,
-                  createdAt: (new Date()).toString(), // retrieve from page container
+                  createdAt: pageContainer.state.remoteRevisionUpdateAt.toString(), // retrieve from page container
                   userName: pageContainer.state.lastUpdateUsername,
-                  userImgPath: 'latest user img path', // retrieve from page container
+                  userImgPath: pageContainer.state.lastUpdateUserImagePath, // retrieve from page container
                 },
               },
             });
@@ -142,7 +149,8 @@ class PageStatusAlert extends React.Component {
       revisionId, revisionIdHackmdSynced, remoteRevisionId, hasDraftOnHackmd, isHackmdDraftUpdatingInRealtime, isConflictingOnSave,
     } = this.props.pageContainer.state;
 
-    console.log('pageContainer is', this.props.pageContainer);
+    console.log('pageContaineris', this.props.pageContainer);
+    console.log('appContaineris', this.props.appContainer);
 
     const pageEditor = this.props.appContainer.getComponentInstance('PageEditor');
     let markdownOnEdit = '';

+ 5 - 1
packages/app/src/server/models/vo/s2c-message.js

@@ -10,19 +10,23 @@ class S2cMessagePageUpdated {
     const serializedPage = serializePageSecurely(page);
 
     console.log('pageis', page);
+    console.log('serializedPageis', serializedPage);
+    console.log('useris', user);
 
     const {
-      _id, revision, revisionHackmdSynced, hasDraftOnHackmd,
+      _id, revision, updatedAt, revisionHackmdSynced, hasDraftOnHackmd,
     } = serializedPage;
 
     this.pageId = _id;
     this.revisionId = revision;
     this.revisionBody = page.revision.body;
+    this.revisionUpdateAt = updatedAt;
     this.revisionIdHackmdSynced = revisionHackmdSynced;
     this.hasDraftOnHackmd = hasDraftOnHackmd;
 
     if (user != null) {
       this.lastUpdateUsername = user.name;
+      this.lastUpdateUserImagePath = user.imageUrlCached;
     }
   }