Skip to content

Commit

Permalink
Add a detailed HTML view
Browse files Browse the repository at this point in the history
  • Loading branch information
pieter committed Jun 14, 2008
1 parent a47da8d commit 79e9ba9
Show file tree
Hide file tree
Showing 7 changed files with 2,361 additions and 1,915 deletions.
4,136 changes: 2,221 additions & 1,915 deletions English.lproj/MainMenu.nib/designable.nib

Large diffs are not rendered by default.

Binary file modified English.lproj/MainMenu.nib/keyedobjects.nib
Binary file not shown.
14 changes: 14 additions & 0 deletions GitTest.xcodeproj/project.pbxproj
Expand Up @@ -15,6 +15,9 @@
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
F56524BB0E02D22D00F03B52 /* NSFileHandleExt.m in Sources */ = {isa = PBXBuildFile; fileRef = F56524B90E02D22D00F03B52 /* NSFileHandleExt.m */; };
F56524F00E02D45200F03B52 /* PBGitCommit.m in Sources */ = {isa = PBXBuildFile; fileRef = F56524EF0E02D45200F03B52 /* PBGitCommit.m */; };
F56526240E03D85900F03B52 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F56526230E03D85900F03B52 /* WebKit.framework */; };
F565262B0E03D89B00F03B52 /* PBWebGitController.m in Sources */ = {isa = PBXBuildFile; fileRef = F565262A0E03D89B00F03B52 /* PBWebGitController.m */; };
F565265A0E03E71B00F03B52 /* commit.html in Resources */ = {isa = PBXBuildFile; fileRef = F56526590E03E71B00F03B52 /* commit.html */; };
F5945E170E02B0C200706420 /* PBGitRepository.m in Sources */ = {isa = PBXBuildFile; fileRef = F5945E160E02B0C200706420 /* PBGitRepository.m */; };
/* End PBXBuildFile section */

