public function extractArtifactDateFields(Tracker_Artifact $artifact, Tracker_Artifact_Changeset $last_changeset, array &$properties) { $tracker = $artifact->getTracker(); $custom_date_fields = $this->form_element_factory->getUsedCustomDateFields($tracker); foreach ($custom_date_fields as $date_field) { $last_changeset_value = $last_changeset->getValue($date_field); if ($last_changeset->getValue($date_field) && $last_changeset_value) { $properties[$date_field->getName()] = date('c', $last_changeset_value->getTimestamp()); } } $core_date_fields = $this->form_element_factory->getCoreDateFields($tracker); foreach ($core_date_fields as $date_field) { if ($date_field instanceof Tracker_FormElement_Field_SubmittedOn) { $properties[$date_field->getName()] = date('c', $artifact->getSubmittedOn()); } elseif ($date_field instanceof Tracker_FormElement_Field_LastUpdateDate) { $properties[$date_field->getName()] = date('c', $artifact->getLastUpdateDate()); } } $last_modified = $artifact->getLastUpdateDate(); if ($last_modified === -1) { $last_modified = $artifact->getSubmittedOn(); } $properties[self::LAST_UPDATE_PROPERTY] = date('c', $last_modified); }
private function isUpdatingLatestVersion(Tracker_Artifact $artifact) { $valid_unmodified = true; $valid_match = true; if (isset($_SERVER['HTTP_IF_UNMODIFIED_SINCE'])) { $client_version = strtotime($_SERVER['HTTP_IF_UNMODIFIED_SINCE']); $last_version = $artifact->getLastUpdateDate(); $valid_unmodified = $last_version == $client_version; } if (isset($_SERVER['HTTP_IF_MATCH'])) { $client_version = $_SERVER['HTTP_IF_MATCH']; $last_version = $artifact->getVersionIdentifier(); $valid_match = $last_version == $client_version; } return $valid_unmodified && $valid_match; }