Hi all,

We've been using the renderer+pager in production (albeit limited to a small pilot) for at least 5 months now I think (it's been at least that long since I've touched the code). Anyways, I just realized one of our optional columns isn't sorting.

I just tried upgrading to the Infusion 1.1.2 release. Everything seems to work fine still (amazingly, since I was running off a random trunk revision before), but this is still an issue.

Hopefully I'm setting things up wrong.

I have this table header markup:
<thead>
            <tr class="sub-table-header">
                <th class="flc-pager-sort-header">
<a class="student-name-sort" title="Click to sort" href="#">Student Name</a> <img class="student-name-sort-img" src="/library/image/sakai/sortascending.gif" />
                </th>
                <th class="flc-pager-sort-header">
<a class="submitted-time-sort" title="Click to sort" href="#">Submitted</a> <img class="submitted-time-sort-img" src="/library/image/sakai/sortascending.gif" />
                </th>
                <th class="flc-pager-sort-header">
<a class="submission-status-sort" title="Click to sort" href="#">Submission Status</a> <img class="submission-status-sort-img" src="/library/image/sakai/sortascending.gif" />
                </th>
                <th class="grade-col-header flc-pager-sort-header">
<a class="grade-sort" title="Click to sort" href="#">Grade (Released)</a> <!-- <img class="grade-sort-img" src="/library/image/sakai/sortascending.gif" /> TODO: Is this a renderer bug?-->
                </th>
                <th class="report-col-header flc-pager-sort-header">Report
<!-- <a class="submission-report-sort" title="Click to sort" href="#">Report</a> <img class="submission-report-sort-img" src="/library/image/sakai/sortascending.gif" />-->
                </th>
                <th class="flc-pager-sort-header">
<a class="feedback-released-sort" title="Click to sort" href="#">Feedback Released?</a> <img class="feedback-released-sort-img" src="/library/image/sakai/sortascending.gif" />
                </th>
            </tr>
        </thead>

The issue is with the grade-col-header which we don't always display.

The selectors all look like:
[snip]
{ selector: ".submission-report-sort-img", id: "submission-report-sort-img" },
 { selector: ".feedback-released-sort", id: "feedback-released-sort" },
{ selector: ".feedback-released-sort-img", id: "feedback-released-sort-img" },
 { selector: ".grade-sort", id: "grade-sort" },
 { selector: ".grade-sort-img", id: "grade-sort-img" },
 { selector: ".grade-col-header", id: "grade-col-header" },
[snip]

The first part of the tree for the headers looks like:

var tree = {
     children: [
       { ID: "student-name-sort",
         value: true,
         decorators: [
           {"jQuery": ["click", onSortClick('studentName')]}
         ]
       },
       { ID: "submitted-time-sort",
         value: true,
         decorators: [
           {"jQuery": ["click", onSortClick('submittedTime')]}
         ]
       },
       { ID: "submission-status-sort",
         value: true,
         decorators: [
           {"jQuery": ["click", onSortClick('submissionStatus')]}
         ]
       },
       { ID: "feedback-released-sort",
         value: true,
         decorators: [
           {"jQuery": ["click", onSortClick('feedbackReleased')]}
         ]
       }
     ]
 };


Then if the optional column should be included:

if (asnn2subview.graded === true) {
   tree.children.push({
     ID: "grade-col-header", value: true
   });
   tree.children.push({
     ID: "grade-sort",
     value: true,
     decorators: [
       {"jQuery": ["click", onSortClick('grade')]}
     ]
   });
/*
   tree.children.push({
     ID: "grade-col-header:", value: [{
       ID: "grade-sort",
       value: true,
       decorators: [
         {"jQuery": ["click", onSortClick('grade')]}
       ]
     }]
   }); */
 }


The conditional rendering works fine, but on tables when we do enable, there is no event happening when the sort link for that column is clicked. You can see from the commented out bit, that I also tried making the <th> a branch container rather than just an optionally rendering entry point.

I realize this is pretty lame, and we should be doing more metaprogramming to set up this table, but it worked and was fast to set up in the time we had. We're also rendering the inside our selves with the rendering because we do ajax requests for every sort page (which actually is fairly fast for this particular data set and solved some performance issues ).

Any ideas or spot checks on what we're doing wrong to set up that link in the optional <th> with the event decorator?

Megacheers,
Steve
_______________________________________________________
fluid-work mailing list - [email protected]
To unsubscribe, change settings or access archives,
see http://fluidproject.org/mailman/listinfo/fluid-work

Reply via email to