// // ProjectActivity.m // Coding_iOS // // Created by Ease on 15/5/13. // Copyright (c) 2015å¹´ Coding. All rights reserved. // #import "ProjectActivity.h" #import "NSMutableString+Common.h" @implementation ProjectActivity @synthesize actionStr = _actionStr, contentStr = _contentStr; - (instancetype)init { self = [super init]; if (self) { _propertyArrayMap = @{@"commits": @"Commit", @"labels": @"ProjectTag", }; _actionMediaItems = [[NSMutableArray alloc] init]; _contentMediaItems = [[NSMutableArray alloc] init]; } return self; } - (void)setComment_content:(NSString *)comment_content{ if (comment_content) { _comment_content = [comment_content stringByRemoveHtmlTag]; }else{ _comment_content = @""; } } - (void)setContent:(NSString *)content{ if (_content != content) { _htmlMedia = [HtmlMedia htmlMediaWithString:content showType:MediaShowTypeNone]; _content = _htmlMedia.contentDisplay; } } - (NSString *)ref_type{ if ([_ref_type isEqualToString:@"tag"]) { return @"æ ç¾"; }else if ([_ref_type isEqualToString:@"branch"]){ return @"忝"; }else{ return _ref_type; } } - (void)addActionUser:(User *)curUser{ if (curUser) { [_actionStr appendString:@" "]; [HtmlMedia addMediaItemUser:curUser toString:_actionStr andMediaItems:_actionMediaItems]; [_actionStr appendString:@" "]; } } //- (void)addActionLinkStr:(NSString *)linkStr{ // [HtmlMedia addLinkStr:linkStr type:HtmlMediaItemType_CustomLink toString:_actionStr andMediaItems:_actionMediaItems]; //} //- (void)addContentLinkStr:(NSString *)linkStr{ // if (linkStr.length > 0) { // [_contentStr appendString:@" "]; // [HtmlMedia addLinkStr:linkStr type:HtmlMediaItemType_CustomLink toString:_contentStr andMediaItems:_contentMediaItems]; // [_contentStr appendString:@" "]; // } //} - (NSMutableString *)actionStr{ if (!_actionStr) { _actionStr = [[NSMutableString alloc] init]; if ([_target_type isEqualToString:@"ProjectMember"]) { if ([_action isEqualToString:@"quit"]) { [self addActionUser:_target_user]; [_actionStr appendFormat:@"%@项ç®", _action_msg]; }else{ [self addActionUser:_user]; [_actionStr appendFormat:@"%@é¡¹ç®æå", _action_msg]; } }else if ([_target_type isEqualToString:@"Task"]){ [self addActionUser:_user]; if ([_action isEqualToString:@"update_priority"]) { [_actionStr appendFormat:@"æ´æ°äºä»»å¡ã%@ãçä¼å 级", _task.title]; }else if ([_action isEqualToString:@"update_deadline"]) { if (_task.deadline && _task.deadline.length > 0) { [_actionStr appendFormat:@"æ´æ°äºä»»å¡ã%@ãçæªæ¢æ¥æ", _task.title]; }else{ [_actionStr appendFormat:@"ç§»é¤äºä»»å¡ã%@ãçæªæ¢æ¥æ", _task.title]; } }else if ([_action isEqualToString:@"update_description"]) { [_actionStr appendFormat:@"æ´æ°äºä»»å¡ã%@ãçæè¿°", _task.title]; }else if ([_action isEqualToString:@"update_label"]) { [_actionStr appendFormat:@"æ´æ°äºä»»å¡ã%@ãçæ ç¾", _task.title]; }else if ([_action isEqualToString:@"add_watcher"]){ [_actionStr saveAppendString:_action_msg]; [self addActionUser:_watcher]; }else if ([_action isEqualToString:@"remove_watcher"]){ [_actionStr saveAppendString:_action_msg]; [self addActionUser:_watcher]; }else{ [_actionStr saveAppendString:_action_msg]; if (_origin_task.owner) { [self addActionUser:_origin_task.owner]; [_actionStr appendString:@"ç"]; } [_actionStr appendString:@"ä»»å¡"]; if ([_action isEqualToString:@"reassign"]) { [_actionStr appendString:@"ç»"]; [self addActionUser:_task.owner]; } } }else if ([_target_type isEqualToString:@"TaskComment"]){ [self addActionUser:_user]; [_actionStr appendFormat:@"%@ä»»å¡ã%@ãçè¯è®º", _action_msg, _task.title]; }else if ([_target_type isEqualToString:@"Project"] && [_action isEqualToString:@"transfer"]){ [self addActionUser:_user]; [_actionStr appendFormat:@"å°é¡¹ç®ã%@ã%@", _project.full_name, _action_msg]; [self addActionUser:_target_user]; }else if ([_target_type isEqualToString:@"Project"] && [_action isEqualToString:@"transferToTeam"]){ [self addActionUser:_user]; [_actionStr appendFormat:@"转让äºé¡¹ç®"]; }else{ [self addActionUser:_user]; if ([_target_type isEqualToString:@"ProjectTweet"]){ NSString *action_msg = ([_action isEqualToString:@"create"]? @"åå¸äº": [_action isEqualToString:@"update"]? @"æ´æ°äº": [_action isEqualToString:@"delete"]? @"å é¤äº": _action); [_actionStr appendFormat:@"%@项ç®å ¬å", action_msg]; }else{ [_actionStr saveAppendString:_action_msg]; if ([_target_type isEqualToString:@"ProjectTopic"]){ [_actionStr appendString:@"讨论"]; if ([_action isEqualToString:@"comment"]) { [_actionStr appendFormat:@"ã%@ã", _project_topic.parent.title]; } }else if ([_target_type isEqualToString:@"BranchMember"]){ if ([@[@"add", @"remove"] containsObject:_action]) { [_actionStr appendString:@"åæ¯ç®¡çå"]; }else{//deny_push/allow_push [self addActionUser:self.target_user]; [_actionStr appendString:@"ç´æ¥ Push ä¿æ¤åæ¯"]; } }else if ([_target_type isEqualToString:@"ProtectedBranch"]){ // enable_protected_branch/allow_force_push/disable_protected_branch }else if ([_target_type isEqualToString:@"ProjectFile"]){ if ([_action isEqualToString:@"rename"]) { [_actionStr appendString:@"ä¿®æ¹äºæä»¶åç§°"]; }else{ [_actionStr appendString:[_type isEqualToString:@"dir"]? @"æä»¶å¤¹": @"æä»¶"]; } }else if ([_target_type isEqualToString:@"ProjectFileComment"]){ [_actionStr appendFormat:@"æä»¶ã%@ãçè¯è®º", _projectFile.title]; }else if ([_target_type isEqualToString:@"Depot"]){ if ([_action isEqualToString:@"push"]) { [_actionStr appendFormat:@"é¡¹ç® %@ ã%@ã", self.ref_type, _ref]; }else if ([_action isEqualToString:@"fork"]){ [_actionStr appendFormat:@"项ç®ã%@ãå° ã%@ã", _source_depot.name, _depot.name]; } }else if ([_target_type isEqualToString:@"Wiki"]){ [_actionStr appendString:@"wiki"]; }else{ [_actionStr appendString:@"项ç®"]; if ([_target_type isEqualToString:@"Project"]){ }else if ([_target_type isEqualToString:@"QcTask"]){ [_actionStr appendFormat:@"ã%@ãçè´¨éåæä»»å¡", _project.full_name]; }else if ([_target_type isEqualToString:@"ProjectStar"]){ [_actionStr appendFormat:@"ã%@ã", _project.full_name]; }else if ([_target_type isEqualToString:@"ProjectWatcher"]){ [_actionStr appendFormat:@"ã%@ã", _project.full_name]; }else if ([_target_type isEqualToString:@"PullRequestBean"]){ [_actionStr appendFormat:@"ã%@ãä¸ç Pull Request", _depot.name]; }else if ([_target_type isEqualToString:@"PullRequestComment"]){ [_actionStr appendFormat:@"ã%@ãä¸ç Pull Request ã%@ã", _depot.name, _pull_request_title]; }else if ([_target_type isEqualToString:@"MergeRequestBean"]){ [_actionStr appendFormat:@"ã%@ãä¸ç Merge Request", _depot.name]; }else if ([_target_type isEqualToString:@"MergeRequestComment"]){ [_actionStr appendFormat:@"ã%@ãä¸ç Merge Request ã%@ã", _depot.name, _merge_request_title]; }else if ([_target_type isEqualToString:@"CommitLineNote"]){ [_actionStr appendFormat:@"ã%@ãç %@ã%@ã", _project.full_name, _line_note.noteable_type, _line_note.noteable_title]; } } } } } return _actionStr; } - (NSMutableString *)contentStr{ if (!_contentStr) { _contentStr = [[NSMutableString alloc] init]; if ([_target_type isEqualToString:@"Task"]) { if ([_action isEqualToString:@"update_priority"]) { if (_task.priority && _task.priority.intValue < kTaskPrioritiesDisplay.count) { [_contentStr appendFormat:@"ã%@ã", kTaskPrioritiesDisplay[_task.priority.intValue]]; } }else if ([_action isEqualToString:@"update_deadline"] && _task.deadline && _task.deadline.length > 0) { [_contentStr appendFormat:@"ã%@ã", [NSDate convertStr_yyyy_MM_ddToDisplay:_task.deadline]]; }else if ([_action isEqualToString:@"update_description"]) { [_contentStr saveAppendString:_task.description_mine]; }else if ([_action isEqualToString:@"update_label"]) { if (_labels.count > 0) { [_contentStr appendFormat:@"%@", [[_labels valueForKey:@"name"] componentsJoinedByString:@","]]; }else{ [_contentStr appendFormat:@"ç§»é¤äºä»»å¡çæææ ç¾"]; } }else{ [_contentStr saveAppendString:_task.title]; } }else if ([_target_type isEqualToString:@"TaskComment"]){ if (_taskComment.content) { [_contentStr saveAppendString:_taskComment.content]; } }else if ([_target_type isEqualToString:@"ProjectTopic"]){ if ([_action isEqualToString:@"comment"]) { [_contentStr saveAppendString:_project_topic.content]; }else{ [_contentStr saveAppendString:_project_topic.title]; } }else if ([_target_type isEqualToString:@"ProjectFile"]){ if ([_action isEqualToString:@"rename"]) { [_contentStr appendFormat:@"%@ -> %@", _old_name, _file.name]; }else{ [_contentStr saveAppendString:_file.name]; } }else if ([_target_type isEqualToString:@"ProjectFileComment"]){ [_contentStr saveAppendString:_projectFileComment.content]; }else if ([_target_type isEqualToString:@"Depot"]){ if (_commits && [_commits count] > 0) { Commit *curCommit = _commits.firstObject; [_contentStr saveAppendString:curCommit.contentStr]; for (int i = 1; i<[_commits count]; i++) { curCommit = [_commits objectAtIndex:i]; [_contentStr appendFormat:@"\n%@",curCommit.contentStr]; } } }else{ if ([_target_type isEqualToString:@"ProjectMember"]) { if ([_action isEqualToString:@"quit"]) { [_contentStr saveAppendString:_project.full_name]; }else{ [_contentStr saveAppendString:_target_user.name]; } }else if ([_target_type isEqualToString:@"Project"]){ [_contentStr saveAppendString:_project.full_name]; }else if ([_target_type isEqualToString:@"QcTask"]){ [_contentStr saveAppendString:_qc_task.link]; }else if ([_target_type isEqualToString:@"ProjectStar"]){ [_contentStr saveAppendString:_project.full_name]; }else if ([_target_type isEqualToString:@"ProjectWatcher"]){ [_contentStr saveAppendString:_project.full_name]; }else if ([_target_type isEqualToString:@"PullRequestBean"]){ [_contentStr saveAppendString:_pull_request_title]; }else if ([_target_type isEqualToString:@"PullRequestComment"]){ [_contentStr saveAppendString:_comment_content]; }else if ([_target_type isEqualToString:@"MergeRequestBean"]){ [_contentStr saveAppendString:_merge_request_title]; }else if ([_target_type isEqualToString:@"MergeRequestComment"]){ [_contentStr saveAppendString:_comment_content]; }else if ([_target_type isEqualToString:@"CommitLineNote"]){ [_contentStr appendFormat:@"%@", _line_note.content]; }else if ([_target_type isEqualToString:@"Wiki"]){ [_contentStr appendFormat:@"%@", _wiki_title]; }else if ([_target_type isEqualToString:@"ProjectTweet"]){ [_contentStr saveAppendString:_content]; }else if ([_target_type isEqualToString:@"BranchMember"]){ if ([@[@"add", @"remove"] containsObject:_action]) { [_contentStr saveAppendString:self.target_user.name]; }else{//deny_push/allow_push [_contentStr saveAppendString:self.ref_name]; } }else if ([_target_type isEqualToString:@"ProtectedBranch"]){ [_contentStr saveAppendString:self.ref_name]; }else{ [_contentStr appendString:@"**æªç¥**"]; } } } return _contentStr; } @end