NewBranch.bjs
[gitlive] / Ticket.vala
index 8b37b65..9857b7f 100644 (file)
@@ -67,8 +67,22 @@ public class Ticket : Object
                        return;
                }
                 
-               return; 
                 
+               var tid = RooTicket.singleton().createTicket(
+               
+                       _this.project_id.selectedProjectId(),
+               
+                       _this.milestone_id.selectedMilestoneId(),
+                       _this.priority_id.selectedPriorityId() ,
+                       _this.classification_id.selectedClassificationId() ,
+                       _this.developer_id.selectedDeveloperId(),
+                       _this.summary.el.get_text() ,
+                       _this.description.el.buffer.text 
+               );
+               
+               if (this.repo != null) {
+                       NewBranch.singleton().show(this.repo, new Gee.ArrayList<GitMonitorQueue>(), tid);
+               }
                 
         
                 
@@ -206,7 +220,7 @@ public class Ticket : Object
             this.el.attach_defaults (  child_15.el , 0,1,11,12 );
             var child_16 = new Xcls_Button27( _this );
             child_16.ref();
-            this.el.attach_defaults (  child_16.el , 0,4,12,13 );
+            this.el.attach_defaults (  child_16.el , 0,4,13,14 );
         }
 
         // user defined functions
@@ -297,6 +311,15 @@ public class Ticket : Object
                }
                var project_id = this.selectedProjectId();
                
+               var rt = RooTicket.singleton();
+               rt.loadProjectOptions(project_id);
+               
+               _this.msmodel.loadMilestones();
+               _this.primodel.loadPriorities();
+               _this.sevmodel.loadSeverities();
+               _this.clmodel.loadClassifications();    
+               _this.devmodel.loadDevelopers();        
+               
                // affects projects and milestones..
                
                
@@ -540,7 +563,7 @@ public class Ticket : Object
         }
 
         // user defined functions
