Skip to content

Instantly share code, notes, and snippets.

@iaindooley
iaindooley / gist:51e75dd7315c889fec0f37de3e091aa1
Created Aug 23, 2022
Init trellinator submodules for a BenkoBot repo
View gist:51e75dd7315c889fec0f37de3e091aa1
git submodule add git@github.com:iaindooley/benko-board-trellinator.git apps/benko-board-trellinator
git submodule add git@github.com:iaindooley/trellinator-libs.git apps/trellinator-libs
git submodule add git@github.com:iaindooley/trellinator.git apps/trellinator
git submodule init
git submodule update
View gist:60f403c427b76eca139bffeae78e38b8
var notif = new Notification(notification);
var moved = notif.movedCard();
if(!notif.member().notTrellinator())//ignore moves made by the bot
throw new InvalidActionException("Don't loop!");
moved.cardsLinkedInAttachments().each(function(card)
{
card.moveToList(moved.currentList(),"bottom");
});
View gist:3a99a495e31bffbeb847ded9190da4d6
var notif = new Notification(notification);
var added = notif.addedChecklistItem();
if(!notif.member().notTrellinator())//don't react if the bot added the item
throw new InvalidActionException("Don't loop!");
var added_to = added.checklist();
var source_card = added_to.card();
card.board().cards().each(function(card)
View gist:99ff3d25f869e2b9d4311f692f888147
var members = [
'username1',
'username2',
'username3'
];
var target = new Trellinator().team("My New Workspace");//find or create
for(var i = 0;i < members.length;i++)
{
View gist:310565840a9b38c6aaf853be3cb7b034
var added = new Notification(notification).addedLabel("Copy With State");
var copy = added.card().copyToList(
added.card().board().findOrCreateList("Copied Cards"),
"top"
)
.markDueDateIncomplete();
added.card().checklists().each(function(cl)
{
cl.items().each(function(item)
View gist:9cb592210cdaf45b92be4d3766f804a4
var moved = new Notification(notification).movedCard("Create PDF");
var fields = {};
moved.board().customFields().each(function(field)
{
fields[field.name()] = moved.customFieldValue(field.name());
});
createGoogleDocsPdfFromFieldValues(fields);//this would be a library function
View gist:0cb5d36a528446e6eabb96e41e71fc6b
var attached = new Notification(notification).attachedLink();
attached.card().setCustomFieldValue("Box Link",attached.link());
attached.remove();
@iaindooley
iaindooley / gist:fa7693d6b55f0e8ea6a3bfd35f78e8de
Created Sep 29, 2021
setMemberAndDueDateOnAddedChecklistItem
View gist:fa7693d6b55f0e8ea6a3bfd35f78e8de
var added = new Notification(notification).addedChecklistItem();
var split = added.name().split("|");
if(split.length == 3)
{
var text = split[0].trim();
var date = new Date(split[1].trim());
var member = new Member({username: split[2].trim()});
added
View gist:62b1b99fc73d6b039f1ba68752c97edd
var created = new Notification(notification).createdCard(/Orders.*/);
var holding_list = created.board().list("Waiting ... ");
created.board().list("Transporters").cards().each(function(card)
{
Card.create(holding_list,"RFQ Order #"+created.id()).postComment(
//include whatever info from the order card here, just putting description as an example
//which might have all the form field submissions
"@to "+card.name()+" "+card.description+"\n"+created.description()
);
View gist:081e46150e897b57b380e0a19019bfeb
var created = new Notification(notification).convertedChecklistItemToCard();
//Set the created card due to the date of the linked item in the source checklist
created.setDue(
conv.source.item(conv.link()).due()
);