From 887cf21bf7931a3a3397b15d82845f38226e257f Mon Sep 17 00:00:00 2001 From: Pieter de Bie Date: Fri, 19 Sep 2008 19:41:47 +0200 Subject: [PATCH] Also reload refs in the webview --- PBWebGitController.m | 16 +++++++++++----- html/commit.js | 32 +++++++++++++++++++++++--------- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/PBWebGitController.m b/PBWebGitController.m index 7549b42..9b7f0b0 100644 --- a/PBWebGitController.m +++ b/PBWebGitController.m @@ -45,15 +45,21 @@ - (void) changeContentTo: (PBGitCommit *) content { - if (content == nil) + if (content == nil || [currentSha isEqualToString:@"Not Loaded"]) return; - if ([currentSha isEqualToString: content.sha] || [currentSha isEqualToString:@"Not Loaded"]) - return; - - currentSha = content.sha; id script = [view windowScriptObject]; [script setValue: content forKey:@"CommitObject"]; + + // The sha is the same, but refs may have changed.. reload it lazy + if ([currentSha isEqualToString: content.sha]) + { + [script callWebScriptMethod:@"reload" withArguments: nil]; + return; + } + + currentSha = content.sha; + [script callWebScriptMethod:@"loadCommit" withArguments: nil]; } diff --git a/html/commit.js b/html/commit.js index b2720c3..6c79404 100644 --- a/html/commit.js +++ b/html/commit.js @@ -32,7 +32,10 @@ var Commit = Class.create({ this.committer_date = new Date(parseInt(match[3]) * 1000); this.parents = obj.parents; - }, + }, + reloadRefs: function() { + this.refs = CommitObject.refs; + } }); var selectCommit = function(a) { @@ -48,6 +51,24 @@ var showDiffs = function() { $("details").show(); } +var reload = function() { + commit.refs = null; + showRefs(); + commit.reloadRefs(); + showRefs(); +} + +var showRefs = function() { + if (commit.refs){ + $('refs').parentNode.style.display = ""; + $('refs').innerHTML = ""; + $A(commit.refs).each(function(ref) { + $('refs').innerHTML += '' + ref.shortName() + ''; + }); + } else + $('refs').parentNode.style.display = "none"; +} + var loadCommit = function() { commit = new Commit(CommitObject); @@ -68,14 +89,7 @@ var loadCommit = function() { new_row.innerHTML = "Parent:" + parent + ""; }); - if (commit.refs){ - $('refs').parentNode.style.display = ""; - $('refs').innerHTML = ""; - $A(commit.refs).each(function(ref) { - $('refs').innerHTML += '' + ref.shortName() + ''; - }); - } else - $('refs').parentNode.style.display = "none"; + showRefs(); $("message").innerHTML = commit.message.replace(/\n/g,"
");