TIP: Swipe up and down on extended keyboard to swap groups

keyboard
tip

#1

keyboard_swipe

In addition to tapping and selecting a different action group using the group button to the left of the keyboard, you can also swipe up and down to quickly change.


#2

Adding to this, I made an action group with nothing but links to 5 frequently visited drafts. Tapping the keys on the extended keyboard dramatically speeds up going to those drafts.


#3

Great tip! this is a genius feature!


#4

Thanks for bumping this @PhilipK

… I’d not realised this one either. Of course over the months since the tip was first posted I’ve come on board and ramped up my set of actions. I’ll have to figure out how to exclude some actions - as I don’t want to hit the more disastrous ones accidentally. Of course swiping on the group action at the far left avoids this but that’s a small target.


#5

Is it possible to add just the drafts created in the last day or so as a group?

For example, my Daily Log drafts for today and yesterday, plus any others I added in the past 2 days.


#6

It’s certainly much easier to swipe on a wider screen because you can swipe on a blank section keyboard (assuming it’s not full!). And if you have separators in your keyboard then you could target those too.


#7
  1. Not likely to have empty space. :slight_smile:
  2. Now you’ve given me a reason to have separators. :slight_smile:

#8

Here’s a quick ‘framework’ I put together that might let you take things a step further around accessing recent drafts, but outside of creating workspaces ordered by creation date (I tend to use modified date for most, if not all, or mine) and then potentially scrolling up and down and trying to figure out date ranges in your head to check against.


Download: Recent Drafts [Action Group]

VIEW: Keyboard Row


VIEW: Action List


VIEW: Selection


It should be viable as is, but I’m more offering it up as something that people can take and modify to suit their own needs, or reuse the content in other ways.

If nothing else, I hope that there may be a few useful approaches tucked away in this little group for those who might be interested :wink:


#9

That’s VERY nice. The only tweaks I would make - and they’re almost the same thing are:

  • Allow multiple selection
  • Have a button to select all

Now, this is a nittier nit: :slight_smile: The list gets obscured by the buttons so I wonder if this is the best display container.

Anyhow thanks! This gets me where I needed to go.


#10

You could switch to a selection rather than a picker in the prompt and have a select all option set by default, but you can only load one draft in the editor at a time. Presumably you’re wanting to do something different with them. E.g. merging.


#11

In case it helps, here’s an example of the main function amended to work as a multi-select list along with some other bits to give an example of using it. As it stands, the action at the end if just that the selected titles are displayed in an alert.

selectRecentDraftTodayOrYesterday([], [], true);

function selectRecentDraftTodayOrYesterday(p_astrTagsInclude, p_astrTagsExclude, p_boolPreSelectAll)
{
	selectRecentDraft(Date.parse("yesterday"), Date.today().at("23:59:59"), "Created Today/Yesterday", p_astrTagsInclude, p_astrTagsExclude, p_boolPreSelectAll);
}

function selectRecentDraft(p_dtStart, p_dtEnd, p_strTitle, p_astrTagsInclude, p_astrTagsExclude, p_boolPreSelectAll)
{
	//Get all drafts
	let listDrafts = [];
	let allDrafts = Draft.query("", "all", p_astrTagsInclude, p_astrTagsExclude, "created", true);
	allDrafts.forEach(function(checkDraft)
	{
		if ((checkDraft.createdAt >= p_dtStart) && (checkDraft.createdAt <= p_dtEnd))
		{
			listDrafts.push(checkDraft);
		}
	});

	let listDraftsCol1 = [];
	listDrafts.forEach(function(checkDraft)
	{
		listDraftsCol1.push(checkDraft.title);
	});

	let pr = Prompt.create();
	if (p_boolPreSelectAll)
	{
		pr.addSelect("selMain", "Select drafts.\n\nNOTE: Drafts are shown newest to oldest.", listDraftsCol1, listDraftsCol1, true);
	}
	else
	{
		pr.addSelect("selMain", "Select drafts.\n\nNOTE: Drafts are shown newest to oldest.", listDraftsCol1, [], true);
	}
	//pr.addPicker("selMain", "Select a draft by title to load it.\n\nNOTE: Drafts are shown newest to oldest.", [listDraftsCol1], [0]);
	pr.title = p_strTitle;
	pr.addButton("OK", "btnOK");
	pr.isCancellable = true;

	//When shown, the selected titles will just be displayed in an alert
	//This is where you would want to put in the processing of the drafts, in which case the listDrafts array should be
// used for the actual Drafts content rather than just the titles I'm using here as an example.
	if (pr.show())
	{
		let strMsg = "Selected Titles Were:";
		pr.fieldValues["selMain"].forEach(function(selTitle);
		{
			strMsg += selTitle + "\n";
		});
		alert(strMsg);
	}
}

#12

Actually I didn’t have anything specific in mind. But that’s more than OK.