Rendering Headings Issue
Antranig Basman
Antranig.Basman at colorado.edu
Wed Nov 25 04:31:51 UTC 2009
Hi there Steve - I might have an idea what is going on here (it might
well be related to FLUID-3276 reported by James ENG recently) but it
would help if you could paste in a section of the markup which is
generated by the renderer for the headers (slightly harder than in the
old RSF days but I'm sure you will manage) :P
One thing that makes me suspicious though is that you are giving a value
("true") to "grade-col-header". I am uncertain what this might mean, but
my first expectation would be that this would try to destroy the
internal markup.
Actually, the more I look at it, you are giving value: "true" to
absolutely everything. This may in fact be required to guide the duck
typing system but it was certainly not intended to be necessary.
Cheers,
A.
Steven Githens wrote:
> 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 - fluid-work at fluidproject.org
> To unsubscribe, change settings or access archives,
> see http://fluidproject.org/mailman/listinfo/fluid-work
More information about the fluid-work
mailing list