public function requestCheckin(&$error, $newVersion, $commitMessage) { $config = $this->getConfiguration(); $versioning = new DIM_Versioning(); $requestData = array("action" => "checkin", "email" => $config["client"]["user-email"], "auth-key" => $config["client"]["auth-key"], "version" => $newVersion, "old-version" => $versioning->getLatestVersion(), "commit-message" => $commitMessage); $rawResponse = Network_IO::makeServerRequest($config["client"]["server-host"], $requestData); $responseParts = explode(":", $rawResponse); if ($responseParts[0] == "1") { // successful checkin! $this->state->checkIn(); $this->logger->addLogItem("Database Checked In", "state"); $queryManager = new DIM_QueryManager(); $versionFileName = $queryManager->makeVersionFile($responseParts[1], $responseParts[2]); $this->logger->addLogItem("Version file {$versionFileName} created", "version"); $newVersion = $versioning->addNewVersion($responseParts[1], $responseParts[2]); $this->logger->addLogItem("Database now at version {$newVersion}", "version"); return true; } else { $error = $responseParts[1]; return false; } }
public function beginUpdate() { // do we need to resume an update? if (file_exists($this->getUpdateCacheFilename())) { $this->resumeUpdate(); } else { $versioning = new DIM_Versioning(); $currentVersion = $versioning->getLatestVersion(); // start by building an update cache.. $updateCache = array(); for ($v = $currentVersion + 1; $this->checkForVersionFile($v); $v++) { include $this->getVersionFileName($v); $updateCache[$v] = $versionData; } $this->saveUpdateCache($updateCache); // now we have a cache to run our update on... $this->resumeUpdate(); } }
private function __indexPage() { $versioning = new DIM_Versioning(); $link = new XMLElement('link'); $this->addElementToHead($link, 500); $this->setPageType('form'); $this->appendSubheading(__('Database Check In')); $checkinFieldset = new XMLElement('fieldset'); $checkinFieldset->setAttribute("class", "settings picker"); $checkinFieldset->appendChild(new XMLElement('legend', __("Version Information"))); if (isset($_POST['success'])) { $successWrapper = new XMLElement('div', '', array('class' => 'two columns')); $successWrapper->appendChild(new XMLElement('div', new XMLElement("h3", "Database Checked in"), array('class' => 'column'))); $successWrapper->appendChild(new XMLElement('div', new XMLElement('div', '<a class="button" href="../">Return to Configuration</a>'), array('class' => 'column'))); $checkinFieldset->appendChild($successWrapper); $this->Form->appendChild($checkinFieldset); } else { //pre fill information $versionData = $versioning->getLatestVersion() + 1; if (isset($_POST['checkin']['version'])) { $versionData = $_POST['checkin']['version']; } $versionLabel = Widget::Label("Version"); $versionLabel->appendChild(Widget::Input("checkin[version]", strval($versionData))); $messageLabel = Widget::Label("Commit Message"); $messageLabel->appendChild(Widget::Input("checkin[message]", $_POST['checkin']['message'])); //if errors if (isset($_POST['error']['version'])) { $versionLabel->setAttribute('class', 'invalid'); $versionError = "Please enter a version number (Current Version = " . $versioning->getLatestVersion() . ')'; switch ($_POST['error']['version']) { case 'invalid': $versionError = 'Invalid Version Number, must be a number (Current Version = ' . $versioning->getLatestVersion() . ')'; break; case 'less-than-version': $versionError = 'Version already exists or is less than current version( Current Version = ' . $versioning->getLatestVersion() . ')'; break; } $versionLabel->appendChild(new XMLElement('p', $versionError)); } if (isset($_POST['error']['message'])) { $messageLabel->setAttribute('class', 'invalid'); $messageLabel->appendChild(new XMLElement('p', 'Please enter a commit message')); } $columnWrapper = new XMLElement('div', '', array('class' => 'two columns')); $columnWrapper->appendChild(new XMLElement('div', $versionLabel, array('class' => 'column', "readonly" => 'readonly'))); $columnWrapper->appendChild(new XMLElement('div', $messageLabel, array('class' => 'column'))); $checkinFieldset->appendChild($columnWrapper); $this->Form->appendChild($checkinFieldset); $saveDiv = new XMLElement('div'); $saveDiv->setAttribute('class', 'actions'); $saveDiv->appendChild(Widget::Input('action[checkin]', __('Check-In!'), 'submit', array('accesskey' => 's'))); $this->Form->appendChild($saveDiv); } }