From: Alan Knowles Date: Tue, 20 Sep 2011 14:47:11 +0000 (+0800) Subject: Final User interface tweaks to basic commit code (shows dialogs while it does stuff) X-Git-Url: http://git.roojs.org/?p=gitlive;a=commitdiff_plain;h=1902797edba9854af86c80194016849ca6f80dd5 Final User interface tweaks to basic commit code (shows dialogs while it does stuff) --- diff --git a/Merger.bjs b/Merger.bjs index 4f3b3d2d..fa7ebd0a 100644 --- a/Merger.bjs +++ b/Merger.bjs @@ -231,7 +231,7 @@ "items": [ { "listeners": { - "clicked": "function (self) {\n \n \n var model = this.get('/historyTreeStore');\n \n if (model.release === false) {\n return;\n }\n \n \n var files = this.get('/changedFilesView').files();\n \n if (!files.length) {\n return; // error.!\n }\n var diff = Merger.repo.diff(files, model.release, model.rev);\n \n \n print(\"history?\");\n \n \n var history = Merger.repo.history(files, 1, 'rev', model.rev);\n \n print(\"History\" + JSON.stringify(history, null,4));\n \n Commit = imports.Commit.Commit;\n\n Commit.el.set_modal(true);\n Commit.el.set_transient_for(Merger.el);\n\n var ce = Commit.show({\n repo : Merger.repo,\n files : files,\n release : model.release,\n rev : model.rev,\n author : history[0].changeby,\n changed : history[0].changed_raw\n \n \n });\n if (ce === false ) {\n return;\n }\n \n \n var diff = Merger.repo.diff(files, model.release, model.rev);\n \n \n print(JSON.stringify(ce,null,4));\n //.... commit!!!\n \n imports.GitMonitor.GitMonitor.pause();\n try { \n \n Merger.repo.checkout(model.release);\n \n print(\"Call apply patch\");\n \n Merger.repo.applyPatch(diff);\n \n var author = Merger.repo.parseAuthor(ce.author);\n \n print(\"Add new files.\");\n // add all the files..\n Merger.repo.add(files);\n \n print(\"Commit changes.\");\n Merger.repo.commit({\n name : author.name,\n email : author.email,\n author : ce.author,\n changed : ce.changed,\n reason : ce.message,\n files : files\n \n });\n \n \n } catch (e) {\n //message..\n \n var msg = new Gtk.MessageDialog({\n message_type: Gtk.MessageType.ERROR, \n buttons : Gtk.ButtonsType.OK, \n text: e.message\n });\n msg.run();\n msg.destroy();\n Merger.repo.stash(); // revert change.. - so we can go back...\n }\n Merger.repo.checkout(model.working);\n \n \n // if gitlive was previously running warn the user that it is now paused..\n \n var cmsg = new Gtk.MessageDialog({\n message_type: Gtk.MessageType.ERROR, \n buttons : Gtk.ButtonsType.OK, \n text: \"Git Live is now paused \"\n });\n cmsg.run();\n cmsg.destroy();\n GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 15, function() {\n imports.GitMonitor.GitMonitor.resume();\n return false; //only once.\n });\n \n \n\n\n} " + "clicked": "function (self) {\n \n \n var model = this.get('/historyTreeStore');\n \n if (model.release === false) {\n return;\n }\n \n \n var files = this.get('/changedFilesView').files();\n \n if (!files.length) {\n return; // error.!\n }\n var diff = Merger.repo.diff(files, model.release, model.rev);\n \n \n print(\"history?\");\n \n \n var history = Merger.repo.history(files, 1, 'rev', model.rev);\n \n print(\"History\" + JSON.stringify(history, null,4));\n \n Commit = imports.Commit.Commit;\n\n Commit.el.set_modal(true);\n Commit.el.set_transient_for(Merger.el);\n\n var ce = Commit.show({\n repo : Merger.repo,\n files : files,\n release : model.release,\n rev : model.rev,\n author : history[0].changeby,\n changed : history[0].changed_raw\n \n \n });\n if (ce === false ) {\n return;\n }\n \n \n var diff = Merger.repo.diff(files, model.release, model.rev);\n \n \n print(JSON.stringify(ce,null,4));\n //.... commit!!!\n \n imports.GitMonitor.GitMonitor.pause();\n \n \n \n var msg = new Gtk.MessageDialog( {\n buttons : Gtk.ButtonsType.NONE,\n text: \"Committing Changes\"\n });\n \n msg.set_transient_for(Merger.el);\n msg.set_modal(true);\n msg.show_all();\n\n \n \n try { \n \n Merger.repo.checkout(model.release);\n \n print(\"Call apply patch\");\n \n Merger.repo.applyPatch(diff);\n \n var author = Merger.repo.parseAuthor(ce.author);\n \n print(\"Add new files.\");\n // add all the files..\n Merger.repo.add(files);\n \n print(\"Commit changes.\");\n Merger.repo.commit({\n name : author.name,\n email : author.email,\n author : ce.author,\n changed : ce.changed,\n reason : ce.message,\n files : files\n \n });\n \n \n } catch (e) {\n //message..\n msg.hide();\n \n var emsg = new Gtk.MessageDialog({\n message_type: Gtk.MessageType.ERROR, \n buttons : Gtk.ButtonsType.OK, \n text: e.message\n });\n emsg.set_transient_for(Merger.el);\n emsg.set_modal(true);\n emsg.run();\n emsg.destroy();\n Merger.repo.stash(); // revert change.. - so we can go back...\n }\n msg.show_all();\n msg.set_markup(\"Changing to previous branch\");\n Merger.repo.checkout(model.working);\n \n \n // if gitlive was previously running warn the user that it is now paused..\n /*\n var cmsg = new Gtk.MessageDialog({\n message_type: Gtk.MessageType.ERROR, \n buttons : Gtk.ButtonsType.OK, \n text: \"Git Live is now paused \"\n });\n cmsg.run();\n cmsg.destroy();\n */\n var _t = this;\n GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 5, function() {\n imports.GitMonitor.GitMonitor.resume();\n msg.hide();\n msg.destroy();\n _t.get('/historyTreeStore').loadTree();\n _t.get('/changedFilesStore').el.clear();\n _t.get('/patchview').showDiff(files); \n return false; //only once.\n });\n \n \n\n\n} " }, "label": "Commit diff (no merge)", "xtype": "Button", diff --git a/Merger.js b/Merger.js index be1871f6..543b6440 100644 --- a/Merger.js +++ b/Merger.js @@ -629,6 +629,20 @@ Merger=new XObject({ //.... commit!!! imports.GitMonitor.GitMonitor.pause(); + + + + var msg = new Gtk.MessageDialog( { + buttons : Gtk.ButtonsType.NONE, + text: "Committing Changes" + }); + + msg.set_transient_for(Merger.el); + msg.set_modal(true); + msg.show_all(); + + + try { Merger.repo.checkout(model.release); @@ -657,21 +671,26 @@ Merger=new XObject({ } catch (e) { //message.. + msg.hide(); - var msg = new Gtk.MessageDialog({ + var emsg = new Gtk.MessageDialog({ message_type: Gtk.MessageType.ERROR, buttons : Gtk.ButtonsType.OK, text: e.message }); - msg.run(); - msg.destroy(); + emsg.set_transient_for(Merger.el); + emsg.set_modal(true); + emsg.run(); + emsg.destroy(); Merger.repo.stash(); // revert change.. - so we can go back... } + msg.show_all(); + msg.set_markup("Changing to previous branch"); Merger.repo.checkout(model.working); // if gitlive was previously running warn the user that it is now paused.. - + /* var cmsg = new Gtk.MessageDialog({ message_type: Gtk.MessageType.ERROR, buttons : Gtk.ButtonsType.OK, @@ -679,8 +698,15 @@ Merger=new XObject({ }); cmsg.run(); cmsg.destroy(); - GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 15, function() { + */ + var _t = this; + GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 5, function() { imports.GitMonitor.GitMonitor.resume(); + msg.hide(); + msg.destroy(); + _t.get('/historyTreeStore').loadTree(); + _t.get('/changedFilesStore').el.clear(); + _t.get('/patchview').showDiff(files); return false; //only once. });