c41fa18fcf82924f1501e99be80e21d186bb4ae9
[arvados.git] / apps / workbench / app / views / application / _arvados_object.html.erb
1 <% content_for :arvados_object_table do %>
2 <h2><%= @object.class %> <%= @object.uuid %></h2>
3 <%= form_for @object do |f| %>
4 <table class="table topalign">
5   <thead>
6   </thead>
7   <tbody>
8     <% @object.attributes_for_display.each do |attr, attrvalue| %>
9     <%= render partial: 'application/arvados_object_attr', locals: { attr: attr, attrvalue: attrvalue } %>
10     <% end %>
11   </tbody>
12 </table>
13
14 <% incoming = Link.where(tail_uuid: @object.uuid) %>
15 <% if incoming.items_available > 0 %>
16 <h3>Incoming Links</h3>
17 <table class="table topalign">
18   <thead>
19   </thead>
20   <tbody>
21     <% incoming.each do |link| %>
22       <tr>
23         <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "uuid", attrvalue: link.uuid } %></td>
24         <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "link_class", attrvalue: link.link_class } %></td>
25         <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "name", attrvalue: link.name } %></td>
26         <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "head_uuid", attrvalue: link.head_uuid } %></td>
27         <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "properties", attrvalue: link.properties } %></td>
28       </tr>
29     <% end %>
30   </tbody>
31 </table>
32 <% end %>
33
34 <% outgoing = Link.where(head_uuid: @object.uuid) %>
35 <% if outgoing.items_available > 0 %>
36 <h3>Outgoing Links</h3>
37 <table class="table topalign">
38   <thead>
39   </thead>
40   <tbody>
41     <% outgoing.each do |link| %>
42       <tr>
43         <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "uuid", attrvalue: link.uuid } %></td>
44         <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "link_class", attrvalue: link.link_class } %></td>
45         <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "name", attrvalue: link.name } %></td>
46         <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "tail_uuid", attrvalue: link.tail_uuid } %></td>
47         <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "properties", attrvalue: link.properties } %></td>
48       </tr>
49     <% end %>
50   </tbody>
51 </table>
52 <% end %>
53
54 <% end %>
55 <% end %>
56
57 <% if content_for? :page_content %>
58 <%= yield :page_content %>
59 <% else %>
60 <%= yield :arvados_object_table %>
61 <% end %>
62
63 <div>
64   <ul class="nav nav-tabs">
65     <% if content_for? :page_content %>
66     <li><a href="#arvados-object-table" data-toggle="tab">Table</a></li>
67     <% end %>
68     <li class="active"><a href="#arvados-object-json" data-toggle="tab">API response JSON</a></li>
69     <% if @object.andand.uuid %>
70     <li><a href="#arvados-object-curl" data-toggle="tab">curl update example</a></li>
71     <li><a href="#arvados-object-arv" data-toggle="tab">&ldquo;arv&rdquo; CLI examples</a></li>
72     <li><a href="#arvados-object-python" data-toggle="tab">Python example</a></li>
73     <% end %>
74   </ul>
75
76   <div class="tab-content">
77     <% if content_for? :page_content %>
78     <div id="arvados-object-table" class="tab-pane fade">
79       <%= yield :arvados_object_table %>
80     </div>
81     <% end %>
82     <div id="arvados-object-json" class="tab-pane fade in active">
83       <pre>
84 <%= JSON.pretty_generate(@object.attributes.reject { |k,v| k == 'id' }) rescue nil %>
85       </pre>
86     </div>
87
88     <% if @object.andand.uuid %>
89
90     <div id="arvados-object-curl" class="tab-pane fade">
91       <pre>
92 curl -X PUT \
93  -H "Authorization: OAuth2 $ARVADOS_API_TOKEN" \
94  --data-urlencode <%= @object.class.to_s.underscore %>@/dev/stdin \
95  https://$ARVADOS_API_HOST/arvados/v1/<%= @object.class.to_s.pluralize.underscore %>/<%= @object.uuid %> \
96  &lt;&lt;EOF
97 <%= JSON.pretty_generate({@object.attributes.keys[-3] => @object.attributes.values[-3]}) %>
98 EOF
99       </pre>
100     </div>
101
102     <div id="arvados-object-arv" class="tab-pane fade">
103       <pre>
104 arv --pretty <%= @object.class.to_s.underscore %> get \
105  --uuid <%= @object.uuid %>
106
107 arv <%= @object.class.to_s.underscore %> update \
108  --uuid <%= @object.uuid %> \
109  --<%= @object.class.to_s.underscore.gsub '_', '-' %> '<%= JSON.generate({@object.attributes.keys[-3] => @object.attributes.values[-3]}).gsub("'","'\''") %>'
110       </pre>
111     </div>
112
113     <div id="arvados-object-python" class="tab-pane fade">
114       <pre>
115 import arvados
116
117 x = arvados.api().<%= @object.class.to_s.pluralize.underscore %>().get(uuid='<%= @object.uuid %>').execute()
118       </pre>
119     </div>
120
121     <% end %>
122
123   </div>
124 </div>