X-Git-Url: http://git.roojs.org/?p=gitlive;a=blobdiff_plain;f=MergeBranch.bjs;h=28cf6315137bc678d08e460fd6b3f737862e43de;hp=905cd03a18337c1e7b351fa85234878c963313cb;hb=f23101131b07ea3b3c411f32065539db10418d1c;hpb=01e7beaf18d9aca3c2c2ad6f60c4b183aa177888 diff --git a/MergeBranch.bjs b/MergeBranch.bjs index 905cd03a..28cf6315 100644 --- a/MergeBranch.bjs +++ b/MergeBranch.bjs @@ -10,15 +10,14 @@ { "listeners" : { "delete_event" : "(self, event) => {\n this.el.hide();\n return true; \n //test \n}\n ", - "response" : " (self, response_id) => { \n \n\tGLib.debug(\"got %d\", (int) response_id);\n\tif (response_id == 0) {\n\t _this.el.hide();\t\n\t this.running = false; \n \tGitMonitor.gitmonitor.start();\n\t \treturn;\n\t}\n\t /*\n\t// have they selected a ticket..\n\t// make that the current active ticket?\n\t// we really need to store locally what ticket is being worked on..\n\t// in theory we could be working on multiple project and not merging..\n\t// -- each repo would have their active ticket (only one per repo)\n\t// -- so we could just store that in there\n\t// -- initial load can check the contents of the ticket files on first scan.\n\tvar ticket_id = _this.ticketsel.selectedTicketId();\n\t\n if (this.repo != null) {\n \tvar bn = _this.name.el.get_text();\n \tif (ticket_id != \"\" ) {\n\t\t\tthis.repo.setActiveTicket( RooTicket.singleton().getById(ticket_id), bn);\n\t\t} else {\n\t\t\tthis.repo.createBranchNamed(bn);\n\t\t}\n }\n\t*/\n\t\n\tif (this.repo != null) {\n\t\trepo.doMerge(\n\t\t\t_this.actionsel.selectedAction(), \n\t\t\t_this.ticketsel.selectedTicketId(),\n\t\t\t_this.name.el.get_text()\n\t\t);\n\t\n\t} else {\n\t\tGitRepo.doMerges(\n\t\t\t_this.actionsel.selectedAction(), \n\t\t\t_this.ticketsel.selectedTicketId(),\n\t\t\t_this.name.el.get_text()\n\t\t);\n\t}\n\tthis.running = false; \n\n\t \n\t_this.el.hide();\t\n \tGitMonitor.gitmonitor.start();\n\n\t \n}", - "show" : "(self) => {\n \n\n //test\n}" + "response" : " (self, response_id) => { \n \n\tGLib.debug(\"got %d\", (int) response_id);\n\tif (response_id < 1) {\n\t _this.el.hide();\t\n\t this.running = false; \n \tGitMonitor.gitmonitor.start();\n\t \treturn;\n\t}\n\t /*\n\t// have they selected a ticket..\n\t// make that the current active ticket?\n\t// we really need to store locally what ticket is being worked on..\n\t// in theory we could be working on multiple project and not merging..\n\t// -- each repo would have their active ticket (only one per repo)\n\t// -- so we could just store that in there\n\t// -- initial load can check the contents of the ticket files on first scan.\n\tvar ticket_id = _this.ticketsel.selectedTicketId();\n\t\n if (this.repo != null) {\n \tvar bn = _this.name.el.get_text();\n \tif (ticket_id != \"\" ) {\n\t\t\tthis.repo.setActiveTicket( RooTicket.singleton().getById(ticket_id), bn);\n\t\t} else {\n\t\t\tthis.repo.createBranchNamed(bn);\n\t\t}\n }\n\t*/\n\t\n\tif (this.repo != null) {\n\t\trepo.doMerge(\n\t\t\t_this.actionsel.selectedAction(), \n\t\t\t_this.ticketsel.selectedTicketId(),\n\t\t\t_this.name.el.get_text()\n\t\t);\n\t\n\t} else {\n\t\tGitRepo.doMerges(\n\t\t\t_this.actionsel.selectedAction(), \n\t\t\t_this.ticketsel.selectedTicketId(),\n\t\t\t_this.name.el.get_text()\n\t\t);\n\t}\n\tthis.running = false; \n\n\t \n\t_this.el.hide();\t\n \tGitMonitor.gitmonitor.start();\n\n\t \n}" }, "default_width" : 500, "# GitRepo repo" : "", "$ deletable" : true, "title" : "Merge Branch", "xtype" : "Dialog", - "| void show" : "( RooTicket ticket, GitRepo? repo ) \n{\n // this.el.set_gravity(Gdk.Gravity.NORTH);\n if (this.running) {\n \treturn;\n\t}\n\tGitMonitor.gitmonitor.stop();\n\t\n this.ticket = ticket;\n this.repo = repo;\n \n\tthis.el.move((Gdk.Screen.width() / 2)- 250 ,0);\n \tGLib.debug(\"Loading tickets\"); \n\n\n this.el.show_all();\n \t_this.dbmodel.loadTickets();\n \t_this.actionmodel.loadActions();\n\t_this.view.loadTicket(ticket.id);\n\n}", + "| void show" : "( RooTicket ticket, GitRepo? repo ) \n{\n // this.el.set_gravity(Gdk.Gravity.NORTH);\n if (this.running) {\n \treturn;\n\t}\n\tGitMonitor.gitmonitor.stop();\n\t\n\t_this.el.show_all();\n\t\n\t_this.table.el.hide();\n\t_this.scrolled_window.el.hide();\n\t_this.spinner.el.show();\n\t_this.spinner.el.start();\t\n\tthis.el.set_keep_above(true); \n\tthis.el.move((Gdk.Screen.width() / 2)- 250 ,0);\n \tGLib.debug(\"Loading tickets\"); \n \n\t\n this.ticket = ticket;\n this.repo = repo;\n \n\t\n\tTimeout.add_seconds(1, () => {\n\t _this.diff_view.el.get_buffer().set_text(\n\t \trepo != null ? repo.previewMerge() : GitRepo.previewMerges(ticket.id)\n \t);\t\t\n\t\t// if we are not working on a ticket, then we should be able to pick one?\n\t \t_this.dbmodel.loadTickets();\n\t \t_this.actionmodel.loadActions();\n\t\t_this.view.loadTicket(ticket.id);\n\t\t_this.spinner.el.stop();\n\t\t_this.spinner.el.hide();\t\n\n\t\tthis.table.el.show();\n\t\treturn false;\n\t});\n\t\n\tthis.el.run();\n\t \n}", "default_height" : 200, "# RooTicket? ticket" : "null", "$ xns" : "Gtk", @@ -32,9 +31,10 @@ "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL", "items" : [ { + "id" : "table", "bool homogeneous" : false, - "* pack" : "pack_start,false,false,0", "xtype" : "Table", + "* pack" : "pack_start,false,false,0", "uint column_spacing" : 2, "n_columns" : 2, "$ xns" : "Gtk", @@ -140,22 +140,85 @@ ] }, { - "int height_request" : 500, - "id" : "scrolled_window", - "* init" : "{\n\tthis.el.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);\n}\n", "* pack" : "add", - "xtype" : "ScrolledWindow", + "xtype" : "Notebook", "$ xns" : "Gtk", "bool vexpand" : true, "items" : [ { - "id" : "view", - "xtype" : "WebView", - "* pack" : "add", - "$ xns" : "WebKit", - "| void loadTicket" : "(string tid) {\n\tint h,w;\n\t_this.el.get_size(out w, out h);\n\t\n\tif (tid == \"\") {\n\t\t_this.scrolled_window.el.hide();\n\t\t_this.el.resize(w, 150);\n\t} else {\n\t\t_this.scrolled_window.el.show();\n\t\t_this.el.resize(w, 800);\n\t}\n\t\n\tvar rs = RooTicket.singleton();\t\t\n\tvar uri = new WebKit.URIRequest(\"https://roojs.com/admin.php/MTrack/View/\" + tid);\n\tvar hd = uri.get_http_headers();\n\tvar authCode = Base64.encode (\"%s:%s\".printf(rs.username, rs.password).data);\n\thd.append(\"Authorization\", \"Basic %s\".printf(authCode));\n\t\n\t this.el.load_request(uri);\n}\n" + "id" : "label_diff", + "* pack" : false, + "xtype" : "Label", + "string label" : "Projected Commit Diff", + "$ xns" : "Gtk" + }, + { + "id" : "label_ticket", + "string label" : "Ticket Details", + "* pack" : false, + "xtype" : "Label", + "$ xns" : "Gtk" + }, + { + "* pack" : "append_page,_this.label_diff.el", + "xtype" : "Box", + "gboolean homogeneous" : false, + "$ xns" : "Gtk", + "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL", + "items" : [ + { + "int height_request" : 400, + "* pack" : "pack_start,true,true,0", + "xtype" : "ScrolledWindow", + "$ xns" : "Gtk", + "items" : [ + { + "id" : "diff_view", + "* init" : " \n var description = Pango.FontDescription.from_string(\"monospace\");\n description.set_size(9000);\n this.el.override_font(description);\n var lm = Gtk.SourceLanguageManager.get_default();\n \n ((Gtk.SourceBuffer)(this.el.get_buffer())).set_language(\n lm.get_language(\"diff\")\n );", + "xtype" : "View", + "* pack" : "add", + "$ xns" : "GtkSource" + } + ] + } + ] + }, + { + "* pack" : "append_page,_this.label_ticket.el", + "xtype" : "Box", + "gboolean homogeneous" : false, + "$ xns" : "Gtk", + "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL", + "items" : [ + { + "int height_request" : 500, + "id" : "scrolled_window", + "* init" : "{\n\tthis.el.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);\n}\n", + "* pack" : "add", + "xtype" : "ScrolledWindow", + "$ xns" : "Gtk", + "bool vexpand" : true, + "items" : [ + { + "id" : "view", + "* pack" : "add", + "xtype" : "WebView", + "$ xns" : "WebKit", + "| void loadTicket" : "(string tid) {\n\tint h,w;\n\t_this.el.get_size(out w, out h);\n\t\n\tif (tid == \"\") {\n\t\t_this.scrolled_window.el.hide();\n\t\t_this.el.resize(w, 150);\n\t} else {\n\t\t_this.scrolled_window.el.show();\n\t\t_this.el.resize(w, 800);\n\t}\n\t\n\tvar rs = RooTicket.singleton();\t\t\n\tvar uri = new WebKit.URIRequest(\"https://roojs.com/admin.php/MTrack/View/\" + tid);\n\tvar hd = uri.get_http_headers();\n\tvar authCode = Base64.encode (\"%s:%s\".printf(rs.username, rs.password).data);\n\thd.append(\"Authorization\", \"Basic %s\".printf(authCode));\n\t\n\t this.el.load_request(uri);\n}\n" + } + ] + } + ] } ] + }, + { + "id" : "spinner", + "bool hexpand" : true, + "* pack" : "add", + "xtype" : "Spinner", + "$ xns" : "Gtk", + "bool vexpand" : true } ] }, @@ -168,6 +231,7 @@ }, { "label" : "Do Merge", + "* init" : "{\n this.el.get_style_context().add_class(\"suggested-action\");\n}\n", "xtype" : "Button", "* pack" : "add_action_widget,1", "$ xns" : "Gtk"