未验证 提交 8965093a 编写于 作者: F Fatih Acet

Refresh sidebar.

上级 7474af85
......@@ -103,7 +103,11 @@
},
{
"command": "gl.refreshSidebar",
"title": "GitLab: Refresh sidebar"
"title": "GitLab: Refresh sidebar",
"icon": {
"light": "src/assets/images/light/refresh.svg",
"dark": "src/assets/images/dark/refresh.svg"
}
}
],
"menus": {
......
......@@ -3,9 +3,12 @@ const gitLabService = require('../gitlab_service');
class DataProvider {
constructor({ fetcher, issuableType }) {
this._onDidChangeTreeData = new vscode.EventEmitter();
this.onDidChangeTreeData = this._onDidChangeTreeData.event;
this.fetcher = fetcher;
this.issuableType = issuableType || 'issue';
this.issuableSign = issuableType === 'issue' ? '#' : '!';
this.issuableSign = this.issuableType === 'issue' ? '#' : '!';
}
async getChildren() {
......@@ -30,12 +33,18 @@ class DataProvider {
return items;
}
getParent() {
return null;
}
getTreeItem(item) {
return item;
}
refresh() {
this._onDidChangeTreeData.fire();
}
}
exports.DataProvider = DataProvider;
......@@ -5,10 +5,14 @@ const tokenService = require('./token_service');
const pipelineActionsPicker = require('./pipeline_actions_picker');
const searchInput = require('./search_input');
const snippetInput = require('./snippet_input');
const sidebar = require('./sidebar');
const ciConfigValidator = require('./ci_config_validator');
const IssuableDataProvider = require('./data_providers/issuable').DataProvider;
let context = null;
vscode.gitLabWorkflow = {
sidebarDataProviders: [],
};
const registerCommands = () => {
const commands = {
......@@ -28,13 +32,17 @@ const registerCommands = () => {
'gl.compareCurrentBranch': openers.compareCurrentBranch,
'gl.createSnippet': snippetInput.show,
'gl.validateCIConfig': ciConfigValidator.validate,
'gl.refreshSidebar': snippetInput.show,
'gl.refreshSidebar': sidebar.refresh,
};
Object.keys(commands).forEach(cmd => {
context.subscriptions.push(vscode.commands.registerCommand(cmd, commands[cmd]));
});
registerSidebarTreeDataProviders();
};
const registerSidebarTreeDataProviders = () => {
const assignedIssuesDataProvider = new IssuableDataProvider({
fetcher: 'fetchIssuesAssignedToMe',
});
......@@ -53,11 +61,16 @@ const registerCommands = () => {
issuableType: 'merge request',
});
vscode.window.registerTreeDataProvider('issuesAssignedToMe', assignedIssuesDataProvider);
vscode.window.registerTreeDataProvider('issuesCreatedByMe', createdIssuesDataProvider);
vscode.window.registerTreeDataProvider('mrsAssignedToMe', assignedMrsDataProvider);
vscode.window.registerTreeDataProvider('mrsCreatedByMe', createdMrsDataProvider);
};
const register = (name, provider) => {
vscode.window.registerTreeDataProvider(name, provider);
vscode.gitLabWorkflow.sidebarDataProviders.push(provider);
}
register('issuesAssignedToMe', assignedIssuesDataProvider);
register('issuesCreatedByMe', createdIssuesDataProvider);
register('mrsAssignedToMe', assignedMrsDataProvider);
register('mrsCreatedByMe', createdMrsDataProvider);
}
const init = () => {
tokenService.init(context);
......
const vscode = require('vscode');
const refresh = () => {
vscode.gitLabWorkflow.sidebarDataProviders.forEach((provider) => {
provider.refresh();
});
}
exports.refresh = refresh;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册