refactor code organization
diff --git a/planetstack/core/xoslib/dashboards/gentle.html b/planetstack/core/xoslib/dashboards/gentle.html
new file mode 100644
index 0000000..707f10e
--- /dev/null
+++ b/planetstack/core/xoslib/dashboards/gentle.html
@@ -0,0 +1,25 @@
+ <div class="navbar navbar-inverse navbar-fixed-top">
+ <div class="navbar-inner">
+ <div class="container">
+ <span class="brand">Contact manager</span>
+ </div>
+ </div>
+ </div>
+
+ <div id="main-region" class="container">
+ <p>Here is static content in the web page. You'll notice that it gets replaced by our app as soon as we start it.</p>
+ </div>
+
+ <script type="text/template" id="contact-list-item">
+ <p><%- firstName %> <%- lastName %></p>
+ </script>
+
+<script src="{{ STATIC_URL }}/js/vendor/underscore-min.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.wreqr.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.babysitter.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.marionette.js"></script>
+<script src="{{ STATIC_URL }}/js/xoslib/xos-backbone.js"></script>
+<script src="{{ STATIC_URL }}/js/gentle.js"></script>
+
+
diff --git a/planetstack/core/xoslib/dashboards/sliverListTest.html b/planetstack/core/xoslib/dashboards/sliverListTest.html
index 61c54cf..255cbad 100644
--- a/planetstack/core/xoslib/dashboards/sliverListTest.html
+++ b/planetstack/core/xoslib/dashboards/sliverListTest.html
@@ -1,11 +1,11 @@
{% load mustache %}
{% load straight_include %}
-<script src="{{ STATIC_URL }}/js/underscore-min.js"></script>
-<script src="{{ STATIC_URL }}/js/backbone-min.js"></script>
-<script src="{{ STATIC_URL }}/js/ICanHaz.min.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/underscore-min.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone-min.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/ICanHaz.min.js"></script>
-<script src="{{ STATIC_URL }}/js/xos-backbone.js"></script>
+<script src="{{ STATIC_URL }}/js/xoslib/xos-backbone.js"></script>
<script src="{{ STATIC_URL }}/js/sliverListTest.js"></script>
<script type="text/html" id="sliverTemplate">
diff --git a/planetstack/core/xoslib/dashboards/xosDeveloper.html b/planetstack/core/xoslib/dashboards/xosDeveloper.html
index 110f673..c6002d7 100644
--- a/planetstack/core/xoslib/dashboards/xosDeveloper.html
+++ b/planetstack/core/xoslib/dashboards/xosDeveloper.html
@@ -1,10 +1,10 @@
-<script src="{{ STATIC_URL }}/js/underscore-min.js"></script>
-<script src="{{ STATIC_URL }}/js/backbone.js"></script>
-<script src="{{ STATIC_URL }}/js/backbone.wreqr.js"></script>
-<script src="{{ STATIC_URL }}/js/backbone.babysitter.js"></script>
-<script src="{{ STATIC_URL }}/js/backbone.marionette.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/underscore-min.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.wreqr.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.babysitter.js"></script>
+<script src="{{ STATIC_URL }}/js/vendor/backbone.marionette.js"></script>
-<script src="{{ STATIC_URL }}/js/xos-backbone.js"></script>
+<script src="{{ STATIC_URL }}/js/xoslib/xos-backbone.js"></script>
<script src="{{ STATIC_URL }}/js/xosDeveloper.js"></script>
<div id="developerView">
diff --git a/planetstack/core/xoslib/dashboards/xsh.html b/planetstack/core/xoslib/dashboards/xsh.html
index 6e5103a..65a44da 100644
--- a/planetstack/core/xoslib/dashboards/xsh.html
+++ b/planetstack/core/xoslib/dashboards/xsh.html
@@ -6,16 +6,16 @@
</div>
<link rel="stylesheet" type="text/css" href="{% static 'shell/opencloud_shell.css' %}" media="all">
- <script src="{{ STATIC_URL }}/js/underscore-min.js"></script>
- <script src="{{ STATIC_URL }}/js/backbone-min.js"></script>
- <script src="{{ STATIC_URL }}/js/ICanHaz.min.js"></script>
- <script src="{{ STATIC_URL }}/js/xos-backbone.js"></script>
- <script src="{% static 'xsh/xsh.js' %}"></script>
- <script src="{% static 'xsh/object_id.js' %}"></script>
- <script src="{% static 'xsh/constants.js' %}"></script>
- <script src="{% static 'xsh/utils.js' %}"></script>
- <script src="{% static 'xsh/shell_utils.js' %}"></script>
- <script src="{% static 'xsh/tokens.js' %}"></script>
+ <script src="{{ STATIC_URL }}/js/vendor/underscore-min.js"></script>
+ <script src="{{ STATIC_URL }}/js/vendor/backbone-min.js"></script>
+ <script src="{{ STATIC_URL }}/js/vendor/ICanHaz.min.js"></script>
+ <script src="{{ STATIC_URL }}/js/xoslib/xos-backbone.js"></script>
+ <script src="{% static 'js/xsh/xsh.js' %}"></script>
+ <script src="{% static 'js/xsh/object_id.js' %}"></script>
+ <script src="{% static 'js/xsh/constants.js' %}"></script>
+ <script src="{% static 'js/xsh/utils.js' %}"></script>
+ <script src="{% static 'js/xsh/shell_utils.js' %}"></script>
+ <script src="{% static 'js/xsh/tokens.js' %}"></script>
diff --git a/planetstack/core/xoslib/static/js/angrycats.js b/planetstack/core/xoslib/static/js/angrycats.js
deleted file mode 100644
index a599a83..0000000
--- a/planetstack/core/xoslib/static/js/angrycats.js
+++ /dev/null
@@ -1,170 +0,0 @@
-MyApp = new Backbone.Marionette.Application();
-
-MyApp.addRegions({
- mainRegion: "#content"
-});
-
-AngryCat = Backbone.Model.extend({
- defaults: {
- votes: 0
- },
-
- addVote: function(){
- this.set('votes', this.get('votes') + 1);
- },
-
- rankUp: function() {
- this.set({rank: this.get('rank') - 1});
- },
-
- rankDown: function() {
- this.set({rank: this.get('rank') + 1});
- }
-});
-
-AngryCats = Backbone.Collection.extend({
- model: AngryCat,
-
- initialize: function(cats){
- var rank = 1;
- _.each(cats, function(cat) {
- cat.set('rank', rank);
- ++rank;
- });
-
- this.on('add', function(cat){
- if( ! cat.get('rank') ){
- var error = Error("Cat must have a rank defined before being added to the collection");
- error.name = "NoRankError";
- throw error;
- }
- });
-
- var self = this;
-
- MyApp.on("rank:up", function(cat){
- if (cat.get('rank') === 1) {
- // can't increase rank of top-ranked cat
- return true;
- }
- self.rankUp(cat);
- self.sort();
- self.trigger("reset");
- });
-
- MyApp.on("rank:down", function(cat){
- if (cat.get('rank') === self.size()) {
- // can't decrease rank of lowest ranked cat
- return true;
- }
- self.rankDown(cat);
- self.sort();
- self.trigger("reset");
- });
-
- MyApp.on("cat:disqualify", function(cat){
- var disqualifiedRank = cat.get('rank');
- var catsToUprank = self.filter(
- function(cat){ return cat.get('rank') > disqualifiedRank; }
- );
- catsToUprank.forEach(function(cat){
- cat.rankUp();
- });
- self.trigger('reset');
- });
- },
-
- comparator: function(cat) {
- return cat.get('rank');
- },
-
- rankUp: function(cat) {
- // find the cat we're going to swap ranks with
- var rankToSwap = cat.get('rank') - 1;
- var otherCat = this.at(rankToSwap - 1);
-
- // swap ranks
- cat.rankUp();
- otherCat.rankDown();
- },
-
- rankDown: function(cat) {
- // find the cat we're going to swap ranks with
- var rankToSwap = cat.get('rank') + 1;
- var otherCat = this.at(rankToSwap - 1);
-
- // swap ranks
- cat.rankDown();
- otherCat.rankUp();
- }
-});
-
-AngryCatView = Backbone.Marionette.ItemView.extend({
- template: "#angry_cat-template",
- tagName: 'tr',
- className: 'angry_cat',
-
- events: {
- 'click .rank_up img': 'rankUp',
- 'click .rank_down img': 'rankDown',
- 'click a.disqualify': 'disqualify'
- },
-
- initialize: function(){
- this.listenTo(this.model, "change:votes", this.render);
- },
-
- rankUp: function(){
- this.model.addVote();
- MyApp.trigger("rank:up", this.model);
- },
-
- rankDown: function(){
- this.model.addVote();
- MyApp.trigger("rank:down", this.model);
- },
-
- disqualify: function(){
- MyApp.trigger("cat:disqualify", this.model);
- this.model.destroy();
- }
-});
-
-AngryCatsView = Backbone.Marionette.CompositeView.extend({
- tagName: "table",
- id: "angry_cats",
- className: "table-striped table-bordered",
- template: "#angry_cats-template",
- itemView: AngryCatView,
-
- initialize: function(){
- this.listenTo(this.collection, "sort", this.renderCollection);
- },
-
- appendHtml: function(collectionView, itemView){
- collectionView.$("tbody").append(itemView.el);
- }
-});
-
-MyApp.addInitializer(function(options){
- var angryCatsView = new AngryCatsView({
- collection: options.cats
- });
- MyApp.mainRegion.show(angryCatsView);
-});
-
-$(document).ready(function(){
- var cats = new AngryCats([
- new AngryCat({ name: 'Wet Cat', image_path: 'assets/images/cat2.jpg' }),
- new AngryCat({ name: 'Bitey Cat', image_path: 'assets/images/cat1.jpg' }),
- new AngryCat({ name: 'Surprised Cat', image_path: 'assets/images/cat3.jpg' })
- ]);
-
- MyApp.start({cats: cats});
-
- cats.add(new AngryCat({
- name: 'Cranky Cat',
- image_path: 'assets/images/cat4.jpg',
- rank: cats.size() + 1
- }));
-});
diff --git a/planetstack/core/xoslib/static/js/gentle2.js b/planetstack/core/xoslib/static/js/gentle2.js
deleted file mode 100644
index fde3daf..0000000
--- a/planetstack/core/xoslib/static/js/gentle2.js
+++ /dev/null
@@ -1,34 +0,0 @@
-DeveloperApp = new Marionette.Application();
-
-DeveloperApp.addRegions({
- mainRegion: "#developerView"
-});
-
-DeveloperApp.SlioeDetailView = Marionette.ItemView.extend({
- template: "#developer-slicedetail-template",
- tagName: 'tr',
- className: 'developer_slicedetail'
-});
-
-DeveloperApp.ContactsView = Marionette.CollectionView.extend({
- tagName: "table",
- childView: DeveloperApp.ContactItemView
-});
-
-DeveloperApp.on("start", function(){
- xos.slices.add( {
- firstName: "Bob",
- lastName: "Brigham",
- phoneNumber: "555-0163"
- });
-
- var contactsView = new DeveloperApp.ContactsView({
- collection: xos.slices
- });
-
- DeveloperApp.mainRegion.show(contactsView);
-});
-
-$(document).ready(function(){
- DeveloperApp.start();
-});
diff --git a/planetstack/core/xoslib/static/js/ICanHaz.min.js b/planetstack/core/xoslib/static/js/vendor/ICanHaz.min.js
similarity index 100%
rename from planetstack/core/xoslib/static/js/ICanHaz.min.js
rename to planetstack/core/xoslib/static/js/vendor/ICanHaz.min.js
diff --git a/planetstack/core/xoslib/static/js/backbone-min.js b/planetstack/core/xoslib/static/js/vendor/backbone-min.js
similarity index 100%
rename from planetstack/core/xoslib/static/js/backbone-min.js
rename to planetstack/core/xoslib/static/js/vendor/backbone-min.js
diff --git a/planetstack/core/xoslib/static/js/backbone-tastypie.js b/planetstack/core/xoslib/static/js/vendor/backbone-tastypie.js
similarity index 100%
rename from planetstack/core/xoslib/static/js/backbone-tastypie.js
rename to planetstack/core/xoslib/static/js/vendor/backbone-tastypie.js
diff --git a/planetstack/core/xoslib/static/js/backbone.babysitter.js b/planetstack/core/xoslib/static/js/vendor/backbone.babysitter.js
similarity index 100%
rename from planetstack/core/xoslib/static/js/backbone.babysitter.js
rename to planetstack/core/xoslib/static/js/vendor/backbone.babysitter.js
diff --git a/planetstack/core/xoslib/static/js/backbone.js b/planetstack/core/xoslib/static/js/vendor/backbone.js
similarity index 100%
rename from planetstack/core/xoslib/static/js/backbone.js
rename to planetstack/core/xoslib/static/js/vendor/backbone.js
diff --git a/planetstack/core/xoslib/static/js/backbone.marionette.js b/planetstack/core/xoslib/static/js/vendor/backbone.marionette.js
similarity index 100%
rename from planetstack/core/xoslib/static/js/backbone.marionette.js
rename to planetstack/core/xoslib/static/js/vendor/backbone.marionette.js
diff --git a/planetstack/core/xoslib/static/js/backbone.marionette.min.js b/planetstack/core/xoslib/static/js/vendor/backbone.marionette.min.js
similarity index 100%
rename from planetstack/core/xoslib/static/js/backbone.marionette.min.js
rename to planetstack/core/xoslib/static/js/vendor/backbone.marionette.min.js
diff --git a/planetstack/core/xoslib/static/js/backbone.wreqr.js b/planetstack/core/xoslib/static/js/vendor/backbone.wreqr.js
similarity index 100%
rename from planetstack/core/xoslib/static/js/backbone.wreqr.js
rename to planetstack/core/xoslib/static/js/vendor/backbone.wreqr.js
diff --git a/planetstack/core/xoslib/static/js/underscore-min.js b/planetstack/core/xoslib/static/js/vendor/underscore-min.js
similarity index 100%
rename from planetstack/core/xoslib/static/js/underscore-min.js
rename to planetstack/core/xoslib/static/js/vendor/underscore-min.js
diff --git a/planetstack/core/xoslib/static/js/xos-backbone.js b/planetstack/core/xoslib/static/js/xoslib/xos-backbone.js
similarity index 100%
rename from planetstack/core/xoslib/static/js/xos-backbone.js
rename to planetstack/core/xoslib/static/js/xoslib/xos-backbone.js
diff --git a/planetstack/core/xoslib/static/xsh/constants.js b/planetstack/core/xoslib/static/js/xsh/constants.js
similarity index 100%
rename from planetstack/core/xoslib/static/xsh/constants.js
rename to planetstack/core/xoslib/static/js/xsh/constants.js
diff --git a/planetstack/core/xoslib/static/xsh/object_id.js b/planetstack/core/xoslib/static/js/xsh/object_id.js
similarity index 100%
rename from planetstack/core/xoslib/static/xsh/object_id.js
rename to planetstack/core/xoslib/static/js/xsh/object_id.js
diff --git a/planetstack/core/xoslib/static/xsh/shell_utils.js b/planetstack/core/xoslib/static/js/xsh/shell_utils.js
similarity index 100%
rename from planetstack/core/xoslib/static/xsh/shell_utils.js
rename to planetstack/core/xoslib/static/js/xsh/shell_utils.js
diff --git a/planetstack/core/xoslib/static/xsh/tokens.js b/planetstack/core/xoslib/static/js/xsh/tokens.js
similarity index 100%
rename from planetstack/core/xoslib/static/xsh/tokens.js
rename to planetstack/core/xoslib/static/js/xsh/tokens.js
diff --git a/planetstack/core/xoslib/static/xsh/utils.js b/planetstack/core/xoslib/static/js/xsh/utils.js
similarity index 100%
rename from planetstack/core/xoslib/static/xsh/utils.js
rename to planetstack/core/xoslib/static/js/xsh/utils.js
diff --git a/planetstack/core/xoslib/static/xsh/xsh.js b/planetstack/core/xoslib/static/js/xsh/xsh.js
similarity index 100%
rename from planetstack/core/xoslib/static/xsh/xsh.js
rename to planetstack/core/xoslib/static/js/xsh/xsh.js