• PRODUCT

    PRODUCT

  • PRICING
    PRICING

  • HELP
    HELP

  • BLOG
    BLOG

  • APPSTORE
    APPSTORE

  • COMPANY
    COMPANY

  • LEGAL
    LEGAL

  • LOGIN
    LOGIN

  • Workflow Automation

    Workflow Automation

  • AI Assisted Content Management System
    AI Assisted Content Management System

  • Analytics & Lead Generation
    Analytics & Lead Generation

  • Automation Projects
    Automation Projects

  • Browser Extension Apps
    Browser Extension Apps

  • Dashboard Theme Analysis: LN1
    Dashboard Theme Analysis: LN1

  • Data Exchange Automation Tools
    Data Exchange Automation Tools

  • Getting Started With Building Hybrid Apps
    Getting Started With Building Hybrid Apps

  • Izyware Hybrid UX Design Guidelines
    Izyware Hybrid UX Design Guidelines

  • Onboarding New Organizations Using Izyware
    Onboarding New Organizations Using Izyware

  • Quick Visualization and Monitoring
    Quick Visualization and Monitoring

  • Unified Metrics Stream Pipeline
    Unified Metrics Stream Pipeline

  • Legacy Features and Backward Compatibility
    Legacy Features and Backward Compatibility

  • How does the legacy frame architecture work
    How does the legacy frame architecture work

  • Izyware Legacy UI Circus Engine
    Izyware Legacy UI Circus Engine

  • Case Studies and Knowledge Center
    Case Studies and Knowledge Center

  • Angular and React Embedding Guide
    Angular and React Embedding Guide

  • Build and deploy a content distribution app in less than five minutes: Part II
    Build and deploy a content distribution app in less than five minutes: Part II

  • Comparison of CSS Preprocessors SASS vs LESS vs STYLUS
    Comparison of CSS Preprocessors SASS vs LESS vs STYLUS

  • Comparison of node.js test frameworks and utilities: lab, chai, sinon
    Comparison of node.js test frameworks and utilities: lab, chai, sinon

  • Manage and automate your day to day business tools using IzyCloud Tasks: Part I
    Manage and automate your day to day business tools using IzyCloud Tasks: Part I

  • MySql Performance Optimization
    MySql Performance Optimization

  • Onboarding Tutorial: Creating & publishing an app
    Onboarding Tutorial: Creating & publishing an app

  • Rebranding and Customizing Websites
    Rebranding and Customizing Websites

  • Using IzyCloud on Android: IzyCloud Query App
    Using IzyCloud on Android: IzyCloud Query App

  • Technical Resources
    Technical Resources

  • .NET SDKCore IzyWare
    .NET SDKCore IzyWare

  • av-stream README
    av-stream README

  • ElasticSearch IzyWare Data Console Feature
    ElasticSearch IzyWare Data Console Feature

  • End To End Testing
    End To End Testing

  • End To End Testing, Part II
    End To End Testing, Part II

  • frames and nav (ui/w/shell/navmulti) README
    frames and nav (ui/w/shell/navmulti) README

  • izy-circus README
    izy-circus README

  • izy-idman-tools README
    izy-idman-tools README

  • izy-pop3 README
    izy-pop3 README

  • izy-proxy README
    izy-proxy README

  • izy-sync README
    izy-sync README

  • IzyIDE README
    IzyIDE README

  • izymodtask readme
    izymodtask readme

  • IzyShell readme
    IzyShell readme

  • ReKey Feature Package README for IzyWare SQL Console
    ReKey Feature Package README for IzyWare SQL Console

  • Single Sign-On (SSO) README
    Single Sign-On (SSO) README

  • Tasks Migration : V5 guidelines
    Tasks Migration : V5 guidelines

  • Users & Groups README
    Users & Groups README

  • V5 Migration : apps/pulse guidelines README
    V5 Migration : apps/pulse guidelines README

  • Container Orchestration
    Container Orchestration

  • Izy Kubernetes Internal Networking Troubleshooting
    Izy Kubernetes Internal Networking Troubleshooting

  • Application Hosting
    Application Hosting

  • Content Publisher
    Content Publisher

  • Domain Registration
    Domain Registration

  • Email Hosting
    Email Hosting

  • Izyware Browser Extension
    Izyware Browser Extension

  • Izyware Deployment Engine
    Izyware Deployment Engine

  • Izyware Session Management
    Izyware Session Management

  • Messaging System APIs and functionality
    Messaging System APIs and functionality

  • Single SignOn
    Single SignOn

  • Integration APIs
    Integration APIs

  • iOS SDK
    iOS SDK

  • Azure and .NET
    Azure and .NET

  • izy-devops
    izy-devops

  • << izy-sync README
    << izy-sync README

  • izymodtask readme >>
    izymodtask readme >>

  • IzyIDE README


  • package: ui/ide

    Architecture

    The Init Sequence

    izyware/config/data

    izyware/viewer/state.js

    will detect startide=1 and flag modtask.ide

    it will load all the modules, including izyware/ide

    will do runPkg on all izyware/ide before everybody else

    izyware/ide

    will instantiate ui/ide/main, passing in the mode and the modules to load

    IDE App

    The main ide app consists of a single master kernel and many slave instances that get created with a new editor window is opened.

    Both instances are created using ui/ide/main. That module will detect whether it is in the master mode or slave (missplled as "editor") mode and will all all of its modules (defined in izyware/ide) to instantiate themselves and add functionaly to the instance (being master or slave by checking the value against "editor").

    Some example functionality implemented in modules are:

    • modtask.storage
    • modtask.modeditor (ui/ide/editor/ace)
    • Master and Slave buttons (using addMasterButton, addSlaveButton)
    Master Mode
    • Will start the 'master' view (as opposed to 'slave' view)
    • The user can select a UI element via the master view and it will:

    modtask.seqs.select

    modtask.seqs.editmod

    // references

    modtask.activeModules.items[modname]

    modtask.modeditor.editmod(modname)

    modeditor.createWindow

    • modeditor.createWindow will open in new window and start it off with

    document['izyware_appid'] = 'izyware/ide+ui/ide/editor/ace'

    • This will start a new instance in the Editor Mode and will get a notification once that instance is connected.
    Slave Mode
    • Will render the UI in the 'modtask.editorView'
    • Will notify the master instance when connected.

    Known Issues

    • ide bug (both might be a matter of simple state maintinaince)

    * on component update, the onclick onnavigate still pointing to old component code (requires refresh)

    * maybe we are storing a reference to the old thing in our code
    • have the clients correctly communicated with the system
    * use only itemIds and strings

    * no in memory objects

    * use window.messaging (via chains) instead of window.xxxx calls

    * this will also allow us to implement cross domain. for now they can only be shared on the same domain/

    * once fixed the following need to be fixed

    * ide/5/master/plugin/browserstorage, cfg.namespace cannot be prefixed with version v3, v5, etc. because add component uses its internal browserstorage and not the one in the main window

    * remove isRoot and newUIAttachedSession from the master

    * reimplement explorer to not use those

    • refactor 'ui/ide/cloudstorage/table' to implement the incrementalLoadPkg functionality using components/pkgman/
    * related to https://izyware.com/

    /dashboard/list/542147/info/88/markdown/view and how caching and bootrapping works

    • IDE is currently polluting the theme, etc. the modcores need to be seperated.
    • Allow the IDE to customize the module error message to provide actionable item from IDe for creating the module.
    • open in the same window for the explorer / tabbe view
    • Editor Tool

    - Loop detection does not work

    \['replace', modtask, modtask]\

    • Local Diff tool
    • Add rename action
    • Package Manager
    - Bring the package manager functionality into the IDE. it makes sense to try to do it from the IDE (it should also work in the dashboard, but also run it inside the IDE window for quick access)

    - Clone dialog box does not allow opting out

    - The + (clone) feature should list all the currently loaded modules (with search feature) in addition to templates for the source module to clone from.

    - Dependency adder is not acccessible from the IDE

    - Dependency adder should not allow text additions. It should pick items from a list.

    Change Log

    V7

    • 75000011: ui/ide:cloudstorage update ACL for IDE and Legacy Dashboard
    • 75000010: ui/ide:cloudstorage adding logging and access control list

    V5

    • passin containerRawMod when redrawSection

    * this is needed to preserve the hierarchy

    * the containerValue depends on this being correct
    • added isIDERootFrame
    * this will exclude the IDE frame from the rest

    * otherwise it will interfere with the navs

    • added support for Multi Package

    * Ealier versions would only allow 1 package at a time

    • add master module for the IDE. seperate IDE core from UI

    * completly seperates IDE engine from the front-end

    * allows for developing IDE UI inside earlier versions
    • recreate the UI using the new V5
    * Lot of the new UI was pending because of this and doesn't make sense to add them.
    • Add security token to commit

    V1,2,3

    • Editor Tool, Feedback message for module errors does not appear in the editor window (main toolbar)

    * It was hard to immediately see what the issue with the module being edited was.

    * This will provide the feedback inline
    • improved the redrawModule in ide/main to:
    * use the sourcepart chain context for redraw

    * this will keep the sourcepart property on the module "DURING" render intact

    * the older method would temporarily set sourcepart to ide/main which is problematic for anything that depended on it.

    * areas that were broken include:

    * set/getFields when doing 'value'

    • improve module picker list
    • add startide=11 mode to have the IDE open on startup
    • move the editor syntax checker to the module window

    * allow it to be turned on/off (off automatically for CSS and HTML)

    * when error clarify that the module is not saved until error is fixed
    • clean up the editor code base. add the session, master and slave concepts. Add feedback to the editor window.