Form and flexibility


Wagn makes custom web systems easy. Version 1.4 adds more flexible formatting, content inclusion, and email configuration.


Wagn 1.4 is here, and it fleshes out a very cool concept: cross-patterned content.


We all see a lot of patterned content every day: calendars, weather forecasts, stock reports, etc. But usually these patterns don't cross-pollinate. In Wagn, they can.


If you've been using Wagn for a while, you can understand the updates in 1.4 as mating our Setting / Set system with our structure system.  In short, Wagn lets users organize information into cards and apply Setting (configuration options) to Set (groups) of cards.  The sets may be as broad as all cards or as narrow as a single card. We're now introducing two new formattings settings: *default and *content, which respectively determine cards' initial content (formerly "soft" format) and content template (formerly "hard" format).


The key thing to understand is that in Wagn everything is organized into cards, and every card's content can now be arranged with patterns that may be very broad or very narrow. And if the card is a complex whole built of other card parts, this same breadth of pattern can apply to every part. It's a very powerful concept.


Example: Wagn vs. relational database


To see how this all works and is different from a normal "relational" database, consider a system tracking information about pieces of furniture. Imagine that you want fields for measurements, type (chair, sofa, table), number of pieces, materials, comments, etc. The typical relational database model would be to make a furniture table with all of these fields. If you happened to have another table (say "artwork") with lots of the same fields (measurements, number of pieces, materials, comments, etc.), then those fields would not actually be related in any way to the furniture fields — separate table, separate universe.


Now let's consider how this would go in Wagn. Similarly, you might create a card type called "Furniture".  Then you would include cards for those same fields in the furniture form card.  (Check out all the new ways to navigate to form cards.)


But in Wagn, the configuration of each of those fields (or subcards) could be as general or as specific as you like.  You could set it up so a subcard named "number of pieces" would be a number card regardless of the type of card it's on. You could have different default values for measurements depending upon what you're measuring (furniture or artwork). You could override any of this formatting for a specific field on a specific card. And you could even override all of this formatting for an exceptional piece of furniture.


This is why I referred to Wagn's power as cross-patterned content. All different parts of the content you're organizing can follow patterns — or diverge from them — as appropriate.


And it's just one more advantage of our approach of building everything out of powerfully simple building blocks. Cards make all kinds of new integrations possible.


More in Wagn 1.4


Of course, there's lots more in Wagn 1.4. Wagn 1.0 was about flexible ways of organizing information: a cutting-edge wiki. Wagn 2.0 will be a full-fledged whole-system-building platform: true to it's wiki roots, but more powerful, modular, and intuitive. Wagn 1.4 is a big step in that direction.


Additional enhancements include:

  • a flexible email system for configuring emails to be sent when you add a card
  • briefer and more powerful syntax for referring to card parts (contextual names)
  • a "raw" views for displaying unprocessed card contents — show me the markup!
  • an "array" views for using Ruby cards to perform calculations on search results
  • performance optimizations for faster page loads
  • fixes to some old, hated bugs. Ever double-click in a comments box and lose the comment? Never again!





CSS classes have been reworked to be more like sets:

  • All cards have the ALL class.
  • Cards of a given cardtype used to have a class .type-|original cardtype name| but now have a class .TYPE-|cardtype key|
  • Plus cards didn't used to have a unique class, but now have one: .RIGHT-|key of right part|
  • In addition, plus cards have a class of the form .TYPE_PLUS_RIGHT-|key of left part's cardtype|-|key of right part|
  • Individual cards used to have a class .cardid-|card number|, but now have a class .SELF-|card key|.

A key is the same as a card's name, but all lower case, punctuation replaced with spaces, multiple spaces replaced with a single space, and spaces replaced with underscores. For example, a cardtype "Joe's Blog Entries" would have a key of "joe_s_blog_entries". (this may be described elsewhere better). The way to be sure to get it right is to look in the HTML of a card you want some CSS to apply to, and see what follows 'class="card slot'



*notify+*from no longer specifies the address following emails come from. All system emails come from the email address for the Decko Bot 1 account.


+tickets by status


in progress






  1. √ patch to changes bug (testing)
  2. √ patch to _self bug on flexmail
  3. patch to weird, sporadic editing bug if possible (can't reproduce yet)
  4. √ create default *send values on english
  5. migrate the following:

Copy from English:

  • Config
  • Setting
  • Setting+*self+*table of contents
  • all the *edit help settings (see below)
  • *send+*right+*default
  • email config+*right+*content
  • [*to, *from, *cc, *bcc, *subject, *attach] ... +*right+*default


~ Delete:

  • rform
  • tform
  • *type_subtab
  • Cardtype+*related
  • related subtabs - cardtypes
  • ?? Basic+*type+*default   (noticed missing in test data)


√ Change to setting:

  • *send

√ Change to set

  • everything ending in *type
  • *right+*right  (could do everything ending in *right to be sure...)


Content Settings breaks http://en.dwagn.org/wagn/Related_subtabs_universal and http://en.dwagn.org/wagn/Related_subtabs_cardtypes so fun WQLing for someone...

  --John Abbe.....Sat Apr 17 16:15:04 -0700 2010


I got rid of the cardtype subtab for now and got rid of the related section on the config page. It will be back in "settings" form soon, but for now it was just adding too much complexity.


But I did make the WQL work first :)

  --Ethan McCutchen.....Tue Apr 20 08:22:58 -0700 2010

User+*type+*accountable did not get migrated to johnabbe or connectipedia.org, presumably others.

  --John Abbe.....Sun Apr 25 13:32:45 -0700 2010