Previous Entry Share Next Entry
Release 0.5.0
jducoeur wrote in querki_project
I've been waiting for a good excuse to declare the next major version of Querki. Between last week's refactoring and today's rollout of Edit Instances, I think it's a good excuse. So I'm officially declaring today to be the beginning of the 0.5 series.

There are several elements to today's release, but they boil down to finishing up the first draft of Edit All Instances, a major new concept in Querki. From most to least important new features:

The Edit all Instances button: having quickly convinced myself that bulk edit is generally useful, I've added a new button, which shows up when you look at any Model, and looks sort of like a wider version of the old Edit button. This brings you into the Bulk Editor -- it shows all of the existing instances of this Model, and lets you edit them, live and in-place. (Note that there is no "Done" button, since all changes take place immediately as you edit.) I am quickly concluding that, much of the time, this is going to be the best way to do data-entry, especially when you're first setting up a Space.

Note that this is a beautiful example of Querki playing fair: the Edit all Instances page is nothing more than a QL expression -- really, it's nothing more than [[model -> _edit]] with a little framing around it. So you can embed Edit all Instances into any page you would like in your Space, and it will Just Work.

The Delete button: in the "live Editor" (wherever you find it, and it's going to be showing up more and more), if you hover over a Thing, you'll see a red X show up in the upper-right corner. That's the delete button. If you click it, you'll be prompted to click it again; if you do so within two seconds, it will immediately delete that Thing. I like this workflow, which is pretty quick and easy if you *do* mean to delete Things, but provides at least some check against doing it accidentally. I'd love to hear opinions on it.

(On a touchscreen device, you have to click into one of the fields in the Thing to make the Delete button visible. I'm still pondering whether there is a better solution.)

The "Create Another" button: if you are in Edit all Instances, and you have Create permission in this Space, you will see a button labeled "Create Another model". If you click this, it will immediately create a new instance, insert that right above the button, and position your text cursor in it. Combined with the fact that spacebar will activate this button, you can thereby do fast data-entry without needing the mouse at all -- just tab from field to field, go to the Create Another button with tab, hit spacebar to add another, and keep going.

Putting this all together, I believe it should make data entry in Querki much more efficient. I hope y'all like it.

Caveat: in my tests, it takes a while to load the Edit all Instances page if there are a significant number of them. In particular, doing Edit all Instances on Issues in the Issue Tracking Space takes a goodly while. So this is going to need more evolution in the near future, probably to add *some* kind of pagination to speed up page load. So think of this as a good start, but there's more coming soon.

Suppress Name in most cases: now that the system has become Display Name-centric, we are now hiding the Name property in the live Editor *unless* you have set the _deriveName property to "Never Derive Name". Most of the time, you can just ignore this.

Added the _data function: similar to the existing _class() function, I needed to add _data(name, contents). This adds an HTML5 data-name attribute to the received text block. This is very advanced, and probably useless for anyone except me for the time being. But when we start getting into UI Plugins (and yes, those are coming -- Aaron has a specific one he's been asking for for months), I suspect they're going to become a serious power tool.

Caveat: as with _class, _data only works with a *single* node passed into it. I hope to fix this eventually, but so far I haven't found any fixes that don't involve major rearchitecture of how we build our HTML.

So -- have fun with this, and I hope Edit all Instances proves useful to you...

  • 1

Something I stumbled upon: if a Property shows up in "Properties to edit in instances" multiple times, its edit-field shows up multiple times for each Thing. (It gets the value from whichever field changes last, as one might expect given instant auto-save.) Not desirable, but I'm not sure whether you want to disallow it at the "Edit Model" level, or filter out all but one at the editor level. Probably the former?

Hmm -- good catch. I've entered a bug to prevent duplicates in this list...

You could alter your CSS for mobile devices, but that could be a rabbit hole that Bootstrap was designed to keep you from falling into.

Well, mostly. The Bootstrappy approach is to enter alternate view code on a tactical level, and surround it with the appropriate classes to show what you need for the size at hand. But first, I need to figure out what would be a good approach in the first place...

I meant that today it's mobile devices, what is it, smart tvs controlled by a gyroscopic remote? Heads up voice controlled google glass type devices? I presume the framework will evolve to keep up, but it is a touch reminiscent of times of having to script for different browsers, but now it is different interfaces.

  • 1

Log in

No account? Create an account