Please Help Test My New DST Tech!

ChainsawXIV
ChainsawXIV
edited March 2014 in DST Development
I've made quite a few dynamic character sheets, and a number of other folks have found my core tech useful enough in their own sheets as well, but after the Reforge, I got to feeling like my code was overdue for an update. The dynamic character sheet system rolled out almost four years ago, and since then, the web - not to mention my understanding of how to use it - has come a long way. Today, I put up the first sheet using my overhauled code. Writing bug free code is like riding to work on a unicorn however (read: not a thing that happens in the real world) so I'm hoping I can enlist a few of you fine folks to bang on it and see what falls out before I roll it out on a wider basis.

The new sheet is for "Scion":https://chainsawxiv-test-campaign.obsidianportal.com/characters/scion-test-character, and I'd love if anyone was willing to take it for a spin (if you don't have a Scion campaign handy, let me know and I'll invite you to my test campaign), and provide any kind of feedback. Suggestions for layout and presentation. Things that are counter-intuitive or could be easier to use. Stuff that just falls down in some way... these are all things it would be good to hear about.

In terms of what changed... well, damn near everything. This overhaul involved rewriting probably 90% of my JavaScript, and a fair chunk of the HTML and CSS stuff that I use commonly as well. But here's a basic outline of what changed from a features standpoint:

*General Redesign*
* Redesigned the sheet around a general use two-column layout for easier reading
* Increased font sizes and generally made the sheet's text more readable
* Added tool tip options to more fields throughout the sheet where needed
* Sheet design now uses Google Web Fonts for a more evolved textual presentation
* Rollover images are now pre-loaded for a smoother overall experience

*Characteristic Pips*
* Pips code streamlined, compacted, and optimized for better performance and ease of use
* Pip rows are now made of individual pips, and can have arbitrary length and spacing
* Individual pips now support mouse-over states for improved user feedback
* Pip borders are now drawn as vector graphics for cleaner rendering at any scale
* Added a context menu option to non-critical pips fields allowing them to be hidden

*Image Based Check Boxes*
* Checks code streamlined, compacted, and optimized for better performance and ease of use
* Check borders are now drawn as vector graphics for cleaner rendering at any scale

*General Text Fields*
* Eliminated all dependency on the jEdtiable library in favor of a more direct implementation
* All text fields are now editable directly, without the need for a commit button on each field
* Multi-line text fields no longer require any special treatment in script to be editable
* Unified editing of single and multi-line text fields under an optimized code path
* Text field appearance during editing is now what-you-see-is-what-you-get, for minimal funk
* Added a roving tool bar of basic formatting options for inline, WYSIWYG text formatting
* Added formatting key-combos (Ctrl+B for Bold, Ctrl+I for Italic, Ctrl+U for Underline)
* Added automatic bulleted indent to formatting options (key-combo is Ctrl+Tab)

*Dynamic Lists*
* Lists code completely overhauled, streamlined, and rebuilt to be far more performant
* Users can now rearange list items using drag and drop with immediate visual feedback
* Developers can now easily specify default contents for any list, without using code
* Lists are no longer arbitrarely limited to a maximum of 99 entries by the mechanics of code
* Reworked the way lists are saved in a sheet's data (with auto-conversion from old format)

*Tool Tips*
* Tool tips code completely rewriten from the ground up to a new specification
* Tool tips can no longer be clicked on when viewing a character in view mode
* Tool tips are now positioned relative to the user's mouse, with continuous updates
* Tool tips no longer pop up automatically when the user is in editing mode
* Added an edit tool tip button for each item when in editing mode

*Sheet Tabs*
* Your browser will now remember what tab you were on when you last visited a sheet
* Fields in the sheet's header section are now properly shared between all tabs

*Known Issues*
* Toggling pips visibility is only supported in Firefox (Browser feature support issue)
* Insertion markers sometimes get stuck on in Firefox (Known and tracked Mozilla bug)
* Fonts look terrible in Chrome (Known and tracked Chrome bug / missing feature)

