svn: /pear2/BugManager/trunk/www/pearworm/source/class/pearworm/model/ Issue.js

[email protected] (Greg Beaver) Wed, 08 Sep 2010 04:39:26 +0000
Newsgroups php.pear.cvs,php.pear.core
Message-ID <[email protected]>
cellog                                   Wed, 08 Sep 2010 04:39:26 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=303160

Log:
bug form now officially looks like the edit page

Changed paths:
    U   pear2/BugManager/trunk/www/pearworm/source/class/pearworm/model/Issue.js

Modified: pear2/BugManager/trunk/www/pearworm/source/class/pearworm/model/Issue.js
===================================================================
--- pear2/BugManager/trunk/www/pearworm/source/class/pearworm/model/Issue.js	2010-09-08 01:46:23 UTC (rev 303159)
+++ pear2/BugManager/trunk/www/pearworm/source/class/pearworm/model/Issue.js	2010-09-08 04:39:26 UTC (rev 303160)
@@ -40,6 +40,9 @@
     assigned : {
       event : "changeAssigned"
     },
+    status : {
+      event: "changeStatus"
+    },
     summary : {
       event: "changeSummary"
     },
@@ -48,6 +51,25 @@
     },
     attachments : {
       event: "changeAttachments"
+    },
+    packagename : {
+      event: "changePackagename"
+    },
+    packageversion : {
+      event: "changePackageversion"
+    },
+    category : {
+      event: "changeCategory"
+    },
+    secondarycategories : {
+      event: "changeSecondarycategories"
+    },
+    os : {
+      event: "changeOs",
+      nullable: true
+    },
+    phpversion : {
+      event: "changePhpversion"
     }
   },
   members : {
@@ -60,6 +82,26 @@
       this.setCreatetimestamp(data.createtimestamp);
       this.setModifiedtimestamp(data.modifiedtimestamp);
       this.setReporter(pearworm.model.Actor.fromData(data.reporter));
+      this.setStatus(data.status);
+      this.setCategory(data.category.primary);
+      this.setAttachments(data.attachments);
+      var assigned = [];
+      for (var i = 0; i < data.assigned.length; i++) {
+        assigned.push(pearworm.model.Actor.fromData(data.assigned[i]));
+      }
+      this.setAssigned(assigned);
+      if (data.packagename) {
+        this.setPackagename(data.packagename.value);
+      }
+      if (data.packageversion) {
+        this.setPackageversion(data.packageversion.value);
+      }
+      if (data.operatingsystem) {
+        this.setOs(data.operatingsystem.value);
+      }
+      if (data.phpversion) {
+        this.setPhpversion(data.phpversion.value);
+      }
     },
     getFancyType: function()
     {
@@ -70,6 +112,11 @@
       }
       return "Unknown";
     },
+    supportsPackage: function()
+    {
+      return this.getCategory() == "PEAR" || this.getCategory() == "PEAR2" ||
+             this.getCategory() == "PECL";
+    },
     getIssueForm: function()
     {
       var form = new qx.ui.form.Form();
@@ -109,10 +156,67 @@
         appearance: "bugheader"
       }), {column: 0, row: 1});
       header.add(new qx.ui.basic.Label(this.getReporter().uniqueId()), { column: 1, row: 1});
+      header.add(new qx.ui.basic.Label("Assigned:").set({
+        appearance: "bugheader"
+      }), {column: 2, row: 1});
+      var assigned = [];
+      for (var i = 0; i < this.getAssigned().length; i++) {
+        assigned.push(this.getAssigned()[i].getHandle());
+      }
+      header.add(new qx.ui.basic.Label(assigned.join(",")), { column: 3, row: 1});

+      // row 2
+      header.add(new qx.ui.basic.Label("Status:").set({
+        appearance: "bugheader"
+      }), {column: 0, row: 2});
+      header.add(new qx.ui.basic.Label(this.getStatus()), { column: 1, row: 2});
+      var text;
+      if (this.supportsPackage()) {
+        text = "Package:";
+      } else {
+        text = "Component:";
+      }
+      header.add(new qx.ui.basic.Label(text).set({
+        appearance: "bugheader"
+      }), {column: 2, row: 2});
+      if (this.supportsPackage()) {
+        header.add(new qx.ui.basic.Label(this.getPackagename() + " (version " +
+                                         this.getPackageversion() + ")"), { column: 3, row: 2});
+      } else {
+        header.add(new qx.ui.basic.Label(this.getPackagename() + " (version " +
+                                         this.getPackageversion() + ")"), { column: 3, row: 2});
+      }

+      // row 3
+      header.add(new qx.ui.basic.Label("PHP Version:").set({
+        appearance: "bugheader"
+      }), {column: 0, row: 3});
+      header.add(new qx.ui.basic.Label(this.getPhpversion()), { column: 1, row: 3});
+      header.add(new qx.ui.basic.Label("OS:").set({
+        appearance: "bugheader"
+      }), {column: 2, row: 3});
+      header.add(new qx.ui.basic.Label(this.getOs()), { column: 3, row: 3});
+
       content.add(header);
-      content.add(renderer, {flex: 5});
+
+      var choices = new qx.ui.tabview.TabView("top"),
+          commentspage = new qx.ui.tabview.Page("Comments"),
+          patchespage = new qx.ui.tabview.Page("Attachments (" + this.getAttachments().length + ")"),
+          editpage = new qx.ui.tabview.Page("Edit"),
+          addpatchpage = new qx.ui.tabview.Page("Add Attachment");
+
+      commentspage.setLayout(new qx.ui.layout.Grow());
+      patchespage.setLayout(new qx.ui.layout.Grow());
+      editpage.setLayout(new qx.ui.layout.Grow());
+      addpatchpage.setLayout(new qx.ui.layout.Grow());
+
+      editpage.add(renderer);
+
+      choices.add(commentspage);
+      choices.add(patchespage);
+      choices.add(editpage);
+      choices.add(addpatchpage);
+      content.add(choices, {flex: 5});
       return content;
     }
   },