Просмотр исходного кода

Merge pull request #3462 from weseek/feat/add-message-in-case-of-no-diff

Feat/add message in case of no diff
Yuki Takei 5 лет назад
Родитель
Сommit
3404880eff

+ 13 - 3
src/client/js/components/PageHistory/PageRevisionTable.jsx

@@ -18,7 +18,7 @@ class PageRevisionTable extends React.Component {
    */
   renderRow(revision, previousRevision, hasDiff, isContiguousNodiff) {
     const { revisionComparerContainer, t } = this.props;
-    const { latestRevision } = this.props.pageHistoryContainer.state;
+    const { latestRevision, oldestRevision } = this.props.pageHistoryContainer.state;
     const revisionId = revision._id;
     const revisionDiffOpened = this.props.diffOpened[revisionId] || false;
     const { sourceRevision, targetRevision } = revisionComparerContainer.state;
@@ -48,10 +48,19 @@ class PageRevisionTable extends React.Component {
             {hasDiff && (
               <div className="ml-md-3 mt-auto">
                 <div className="btn-group">
-                  <button type="button" className="btn btn-outline-secondary btn-sm" onClick={handleCompareLatestRevisionButton}>
+                  <button
+                    type="button"
+                    className="btn btn-outline-secondary btn-sm"
+                    onClick={handleCompareLatestRevisionButton}
+                  >
                     {t('page_history.compare_latest')}
                   </button>
-                  <button type="button" className="btn btn-outline-secondary btn-sm" onClick={handleComparePreviousRevisionButton}>
+                  <button
+                    type="button"
+                    className="btn btn-outline-secondary btn-sm"
+                    onClick={handleComparePreviousRevisionButton}
+                    disabled={revision === oldestRevision}
+                  >
                     {t('page_history.compare_previous')}
                   </button>
                 </div>
@@ -117,6 +126,7 @@ class PageRevisionTable extends React.Component {
         previousRevision = revision; // if it is the first revision, show full text as diff text
       }
 
+
       const hasDiff = revision.hasDiffToPrev !== false; // set 'true' if undefined for backward compatibility
       const isContiguousNodiff = !hasDiff && !hasDiffPrev;
 

+ 5 - 2
src/client/js/components/RevisionComparer/RevisionComparer.jsx

@@ -56,7 +56,10 @@ const RevisionComparer = (props) => {
   };
 
   const { sourceRevision, targetRevision } = revisionComparerContainer.state;
-  const showDiff = (sourceRevision && targetRevision);
+
+  if (sourceRevision == null || targetRevision == null) {
+    return null;
+  }
 
   return (
     <div className="revision-compare">
@@ -86,7 +89,7 @@ const RevisionComparer = (props) => {
       </div>
 
       <div className="revision-compare-outer">
-        { showDiff && (
+        {sourceRevision._id === targetRevision._id ? t('No diff') : (
           <RevisionDiff
             revisionDiffOpened
             previousRevision={sourceRevision}

+ 5 - 0
src/client/js/services/PageHistoryContainer.js

@@ -25,6 +25,7 @@ export default class PageHistoryContainer extends Container {
       // set dummy rivisions for using suspense
       revisions: this.dummyRevisions,
       latestRevision: this.dummyRevisions,
+      oldestRevision: this.dummyRevisions,
       diffOpened: {},
 
       totalPages: 0,
@@ -100,6 +101,10 @@ export default class PageHistoryContainer extends Container {
       this.setState({ latestRevision: rev[0] });
     }
 
+    if (selectedPage === res.data.totalPages) {
+      this.setState({ oldestRevision: rev[lastId] });
+    }
+
     // load 0, and last default
     if (rev[0]) {
       this.fetchPageRevisionBody(rev[0]);