@@ -61,14 +61,15 @@ @interface ProjectViewController ()
61
61
62
62
@property (nonatomic , strong ) UIBarButtonItem *screenBar;
63
63
64
+ @property (strong , nonatomic ) CodeTree *myCodeTree;
64
65
65
66
@end
66
67
67
68
@implementation ProjectViewController
68
69
69
70
+ (ProjectViewController *)codeVCWithCodeRef : (NSString *)codeRef andProject : (Project *)project {
70
71
ProjectViewController *vc = [self new ];
71
- vc.codeRef = codeRef;
72
+ vc.myCodeTree = [CodeTree codeTreeWithRef: codeRef andPath: @" " ] ;
72
73
vc.myProject = project;
73
74
if (vc.myProject .is_public .boolValue ) {
74
75
vc.curIndex = 2 ;
@@ -77,6 +78,14 @@ + (ProjectViewController *)codeVCWithCodeRef:(NSString *)codeRef andProject:(Pro
77
78
}
78
79
return vc;
79
80
}
81
+
82
+ - (CodeTree *)myCodeTree {
83
+ if (!_myCodeTree) {
84
+ _myCodeTree = [CodeTree codeTreeWithRef: @" master" andPath: @" " ];
85
+ }
86
+ return _myCodeTree;
87
+ }
88
+
80
89
- (instancetype )init
81
90
{
82
91
self = [super init ];
@@ -85,9 +94,11 @@ - (instancetype)init
85
94
}
86
95
return self;
87
96
}
97
+
88
98
- (UIView *)getCurContentView {
89
99
return [_projectContentDict objectForKey: [NSNumber numberWithInteger: _curIndex]];
90
100
}
101
+
91
102
- (void )saveCurContentView : (UIView *)curContentView {
92
103
if (curContentView) {
93
104
[_projectContentDict setObject: curContentView forKey: [NSNumber numberWithInteger: _curIndex]];
@@ -188,18 +199,14 @@ - (void)viewWillDisappear:(BOOL)animated {
188
199
189
200
- (void )refreshToQueryData {
190
201
UIView *curView = [self getCurContentView ];
191
- if (curView && [curView respondsToSelector: @selector ( refreshToQueryData )] ) {
192
- [curView performSelector: @selector ( refreshToQueryData )] ;
202
+ if (! curView) {
203
+ return ;
193
204
}
194
205
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 )];
203
210
}
204
211
}
205
212
@@ -237,7 +244,7 @@ - (void)configRightBarButtonItemWithViewType:(ProjectViewType)viewType{
237
244
action: @selector (navRightBtnClicked )];
238
245
}else if (viewType == ProjectViewTypeCodes){
239
246
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];
241
248
[button addTarget: self action: @selector (navRightBtnClicked ) forControlEvents: UIControlEventTouchUpInside];
242
249
navRightBtn = [[UIBarButtonItem alloc ] initWithCustomView: button];
243
250
}
@@ -356,14 +363,13 @@ - (void)refreshWithNewIndex:(NSInteger)newIndex{
356
363
break ;
357
364
case ProjectViewTypeCodes:{
358
365
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 ];
360
367
codeListView.codeTreeFileOfRefBlock = ^(CodeTree_File *curCodeTreeFile, NSString *ref){
361
368
[weakSelf goToVCWith: curCodeTreeFile andRef: ref];
362
369
};
363
- codeListView.refChangedBlock = ^(NSString *ref ){
364
- weakSelf.codeRef = ref ;
370
+ codeListView.codeTreeChangedBlock = ^(CodeTree *tree ){
371
+ weakSelf.myCodeTree = tree ;
365
372
};
366
- [codeListView addBranchTagButton ];
367
373
codeListView;
368
374
});
369
375
}
@@ -426,6 +432,13 @@ - (void)goToVCWith:(CodeTree_File *)codeTreeFile andRef:(NSString *)ref{
426
432
CodeFile *nextCodeFile = [CodeFile codeFileWithRef: ref andPath: codeTreeFile.path];
427
433
CodeViewController *vc = [CodeViewController codeVCWithProject: _myProject andCodeFile: nextCodeFile];
428
434
[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
+ }
429
442
}else {
430
443
[NSObject showHudTipStr: @" 有些文件还不支持查看呢_(:з」∠)_" ];
431
444
}
@@ -672,18 +685,33 @@ - (void)navRightBtnClicked{
672
685
break ;
673
686
case ProjectViewTypeCodes:
674
687
{
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];
680
698
}
681
699
break ;
682
700
default :
683
701
break ;
684
702
}
685
703
}
686
704
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
+
687
715
- (UIBarButtonItem *)HDCustomNavButtonWithTitle : (NSString *)title imageName : (NSString *)imageName target : (id )targe action : (SEL )action {
688
716
UIButton *itemButtom = [UIButton buttonWithType: UIButtonTypeCustom];
689
717
UIImage *image = [UIImage imageNamed: imageName];
0 commit comments