Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- === modified file 'src/schooltool/skin/flourish/resources/gradebook.js'
- --- src/schooltool/skin/flourish/resources/gradebook.js 2012-05-07 13:42:59 +0000
- +++ src/schooltool/skin/flourish/resources/gradebook.js 2012-05-12 20:36:42 +0000
- @@ -340,7 +340,10 @@
- return third_nav_left == limit;
- }
- +
- $(document).ready(function() {
- + $('.refine').html($('#worksheet-sidebar').html());
- + $('#worksheet-sidebar').empty();
- var form = $('#grid-form');
- form.data('base-font-size', parseInt(form.css('fontSize')));
- // gradebook-part width calculation
- @@ -634,3 +637,111 @@
- e.preventDefault();
- });
- });
- +
- +ST.gradebook = function () {
- + function element_form(element) {
- + return element.closest('form');
- + };
- + function set_html(container_id) {
- + return function(result) {
- + var container = $('#'+container_id);
- + container.html(result);
- + };
- + };
- + function update_part_widths(form) {
- + var gradebook_w = form.find('#gradebook').outerWidth();
- + var students = form.find('#students-part');
- + var students_w = students.outerWidth();
- + var totals = form.find('#totals-part');
- + var totals_headers = totals.find('tr').first().find('th');
- + var grades = form.find('#grades-part');
- + var totals_w = 0;
- + var base_font_size = form.data('base-font-size');
- + if (totals_headers.length > 0) {
- + if (!totals.data('base-total-column-width')) {
- + totals.data('base-total-column-width',
- + totals_headers.first().outerWidth());
- + }
- + totals_w = (totals_headers.length *
- + totals.data('base-total-column-width'));
- + totals.find('thead').find('tr').css({
- + height: students.find('thead').height()
- + });
- + totals.css({
- + width: Math.floor(totals_w/base_font_size)+'em'
- + });
- + };
- + var grades_margin_left = students_w;
- + var grades_margin_right = totals_w;
- + grades.css({
- + marginLeft: grades_margin_left,
- + marginRight: Math.floor(totals_w/base_font_size)+'em'
- + });
- + };
- + function update_widths(container_id) {
- + return function(result) {
- + var container = $('#'+container_id);
- + update_part_widths(container);
- + };
- + };
- + function update_colors(container_id) {
- + return function(result) {
- + var container = $('#'+container_id);
- + var parts = container.find('.gradebook-part');
- + parts.find('tbody').find('tr:odd').addClass('odd');
- + };
- + };
- + function get_url(url) {
- + return $.ajax({
- + type: 'get',
- + url: url
- + });
- + };
- + function post_to_url(url, data) {
- + return $.ajax({
- + type: 'post',
- + url: url,
- + data: data
- + });
- + };
- + function submit_form(form) {
- + var url = form.attr('action');
- + var data = form.serializeArray();
- + return post_to_url(url, data);
- + };
- + function update_sidebar() {
- + return function(result) {
- + $('.refine').html($('#worksheet-sidebar').html());
- + $('#worksheet-sidebar').empty();
- + };
- + };
- + return {
- + on_form_submit: function(target) {
- + var button = $(target);
- + var form = element_form(button);
- + var request = submit_form(form);
- + var container_id = form.attr('id');
- + // show spinner near the save button
- + request.done(set_html(container_id));
- + request.done(update_widths(container_id));
- + request.done(update_colors(container_id));
- + return false;
- + },
- + on_tab_link: function(target) {
- + var link = $(target);
- + var tab = link.parent();
- + var third_nav = tab.parent();
- + third_nav.find('li').removeClass('active');
- + tab.addClass('active');
- + var url = link.attr('href');
- + var container_id = 'grid-form';
- + var request = get_url(url);
- + // show spinner near the tab clicked
- + request.done(set_html(container_id));
- + request.done(update_widths(container_id));
- + request.done(update_colors(container_id));
- + request.done(update_sidebar());
- + return false;
- + }
- + };
- +}();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement