0

I currently have a large project list that has numerous sub-tasks assigned to each main section. I'm looking to create a view that only displays the top level tasks.

I've looked at a previous question that was asked, providing the following solution:

jQuery('div[class="ms-vb  itx"]').find('span[style]').each(function(){
    if(jQuery(this).css('margin-left')!="0px"){
        jQuery(this).parent().parent().parent().hide();
    }
});

However it doesn't hide the sub-tasks for me. I'm currently testing said code in a script editor web-part and make a call to the Jquery library externally just before the script. Using:

Also tried various settings in the view itself, such as changing the folder settings but nothing allows you to hide sub-tasks out of the box.

Any help is greatly appreciated.

2
  • You edited the code Amal but there is no difference? How exactly did you use this code on your page, in a script editor?
    – cod3r_jim
    Commented Oct 26, 2017 at 12:15
  • I have only formatted the question.. its not the answer I placed Commented Oct 26, 2017 at 12:17

2 Answers 2

1

I tested the code in my online site. It actually works. Below are the steps I executed

  1. Open the Task List - Ex AllItems.aspx
  2. Edit Page
  3. Add a Script Editor Webpart
  4. Then used below code

    <script
          src="https://code.jquery.com/jquery-3.2.1.min.js"
          integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
          crossorigin="anonymous"></script>
    
    <script>
    jQuery(document).ready(function(){
        SP.SOD.executeFunc('sp.js', 'SP.ClientContext', run);
    });
    
    function run(){
        jQuery('div[class="ms-vb  itx"]').find('span[style]').each(function(){
            var left = Number(jQuery(this).css('margin-left').replace("px",""));
            if(left>20){
                jQuery(this).parent().parent().parent().remove();//hide();
            }
        });
    }
    </script>
    
5
  • Spot on Amal. Hides the subtasks beautifully, great work.
    – cod3r_jim
    Commented Oct 26, 2017 at 13:20
  • Sadly it's not what I was looking for Amal, just testing it thoroughly now. This will only collapse the subtasks, they can still be viewed by clicking on the arrow beside the task name. Also it doesn't show all tasks, it only shows the tasks that contain subtasks.
    – cod3r_jim
    Commented Oct 26, 2017 at 13:55
  • I have made some mods.. please try new code Commented Oct 26, 2017 at 14:02
  • Perfect. Exactly what I needed. Thanks for your help.
    – cod3r_jim
    Commented Oct 26, 2017 at 14:10
  • Wonder if you could help me again Amal. I'm looking to do the exact same function, hide all subtasks and only show the top level of tasks but within a Gantt view. Thanks again.
    – cod3r_jim
    Commented Oct 30, 2017 at 10:20
0

Thanks Amal It solved my problem as well... with the previous version

<script
      src="https://code.jquery.com/jquery-3.2.1.min.js"
      integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
      crossorigin="anonymous"></script>

<script>
jQuery(document).ready(function(){
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', run);
});

function run(){
    jQuery('div[class="ms-vb  itx"]').find('span[style]').each(function(){
        if(jQuery(this).css('margin-left')!="0px"){
            jQuery(this).parent().parent().parent().hide();
        }
    });
}
</script>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.