@@ -61,14 +61,15 @@ @interface ProjectViewController ()
6161
6262@property (nonatomic , strong ) UIBarButtonItem *screenBar;
6363
64+ @property (strong , nonatomic ) CodeTree *myCodeTree;
6465
6566@end
6667
6768@implementation ProjectViewController
6869
6970+ (ProjectViewController *)codeVCWithCodeRef : (NSString *)codeRef andProject : (Project *)project {
7071 ProjectViewController *vc = [self new ];
71- vc.codeRef = codeRef;
72+ vc.myCodeTree = [CodeTree codeTreeWithRef: codeRef andPath: @" " ] ;
7273 vc.myProject = project;
7374 if (vc.myProject .is_public .boolValue ) {
7475 vc.curIndex = 2 ;
@@ -77,6 +78,14 @@ + (ProjectViewController *)codeVCWithCodeRef:(NSString *)codeRef andProject:(Pro
7778 }
7879 return vc;
7980}
81+
82+ - (CodeTree *)myCodeTree {
83+ if (!_myCodeTree) {
84+ _myCodeTree = [CodeTree codeTreeWithRef: @" master" andPath: @" " ];
85+ }
86+ return _myCodeTree;
87+ }
88+
8089- (instancetype )init
8190{
8291 self = [super init ];
@@ -85,9 +94,11 @@ - (instancetype)init
8594 }
8695 return self;
8796}
97+
8898- (UIView *)getCurContentView {
8999 return [_projectContentDict objectForKey: [NSNumber numberWithInteger: _curIndex]];
90100}
101+
91102- (void )saveCurContentView : (UIView *)curContentView {
92103 if (curContentView) {
93104 [_projectContentDict setObject: curContentView forKey: [NSNumber numberWithInteger: _curIndex]];
@@ -188,18 +199,14 @@ - (void)viewWillDisappear:(BOOL)animated {
188199
189200- (void )refreshToQueryData {
190201 UIView *curView = [self getCurContentView ];
191- if (curView && [curView respondsToSelector: @selector ( refreshToQueryData )] ) {
192- [curView performSelector: @selector ( refreshToQueryData )] ;
202+ if (! curView) {
203+ return ;
193204 }
194205
195-
196- if ([curView isKindOfClass: [ProjectTasksView class ]]) {
197- ProjectTasksView *tasksView = (ProjectTasksView *)curView;
198- [tasksView refreshToQueryData ];
199- }else {
200- if (curView && [curView respondsToSelector: @selector (reloadData )]) {
201- [curView performSelector: @selector (reloadData )];
202- }
206+ if ([curView respondsToSelector: @selector (refreshToQueryData )]) {
207+ [curView performSelector: @selector (refreshToQueryData )];
208+ }else if ([curView respondsToSelector: @selector (reloadData )]){
209+ [curView performSelector: @selector (reloadData )];
203210 }
204211}
205212
@@ -237,7 +244,7 @@ - (void)configRightBarButtonItemWithViewType:(ProjectViewType)viewType{
237244 action: @selector (navRightBtnClicked )];
238245 }else if (viewType == ProjectViewTypeCodes){
239246 UIButton *button = [[UIButton alloc ] initWithFrame: CGRectMake (0 , 0 , 20 , 20 )];
240- [button setImage: [UIImage imageNamed: @" timeBtn_Nav " ] forState: UIControlStateNormal];
247+ [button setImage: [UIImage imageNamed: @" moreBtn_Nav " ] forState: UIControlStateNormal];
241248 [button addTarget: self action: @selector (navRightBtnClicked ) forControlEvents: UIControlEventTouchUpInside];
242249 navRightBtn = [[UIBarButtonItem alloc ] initWithCustomView: button];
243250 }
@@ -356,14 +363,13 @@ - (void)refreshWithNewIndex:(NSInteger)newIndex{
356363 break ;
357364 case ProjectViewTypeCodes:{
358365 curView = ({
359- ProjectCodeListView *codeListView = [[ProjectCodeListView alloc ] initWithFrame: self .view.bounds project: _myProject andCodeTree: [CodeTree codeTreeWithRef: _codeRef andPath: @" " ] ];
366+ ProjectCodeListView *codeListView = [[ProjectCodeListView alloc ] initWithFrame: self .view.bounds project: _myProject andCodeTree: _myCodeTree ];
360367 codeListView.codeTreeFileOfRefBlock = ^(CodeTree_File *curCodeTreeFile, NSString *ref){
361368 [weakSelf goToVCWith: curCodeTreeFile andRef: ref];
362369 };
363- codeListView.refChangedBlock = ^(NSString *ref ){
364- weakSelf.codeRef = ref ;
370+ codeListView.codeTreeChangedBlock = ^(CodeTree *tree ){
371+ weakSelf.myCodeTree = tree ;
365372 };
366- [codeListView addBranchTagButton ];
367373 codeListView;
368374 });
369375 }
@@ -426,6 +432,13 @@ - (void)goToVCWith:(CodeTree_File *)codeTreeFile andRef:(NSString *)ref{
426432 CodeFile *nextCodeFile = [CodeFile codeFileWithRef: ref andPath: codeTreeFile.path];
427433 CodeViewController *vc = [CodeViewController codeVCWithProject: _myProject andCodeFile: nextCodeFile];
428434 [self .navigationController pushViewController: vc animated: YES ];
435+ }else if ([codeTreeFile.mode isEqualToString: @" git_link" ]){
436+ UIViewController *vc = [BaseViewController analyseVCFromLinkStr: codeTreeFile.info.submoduleLink];
437+ if (vc) {
438+ [self .navigationController pushViewController: vc animated: YES ];
439+ }else {
440+ [NSObject showHudTipStr: @" 有些文件还不支持查看呢_(:з」∠)_" ];
441+ }
429442 }else {
430443 [NSObject showHudTipStr: @" 有些文件还不支持查看呢_(:з」∠)_" ];
431444 }
@@ -672,18 +685,33 @@ - (void)navRightBtnClicked{
672685 break ;
673686 case ProjectViewTypeCodes:
674687 {
675- // 代码提交记录
676- ProjectCommitsViewController *vc = [ProjectCommitsViewController new ];
677- vc.curProject = self.myProject ;
678- vc.curCommits = [Commits commitsWithRef: self .codeRef? self .codeRef: @" master" Path: @" " ];
679- [self .navigationController pushViewController: vc animated: YES ];
688+ __weak typeof (self) weakSelf = self;
689+ [[UIActionSheet bk_actionSheetCustomWithTitle: nil buttonTitles: @[@" 上传图片" , @" 创建文本文件" , @" 查看提交记录" ] destructiveTitle: nil cancelTitle: @" 取消" andDidDismissBlock: ^(UIActionSheet *sheet, NSInteger index) {
690+ if (index == 0 ) {
691+ [(ProjectCodeListView *)[weakSelf getCurContentView ] uploadImageClicked ];
692+ }else if (index == 1 ){
693+ [(ProjectCodeListView *)[weakSelf getCurContentView ] createFileClicked ];
694+ }else if (index == 2 ){
695+ [weakSelf goToCommitsVC ];
696+ }
697+ }] showInView: self .view];
680698 }
681699 break ;
682700 default :
683701 break ;
684702 }
685703}
686704
705+ - (void )goToCommitsVC {
706+ // 代码提交记录
707+ ProjectCommitsViewController *vc = [ProjectCommitsViewController new ];
708+ vc.curProject = self.myProject ;
709+ vc.curCommits = [Commits commitsWithRef: self .myCodeTree.ref Path: @" " ];
710+ [self .navigationController pushViewController: vc animated: YES ];
711+ }
712+
713+
714+
687715- (UIBarButtonItem *)HDCustomNavButtonWithTitle : (NSString *)title imageName : (NSString *)imageName target : (id )targe action : (SEL )action {
688716 UIButton *itemButtom = [UIButton buttonWithType: UIButtonTypeCustom];
689717 UIImage *image = [UIImage imageNamed: imageName];
0 commit comments