Final User interface tweaks to basic commit code (shows dialogs while it does stuff) github.com.roojs.master
authorAlan Knowles <alan@akbkhome.com>
Tue, 20 Sep 2011 14:47:11 +0000 (22:47 +0800)
committerAlan Knowles <alan@akbkhome.com>
Tue, 20 Sep 2011 14:47:11 +0000 (22:47 +0800)
Merger.bjs
Merger.js

index 4f3b3d2..fa7ebd0 100644 (file)
                                             "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",
index be1871f..543b644 100644 (file)
--- 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.
                                                     });