*/
class CommitLoader {
+ public static $commit_id, $commit_base_id;
private $project;
+ public static function parse($log_page = false) {
+ if(array_key_exists('h', $_GET) && Validation::validate_hash($_GET['h']))
+ $commit_id = $_GET['h'];
+ else
+ $commit_id = "all";
+
+ if(array_key_exists('hb', $_GET) && Validation::validate_hash($_GET['hb']))
+ $commit_base_id = $_GET['hb'];
+ else if(!$log_page && $_SESSION['hb'])
+ $commit_base_id = $_SESSION['hb'];
+ else
+ $commit_base_id = $commit_id;
+
+ if($log_page)
+ $_SESSION['hb'] = $commit_base_id;
+
+ ContentProvider::overall_set('commit_base_id', $commit_base_id);
+ ContentProvider::overall_set('commit_id', $commit_id);
+
+ self::$commit_id = $commit_id;
+ self::$commit_base_id = $commit_base_id;
+ return array('id' => $commit_id, 'base_id' => $commit_base_id);
+ }
+
public function __construct($project) {
$this->project = $project;
}
- public function load($id) {
- if(!Validation::validate_hash($id)) {
+ public function load($id = null) {
+ if(!$id && self::$commit_id)
+ $id = self::$commit_id;
+ else if(!Validation::validate_hash($id)) {
trigger_error("Invalid hash parameter", E_USER_ERROR);
return false;
}
+ if(strtolower($id) == 'all')
+ $id = null;
$commit = GitCommand::get_commit($this->project['path'], $id);
return $commit;
}