My Vision for Nova NextGen

cmdrlanc Sat Apr 16, 2016 12:28 pm

Re: My Vision for Nova NextGen

With the days left in April on the downhill side, and our last update being in February, I was wondering if we could get maybe a "State of the (NextGen)" update. Did you accept the offer to help you from the programmer here on the forum? I know you don't offer release date, as a matter of principle, but can we get any sort of update?

I only ask, because lately, every time you answer a help post, you point out how NextGen will be fix this, or NextGen will do that better...So when do we actually get a look at NextGen?
User avatar

Posts: 280

AgentPhoenix Sat Apr 16, 2016 2:01 pm

Re: My Vision for Nova NextGen

At any given time, you can actually download the latest Preview Release of Nova NextGen from the NextGen site. Currently, PR-2 is what's available and there's not much in there. But, if you're interested in looking at NextGen, PR-2 does include the Page Manager which will give you a preview of how you'll manage and create pages as well as the Menu Manager. (The site has information on what pieces are included.)

As for work currently happening on NextGen, there's quite a bit. I'm hoping to wrap up PR-3 in the next couple of weeks and get that out for people to play with. Again, these are all incremental updates, so don't expect PR-3 to suddenly have 50% of the whole system done or anything. That being said though, there have been massive updates over the last few months to NextGen.

Access control and forms were the pieces I was tackling for PR-3. Forms are actually one of the most complicated pieces of Nova, so it's been a very taxing process making things work exactly how I want. Still, I've made a ton of progress and the last piece I'm working on are some of the ins and outs of Form Center and making sure that it's as flexible as possible for a lot of different scenarios that game masters might want to use it for.

Here's a nice "little" list of everything I've been working on that's in PR-3:

  • We've moved away from the Entrust authorization library and replaced with a solution of our own that's backed by the built-in Laravel authorization component. Nothing has changed about authorization, it's just that it's now code we've written instead of someone else and it utilizes more of Laravel's built-in functionality.
  • Welcome Vue.js! Over the last few months, we've kept our eye on a new Javascript framework called Vue.js. Vue.js is a small, fast, simple, reactive framework that we're really excited to play around with in several different areas. Despite it being new, it's very mature and we think that you'll love it as much as we do when you get in there and start playing around with it!
    • The first thing we decided to tackle with Vue.js is filtering. Several pages utilized a fast and easy filtering system that was originally built on top of AngularJS. Unfortunately, AngularJS is a beast and the code involved with doing something fairly trivial was significant and not easy to maintain. We've dropped AngularJS in favor of Vue.js and re-written the filtering functionality with about half as much code. In addition, the code that we wrote is significantly more expressive and cleaner. Win-win!
    • We've dipped our toe in the water of Vue.js components. These simple and powerful pieces of code have allowed us to create more expressive code that makes it a little clearer what's happening when you look at the code. We've started small with components to hide and show content based on the device being used. Since components are used just like HTML tags, you'll see and be able to use tags like <desktop>Content</desktop> to only display things on a desktop-sized device. So far, the following components are available: desktop-lg, desktop-sm, phone, tablet, desktop (includes desktop-sm and desktop-lg), mobile (includes phone and tablet), tablet-desktop (includes tablet, desktop-sm, and desktop-lg)
  • The Additional Page Content management page has been updated to show content that is not a header, title, or message. The previous way of showing all content created some confusion about what the difference between the Page Manager and Page Content Manager was. Now, only additional content will be shown to make it easier to understand what's going on.
  • And speaking of the Content Manager, we've moved some items out of Settings and into the Content Manager (like sim name). Since those are pieces of content and not true settings, we felt like the Content Manager was a better place for those things to live. Additionally, we've removed the settings page compiler and replaced it with a content page compiler to pull items out of the content tables. It works the same as the old settings page compiler, so you'll be able to do things like `content:sim_name` to pull the sim name out of the Content Manager in page content.
  • The Page Manager got a lot smarter! Instead of requiring admins to type out the fully qualified class name (try saying that 10 times fast) which had the potential for lots of errors, Nova will now present a list of all the extension controllers and their public methods. This means that selecting a resource for an advanced page takes a single click now. We're still working on this, so in the future, the list will be narrowed down further to only extensions that are marked as active and not every extension in the extensions directory.
  • The Theme class now has an option for rendering the admin menu separately from the public menu. This will come in handy for theme developers who want to do different things with menus, but only for the admin section.
  • Nova NextGen has been upgraded to Laravel 5.2.
  • We've continued to work on the access control pieces of Nova NextGen and have integrated access control into the Page Manager. Now, when creating a basic page, you'll be able to specify an access role that you want to be used for determining who can view a page. This only applies to basic pages. Advanced pages will still have to manually handle authorization like Nova's built-in pages do.
  • Dynamic forms are back in Nova NextGen and better than ever. Consider them Forms 2.0. Here are a few highlights from the new dynamic form system:
    • You can now create your own forms through the form system. This allows admins to create forms for collecting information from users without needing to use Google Docs or custom code something themselves. With a few clicks, you can have a new form that you can use. And to make it even better, you can integrate your forms into basic pages by using the form page compiler, so you don't even have to get your hands dirty with any code.
    • Any form can now include tabs. Previously, only the character form included tabs, but there's no reason you wouldn't want tabs on any other form, so whether it's your own forms or updating the existing forms, any dynamic form in Nova NextGen can use tabs. On top of that, tabs themselves can have tabs, so you can get into more complex form layouts without needing to compromise what you're going for.
    • You can now specify rules that must be met in order for the form to submitted or updated. These validation rules allow for you to control exactly the data that can be stored in the form. If any rule is violated, the form won't submit.
    • Fields can now be locked down by access role, but not just a one and done type of deal. Fields respond to three different states when dealing with access: viewing, creation, and editing. That means that you can control each state of the field independently. Want someone to be able to see the data in the field but not put data in when filling out a new record or editing an existing record? You can do that. Want someone to be able to put data in initially, but not be able to update it after that? Easy to do with field access restrictions.
    • When creating a new field for a form, there's a live preview that will show you what your field will look like. Because of the reactivity of Vue.js, changes are shown in real time. If you change the field label, as you type, the preview will update. This helps you create something where you don't have to guess at what certain changes do and then go back and edit it again later, you'll see the changes immediately.
    • You can now create custom field types for use in Nova's forms. With a few lines of code (okay, more than a few, but it's actually not terribly taxing) developers can create a whole new type of field for other people to use. So, for example, that you wanted a color picker for users to pick their favorite color. In Nova 2, you'd just create a text field. With custom field types, you can create a color picker field that, when clicked, will pop up the operating system's color picker to choose a color. When you create the field in your form, you'd see the option in the field type dropdown. Custom field types open up a lot of possibilities in making forms exactly what you want.
    • Form Center is a way to quickly and easily leverage any forms you create. Instead of needing to create new pages to embed forms, you can direct users to the Form Center where they'll be able to fill out any forms that have been marked as being able to use Form Center. From there a user can see any entries they've posted as well as add new entries for you to review.
User avatar

Posts: 7521

AgentPhoenix Fri Apr 22, 2016 3:24 pm

Re: My Vision for Nova NextGen

And on the heels of this update, Preview Release 3 is now available.
User avatar

Posts: 7521


Return to Nova NextGen

Who is online

Users browsing this forum: No registered users and 1 guest