advertnet 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. data/LICENSE +674 -0
  2. data/README +257 -0
  3. data/Rakefile +10 -0
  4. data/app/controllers/application.rb +40 -0
  5. data/app/controllers/container_controller.rb +83 -0
  6. data/app/controllers/content_controller.rb +61 -0
  7. data/app/controllers/furnitures_controller.rb +87 -0
  8. data/app/controllers/networks_controller.rb +269 -0
  9. data/app/controllers/objects_in_world_controller.rb +27 -0
  10. data/app/controllers/panels_controller.rb +186 -0
  11. data/app/helpers/application_helper.rb +31 -0
  12. data/app/helpers/container_helper.rb +2 -0
  13. data/app/helpers/content_helper.rb +2 -0
  14. data/app/helpers/furnitures_helper.rb +2 -0
  15. data/app/helpers/network_helper.rb +2 -0
  16. data/app/helpers/networks_helper.rb +2 -0
  17. data/app/helpers/objects_in_world_helper.rb +2 -0
  18. data/app/helpers/panels_helper.rb +2 -0
  19. data/app/models/container.rb +51 -0
  20. data/app/models/furniture.rb +60 -0
  21. data/app/models/mailer.rb +22 -0
  22. data/app/models/network.rb +38 -0
  23. data/app/models/object_in_world.rb +60 -0
  24. data/app/models/object_off_world.rb +77 -0
  25. data/app/models/panel.rb +136 -0
  26. data/app/models/panel_revision.rb +108 -0
  27. data/app/views/container/list.rhtml +27 -0
  28. data/app/views/container/show.rhtml +8 -0
  29. data/app/views/content/_form.rhtml +12 -0
  30. data/app/views/content/edit.rhtml +8 -0
  31. data/app/views/content/list.rhtml +26 -0
  32. data/app/views/content/new.rhtml +8 -0
  33. data/app/views/furnitures/list.rhtml +51 -0
  34. data/app/views/furnitures/show.rhtml +7 -0
  35. data/app/views/layouts/default.rhtml +30 -0
  36. data/app/views/mailer/avtouch.rhtml +1 -0
  37. data/app/views/networks/_form.rhtml +11 -0
  38. data/app/views/networks/_parameters_form.rhtml +8 -0
  39. data/app/views/networks/edit.rhtml +9 -0
  40. data/app/views/networks/list.rhtml +25 -0
  41. data/app/views/networks/new.rhtml +8 -0
  42. data/app/views/networks/show.rhtml +72 -0
  43. data/app/views/networks/show_parameters_form.rjs +5 -0
  44. data/app/views/objects_in_world/list.rhtml +30 -0
  45. data/app/views/objects_in_world/show.rhtml +8 -0
  46. data/app/views/panels/list.rhtml +48 -0
  47. data/app/views/panels/show.rhtml +8 -0
  48. data/bin/advertnet-install +144 -0
  49. data/config/boot.rb +45 -0
  50. data/config/database.yml.default +43 -0
  51. data/config/environment.rb +67 -0
  52. data/config/environments/development.rb +21 -0
  53. data/config/environments/production.rb +21 -0
  54. data/config/environments/test.rb +19 -0
  55. data/config/routes.rb +23 -0
  56. data/db/migrate/001_create_networks.rb +14 -0
  57. data/db/migrate/002_create_furnitures.rb +17 -0
  58. data/db/migrate/003_create_containers.rb +16 -0
  59. data/db/migrate/004_create_objects_in_world.rb +16 -0
  60. data/db/migrate/005_create_objects_off_world.rb +16 -0
  61. data/db/migrate/006_create_panels.rb +17 -0
  62. data/db/migrate/007_join_objects_in_world_panels.rb +17 -0
  63. data/db/migrate/008_join_objects_off_world_panels.rb +17 -0
  64. data/db/migrate/009_add_sessions.rb +19 -0
  65. data/db/migrate/010_add_or_rename_fields.rb +25 -0
  66. data/db/migrate/011_move_texture_to_object_in_world.rb +25 -0
  67. data/db/migrate/012_add_permanent_furniture_id.rb +18 -0
  68. data/db/migrate/013_create_panel_revisions.rb +42 -0
  69. data/db/schema.rb +102 -0
  70. data/doc/README_FOR_APP +108 -0
  71. data/lib/advertnet.rb +13 -0
  72. data/lib/second_life_validators.rb +89 -0
  73. data/lib/tasks/documentation.rake +16 -0
  74. data/lib/tasks/extract_fixtures.rake +23 -0
  75. data/lib/tasks/load_exported_fixtures.rake +14 -0
  76. data/public/404.html +30 -0
  77. data/public/500.html +30 -0
  78. data/public/dispatch.cgi +10 -0
  79. data/public/dispatch.fcgi +24 -0
  80. data/public/dispatch.rb +10 -0
  81. data/public/favicon.ico +0 -0
  82. data/public/images/rails.png +0 -0
  83. data/public/javascripts/application.js +2 -0
  84. data/public/javascripts/controls.js +833 -0
  85. data/public/javascripts/dragdrop.js +942 -0
  86. data/public/javascripts/effects.js +1088 -0
  87. data/public/javascripts/prototype.js +2515 -0
  88. data/public/robots.txt +1 -0
  89. data/public/stylesheets/application.css +25 -0
  90. data/public/stylesheets/scaffold.css +74 -0
  91. data/script/about +3 -0
  92. data/script/breakpointer +3 -0
  93. data/script/console +3 -0
  94. data/script/destroy +3 -0
  95. data/script/generate +3 -0
  96. data/script/performance/benchmarker +3 -0
  97. data/script/performance/profiler +3 -0
  98. data/script/plugin +3 -0
  99. data/script/process/inspector +3 -0
  100. data/script/process/reaper +3 -0
  101. data/script/process/spawner +3 -0
  102. data/script/runner +3 -0
  103. data/script/server +3 -0
  104. data/test/fixtures/containers.yml +44 -0
  105. data/test/fixtures/furnitures.yml +47 -0
  106. data/test/fixtures/mailer/avtouch +1 -0
  107. data/test/fixtures/networks.yml +31 -0
  108. data/test/fixtures/objects_in_world.yml +71 -0
  109. data/test/fixtures/objects_in_world_panels.yml +43 -0
  110. data/test/fixtures/objects_off_world.yml +55 -0
  111. data/test/fixtures/objects_off_world_panels.yml +20 -0
  112. data/test/fixtures/panel_revisions.yml +28 -0
  113. data/test/fixtures/panels.yml +79 -0
  114. data/test/functional/container_controller_test.rb +167 -0
  115. data/test/functional/content_controller_test.rb +91 -0
  116. data/test/functional/furnitures_controller_test.rb +134 -0
  117. data/test/functional/networks_controller_test.rb +248 -0
  118. data/test/functional/objects_in_world_controller_test.rb +42 -0
  119. data/test/functional/panels_controller_test.rb +173 -0
  120. data/test/test_helper.rb +53 -0
  121. data/test/unit/container_test.rb +53 -0
  122. data/test/unit/furniture_test.rb +68 -0
  123. data/test/unit/mailer_test.rb +40 -0
  124. data/test/unit/network_test.rb +42 -0
  125. data/test/unit/object_in_world_test.rb +33 -0
  126. data/test/unit/object_off_world_test.rb +26 -0
  127. data/test/unit/panel_revision_test.rb +148 -0
  128. data/test/unit/panel_test.rb +63 -0
  129. data/vendor/plugins/annotate_models/ChangeLog +46 -0
  130. data/vendor/plugins/annotate_models/README +31 -0
  131. data/vendor/plugins/annotate_models/lib/annotate_models.rb +132 -0
  132. data/vendor/plugins/annotate_models/tasks/annotate_models_tasks.rake +7 -0
  133. data/vendor/plugins/foreign_key_migrations/CHANGELOG +99 -0
  134. data/vendor/plugins/foreign_key_migrations/MIT-LICENSE +20 -0
  135. data/vendor/plugins/foreign_key_migrations/README +87 -0
  136. data/vendor/plugins/foreign_key_migrations/about.yml +5 -0
  137. data/vendor/plugins/foreign_key_migrations/init.rb +3 -0
  138. data/vendor/plugins/foreign_key_migrations/install.rb +1 -0
  139. data/vendor/plugins/foreign_key_migrations/lib/red_hill_consulting/foreign_key_migrations/active_record/base.rb +22 -0
  140. data/vendor/plugins/foreign_key_migrations/lib/red_hill_consulting/foreign_key_migrations/active_record/connection_adapters/abstract_adapter.rb +22 -0
  141. data/vendor/plugins/foreign_key_migrations/lib/red_hill_consulting/foreign_key_migrations/active_record/connection_adapters/table_definition.rb +28 -0
  142. data/vendor/plugins/redhillonrails_core/CHANGELOG +154 -0
  143. data/vendor/plugins/redhillonrails_core/MIT-LICENSE +20 -0
  144. data/vendor/plugins/redhillonrails_core/README +139 -0
  145. data/vendor/plugins/redhillonrails_core/init.rb +19 -0
  146. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/base.rb +54 -0
  147. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/abstract_adapter.rb +31 -0
  148. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/column.rb +21 -0
  149. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/foreign_key_definition.rb +26 -0
  150. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/index_definition.rb +11 -0
  151. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/mysql_adapter.rb +82 -0
  152. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/mysql_column.rb +8 -0
  153. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/postgresql_adapter.rb +107 -0
  154. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/schema_statements.rb +23 -0
  155. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/sqlite3_adapter.rb +9 -0
  156. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/table_definition.rb +27 -0
  157. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/schema.rb +27 -0
  158. data/vendor/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/schema_dumper.rb +47 -0
  159. metadata +290 -0