Comments

  • ramblurr
    ramblurr
    Posts: 7 edited May 2014
    Hmm, I'm a newcomer here, working on my own DST for the FF RPG, and I've noticed the technical limitations of the current DST devkit too. Maybe there's some things I can pick up from you?

    I'd like to help test your Scion sheet; shoot me an invite to your test campaign!

    edit: After reading through your list of features, I'm totally astounded! I'd love just 20% of those, but all of them would be fantastic.
    Post edited by ramblurr on
  • Kallak
    Kallak
    Posts: 1,090
    Sounds pretty solid "on paper" as it were. It'll be great to see what comes of this.
    All the best,
    - Kallak
  • ramblurr
    ramblurr
    Posts: 7
    I love the drag and drop editing for list items. Also the separate tab for description and biography is quite nice, though the Biography section doesn't seem to be editable.
  • ramblurr
    ramblurr
    Posts: 7 edited May 2014
    A few more notes:

    * Single line items (like Birthrights) accept \n characters, I found this when hitting Enter to save the item, but instead a \n was added.
    * When you delete all the text from an item (select all + delete) and save it, it becomes uneditable as there is no clickable target to start editing.

    Edit: Do you have the code in a repo (github or otherwise) somewhere? I'd like to start building on it for my sheet, but it seems prudent to be able to collaborate.
    Post edited by ramblurr on
  • ChainsawXIV
    ChainsawXIV
    Posts: 530
    Thanks for the notes. Some of the issues may be browser specific, so it'd be helpful to know what browser you encountered them on.

    I've been meaning to set this up in a repo, so I finally did: "https://github.com/ChainsawXIV/DST":https://github.com/ChainsawXIV/DST
  • ramblurr
    ramblurr
    Posts: 7
    I'm using Chrome v34 on Linux.

    Thanks for the repo! I'll port my current Firefly codebase, based on the current DST DevKit.

    Looking at the code in the repo though, I don't see any mention of jquery, are you not using it at all?
  • ChainsawXIV
    ChainsawXIV
    Posts: 530
    If you check out the testbed.html files in either of the two sheet specific folders in the repo, that's basically my answer to the old dev kit setup, which just hasn't been updated in several years. Nothing all that fancy going on there really.

    As to jquery, I'm... not a fan, for a number of reasons. Obviously, it's still loaded on all the OP pages, so it should be there to use, but I'd prefer not to create any unnecessary dependencies on it in the common core of of my sheet code.
  • ramblurr
    ramblurr
    Posts: 7
    Alright, the porting is going well. Your code is very clean and well structured, I like it.

    One problem I'm having though is that the sheet values defined in dynamic_sheet_atrs isn't being populated into the "dsf_*" elements.

    There's no JS errors in the console, and I'm just using testbed.html as my base for editing. Do I need to do something else to get those values populated?
  • ChainsawXIV
    ChainsawXIV
    Posts: 530
    The testbed file doesn't load any of the default OP stuff, so it's not running the functionality that does the normal fields. Thus, only the stuff that totally bypasses the DST system like lists will work in that context. That's a thing that can be fixed, I just didn't bother to do so when I was working on things. I can look into that - might as well set that up as a full service kit - or you can if you want (I won't be able to get to it immediately most likely). Probably just requires including a few more JS files, for which you could use the original kit as a guide.
  • ChainsawXIV
    ChainsawXIV
    Posts: 530
    Looking at those two bugs your reported:

    Line breaks are semi-intentional. At least, I consciously chose not to prevent them, because there's nothing fundamentally wrong with having multiple lines in those fields. I can definitely understand how that's not the intuitively expected behavior though. Since you don't need to press enter to 'save' your changes to a field in this system, what would you expect pressing it to do? Advance you to the next field like Tab perhaps?

    Specifically which fields could you delete everything from and render uneditable? It's important that all editable fields have a min-width attribute in their CSS to prevent this, but clearly I've missed one.
  • WingedCat
    WingedCat
    Posts: 1
    Will you be updating the Exalted character sheets? If so, is there a way for existing campaigns to use them?

    Asking because my Exalted campaign is seeing pop-ups for charms and backgrounds working on Alchemical, Solar, and DB sheets but not for Lunar or Sidereal sheets. (I haven't looked at Abyssal or Infernal yet.) I'd ask if those could be fixed, but if you're revising/replacing with updated sheets, it might be easier & better to upgrade.
  • ChainsawXIV
    ChainsawXIV
    Posts: 530
    I will, and all existing sheets will be automatically converted when I do. The delay on that - aside from me just being busy that is, heh - is actually the same reason that some of the sheets don't have all the previous features, like tool tips: some of the sheets were originally set up by another user, based on my design, and I don't have the access I need to update them. I've talked to the OP staff about sorting that out, but they haven't got around to resolving the issue yet.
Sign In or Register to comment.

March 2024
Wrath of the Highborn

Read the feature post on the blog
Return to Obsidian Portal

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Discussions