mirror of
https://github.com/git-touch/git-touch
synced 2025-02-20 13:30:38 +01:00
improvement(gitlab): use web url for issue and mr
This commit is contained in:
parent
d1d2e9e0fb
commit
35a27c600e
@ -8,17 +8,22 @@ import 'package:git_touch/widgets/issue_item.dart';
|
||||
import 'package:git_touch/widgets/label.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
final gitlabIssuesRouter = RouterScreen('/gitlab/projects/:id/issues',
|
||||
(context, params) => GitlabIssuesScreen(params['id'].first));
|
||||
final gitlabIssuesRouter = RouterScreen(
|
||||
'/gitlab/projects/:id/issues',
|
||||
(context, params) => GitlabIssuesScreen(
|
||||
params['id'].first,
|
||||
prefix: params['prefix'].first,
|
||||
));
|
||||
|
||||
class GitlabIssuesScreen extends StatelessWidget {
|
||||
final String id;
|
||||
|
||||
GitlabIssuesScreen(this.id);
|
||||
final String prefix;
|
||||
GitlabIssuesScreen(this.id, {this.prefix});
|
||||
|
||||
Future<ListPayload<GitlabIssue, int>> _query(BuildContext context,
|
||||
[int page = 1]) async {
|
||||
final res = await Provider.of<AuthModel>(context)
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
final res = await auth
|
||||
.fetchGitlabWithPage('/projects/$id/issues?state=opened&page=$page');
|
||||
return ListPayload(
|
||||
cursor: res.cursor,
|
||||
@ -47,7 +52,8 @@ class GitlabIssuesScreen extends StatelessWidget {
|
||||
for (var label in p.labels)
|
||||
MyLabel(name: label, cssColor: '#428BCA')
|
||||
]),
|
||||
url: '/gitlab/projects/${p.projectId}/issues/${p.iid}',
|
||||
// url: '/gitlab/projects/${p.projectId}/issues/${p.iid}',
|
||||
url: '$prefix/issues/${p.iid}', // TODO:
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -10,12 +10,15 @@ import 'package:provider/provider.dart';
|
||||
|
||||
final gitlabMergeRequestsRouter = RouterScreen(
|
||||
'/gitlab/projects/:id/merge_requests',
|
||||
(context, params) => GitlabMergeRequestsScreen(params['id'].first));
|
||||
(context, params) => GitlabMergeRequestsScreen(
|
||||
params['id'].first,
|
||||
prefix: params['prefix'].first,
|
||||
));
|
||||
|
||||
class GitlabMergeRequestsScreen extends StatelessWidget {
|
||||
final String id;
|
||||
|
||||
GitlabMergeRequestsScreen(this.id);
|
||||
final String prefix;
|
||||
GitlabMergeRequestsScreen(this.id, {this.prefix});
|
||||
|
||||
Future<ListPayload<GitlabIssue, int>> _query(BuildContext context,
|
||||
[int page = 1]) async {
|
||||
@ -48,7 +51,8 @@ class GitlabMergeRequestsScreen extends StatelessWidget {
|
||||
for (var label in p.labels)
|
||||
MyLabel(name: label, cssColor: '#428BCA')
|
||||
]),
|
||||
url: '/gitlab/projects/${p.projectId}/merge_requests/${p.iid}',
|
||||
// url: '/gitlab/projects/${p.projectId}/merge_requests/${p.iid}',
|
||||
url: '$prefix/merge_requests/${p.iid}', // TODO:
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -70,7 +70,10 @@ class GitlabProjectScreen extends StatelessWidget {
|
||||
final langs = t.item2;
|
||||
final badges = t.item3;
|
||||
final theme = Provider.of<ThemeModel>(context);
|
||||
// final auth = Provider.of<AuthModel>(context);
|
||||
final auth = Provider.of<AuthModel>(context);
|
||||
final prefix =
|
||||
'${auth.activeAccount.domain}/${p.namespace.path}/${p.name}'
|
||||
.urlencode;
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: <Widget>[
|
||||
@ -123,13 +126,13 @@ class GitlabProjectScreen extends StatelessWidget {
|
||||
leftIconData: Octicons.issue_opened,
|
||||
text: Text('Issues'),
|
||||
rightWidget: Text(numberFormat.format(p.openIssuesCount)),
|
||||
url: '/gitlab/projects/$id/issues',
|
||||
url: '/gitlab/projects/$id/issues?prefix=$prefix',
|
||||
),
|
||||
if (p.mergeRequestsEnabled)
|
||||
TableViewItem(
|
||||
leftIconData: Octicons.git_pull_request,
|
||||
text: Text('Merge requests'),
|
||||
url: '/gitlab/projects/$id/merge_requests',
|
||||
url: '/gitlab/projects/$id/merge_requests?prefix=$prefix',
|
||||
),
|
||||
TableViewItem(
|
||||
leftIconData: Octicons.history,
|
||||
|
Loading…
x
Reference in New Issue
Block a user