@@ -0,0 +1,108 @@
1
+ # == Schema Information
2
+ # Schema version: 13
3
+ #
4
+ # Table name: panel_revisions
5
+ #
6
+ # permanent_id :integer(11)
7
+ # panel_name :string(64) not null
8
+ # panel_key :string(36) not null
9
+ # furniture_name :string(64) not null
10
+ # furniture_key :string(36) not null
11
+ # network_name :string(64)
12
+ # network_status :boolean(1)
13
+ # texture_name :string(64) not null
14
+ # texture_key :string(36) not null
15
+ # landmark_name :string(64)
16
+ # landmark_key :string(36)
17
+ # notecard_name :string(64)
18
+ # notecard_key :string(36)
19
+ # url_name :string(64)
20
+ # url_content :text
21
+ # mediaurl_name :string(64)
22
+ # mediaurl_content :text
23
+ # sim :string(64) not null
24
+ # position :string(40) not null
25
+ # created_at :datetime
26
+ #
27
+
28
+
29
+ # == PanelRevision
30
+ #
31
+ # PanelRevision contient l'historique de toutes les information clés composant un panneau
32
+ # à un instant donné dans Second Life. A chaque fois que le panneau est mis à jour, une
33
+ # copie est stockée dans PanelRevision.
34
+
35
+ # Inclut la librairie ("lib/second_life_validators.rb") qui contient les
36
+ # validateurs Second Life
37
+ require 'second_life_validators'
38
+
39
+ # == PanelRevision
40
+ #
41
+ # PanelRevision contient l'historique de toutes les information clés composant un panneau
42
+ # à un instant donné dans Second Life. A chaque fois que le panneau est mis à jour, une
43
+ # copie est stockée dans PanelRevision.
44
+ #
45
+ # == Schema Information
46
+ # Schema version: 13
47
+ #
48
+ # Table name: panel_revisions
49
+ #
50
+ # panel_name :string(64) not null
51
+ # panel_key :string(36) not null
52
+ # furniture_name :string(64) not null
53
+ # furniture_key :string(36) not null
54
+ # network_name :string(64) not null
55
+ # network_status :boolean(1)
56
+ # texture_name :string(64) not null
57
+ # texture_key :string(36) not null
58
+ # landmark_name :string(64) not null
59
+ # landmark_key :string(36) not null
60
+ # notecard_name :string(64) not null
61
+ # notecard_key :string(36) not null
62
+ # url_name :string(64) not null
63
+ # url_content :text
64
+ # mediaurl_name :string(64) not null
65
+ # mediaurl_content :text
66
+ # created_at :datetime
67
+ #
68
+ class PanelRevision < ActiveRecord::Base
69
+ # * Les champs landmark, notecard, url et mediaurl ne sont pas obligatoirement présents.
70
+ # * Network peut être absent si le panneau est retiré de tous les réseaux.
71
+ # * Dans des cas pathologique il peut aussi manquer la texture, c'est pourquoi on ne la contrôle pas non plus.
72
+ validates_presence_of(:panel_name, :panel_key, :furniture_name, :furniture_key,
73
+ :permanent_id,
74
+ :sim, :position,
75
+ :message => "must be given a value")
76
+ validates_format_of_sl_key(:panel_key, :furniture_key, :texture_key, :landmark_key, :notecard_key)
77
+ # Format de la position relative dans une Sim : X,Y,Z
78
+ validates_format_of_sl_position(:position)
79
+
80
+ # Correction de la sim et de la position avant validation et insertion en
81
+ # base de données
82
+ before_validation SecondLifeSimPosNormalizer.new(:sim, :position)
83
+
84
+ # Création d'une nouvelle révision
85
+ def self.add(panel)
86
+ # On n'enregistre pas un panneau non finalisé
87
+ return nil if panel.new_record?
88
+
89
+ network = panel.network
90
+ furniture = panel.furniture
91
+ texture = panel.texture
92
+ landmark = panel.landmark
93
+ notecard = panel.notecard
94
+ url = panel.url
95
+ mediaurl = panel.mediaurl
96
+ self.create!(:panel_name => panel.name, :panel_key => panel.panel_key,
97
+ :furniture_name => furniture.name, :furniture_key => furniture.furniture_key,
98
+ :network_name => (network.nil? ? nil : network.name), :network_status => (network.nil? ? nil : network.active),
99
+ :texture_name => (texture.nil? ? nil : texture.name), :texture_key => (texture.nil? ? nil : texture.object_key),
100
+ :landmark_name => (landmark.nil? ? nil : landmark.name), :landmark_key => (landmark.nil? ? nil : landmark.object_key),
101
+ :notecard_name => (notecard.nil? ? nil : notecard.name), :notecard_key => (notecard.nil? ? nil : notecard.object_key),
102
+ :url_name => (url.nil? ? nil : url.name ), :url_content => (url.nil? ? nil : url.content),
103
+ :mediaurl_name => (mediaurl.nil? ? nil : mediaurl.name ), :mediaurl_content => (mediaurl.nil? ? nil : mediaurl.content),
104
+ :sim => furniture.sim, :position => furniture.position,
105
+ :permanent_id => furniture.permanent_id
106
+ )
107
+ end
108
+ end
@@ -0,0 +1,27 @@
1
+ <h1>Listing containers</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <% for column in Container.content_columns %>
6
+ <th><%= column.human_name %></th>
7
+ <% end %>
8
+ </tr>
9
+
10
+ <% for container in @containers %>
11
+ <tr>
12
+ <% for column in Container.content_columns %>
13
+ <td><%=h container.send(column.name) %></td>
14
+ <% end %>
15
+ <td><%= link_to 'Show', :action => 'show', :id => container %></td>
16
+ <td><%= link_to 'Edit', :action => 'edit', :id => container %></td>
17
+ <td><%= link_to 'Destroy', { :action => 'destroy', :id => container }, :confirm => 'Are you sure?', :method => :post %></td>
18
+ </tr>
19
+ <% end %>
20
+ </table>
21
+
22
+ <%= link_to 'Previous page', { :page => @container_pages.current.previous } if @container_pages.current.previous %>
23
+ <%= link_to 'Next page', { :page => @container_pages.current.next } if @container_pages.current.next %>
24
+
25
+ <br />
26
+
27
+ <%= link_to 'New container', :action => 'new' %>
@@ -0,0 +1,8 @@
1
+ <% for column in Container.content_columns %>
2
+ <p>
3
+ <b><%= column.human_name %>:</b> <%=h @container.send(column.name) %>
4
+ </p>
5
+ <% end %>
6
+
7
+ <%= link_to 'Edit', :action => 'edit', :id => @container %> |
8
+ <%= link_to 'Back', :action => 'list' %>
@@ -0,0 +1,12 @@
1
+ <%= error_messages_for 'object_off_world' %>
2
+
3
+ <!--[form:object_off_world]-->
4
+ <p><label for="object_off_world_name">Name</label><br/>
5
+ <%= text_field 'object_off_world', 'name' %></p>
6
+
7
+ <p><label for="object_off_world_otype">Otype</label><br/>
8
+ <%= select 'object_off_world', 'otype', ObjectOffWorld::TYPES %></p>
9
+
10
+ <p><label for="object_off_world_content">Content</label><br/>
11
+ <%= text_area 'object_off_world', 'content' %></p>
12
+ <!--[eoform:object_off_world]-->
@@ -0,0 +1,8 @@
1
+ <h1>Editing object '<%= h @object_off_world.name %>'</h1>
2
+
3
+ <% form_tag :action => 'update', :id => @object_off_world do %>
4
+ <%= render :partial => 'form' %>
5
+ <%= submit_tag 'Edit' %>
6
+ <% end %>
7
+
8
+ <%= link_to 'Back', :action => 'list' %>
@@ -0,0 +1,26 @@
1
+ <h1>Off world object management</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Name</th>
6
+ <th>Type</th>
7
+ <th>Content</th>
8
+ </tr>
9
+
10
+ <% for object_off_world in @objects_off_world %>
11
+ <tr>
12
+ <td><%= h object_off_world.name %></td>
13
+ <td><%= h object_off_world.otype %></td>
14
+ <td><%= h object_off_world.content %></td>
15
+ <td><%= link_to 'Edit', :action => 'edit', :id => object_off_world %></td>
16
+ <td><%= link_to 'Destroy', { :action => 'destroy', :id => object_off_world }, :confirm => 'Are you sure?', :method => :post %></td>
17
+ </tr>
18
+ <% end %>
19
+ </table>
20
+
21
+ <%= link_to 'Previous page', { :page => @object_off_world_pages.current.previous } if @object_off_world_pages.current.previous %>
22
+ <%= link_to 'Next page', { :page => @object_off_world_pages.current.next } if @object_off_world_pages.current.next %>
23
+
24
+ <br />
25
+
26
+ <%= link_to 'New object', :action => 'new' %>
@@ -0,0 +1,8 @@
1
+ <h1>New off world object</h1>
2
+
3
+ <% form_tag :action => 'create' do %>
4
+ <%= render :partial => 'form' %>
5
+ <%= submit_tag "Create" %>
6
+ <% end %>
7
+
8
+ <%= link_to 'Back', :action => 'list' %>
@@ -0,0 +1,51 @@
1
+ <h1>Listing furnitures</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <% for column in Furniture.content_columns %>
6
+ <th><%= column.human_name %></th>
7
+ <% end %>
8
+ </tr>
9
+
10
+ <% for furniture in @furnitures %>
11
+ <tr>
12
+ <% for column in Furniture.content_columns %>
13
+ <td><%=h furniture.send(column.name) %></td>
14
+ <% end %>
15
+ <td><%= link_to 'Show', :action => 'show', :id => furniture %></td>
16
+ <td><%=
17
+ if panel=Panel.find(:first,:conditions => [ "furniture_id = ?", params[:id]]) == nil
18
+ link_to 'Destroy', :action => 'destroy', :id => furniture
19
+ end%></td>
20
+ </tr>
21
+ <% end %>
22
+ </table>
23
+
24
+
25
+ <h1>Obsolete Furnitures</h1>
26
+
27
+ <table>
28
+ <tr>
29
+ <% for column in Furniture.content_columns %>
30
+ <th><%= column.human_name %></th>
31
+ <% end %>
32
+ </tr>
33
+
34
+ <% for furniture in @furnitures %>
35
+ <tr>
36
+ <% for column in Furniture.content_columns %>
37
+ <td><%= if Panel.find(:first,:conditions => [ "furniture_id = ?", furniture.id ]) == nil
38
+ furniture.send(column.name)
39
+ end
40
+ %></td>
41
+ <% end %>
42
+ </tr>
43
+ <% end %>
44
+ </table>
45
+ <%= link_to 'Delete All', { :action => 'destroydead' }, :confirm => 'Are you sure?', :method => :post %>
46
+
47
+
48
+ <%= link_to 'Previous page', { :page => @furniture_pages.current.previous } if @furniture_pages.current.previous %>
49
+ <%= link_to 'Next page', { :page => @furniture_pages.current.next } if @furniture_pages.current.next %>
50
+
51
+ <br />
@@ -0,0 +1,7 @@
1
+ <% for column in Furniture.content_columns %>
2
+ <p>
3
+ <b><%= column.human_name %>:</b> <%=h @furniture.send(column.name) %>
4
+ </p>
5
+ <% end %>
6
+
7
+ <%= link_to 'Back', :action => 'list' %>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
7
+ <title>Webia Administration : <%= @page_title || "#{controller.controller_name.humanize} : #{controller.action_name.humanize}" %></title>
8
+ <%= stylesheet_link_tag 'scaffold', 'application' %>
9
+ <%= javascript_include_tag :defaults %>
10
+ </head>
11
+ <body>
12
+
13
+ <h1 align="center">Webia : <%= @page_title || "#{controller.controller_name.humanize} : #{controller.action_name.humanize}" %></h1>
14
+
15
+ <p align="center">
16
+ <%= link_to 'Networks', :controller => :networks %> |
17
+ <%= link_to 'Furnitures', :controller => :furnitures %> |
18
+ <%= link_to 'Panels', :controller => :panels %> |
19
+ <%= link_to 'Containers', :controller => :container %> |
20
+ <%= link_to 'Content (URLs)', :controller => :content %> |
21
+ <%= link_to 'Objects in World', :controller => :objects_in_world %> |
22
+ </p>
23
+ <br />
24
+
25
+ <p style="color: green"><%= flash[:notice] %></p>
26
+
27
+ <%= yield %>
28
+
29
+ </body>
30
+ </html>
@@ -0,0 +1 @@
1
+ '<%= @avatar_key %>',face,<%= @object_name %>
@@ -0,0 +1,11 @@
1
+ <%= error_messages_for 'network' %>
2
+
3
+ <!--[form:network]-->
4
+ <p><label for="network_name">Name</label><br/>
5
+ <%= form.text_field 'name' %></p>
6
+
7
+ <p><label for="network_active">Active</label><br/>
8
+ <%= form.select :active, Network::STATES %>
9
+ </p>
10
+ <!--[eoform:network]-->
11
+
@@ -0,0 +1,8 @@
1
+ <% form_for :network_parameters, :url => { :action => :set_parameters, :id => @network } do |form| %>
2
+ <p>New texture: <%= form.select :texture_id, @textures %></p>
3
+ <p>New landmark: <%= form.select :landmark_id, @landmarks %></p>
4
+ <p>New notecard: <%= form.select :notecard_id, @notecards %></p>
5
+ <p>New URL: <%= form.select :url_id, @urls %></p>
6
+ <p>New Media URL: <%= form.select :mediaurl_id, @mediaurls %></p>
7
+ <p> <%= submit_tag("Save network configuration") %></p>
8
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <h1>Editing network</h1>
2
+
3
+ <% form_for :network, @network, :url => { :action => 'update', :id => @network } do |form| %>
4
+ <%= render :partial => 'form', :object => form %>
5
+ <%= submit_tag 'Edit' %>
6
+ <% end %>
7
+
8
+ <%= link_to 'Show', :action => 'show', :id => @network %> |
9
+ <%= link_to 'Back', :action => 'list' %>
@@ -0,0 +1,25 @@
1
+ <h1>Listing networks</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Name</th>
6
+ <th>State</th>
7
+ <th>Panels</th>
8
+ </tr>
9
+
10
+ <% for network in @networks %>
11
+ <tr>
12
+ <td><%= link_to h(network.name), :action => 'show', :id => network %></td>
13
+ <td><%= h network.active %></td>
14
+ <td><%= network.panels.count %></td>
15
+ <td><%= link_to 'Delete', { :action => 'destroy', :id => network }, :confirm => "About to delete network '#{network.name}'\nAre you sure?", :method => :post %></td>
16
+ </tr>
17
+ <% end %>
18
+ </table>
19
+
20
+ <%= link_to 'Previous page', { :page => @network_pages.current.previous } if @network_pages.current.previous %>
21
+ <%= link_to 'Next page', { :page => @network_pages.current.next } if @network_pages.current.next %>
22
+
23
+ <br />
24
+
25
+ <%= link_to 'New network', :action => 'new' %>
@@ -0,0 +1,8 @@
1
+ <h1>New network</h1>
2
+
3
+ <% form_for :network, @network, :url => { :action => 'create' } do |form| %>
4
+ <%= render :partial => 'form', :object => form %>
5
+ <%= submit_tag "Create" %>
6
+ <% end %>
7
+
8
+ <%= link_to 'Back', :action => 'list' %>
@@ -0,0 +1,72 @@
1
+ <h1>Network «<%= @network.name %>»</h1>
2
+
3
+ <% if !@network.active -%>
4
+ <div id="network-inactive">
5
+ This network is currently inactive.
6
+ </div>
7
+ <% end -%>
8
+
9
+ <p><%= link_to 'Edit Network name/state', :action => 'edit', :id => @network %></p>
10
+
11
+
12
+ <h2>Network parameters</h2>
13
+
14
+ <% if @network_parameters -%>
15
+ <div id="network-parameters">
16
+ <ul>
17
+ <li>Texture: <%= h @network_parameters.texture.name %></li>
18
+ <li>Landmark: <%= @network_parameters.landmark.name rescue "none" %></li>
19
+ <li>Notecard: <%= @network_parameters.notecard.name rescue "none" %></li>
20
+ <li>URL: <%= object_url(@network_parameters.url) %></li>
21
+ <li>Media URL: <%= object_url(@network_parameters.mediaurl) %></li>
22
+ </ul>
23
+
24
+ <%= link_to_remote('Edit network parameters',
25
+ :url => { :action => :show_parameters_form, :id => @network }) %>
26
+ </div>
27
+ <div id="network-parameters-form" style="display: none">
28
+ </div>
29
+
30
+ <br />
31
+
32
+ <% else -%>
33
+ <div id="network-empty">
34
+ This network is currently empty.
35
+ </div>
36
+ <% end -%>
37
+
38
+ <h2>List of panels </h2>
39
+
40
+ <div id="panel-list">
41
+ <table>
42
+ <tr>
43
+ <th>Name</th>
44
+ <th>Furniture</th>
45
+ <th></th>
46
+ </tr>
47
+ <% for panel in @network.panels -%>
48
+ <tr>
49
+ <td><%= link_to h(panel.name), :controller => :panels, :action => :show, :id => panel %></td>
50
+ <td><%= link_to h(panel.furniture.name), :controller => :furnitures, :action => :show, :id => panel.furniture %></td>
51
+ <td><%= button_to 'Remove', { :action => 'remove_panel', :id => @network, :panel_id => panel }, { :confirm => "Are you sure you want to remove the panel '#{panel.name} : #{panel.furniture.name}' from this network?" } %></td>
52
+ </tr>
53
+ <% end -%>
54
+ </table>
55
+ </div>
56
+
57
+ <br />
58
+
59
+ <h3>Adding a panel to the network:</h3>
60
+
61
+ <% if !@unassigned_panels.empty? %>
62
+ <% form_tag({ :action => :add_panel, :id => @network }) do %>
63
+ <p>Select a new panel: <%= select_tag :panel_id, options_for_select(@unassigned_panels) %></p>
64
+ <p> <%= submit_tag("Add panel") %></p>
65
+ <% end
66
+ else %>
67
+ <p>No free panel is available.</p>
68
+ <% end %>
69
+
70
+ <br />
71
+
72
+ <%= link_to 'Back to network list', :action => 'list' %>