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