Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,456,249
Community Members
 
Community Events
176
Community Groups

Feature Request: Insert checkbox column

The "Insert numbering column" feature is very useful.

We could also use "Insert checkbox column" so that each row in a table would have a checkbox.  This would allow a long list of rows to instantly be transformed into a task list!

2 comments

Hi @Michael Woffenden 

you may want to set a feature request here in JIRA as a 'Suggestion' directly at Atlassian after checking if there's already a similar request for this feature. Couldn't find one with a short check yet. 

By the way I may also find this useful - but there's already a list function in task macro which could make this difficult. Maybe there could be an opportunity using an user macro as you are on-premise which offers these options, too, depends on what you wanna you use it for.

BR

Hello @Fabienne Gerhard ... great idea to create a suggestion.  I actually had no idea where do to that.  (I've also noted that feature request link in our Confluence KB.)

@Fabienne Gerhard: I'm wondering, how you would make an user macro for this purpose. He wants to just click a button and this should add a checkbox in the first column of all rows. 

I have another solution for that. It might look a little bit of a hack :) 

Let me introduce you bookmarklets. Bookmarklets are javascripts, which will be executed, when you click the bookmark. And for your request, I tried to create a bookmarklet.

What does my bookmaklet?

  • It searches the iframe, where the wysiwyg editor is. In my confluence, the ID of that iFrame is: "wysiwygTextarea_ifr". It might be different in other instances. 
  • Then it searches all tables. And i mean all tables in the page! 
  • Then I search all <tr> and <td> tags and just add another <td>-tag before the others
  • In this pasted <td>, I add the checkbox.

The script in full length is at the end of the post. 

How can you use the bookmarklet? 

  • Just add a bookmark
  • Name it
  • the URL is the following:
javascript&colon;(function(){window.s0=document.createElement('script');window.s0.setAttribute('type','text/javascript');window.s0.setAttribute('src','https://bookmarkify.it/bookmarklets/17523/raw');document.getElementsByTagName('body')[0].appendChild(window.s0);})();

Now just try it out. If you have a table and you are in the edit mode, just click the bookmark and then, there should be a checkbox in the first column of every row. (I hope it does)

If this doesn't helped or you have further questions, don't hesitate to ask. 

Regards, Dominic

 

And here is the dirty javascript

function createElementFromHTML(htmlString) {
var div = document.createElement('div');
div.innerHTML = htmlString.trim();

// Change this to div.childNodes to support multiple top-level nodes
return div.firstChild;
}


var iframe = document.getElementById("wysiwygTextarea_ifr");
var table = iframe.contentWindow.document.getElementsByClassName("confluenceTable");
//var table = document.getElementsByClassName("confluenceTable");
var tr = table[0].getElementsByTagName("tr");

for (var i = 0;i<tr.length;i++){
var td = tr[i].getElementsByTagName("td");
var th = tr[i].getElementsByTagName("th");

if (td.length > 0){
var first = td[0];
var newItem = document.createElement("td");
newItem.className = "confluenceTd";

var text = createElementFromHTML("<ul class='inline-task-list'><li data-inline-task-id=''><br data-mce-bogus='1'></li></ul>");
newItem.appendChild(text);
tr[i].insertBefore(newItem, first);
}

if (th.length > 0){
var first = th[0];
var newItem = document.createElement("th");
newItem.className = "confluenceTh";
var text = document.createTextNode("");
newItem.appendChild(text);
tr[i].insertBefore(newItem, first);
}
}

 

Comment

Log in or Sign up to comment
TAGS

Atlassian Community Events