fassets_core 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +21 -0
- data/README.md +22 -0
- data/Rakefile +39 -0
- data/app/assets/images/fassets_core/add.png +0 -0
- data/app/assets/images/fassets_core/archive.png +0 -0
- data/app/assets/images/fassets_core/classify.png +0 -0
- data/app/assets/images/fassets_core/clipboard.png +0 -0
- data/app/assets/images/fassets_core/collapse.png +0 -0
- data/app/assets/images/fassets_core/collapsed.png +0 -0
- data/app/assets/images/fassets_core/delete.png +0 -0
- data/app/assets/images/fassets_core/drag.png +0 -0
- data/app/assets/images/fassets_core/edit.png +0 -0
- data/app/assets/images/fassets_core/link.png +0 -0
- data/app/assets/images/fassets_core/markup_preview.png +0 -0
- data/app/assets/images/fassets_core/remove.png +0 -0
- data/app/assets/images/fassets_core/sort.png +0 -0
- data/app/assets/images/fassets_core/warning.png +0 -0
- data/app/assets/javascripts/fassets_core/add_asset_box.js +102 -0
- data/app/assets/javascripts/fassets_core/application.js.erb +14 -0
- data/app/assets/javascripts/fassets_core/assets.js +31 -0
- data/app/assets/javascripts/fassets_core/catalog_box.js +73 -0
- data/app/assets/javascripts/fassets_core/catalogs.js +46 -0
- data/app/assets/javascripts/fassets_core/classification.js +37 -0
- data/app/assets/javascripts/fassets_core/edit_box.js +63 -0
- data/app/assets/javascripts/fassets_core/facets.js.erb +32 -0
- data/app/assets/javascripts/fassets_core/tray.js +30 -0
- data/app/assets/stylesheets/fassets_core/add_asset_box.css.scss +77 -0
- data/app/assets/stylesheets/fassets_core/application.css +16 -0
- data/app/assets/stylesheets/fassets_core/assets.css.scss +74 -0
- data/app/assets/stylesheets/fassets_core/catalog_box.css.scss +45 -0
- data/app/assets/stylesheets/fassets_core/collapsible.css.scss +54 -0
- data/app/assets/stylesheets/fassets_core/edit_box.css.scss +58 -0
- data/app/assets/stylesheets/fassets_core/facet.css.scss +56 -0
- data/app/assets/stylesheets/fassets_core/filter.css.scss +20 -0
- data/app/assets/stylesheets/fassets_core/forms.css.scss +12 -0
- data/app/assets/stylesheets/fassets_core/labels.css.scss +13 -0
- data/app/assets/stylesheets/fassets_core/master.css.scss +127 -0
- data/app/assets/stylesheets/fassets_core/sidebar.css.scss +84 -0
- data/app/assets/stylesheets/fassets_core/tray.css.scss +106 -0
- data/app/controllers/assets_controller.rb +115 -0
- data/app/controllers/catalogs_controller.rb +99 -0
- data/app/controllers/classifications_controller.rb +56 -0
- data/app/controllers/facets_controller.rb +57 -0
- data/app/controllers/fassets_core/application_controller.rb +5 -0
- data/app/controllers/labels_controller.rb +54 -0
- data/app/controllers/tray_positions_controller.rb +81 -0
- data/app/helpers/assets_helper.rb +20 -0
- data/app/helpers/catalogs_helper.rb +3 -0
- data/app/helpers/classifications_helper.rb +8 -0
- data/app/helpers/fassets_core/application_helper.rb +48 -0
- data/app/helpers/labels_helper.rb +3 -0
- data/app/helpers/tray_positions_helper.rb +3 -0
- data/app/models/asset.rb +52 -0
- data/app/models/catalog.rb +16 -0
- data/app/models/classification.rb +8 -0
- data/app/models/facet.rb +19 -0
- data/app/models/label.rb +11 -0
- data/app/models/label_filter.rb +16 -0
- data/app/models/labeling.rb +5 -0
- data/app/models/tray_position.rb +9 -0
- data/app/views/assets/_add_asset_sidebar.html.haml +8 -0
- data/app/views/assets/_classification.html.haml +33 -0
- data/app/views/assets/_form.html.haml +30 -0
- data/app/views/assets/_put_on_tray.html.haml +7 -0
- data/app/views/assets/edit.html.haml +15 -0
- data/app/views/assets/new.html.haml +25 -0
- data/app/views/assets/show.html.haml +13 -0
- data/app/views/catalogs/_box_catalog_list.html.haml +6 -0
- data/app/views/catalogs/_box_content.html.haml +13 -0
- data/app/views/catalogs/_catalog.html.haml +2 -0
- data/app/views/catalogs/_facet.html.haml +13 -0
- data/app/views/catalogs/_filter_item.html.haml +3 -0
- data/app/views/catalogs/_form.html.haml +6 -0
- data/app/views/catalogs/box.html.haml +6 -0
- data/app/views/catalogs/edit.html.haml +8 -0
- data/app/views/catalogs/index.html.haml +17 -0
- data/app/views/catalogs/new.html.haml +8 -0
- data/app/views/catalogs/show.html.haml +30 -0
- data/app/views/classifications/update.js.erb +4 -0
- data/app/views/facets/_form.html.haml +9 -0
- data/app/views/facets/edit.html.haml +15 -0
- data/app/views/labels/_form.haml +3 -0
- data/app/views/labels/_sidebar.html.haml +22 -0
- data/app/views/labels/destroy.js.erb +13 -0
- data/app/views/layouts/fassets_core/application.html.haml +16 -0
- data/app/views/shared/_asset.html.haml +22 -0
- data/app/views/shared/_asset_form.html.haml +7 -0
- data/app/views/shared/_classification.html.haml +23 -0
- data/app/views/shared/_clipboard.html.haml +10 -0
- data/app/views/shared/_error.html.haml +6 -0
- data/app/views/shared/_tray.html.haml +13 -0
- data/app/views/shared/_tray_position.html.haml +8 -0
- data/app/views/tray_positions/create.js.rjs +10 -0
- data/app/views/tray_positions/destroy.js.rjs +1 -0
- data/app/views/tray_positions/sort.js.rjs +15 -0
- data/config/initializers/mime_types.rb +2 -0
- data/config/initializers/uploader.rb +2 -0
- data/config/initializers/users.rb +7 -0
- data/config/routes.rb +34 -0
- data/db/migrate/001_create_catalogs.rb +13 -0
- data/db/migrate/002_create_facets.rb +14 -0
- data/db/migrate/003_create_labels.rb +12 -0
- data/db/migrate/005_create_classifications.rb +12 -0
- data/db/migrate/006_create_labelings.rb +12 -0
- data/db/migrate/007_create_tray_positions.rb +13 -0
- data/db/migrate/008_create_assets.rb +16 -0
- data/db/migrate/010_add_label_ordering.rb +10 -0
- data/db/migrate/017_add_clipboard.rb +11 -0
- data/db/migrate/20120803150826_add_position_to_facet.rb +5 -0
- data/db/schema.rb +141 -0
- data/db/seeds.rb +7 -0
- data/lib/acts_as_asset.rb +36 -0
- data/lib/authenticated_system.rb +187 -0
- data/lib/authenticated_test_helper.rb +20 -0
- data/lib/fassets_core.rb +6 -0
- data/lib/fassets_core/engine.rb +7 -0
- data/lib/fassets_core/plugins.rb +13 -0
- data/lib/fassets_core/test_helper.rb +3 -0
- data/lib/fassets_core/test_helper/every_assets_controller.rb +161 -0
- data/lib/fassets_core/test_helper/every_authenticated_controller.rb +10 -0
- data/lib/fassets_core/version.rb +3 -0
- data/lib/tasks/cucumber.rake +57 -0
- data/lib/tasks/fassets-core_tasks.rake +4 -0
- data/lib/template_manager.rb +27 -0
- data/test/fassets-core_test.rb +7 -0
- data/test/fixtures/asset_contents.yml +7 -0
- data/test/fixtures/assets.yml +7 -0
- data/test/fixtures/catalogs.yml +9 -0
- data/test/fixtures/classifications.yml +7 -0
- data/test/fixtures/facets.yml +9 -0
- data/test/fixtures/frames.yml +11 -0
- data/test/fixtures/image_assets.yml +7 -0
- data/test/fixtures/labellings.yml +7 -0
- data/test/fixtures/labels.yml +9 -0
- data/test/fixtures/presentations.yml +7 -0
- data/test/fixtures/slides.yml +11 -0
- data/test/fixtures/slots.yml +0 -0
- data/test/fixtures/topics.yml +11 -0
- data/test/fixtures/tray_positions.yml +7 -0
- data/test/fixtures/users.yml +31 -0
- data/test/functional/assets_controller_test.rb +8 -0
- data/test/functional/catalogs_controller_test.rb +8 -0
- data/test/functional/classifications_controller_test.rb +8 -0
- data/test/functional/content_controller_test.rb +8 -0
- data/test/functional/facets_controller_test.rb +8 -0
- data/test/functional/file_assets_controller_test.rb +8 -0
- data/test/functional/files_controller_test.rb +8 -0
- data/test/functional/labellings_controller_test.rb +8 -0
- data/test/functional/labels_controller_test.rb +8 -0
- data/test/functional/presentations_controller_test.rb +8 -0
- data/test/functional/sessions_controller_test.rb +82 -0
- data/test/functional/slides_controller_test.rb +8 -0
- data/test/functional/slots_controller_test.rb +8 -0
- data/test/functional/tray_positions_controller_test.rb +8 -0
- data/test/functional/urls_controller_test.rb +8 -0
- data/test/functional/users_controller_test.rb +58 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/performance/browsing_test.rb +9 -0
- data/test/test_helper.rb +10 -0
- data/test/unit/asset_content_test.rb +8 -0
- data/test/unit/asset_test.rb +8 -0
- data/test/unit/catalog_test.rb +8 -0
- data/test/unit/classification_test.rb +8 -0
- data/test/unit/facet_test.rb +8 -0
- data/test/unit/frame_test.rb +8 -0
- data/test/unit/image_asset_test.rb +8 -0
- data/test/unit/label_test.rb +8 -0
- data/test/unit/labelling_test.rb +8 -0
- data/test/unit/presentation_test.rb +8 -0
- data/test/unit/slide_test.rb +8 -0
- data/test/unit/slot_test.rb +8 -0
- data/test/unit/topic_test.rb +8 -0
- data/test/unit/tray_position_test.rb +8 -0
- data/test/unit/user_test.rb +103 -0
- metadata +453 -0
@@ -0,0 +1,9 @@
|
|
1
|
+
%p
|
2
|
+
%label{:for => 'caption'} Caption:
|
3
|
+
=text_field :facet, :caption
|
4
|
+
%p
|
5
|
+
%label{:for => 'order'} Label Order:
|
6
|
+
=select(:facet, :label_order, Facet::LABEL_ORDER)
|
7
|
+
%p
|
8
|
+
%label{:for => 'color'} Color:
|
9
|
+
=select(:facet, :color, %w(red orange yellow green blue violet gray))
|
@@ -0,0 +1,15 @@
|
|
1
|
+
=content_for :h1 do
|
2
|
+
#type
|
3
|
+
%small Catalog
|
4
|
+
Facet
|
5
|
+
#title
|
6
|
+
%small=link_to @catalog.title, catalog_path(@catalog)
|
7
|
+
=@facet.caption
|
8
|
+
#action
|
9
|
+
=button_to "Delete", catalog_facet_path(@catalog, @facet), :method => :delete, :onclick => "return confirm('Are you sure?')"
|
10
|
+
#sidebar.fassets_core=render "labels/sidebar"
|
11
|
+
|
12
|
+
#main.fassets_core
|
13
|
+
=form_for [@catalog, @facet], :url => catalog_facet_path(@catalog,@facet) do |f|
|
14
|
+
=render :partial => "form", :object => f
|
15
|
+
=submit_tag "Save"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
.collapsible
|
2
|
+
%h2.title New Label
|
3
|
+
=form_for [@catalog, @facet, Label.new], :url => catalog_facet_labels_path(@catalog,@facet) do |f|
|
4
|
+
=render :partial => "labels/form", :object => f
|
5
|
+
=submit_tag "Create"
|
6
|
+
|
7
|
+
.collapsible
|
8
|
+
%h2.title Labels
|
9
|
+
%ol.collection{:class => @facet.label_order == 'position' ? "sortable" : nil, :id => "catalogs.#{@catalog.id}.facets.#{@facet.id}.labels.sort"}
|
10
|
+
-@facet.ordered_labels.each do |label|
|
11
|
+
%li{:id => "label_#{label.id}"}
|
12
|
+
=label.caption
|
13
|
+
.content
|
14
|
+
=form_for [@catalog, @facet, label], :url => catalog_facet_label_path(@catalog, @facet, label) do |f|
|
15
|
+
=render :partial => "labels/form", :object => f
|
16
|
+
=submit_tag "Save"
|
17
|
+
=button_to "Drop", catalog_facet_label_path(@catalog, @facet, label),
|
18
|
+
:confirm => 'Are you sure?',
|
19
|
+
:method => "delete",
|
20
|
+
:remote => true,
|
21
|
+
:disable_with => 'loading...'
|
22
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
$("#flash").html("<%= escape_javascript render(:partial => 'shared/flash_messages', :locals => {:flash => flash}) %>");
|
2
|
+
$("#message").show("slide", { direction: "left" }).delay(3000).hide("slide", { direction: "left" });
|
3
|
+
<% flash.discard %>
|
4
|
+
|
5
|
+
$("#sidebar.fassets_core").html("<%= escape_javascript render(:partial => 'labels/sidebar') %>");
|
6
|
+
|
7
|
+
$("#sidebar.fassets_core .collapsible").collapsiblePanel({
|
8
|
+
collapsedImage: "<%= image_path 'fassets_core/collapsed.png' %>",
|
9
|
+
expandedImage: "<%= image_path 'fassets_core/collapse.png' %>",
|
10
|
+
titleQuery: "h2.title",
|
11
|
+
startCollapsed: true
|
12
|
+
});
|
13
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
- content_for :head do
|
2
|
+
=stylesheet_link_tag 'fassets_core/application'
|
3
|
+
=javascript_include_tag 'fassets_core/application'
|
4
|
+
=yield :core_head
|
5
|
+
|
6
|
+
- content_for :catalogs_selector do
|
7
|
+
=collection_select :catalog,
|
8
|
+
:id, Catalog.all,
|
9
|
+
:id, :title,
|
10
|
+
options ={:prompt => "Catalogs ..."},
|
11
|
+
:onchange => "javascript:window.location= '/catalogs/' + this.value"
|
12
|
+
|
13
|
+
- content_for :tray do
|
14
|
+
=render :partial => "shared/tray"
|
15
|
+
|
16
|
+
=render :template => 'layouts/application'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
%li.asset{:id => tp ? "tp_#{tp.id}" : "asset_#{asset.id}", :rel => tp ? asset.id : nil, :data => { 'asset-id' => asset ? asset.id: nil}}
|
2
|
+
.asset_content
|
3
|
+
.icon
|
4
|
+
=render :partial => content_partial(asset.content, :icon), :locals => {:content => asset.content}
|
5
|
+
.caption
|
6
|
+
=link_to truncate(asset.name,:length => 13,:omission => "..."), asset_content_path(asset.content), :class => "caption"
|
7
|
+
.asset_actions
|
8
|
+
.action
|
9
|
+
-if user_signed_in?
|
10
|
+
=button_to "Edit", "",
|
11
|
+
:method => :get,
|
12
|
+
:class => "edit_button",
|
13
|
+
:data => {:asset_id => asset.id, :content_id => asset.content_id}
|
14
|
+
=#image_tag "fassets_core/drag.png", :width => 12, :height => 13, :class => "handle"
|
15
|
+
-if tp
|
16
|
+
=button_to "Drop", main_app.user_tray_position_path(current_user,tp.id),
|
17
|
+
:method => :delete,
|
18
|
+
:class => "drop_button",
|
19
|
+
:data => {:tp_id => tp.id, :user_id => current_user.id}
|
20
|
+
-else
|
21
|
+
-@content = asset.content
|
22
|
+
=render :partial => "assets/put_on_tray", :locals => {}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
.collapsible
|
2
|
+
%h2.title Add Classification
|
3
|
+
=form_for Classification.new(:asset_id => asset.id) do |f|
|
4
|
+
=select("classification", "catalog_id", Catalog.all.map {|c| [ c.title, c.id ] })
|
5
|
+
=f.hidden_field :asset_id
|
6
|
+
=submit_tag "Add"
|
7
|
+
|
8
|
+
%ul.collection{:class => "drawers"}
|
9
|
+
-asset.classifications.each do |classification|
|
10
|
+
%h2.title=classification.catalog.title
|
11
|
+
%li
|
12
|
+
.handle=classification.catalog.title
|
13
|
+
.content
|
14
|
+
=button_to "Drop", [classification], :method => :delete, :confirm => "Sure?"
|
15
|
+
=form_for [classification] do
|
16
|
+
=submit_tag "Save"
|
17
|
+
-facet2label = Hash[*classification.labels.map{|l| [l.facet_id, l.id]}.flatten]
|
18
|
+
.submit
|
19
|
+
-classification.catalog.facets.each do |facet|
|
20
|
+
%p
|
21
|
+
%label=facet.caption
|
22
|
+
=label_select(facet, facet2label[facet.id])
|
23
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
%li.clipboard{:id => "tp_#{tp.id}", :class => tp.clipboard_type}
|
2
|
+
.icon
|
3
|
+
=image_tag 'fassets_core/clipboard.png'
|
4
|
+
=link_to tp.clipboard.title, tp.clipboard.path, :class => "caption"
|
5
|
+
.type
|
6
|
+
=tp.clipboard_type.upcase
|
7
|
+
.action
|
8
|
+
=link_to image_tag("fassets_core/edit.png", :width => 15, :height => 15), tp.clipboard.path + "/edit"
|
9
|
+
=image_tag "fassets_core/drag.png", :width => 12, :height => 13, :class => "handle"
|
10
|
+
=check_box_tag "del[]", tp.id
|
@@ -0,0 +1,13 @@
|
|
1
|
+
- if user_signed_in?
|
2
|
+
=form_tag main_app.replace_user_tray_positions_path(current_user),
|
3
|
+
:data => { :user_id => current_user.id },
|
4
|
+
:id => "tray",
|
5
|
+
:method => :put do
|
6
|
+
%ol.sortable{:id => "users.#{current_user.id}.tray_positions.replace", :class => "sortable_tray"}
|
7
|
+
-current_user.tray_positions.each do |tp|
|
8
|
+
-if tp.clipboard_type
|
9
|
+
=render :partial => "shared/clipboard", :locals => {:tp => tp}
|
10
|
+
-else
|
11
|
+
=render :partial => "shared/asset", :locals => {:tp => tp, :asset => tp.asset}
|
12
|
+
%ul#create_links
|
13
|
+
%li=button_tag "New Assets", :id => "new_asset_link"
|
@@ -0,0 +1,8 @@
|
|
1
|
+
%li.asset
|
2
|
+
.icon
|
3
|
+
=render :partial => content_partial(asset.content, :icon), :locals => {:content => asset.content}
|
4
|
+
.type
|
5
|
+
=asset.content.media_type.upcase
|
6
|
+
-if user_signed_in?
|
7
|
+
=link_to "edit", edit_asset_content_path(asset.content)
|
8
|
+
=link_to asset.name, asset_content_path(asset.content)
|
@@ -0,0 +1,10 @@
|
|
1
|
+
if @tp
|
2
|
+
page << %Q{ $("#tray_#{@tp.id}").effect("shake"); }
|
3
|
+
else
|
4
|
+
tray_position = render_escaped(:partial => 'shared/tray_position',
|
5
|
+
:locals => {:tray_position => @tray_position})
|
6
|
+
page << %Q{
|
7
|
+
$("#tray").prepend("#{tray_position}");
|
8
|
+
$("#tray").sortable("refresh");
|
9
|
+
}
|
10
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
page << %Q{ $("#tray_#{@tray_position.id}").remove(); }
|
@@ -0,0 +1,15 @@
|
|
1
|
+
|
2
|
+
if @tp
|
3
|
+
tray_position = render_escaped(:partial => 'shared/tray_position',
|
4
|
+
:locals => {:tray_position => @tp})
|
5
|
+
|
6
|
+
page << %Q{
|
7
|
+
$("#tray_0").replaceWith("#{tray_position}");
|
8
|
+
ajaxifyTrayRemoveButtons();
|
9
|
+
}
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
page << %Q{
|
14
|
+
$("#tray").sortable("refresh");
|
15
|
+
}
|
data/config/routes.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
resources :catalogs do
|
3
|
+
resources :facets do
|
4
|
+
collection do
|
5
|
+
post :sort
|
6
|
+
end
|
7
|
+
resources :labels do
|
8
|
+
collection do
|
9
|
+
put :sort
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
put :add_asset
|
14
|
+
end
|
15
|
+
|
16
|
+
resources :classifications
|
17
|
+
|
18
|
+
resources :users do
|
19
|
+
resources :tray_positions do
|
20
|
+
collection do
|
21
|
+
put :replace
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
match 'asset/:id/preview' => 'Assets#preview'
|
27
|
+
match 'asset/:id/edit' => 'Assets#edit'
|
28
|
+
match 'asset/:id/classifications' => 'Assets#classifications'
|
29
|
+
match 'catalog_box' => 'Catalogs#catalog_box'
|
30
|
+
match 'box_content' => 'Catalogs#box_content'
|
31
|
+
match 'box_facet' => 'Catalogs#box_facet'
|
32
|
+
match 'edit_box/:id' => 'Assets#edit_box'
|
33
|
+
match 'assets/new' => 'assets#new'
|
34
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class CreateAssets < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :assets do |t|
|
4
|
+
t.string :name
|
5
|
+
t.boolean :public
|
6
|
+
t.integer :content_id
|
7
|
+
t.string :content_type
|
8
|
+
t.integer :user_id
|
9
|
+
t.integer :classifications_count
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.down
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class AddClipboard < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
add_column :tray_positions, :clipboard_type, :string
|
4
|
+
add_column :tray_positions, :clipboard_id, :integer
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.down
|
8
|
+
remove_column :tray_positions, :clipboard_type, :string
|
9
|
+
remove_column :tray_positions, :clipboard_id, :integer
|
10
|
+
end
|
11
|
+
end
|
data/db/schema.rb
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
# This file is auto-generated from the current state of the database. Instead
|
2
|
+
# of editing this file, please use the migrations feature of Active Record to
|
3
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
4
|
+
#
|
5
|
+
# Note that this schema.rb definition is the authoritative source for your
|
6
|
+
# database schema. If you need to create the application database on another
|
7
|
+
# system, you should be using db:schema:load, not running all the migrations
|
8
|
+
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
9
|
+
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
10
|
+
#
|
11
|
+
# It's strongly recommended to check this file into your version control system.
|
12
|
+
|
13
|
+
ActiveRecord::Schema.define(:version => 20) do
|
14
|
+
|
15
|
+
create_table "assets", :force => true do |t|
|
16
|
+
t.string "name"
|
17
|
+
t.boolean "public"
|
18
|
+
t.integer "content_id"
|
19
|
+
t.string "content_type"
|
20
|
+
t.integer "user_id"
|
21
|
+
t.integer "classifications_count"
|
22
|
+
t.datetime "created_at"
|
23
|
+
t.datetime "updated_at"
|
24
|
+
end
|
25
|
+
|
26
|
+
create_table "catalogs", :force => true do |t|
|
27
|
+
t.string "title"
|
28
|
+
t.string "permalink"
|
29
|
+
t.text "info"
|
30
|
+
end
|
31
|
+
|
32
|
+
create_table "classifications", :force => true do |t|
|
33
|
+
t.integer "catalog_id"
|
34
|
+
t.integer "asset_id"
|
35
|
+
end
|
36
|
+
|
37
|
+
create_table "facets", :force => true do |t|
|
38
|
+
t.string "caption"
|
39
|
+
t.string "color"
|
40
|
+
t.string "order"
|
41
|
+
t.integer "catalog_id"
|
42
|
+
t.string "label_order"
|
43
|
+
end
|
44
|
+
|
45
|
+
create_table "file_assets", :force => true do |t|
|
46
|
+
t.string "file"
|
47
|
+
t.string "content_type"
|
48
|
+
t.datetime "created_at"
|
49
|
+
t.datetime "updated_at"
|
50
|
+
end
|
51
|
+
|
52
|
+
create_table "frames", :force => true do |t|
|
53
|
+
t.integer "presentation_id"
|
54
|
+
t.string "title"
|
55
|
+
t.string "template"
|
56
|
+
t.integer "position"
|
57
|
+
t.integer "parent_id"
|
58
|
+
t.text "content"
|
59
|
+
end
|
60
|
+
|
61
|
+
create_table "labelings", :force => true do |t|
|
62
|
+
t.integer "classification_id"
|
63
|
+
t.integer "label_id"
|
64
|
+
end
|
65
|
+
|
66
|
+
create_table "labels", :force => true do |t|
|
67
|
+
t.string "caption"
|
68
|
+
t.integer "facet_id"
|
69
|
+
t.integer "position"
|
70
|
+
t.integer "value"
|
71
|
+
end
|
72
|
+
|
73
|
+
create_table "presentations", :force => true do |t|
|
74
|
+
t.string "title"
|
75
|
+
t.string "template"
|
76
|
+
end
|
77
|
+
|
78
|
+
create_table "sessions", :force => true do |t|
|
79
|
+
t.string "session_id", :null => false
|
80
|
+
t.text "data"
|
81
|
+
t.datetime "created_at"
|
82
|
+
t.datetime "updated_at"
|
83
|
+
end
|
84
|
+
|
85
|
+
add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
|
86
|
+
add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at"
|
87
|
+
|
88
|
+
create_table "slides", :force => true do |t|
|
89
|
+
t.integer "presentation_id"
|
90
|
+
t.string "title"
|
91
|
+
t.string "template"
|
92
|
+
t.integer "position"
|
93
|
+
t.text "content"
|
94
|
+
t.integer "topic_id"
|
95
|
+
end
|
96
|
+
|
97
|
+
create_table "slots", :force => true do |t|
|
98
|
+
t.integer "slide_id"
|
99
|
+
t.string "name"
|
100
|
+
t.text "body"
|
101
|
+
t.integer "asset_id"
|
102
|
+
end
|
103
|
+
|
104
|
+
create_table "topics", :force => true do |t|
|
105
|
+
t.integer "presentation_id"
|
106
|
+
t.integer "topic_slide"
|
107
|
+
t.string "title"
|
108
|
+
t.integer "position"
|
109
|
+
t.integer "parent_id"
|
110
|
+
end
|
111
|
+
|
112
|
+
create_table "tray_positions", :force => true do |t|
|
113
|
+
t.integer "user_id"
|
114
|
+
t.integer "position"
|
115
|
+
t.integer "asset_id"
|
116
|
+
t.string "clipboard_type"
|
117
|
+
t.integer "clipboard_id"
|
118
|
+
end
|
119
|
+
|
120
|
+
create_table "urls", :force => true do |t|
|
121
|
+
t.string "url"
|
122
|
+
end
|
123
|
+
|
124
|
+
create_table "users", :force => true do |t|
|
125
|
+
t.string "email", :default => "", :null => false
|
126
|
+
t.string "encrypted_password", :limit => 128, :default => "", :null => false
|
127
|
+
t.string "reset_password_token"
|
128
|
+
t.datetime "remember_created_at"
|
129
|
+
t.integer "sign_in_count", :default => 0
|
130
|
+
t.datetime "current_sign_in_at"
|
131
|
+
t.datetime "last_sign_in_at"
|
132
|
+
t.string "current_sign_in_ip"
|
133
|
+
t.string "last_sign_in_ip"
|
134
|
+
t.datetime "created_at"
|
135
|
+
t.datetime "updated_at"
|
136
|
+
end
|
137
|
+
|
138
|
+
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
|
139
|
+
add_index "users", ["reset_password_token"], :name => "index_users_on_reset_password_token", :unique => true
|
140
|
+
|
141
|
+
end
|