Procházet zdrojové kódy

hide RevisionDiff component if revisions has no diff

Yuki Takei před 7 roky
rodič
revize
1a8fb59aa7

+ 19 - 6
src/client/js/components/PageHistory/PageRevisionList.jsx

@@ -6,24 +6,37 @@ import RevisionDiff from './RevisionDiff';
 
 
 export default class PageRevisionList extends React.Component {
 export default class PageRevisionList extends React.Component {
 
 
+  constructor(props) {
+    super(props);
+
+    this.state = {
+      showNodiffRevisions: false,
+    };
+  }
+
   renderRow(revision, previousRevision) {
   renderRow(revision, previousRevision) {
     const revisionId = revision._id;
     const revisionId = revision._id;
     const revisionDiffOpened = this.props.diffOpened[revisionId] || false;
     const revisionDiffOpened = this.props.diffOpened[revisionId] || false;
 
 
+    const hasDiff = revision.hasDiffToPrev !== false; // set 'true' if undefined for backward compatibility
+
     return (
     return (
       <div className="revision-history-outer" key={`revision-history-${revisionId}`}>
       <div className="revision-history-outer" key={`revision-history-${revisionId}`}>
         <Revision
         <Revision
           revision={revision}
           revision={revision}
           revisionDiffOpened={revisionDiffOpened}
           revisionDiffOpened={revisionDiffOpened}
+          hasDiff={hasDiff}
           onDiffOpenClicked={this.props.onDiffOpenClicked}
           onDiffOpenClicked={this.props.onDiffOpenClicked}
           key={`revision-history-rev-${revisionId}`}
           key={`revision-history-rev-${revisionId}`}
           />
           />
-        <RevisionDiff
-          revisionDiffOpened={revisionDiffOpened}
-          currentRevision={revision}
-          previousRevision={previousRevision}
-          key={`revision-deff-${revisionId}`}
-        />
+        { hasDiff &&
+          <RevisionDiff
+            revisionDiffOpened={revisionDiffOpened}
+            currentRevision={revision}
+            previousRevision={previousRevision}
+            key={`revision-deff-${revisionId}`}
+          />
+        }
       </div>
       </div>
     );
     );
   }
   }

+ 11 - 3
src/client/js/components/PageHistory/Revision.js → src/client/js/components/PageHistory/Revision.jsx

@@ -43,9 +43,16 @@ export default class Revision extends React.Component {
               <UserDate dateTime={revision.createdAt} />
               <UserDate dateTime={revision.createdAt} />
             </p>
             </p>
             <p>
             <p>
-              <a className="diff-view" onClick={this._onDiffOpenClicked}>
-                <i className={iconClass}></i> View diff
-              </a>
+              <span className='d-inline-block' style={{ minWidth: '80px' }}>
+                { !this.props.hasDiff &&
+                  <span className='text-muted'>No diff</span>
+                }
+                { this.props.hasDiff &&
+                  <a className="diff-view" onClick={this._onDiffOpenClicked}>
+                    <i className={iconClass}></i> View diff
+                  </a>
+                }
+              </span>
               <a href={'?revision=' + revision._id } className="m-l-10">
               <a href={'?revision=' + revision._id } className="m-l-10">
                 <i className="icon-login"></i> Go to this version
                 <i className="icon-login"></i> Go to this version
               </a>
               </a>
@@ -60,6 +67,7 @@ export default class Revision extends React.Component {
 Revision.propTypes = {
 Revision.propTypes = {
   revision: PropTypes.object,
   revision: PropTypes.object,
   revisionDiffOpened: PropTypes.bool.isRequired,
   revisionDiffOpened: PropTypes.bool.isRequired,
+  hasDiff: PropTypes.bool.isRequired,
   onDiffOpenClicked: PropTypes.func.isRequired,
   onDiffOpenClicked: PropTypes.func.isRequired,
 };
 };