zodern/Silk — pull request #5 by formula1 (2014-11-15 23:38:00+00:00)
Title: Major Changes

I apologize, you do not have to accept this request. However, there were a few things bothering about the way things were organized on the route.

# File Structure

* `/apps/` - This is the folder that holds all of the applications that the user has available
* `/apps/{{appname}}/window.json` - This holds the window information for that specific application. Its absolutely necessary for each similar to package.json
* `/apps/{{appname}}/index.js` - this abuses the node system where we can require a folder and it just retrieves the index. It can also hold a package.json to define what the main script is.
* `/apps/{{appname}}/public` - all files here are public
* `/core/` - Where you'll be placing almost all of the framework files
* `/core/public` - public core files

## Purpose

* Clean File Structure where you know where things are
* Automation of Window Loading
* The Load screen actually has a purpose now where it retrieves the list of possible windows
* Possible Package Manager implementation later on
* Able to watch for file structure changes inorder to live load or delete "applications" (not implemented)

## Other Thoughts

I should probably rename everything to "Windows" instead of "Applications". I wasn't 100% sure what to call everything so I kindof just did it as I went along

The automation is done in `/core/appmanager.js`

# Bower

Your going to have to do a `npm install bower -g` possibly as administrator then run a `bower install` similar to npm. Bower is very nice inorder to make sure we always have the most recent front end stuff. Vue, jsChannel, jQuery and some other stuff are already installed.

# Channels

Channels between frames are built after "onload" event is triggered. The way you were implementing it before resulted in a "race to meet conditions" and caused an error for me in some cases.

# TextEditor

I change the code for it to detect mimetype of the file to deliver an error on files that do not have base mimetype text. Obviously this leaves out many acceptable files as well like application/json however, I don't particularly like seeing integer arrays