~launchpad-pqm/launchpad/devel

« back to all changes in this revision

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

  • Committer: Launchpad Patch Queue Manager
  • Date: 2011-11-19 05:44:39 UTC
  • mfrom: (14307.1.2 delete-all-bugtasks-889202)
  • Revision ID: launchpad@pqm.canonical.com-20111119054439-j50wq607sp3mpmrm
[r=sinzui][bug=889202] Display a user friendly error message when a
        user attempts to delete the last bug task.

Show diffs side-by-side

added added

removed removed

Lines of Context:
681
681
            if (tr !== null) {
682
682
                // The row has not been deleted.
683
683
                tr.all('a').each(process_link);
684
 
                // Now wire up the javascript widgets in the table row.
685
 
                namespace.setup_bugtask_row(conf);
686
684
            }
 
685
            // Now wire up the javascript widgets in the table row.
 
686
            namespace.setup_bugtask_row(conf);
687
687
        }
688
688
    }
689
689
};
705
705
 *
706
706
 * @method _hideDeleteSpinner
707
707
 */
708
 
namespace._hideDeleteSpinner = function(delete_link) {
709
 
    delete_link.removeClass('unseen');
 
708
namespace._hideDeleteSpinner = function(delete_link, show_link) {
 
709
    if( show_link ) {
 
710
        delete_link.removeClass('unseen');
 
711
    }
710
712
    var spinner = delete_link.get('parentNode').one('.spinner');
711
713
    if (spinner !== null) {
712
714
        spinner.remove();
765
767
 *
766
768
 * @method _process_bugtask_delete_response
767
769
 */
768
 
namespace._process_bugtask_delete_response = function(response, row_id) {
 
770
namespace._process_bugtask_delete_response = function(
 
771
        response, row_id, delete_link) {
769
772
    // If the result is json, then we need to perform a redirect to a new
770
773
    // bugtask URL. This happens when the current bugtask is deleted and we
771
774
    // need to ensure all link URLS are correctly reset.
774
777
        Y.lp.client.display_notifications(
775
778
            response.getResponseHeader('X-Lazr-Notifications'));
776
779
        var redirect = Y.JSON.parse(response.responseText);
 
780
        if( !Y.Lang.isValue(redirect) ) {
 
781
            namespace._hideDeleteSpinner(delete_link, false);
 
782
            return;
 
783
        }
777
784
        Y.lp.anim.red_flash({
778
785
            node: '#' + row_id,
779
786
            duration: namespace.ANIM_DURATION
804
811
    Y.lp.client.remove_notifications();
805
812
    var error_handler = new Y.lp.client.ErrorHandler();
806
813
    error_handler.showError = Y.bind(function (error_msg) {
807
 
        namespace._hideDeleteSpinner(delete_link);
 
814
        namespace._hideDeleteSpinner(delete_link, true);
808
815
        Y.lp.app.errors.display_error(undefined, error_msg);
809
816
    }, this);
810
817
 
822
829
            success:
823
830
                function(id, response) {
824
831
                    namespace._process_bugtask_delete_response(
825
 
                            response, conf.row_id);
 
832
                            response, conf.row_id, delete_link);
826
833
                }
827
834
        },
828
835
        data: qs
868
875
    if (Y.Lang.isValue(LP.cache.bug) &&
869
876
        Y.Lang.isValue(LP.cache.bug.duplicate_of_link)) {
870
877
        // If the bug is a duplicate, don't set the widget up and
871
 
        // canel clicks on the edit links. Users most likely don't
 
878
        // cancel clicks on the edit links. Users most likely don't
872
879
        // want to edit the bugtasks.
873
880
        status_content.on('click', function(e) { e.halt(); });
874
881
        importance_content.on('click', function(e) { e.halt(); });