Feature Request: Insert checkbox column

Michael Woffenden
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
November 27, 2019

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

Fabienne Gerhard
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
November 28, 2019

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

Michael Woffenden
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 1, 2019

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.)

Michael Woffenden
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 1, 2019
Dominic Lagger
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
November 28, 2019

@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
AUG Leaders

Atlassian Community Events