https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113165

Revision: 113165
Author:   jeroendedauw
Date:     2012-03-06 18:25:17 +0000 (Tue, 06 Mar 2012)
Log Message:
-----------
work on reverting stuff

Modified Paths:
--------------
    trunk/extensions/EducationProgram/includes/DBDataObject.php
    trunk/extensions/EducationProgram/includes/EPCourse.php
    trunk/extensions/EducationProgram/includes/EPCourses.php
    trunk/extensions/EducationProgram/includes/EPRevisionPager.php
    trunk/extensions/EducationProgram/includes/EPRevisionedObject.php

Modified: trunk/extensions/EducationProgram/includes/DBDataObject.php
===================================================================
--- trunk/extensions/EducationProgram/includes/DBDataObject.php 2012-03-06 
18:09:12 UTC (rev 113164)
+++ trunk/extensions/EducationProgram/includes/DBDataObject.php 2012-03-06 
18:25:17 UTC (rev 113165)
@@ -610,13 +610,21 @@
         * @since 1.20
         *
         * @param DBDataObject $object
-        * @param boolean $excludeSummaryFields When set to true, summary field 
changes are ignored.
+        * @param boolean|array $excludeSummaryFields
+        *  When set to true, summary field changes are ignored.
+        *  Can also be an array of fields to ignore.
         *
         * @return boolean
         */
        protected function fieldsChanged( DBDataObject $object, 
$excludeSummaryFields = false ) {
+               $exclusionFields = array();
+
+               if ( $excludeSummaryFields !== false ) {
+                       $exclusionFields = is_array( $excludeSummaryFields ) ? 
$excludeSummaryFields : $this->table->getSummaryFields();
+               }
+
                foreach ( $this->fields as $name => $value ) {
-                       $excluded = $excludeSummaryFields && in_array( $name, 
$this->table->getSummaryFields() );
+                       $excluded = $excludeSummaryFields && in_array( $name, 
$exclusionFields );
 
                        if ( !$excluded && $object->getField( $name ) !== 
$value ) {
                                return true;

Modified: trunk/extensions/EducationProgram/includes/EPCourse.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPCourse.php     2012-03-06 
18:09:12 UTC (rev 113164)
+++ trunk/extensions/EducationProgram/includes/EPCourse.php     2012-03-06 
18:25:17 UTC (rev 113165)
@@ -705,5 +705,12 @@
 
                EPUtils::log( $info );
        }
-       
+
+       protected function restoreField( $fieldName, EPRevisionedObject $object 
) {
+               if ( $fieldName !== 'org_id'
+                       || EPOrgs::singleton()->has( array( 'id' => 
$object->getField( 'org_id' ) ) ) ) {
+                       parent::restoreField( $fieldName, $object );
+               }
+       }
+
 }

Modified: trunk/extensions/EducationProgram/includes/EPCourses.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPCourses.php    2012-03-06 
18:09:12 UTC (rev 113164)
+++ trunk/extensions/EducationProgram/includes/EPCourses.php    2012-03-06 
18:25:17 UTC (rev 113165)
@@ -132,11 +132,16 @@
         */
        public function getRevertableFields() {
                return array(
+                       'org_id',
                        'name',
+                       'mc',
                        'start',
                        'end',
                        'description',
                        'token',
+                       'field',
+                       'level',
+                       'term'
                );
        }
        

Modified: trunk/extensions/EducationProgram/includes/EPRevisionPager.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPRevisionPager.php      
2012-03-06 18:09:12 UTC (rev 113164)
+++ trunk/extensions/EducationProgram/includes/EPRevisionPager.php      
2012-03-06 18:25:17 UTC (rev 113165)
@@ -118,14 +118,16 @@
                                        array( 'revid' => $revision->getId() )
                                );
                        }
-                       
-                       $actionLinks[] = $object->getLink(
-                               'eprestore',
-                               wfMsgHtml( 'ep-revision-restore' ),
-                               array(),
-                               array( 'revid' => $revision->getId() )
-                       );
-                       
+
+                       if ( $this->mOffset !== '' || $this->rowNr != 0 ) {
+                               $actionLinks[] = $object->getLink(
+                                       'eprestore',
+                                       wfMsgHtml( 'ep-revision-restore' ),
+                                       array(),
+                                       array( 'revid' => $revision->getId() )
+                               );
+                       }
+
                        $html .= ' . . ';
                        $html .= '(' .  $this->getLanguage()->pipeList( 
$actionLinks ) . ')';
                }

Modified: trunk/extensions/EducationProgram/includes/EPRevisionedObject.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPRevisionedObject.php   
2012-03-06 18:09:12 UTC (rev 113164)
+++ trunk/extensions/EducationProgram/includes/EPRevisionedObject.php   
2012-03-06 18:25:17 UTC (rev 113165)
@@ -320,15 +320,19 @@
         * @return boolean Success indicator
         */
        public function restoreToRevision( EPRevision $revison, array $fields = 
null ) {
-               $obejct = $revison->getObject();
-               $fields = is_null( $fields ) ? $obejct->getFieldNames() : 
$fields;
+               $object = $revison->getObject();
+               $fields = is_null( $fields ) ? $object->getFieldNames() : 
$fields;
                
                foreach ( $fields as $fieldName ) {
-                       $this->setField( $fieldName, $obejct->getField( 
$fieldName ) );
+                       $this->restoreField( $fieldName, $object );
                }
                
                return true;
        }
+
+       protected function restoreField( $fieldName, EPRevisionedObject $object 
) {
+               $this->setField( $fieldName, $object->getField( $fieldName ) );
+       }
        
        /**
         * Retore the object to a revision with the provided id.


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to