diff --git a/src/share/git-webui/webui/css/git-webui.less b/src/share/git-webui/webui/css/git-webui.less index 64472fd..8ad3c9d 100644 --- a/src/share/git-webui/webui/css/git-webui.less +++ b/src/share/git-webui/webui/css/git-webui.less @@ -152,6 +152,10 @@ body { content: url(/img/daemon.svg); } + #sidebar-sync h4:before { + content: url(/img/mail-send-receive-symbolic.svg); + } + #sidebar-local-branches, #sidebar-remote-branches { h4:before { content: url(/img/branch.svg); @@ -611,6 +615,7 @@ body { } } + #commit-explorer-view { #commit-explorer-navigator-view { .panel { diff --git a/src/share/git-webui/webui/img/folder-download-symbolic.svg b/src/share/git-webui/webui/img/folder-download-symbolic.svg new file mode 100644 index 0000000..f53d2c9 --- /dev/null +++ b/src/share/git-webui/webui/img/folder-download-symbolic.svg @@ -0,0 +1,34 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + + + diff --git a/src/share/git-webui/webui/img/mail-send-receive-symbolic.svg b/src/share/git-webui/webui/img/mail-send-receive-symbolic.svg new file mode 100644 index 0000000..181da67 --- /dev/null +++ b/src/share/git-webui/webui/img/mail-send-receive-symbolic.svg @@ -0,0 +1,34 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + + + diff --git a/src/share/git-webui/webui/img/pull.svg b/src/share/git-webui/webui/img/pull.svg new file mode 100644 index 0000000..1d99c07 --- /dev/null +++ b/src/share/git-webui/webui/img/pull.svg @@ -0,0 +1,32 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + diff --git a/src/share/git-webui/webui/js/git-webui.js b/src/share/git-webui/webui/js/git-webui.js index b2693e1..fe43801 100644 --- a/src/share/git-webui/webui/js/git-webui.js +++ b/src/share/git-webui/webui/js/git-webui.js @@ -309,6 +309,9 @@ webui.SideBarView = function(mainView) { '' + + '' + '' + @@ -323,6 +326,7 @@ webui.SideBarView = function(mainView) { if (webui.viewonly) { $("#sidebar-workspace", self.element).remove(); + $("#sidebar-sync", self.element).remove(); } else { var workspaceElement = $("#sidebar-workspace h4", self.element); workspaceElement.click(function (event) { @@ -330,6 +334,12 @@ webui.SideBarView = function(mainView) { workspaceElement.addClass("active"); self.mainView.workspaceView.update("stage"); }); + var syncElement = $("#sidebar-sync h4", self.element); + syncElement.click(function (event) { + $("*", self.element).removeClass("active"); + syncElement.addClass("active"); + self.mainView.syncView.update(); + }); } var remoteElement = $("#sidebar-remote h4", self.element); @@ -1710,6 +1720,49 @@ webui.RemoteView = function(mainView) { $(".git-pull", self.element).text("git pull http://" + webui.hostname + ":" + document.location.port + "/"); }; +/* + * == SyncView ======================================================= + */ +webui.SyncView = function(mainView) { + + var self = this; + + self.show = function() { + mainView.switchTo(self.element); + }; + + self.update = function() { + self.show(); + }; + + self.onPush = function() { + webui.git("push"); + self.update(); + } + + self.onFetch = function() { + webui.git("fetch"); + self.update(); + } + + self.onPull = function() { + webui.git("pull"); + self.update(); + } + + self.element = $( '
' + + '

Sync between local and remote

' + + '
' + + '' + + '' + + '' + + '
' + + '
')[0]; + $(".sync-pull", self.element).click(self.onPull); + $(".sync-push", self.element).click(self.onPush); + $(".sync-fetch", self.element).click(self.onFetch); +}; + /* * == Initialization ========================================================= */ @@ -1744,6 +1797,7 @@ function MainUi() { self.historyView = new webui.HistoryView(self); self.remoteView = new webui.RemoteView(self); if (!webui.viewonly) { + self.syncView = new webui.SyncView(self); self.workspaceView = new webui.WorkspaceView(self); } });