Expand All @@ -36,6 +39,10 @@
F56524BA0E02D22D00F03B52 /* NSFileHandleExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSFileHandleExt.h; sourceTree = "<group>"; };
F56524EE0E02D45200F03B52 /* PBGitCommit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBGitCommit.h; sourceTree = "<group>"; };
F56524EF0E02D45200F03B52 /* PBGitCommit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBGitCommit.m; sourceTree = "<group>"; };
F56526230E03D85900F03B52 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; };
F56526290E03D89B00F03B52 /* PBWebGitController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBWebGitController.h; sourceTree = "<group>"; };
F565262A0E03D89B00F03B52 /* PBWebGitController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBWebGitController.m; sourceTree = "<group>"; };
F56526590E03E71B00F03B52 /* commit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = commit.html; path = html/commit.html; sourceTree = "<group>"; };
F5945E150E02B0C200706420 /* PBGitRepository.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBGitRepository.h; sourceTree = "<group>"; };
F5945E160E02B0C200706420 /* PBGitRepository.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBGitRepository.m; sourceTree = "<group>"; };
/* End PBXFileReference section */
Expand All @@ -46,6 +53,7 @@
buildActionMask = 2147483647;
files = (
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
F56526240E03D85900F03B52 /* WebKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -55,6 +63,9 @@
080E96DDFE201D6D7F000001 /* Classes */ = {
isa = PBXGroup;
children = (
F56526590E03E71B00F03B52 /* commit.html */,
F56526290E03D89B00F03B52 /* PBWebGitController.h */,
F565262A0E03D89B00F03B52 /* PBWebGitController.m */,
F56524B90E02D22D00F03B52 /* NSFileHandleExt.m */,
F56524BA0E02D22D00F03B52 /* NSFileHandleExt.h */,
77C8280B06725ACE000B614F /* GitTest_AppDelegate.h */,
Expand All @@ -70,6 +81,7 @@
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup;
children = (
F56526230E03D85900F03B52 /* WebKit.framework */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
);
name = "Linked Frameworks";
Expand Down Expand Up @@ -187,6 +199,7 @@
files = (
8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */,
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
F565265A0E03E71B00F03B52 /* commit.html in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -203,6 +216,7 @@
F5945E170E02B0C200706420 /* PBGitRepository.m in Sources */,
F56524BB0E02D22D00F03B52 /* NSFileHandleExt.m in Sources */,
F56524F00E02D45200F03B52 /* PBGitCommit.m in Sources */,
F565262B0E03D89B00F03B52 /* PBWebGitController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
9 changes: 9 additions & 0 deletions PBGitCommit.m
Expand Up @@ -26,4 +26,13 @@ - (NSString*) details
NSString* details = [[NSString alloc] initWithData:[handle readDataToEndOfFile] encoding: NSASCIIStringEncoding];
return details;
}

+ (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector
{
return NO;
}

+ (BOOL)isKeyExcludedFromWebScript:(const char *)name {
return NO;
}
@end
22 changes: 22 additions & 0 deletions PBWebGitController.h
@@ -0,0 +1,22 @@
//
// PBWebGitController.h
// GitTest
//
// Created by Pieter de Bie on 14-06-08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import "GitTest_AppDelegate.h"
#import <WebKit/WebKit.h>

@interface PBWebGitController : NSObject {
IBOutlet GitTest_AppDelegate* controller;
IBOutlet WebView* view;
IBOutlet NSArrayController* commitsController;
NSString* diff;
}

- (void) changeContentTo: (id) content;
@property (readonly) NSString* diff;
@end
50 changes: 50 additions & 0 deletions PBWebGitController.m
@@ -0,0 +1,50 @@
//
// PBWebGitController.m
// GitTest
//
// Created by Pieter de Bie on 14-06-08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//

#import "PBWebGitController.h"


@implementation PBWebGitController

@synthesize diff;

- (void) awakeFromNib
{
[commitsController addObserver:self forKeyPath:@"selection" options:0 context:@"ChangedCommit"];
NSLog(@"WebGitController activated");
NSLog([[NSBundle mainBundle] resourcePath]);
NSString* file = [[NSBundle mainBundle] pathForResource:@"commit" ofType:@"html"];
NSURLRequest * request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:file]];
NSLog(@"Request: %@", request);
[[view mainFrame] loadRequest:request];
}

- (void) webView:(id) view didFinishLoadForFrame:(id) frame
{
NSLog(@"Loading done");
[self changeContentTo: [[commitsController selectedObjects] objectAtIndex:0]];
}

- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if (context == @"ChangedCommit") {
NSLog(@"SomethingChanged");
[self changeContentTo: [[commitsController selectedObjects] objectAtIndex:0]];
}
else {
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
}

- (void) changeContentTo: (id) content
{
id script = [view windowScriptObject];
[script setValue: content forKey:@"CommitObject"];
[script callWebScriptMethod:@"doeHet" withArguments: nil];
}
@end
45 changes: 45 additions & 0 deletions html/commit.html
@@ -0,0 +1,45 @@
<html>
<header>
<title>Details for commit</title>
<script type="text/JavaScript">
var doeHet = function() {
document.getElementById("commitID").innerHTML = CommitObject.sha;
document.getElementById("authorID").innerHTML = CommitObject.author;
document.getElementById("subjectID").innerHTML = CommitObject.subject;
details = CommitObject.details();
date = details.match(/Date:(.*)/)[1];
document.getElementById("date").innerHTML = date;
diffStart = details.indexOf("diff");
messageStart = details.indexOf("\n\n") + 2;
message = details.substring(messageStart,diffStart);
details = details.substring(diffStart);
document.getElementById("details").innerHTML = details;
document.getElementById("message").innerHTML = message.replace(/\n/g,"<br>");
}
</script>

</header>

<body style="padding: 0px; border: 0px">
<table style="width: 100%; font-size: 1.2em;">
<tr>
<td style="width: 100px; color:#999; text-align: right; text-weight: bold;">SHA:</td>
<td id="commitID"></td>
</tr>
<tr>
<td style="width: 100px; color:#999; text-align: right; text-weight: bold;">Author:</td>
<td id="authorID">Pieter de Bie</td>
</tr>
<tr>
<td style="width: 100px; color:#999; text-align: right; text-weight: bold;">Date:</td>
<td id="date">Pieter de Bie</td>
</tr>
<tr>
<td style="width: 100px; color:#999; text-align: right; text-weight: bold;">Subject:</td>
<td id="subjectID">Pieter de Bie</td>
</tr>
</table>
<hr>
<div id="message"></div>
<code><pre id="details"></pre></code>
</body>

0 comments on commit 79e9ba9

Please sign in to comment.