-        public void loadMilestones (string id) {
+        public void loadMilestones ( ) {
         
             var rt = RooTicket.singleton();
            // rt.loadProjects();
@@ -556,24 +579,21 @@ public class Ticket : Object
             
             el.set_value(iter, 0, "");
             el.set_value(iter, 1, "-- select a milestone --");
-                   _this.milestone_id.el.set_active_iter(iter);    
-            /*
-            if (id == "") {
-        
-            }
-            var projects = rt.projects;
+            _this.milestone_id.el.set_active_iter(iter);    
+             
+            var projects = rt.milestones;
             foreach(var project in projects) {
             
                 el.append(out iter);
                 
                 el.set_value(iter, 0, project.id);
-                el.set_value(iter, 1,  project.name );
-                if (id == project.id) {
-                          _this.milestone.el.set_active_iter(iter);
-                   }   
+                el.set_value(iter, 1,  project.display_name );
+              //  if (id == project.id) {
+                //        _this.milestone.el.set_active_iter(iter);
+                //   }   
                 
             }
-            */
+            
             
             _this.milestone_id.loading = false;
              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
@@ -720,7 +740,7 @@ public class Ticket : Object
         }
 
         // user defined functions
-        public void loadPriority (string id) {
+        public void loadPriorities ( ) {
         
             var rt = RooTicket.singleton();
            // rt.loadProjects();
@@ -731,27 +751,20 @@ public class Ticket : Object
             Gtk.TreeIter iter;
             var el = this.el;
             
-            el.append(out iter);
-        
             
-            el.set_value(iter, 0, "");
-            el.set_value(iter, 1, "-- select priority --");
-           // if (id == "") {
-                   _this.priority_id.el.set_active_iter(iter);
-            //}
-            /*var projects = rt.projects;
+           var projects = rt.priorities;
             foreach(var project in projects) {
             
                 el.append(out iter);
                 
                 el.set_value(iter, 0, project.id);
-                el.set_value(iter, 1,  project.name );
-                if (id == project.id) {
+                el.set_value(iter, 1,  project.display_name );
+                if ("normal" == project.name) {
                           _this.priority_id.el.set_active_iter(iter);
                    }   
                 
             }
-            */
+            
             _this.priority_id.loading = false;
                    
                                              
@@ -849,7 +862,7 @@ public class Ticket : Object
         }
 
         // user defined functions
-        public void loadProjects (string id) {
+        public void loadSeverities () {
         
             var rt = RooTicket.singleton();
             //rt.loadProjects();
@@ -859,29 +872,20 @@ public class Ticket : Object
             this.el.clear();                                    
             Gtk.TreeIter iter;
             var el = this.el;
-            
-            el.append(out iter);
-        
-            
-            el.set_value(iter, 0, "");
-            el.set_value(iter, 1, "-- select severity --");
-           // if (id == "") {
-                   _this.severity_id.el.set_active_iter(iter);
-           // }
-           /*
-            var projects = rt.projects;
+             
+            var projects = rt.serverities;
             foreach(var project in projects) {
             
                 el.append(out iter);
                 
                 el.set_value(iter, 0, project.id);
-                el.set_value(iter, 1,  project.name );
-                if (id == project.id) {
-                          _this.projectsel.el.set_active_iter(iter);
+                el.set_value(iter, 1,  project.display_name );
+                if ("normal" == project.name) {
+                          _this.severity_id.el.set_active_iter(iter);
                    }   
                 
             }
-            */
+           
             _this.severity_id.loading = false;
              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
                                              
@@ -942,13 +946,13 @@ public class Ticket : Object
         }
 
         // user defined functions
-        public string selectedProjectId () {
+        public string selectedClassificationId () {
                Gtk.TreeIter iter;
                Value val1;
          
          
                this.el.get_active_iter (out iter);
-               _this.prmodel.el.get_value (iter, 0, out val1);
+               _this.clmodel.el.get_value (iter, 0, out val1);
          
         
                return  (string) val1;
@@ -979,7 +983,7 @@ public class Ticket : Object
         }
 
         // user defined functions
-        public void loadClassifications (string id) {
+        public void loadClassifications ( ) {
         
             var rt = RooTicket.singleton();
             // rt.loadProjects();
@@ -992,26 +996,20 @@ public class Ticket : Object
             
             el.append(out iter);
         
-            
-            el.set_value(iter, 0, "");
-            el.set_value(iter, 1, "-- select a project --");
-            if (id == "") {
-                   _this.classification_id.el.set_active_iter(iter);
-            }
-            /*
-            var projects = rt.projects;
+             
+            var projects = rt.classifications;
             foreach(var project in projects) {
             
                 el.append(out iter);
                 
                 el.set_value(iter, 0, project.id);
-                el.set_value(iter, 1,  project.name );
-                if (id == project.id) {
+                el.set_value(iter, 1,  project.display_name );
+                if ("bug" == project.name) {
                           _this.classification_id.el.set_active_iter(iter);
                    }   
                 
             }
-            */
+            
             _this.classification_id.loading = false;
              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
                                              
@@ -1109,7 +1107,7 @@ public class Ticket : Object
         }
 
         // user defined functions
-        public void loadDevelopers (string id) {
+        public void loadDevelopers ( ) {
         
             var rt = RooTicket.singleton();
             //rt.loadProjects();
@@ -1124,24 +1122,24 @@ public class Ticket : Object
         
             
             el.set_value(iter, 0, "");
-            el.set_value(iter, 1, "-- select a project --");
-            if (id == "") {
+            el.set_value(iter, 1, "-- select a developer --");
+          //  if (id == "") {
                    _this.developer_id.el.set_active_iter(iter);
-            }
-            /*
-            var projects = rt.projects;
+           // }
+            
+            var projects = rt.developers;
             foreach(var project in projects) {
             
                 el.append(out iter);
                 
                 el.set_value(iter, 0, project.id);
-                el.set_value(iter, 1,  project.name );
-                if (id == project.id) {
-                          _this.projectsel.el.set_active_iter(iter);
-                   }   
+                el.set_value(iter, 1,  project.display_name );
+        //        if (id == project.id) {
+               //         _this.projectsel.el.set_active_iter(iter);
+        //         }   
                 
             }
-            */
+         
             _this.developer_id.loading = false;
              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
                                              
@@ -1166,7 +1164,7 @@ public class Ticket : Object
             // my vars (dec)
 
             // set gobject values
-            this.el.label = "Create Branch";
+            this.el.label = "Create Ticket";
 
             // init method
 
@@ -1177,6 +1175,59 @@ public class Ticket : Object
             //listeners
             this.el.clicked.connect( () => {
                GLib.debug("fire response = 1");
+               
+               
+               var invalid = false;
+               
+               // validate first...
+               _this.project_id.el.get_child().get_style_context().remove_class("warning");    
+               if (_this.project_id.selectedProjectId() == "") {
+                       _this.project_id.el.get_child().get_style_context().add_class("warning");
+                       invalid = true;
+               }
+               
+               _this.milestone_id.el.get_child().get_style_context().remove_class("warning");  
+               if (_this.milestone_id.selectedMilestoneId() == "") {
+                       _this.milestone_id.el.get_child().get_style_context().add_class("warning");
+                       invalid = true;
+               }
+            
+               _this.priority_id.el.get_child().get_style_context().remove_class("warning");   
+               if (_this.priority_id.selectedPriorityId() == "") {
+                       _this.priority_id.el.get_child().get_style_context().add_class("warning");
+                       invalid = true;
+               }
+               
+               _this.classification_id.el.get_child().get_style_context().remove_class("warning");     
+               if (_this.classification_id.selectedClassificationId() == "") {
+                       _this.classification_id.el.get_child().get_style_context().add_class("warning");
+                       invalid = true;
+               }
+               
+               _this.developer_id.el.get_child().get_style_context().remove_class("warning");  
+               if (_this.developer_id.selectedDeveloperId() == "") {
+                       _this.developer_id.el.get_child().get_style_context().add_class("warning");
+                       invalid = true;
+               }
+               
+               _this.summary.el.get_style_context().remove_class("warning");   
+               if (_this.summary.el.get_text() == "") {
+                       _this.summary.el.get_style_context().add_class("warning");
+                       invalid = true;
+               }
+               
+               _this.description.el.get_style_context().remove_class("warning");       
+               if (_this.description.el.buffer.text == "") {
+                       _this.description.el.get_style_context().add_class("warning");
+                       invalid = true;
+               }
+               
+               
+               if (invalid) {
+                       return;
+               }
+               GLib.debug("for is valid");
+               
                _this.el.response(1);
             });
         }