~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/bugs/javascript/bugtask_index.js

[r=sinzui][bug=903110] Fade out the deleted row when a bug task is
        deleted instead of flashing red

Show diffs side-by-side

added added

removed removed

Lines of Context:
678
678
            // embedded in the picker tales so we need to ensure we handle
679
679
            // this case.
680
680
            var tr = Y.one('#' + conf.form_row_id);
681
 
            if (tr !== null) {
682
 
                // The row has not been deleted.
683
 
                tr.all('a').each(process_link);
684
 
            }
 
681
            tr.all('a').each(process_link);
685
682
            // Now wire up the javascript widgets in the table row.
686
683
            namespace.setup_bugtask_row(conf);
687
684
        }
768
765
 * @method _process_bugtask_delete_response
769
766
 */
770
767
namespace._process_bugtask_delete_response = function(
771
 
        response, row_id, delete_link) {
 
768
        response, bugtask_id, row_id, delete_link) {
 
769
    // The deleted row will fade out before being removed from the table.
 
770
    var animate_deletion = function(after_callback) {
 
771
        var row = Y.one('#' + row_id);
 
772
        row.setStyle('opacity', 1);
 
773
        row.addClass('transparent');
 
774
        var row_fade_out = new Y.Anim({
 
775
            node: row,
 
776
            to: {opacity: 0},
 
777
            duration: namespace.ANIM_DURATION
 
778
        });
 
779
        if( Y.Lang.isFunction(after_callback) ) {
 
780
            row_fade_out.on('end', after_callback);
 
781
        }
 
782
        row_fade_out.run();
 
783
    };
 
784
 
772
785
    // If the result is json, then we need to perform a redirect to a new
773
786
    // bugtask URL. This happens when the current bugtask is deleted and we
774
787
    // need to ensure all link URLS are correctly reset.
781
794
            namespace._hideDeleteSpinner(delete_link, false);
782
795
            return;
783
796
        }
784
 
        Y.lp.anim.red_flash({
785
 
            node: '#' + row_id,
786
 
            duration: namespace.ANIM_DURATION
787
 
        }).run();
 
797
        animate_deletion();
788
798
        namespace._redirect(redirect.bugtask_url);
789
799
        return;
790
800
    }
791
801
    // We have received HTML, so we replace the current bugtask table with a
792
802
    // new one.
793
 
    var anim = Y.lp.anim.red_flash({
794
 
        node: '#' + row_id,
795
 
        duration: namespace.ANIM_DURATION
796
 
    });
797
 
    anim.on('end', function() {
 
803
    animate_deletion(function() {
 
804
        delete LP.cache.bugtask_data[bugtask_id];
798
805
        namespace._render_bugtask_table(response.responseText);
799
806
        Y.lp.client.display_notifications(
800
807
            response.getResponseHeader('X-Lazr-Notifications'));
801
808
    });
802
 
    anim.run();
803
809
};
804
810
 
805
811
/**
829
835
            success:
830
836
                function(id, response) {
831
837
                    namespace._process_bugtask_delete_response(
832
 
                            response, conf.row_id, delete_link);
 
838
                            response, conf.id, conf.row_id, delete_link);
833
839
                }
834
840
        },
835
841
        data: qs