Diff
Modified: branches/datasets/app/controllers/data_sets_controller.rb (2837 => 2838)
--- branches/datasets/app/controllers/data_sets_controller.rb 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/app/controllers/data_sets_controller.rb 2011-11-23 15:46:19 UTC (rev 2838)
@@ -49,6 +49,10 @@
end
end
+ def download
+ send_file @data_set.create_zip(current_user), :disposition => 'attachment'
+ end
+
def new
@data_set = DataSet.new
respond_to do |format|
Modified: branches/datasets/app/controllers/workflows_controller.rb (2837 => 2838)
--- branches/datasets/app/controllers/workflows_controller.rb 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/app/controllers/workflows_controller.rb 2011-11-23 15:46:19 UTC (rev 2838)
@@ -20,8 +20,6 @@
before_filter :check_custom_workflow_type, : [:create, :create_version]
before_filter :check_is_owner, : [:edit, :update]
-
- #todo: remove? before_filter :get_example_data_sets, : [:tag_suggestions, :extra_metadata]
# declare sweepers and which actions should invoke them
cache_sweeper :workflow_sweeper, : [ :create, :create_version, :launch, :update, :update_version, :destroy_version, :destroy ]
@@ -639,20 +637,10 @@
end
def tag_suggestions
-
@suggestions = @workflow.get_tag_suggestions
-
end
- def extra_metadata
- end
-
def process_tag_suggestions
-
- def form_name(*bits)
- bits.join("_")
- end
-
if params[:workflow] && params[:workflow][:body]
@workflow.body = params[:workflow][:body]
@workflow.save
@@ -662,184 +650,6 @@
@workflow.add_tag(tag.strip, current_user)
end
- begin
-
- # Fetch the existing data structure
-
- data_sets = DataSet.find(:all,
- :conditions => ["contributable_type = ? AND contributable_id = ? AND category = ? AND user_id = ?",
- @workflow.class.name, @workflow.id, 'example', current_user])
-
- # Parse form data
-
- form_data = (0..params[form_name(["ds", "count"])].to_i - 1).map do |s|
- {
- ".id" => params[form_name(["ds", s, ".id"])],
- "title" => params[form_name(["ds", s, "title"])],
- "desc" => params[form_name(["ds", s, "desc"])],
-
- "inputs" => (0..params[form_name(["ds", s, "input", "count"])].to_i - 1).map do |i|
- { ".id" => params[form_name(["ds", s, "input", i, ".id"])],
- "label" => params[form_name(["ds", s, "input", i, "label"])],
- "data" => params[form_name(["ds", s, "input", i, "data"])]
- }
- end,
-
- "outputs" => (0..params[form_name(["ds", s, "output", "count"])].to_i - 1).map do |o|
- { ".id" => params[form_name(["ds", s, "output", o, ".id"])],
- "label" => params[form_name(["ds", s, "output", o, "label"])],
- "data" => params[form_name(["ds", s, "output", o, "data"])]
- }
- end
- }
- end
-
- # Update the data structure
-
- pre_ds_ids = data_sets.map do |ds| ds.id end
- post_ds_ids = (form_data.map do |ds| ds[".id"] end - [nil]).map do |id| id.to_i end
-
- # Update data sets
-
- data_sets.each do |ds_ob|
-
- if post_ds_ids.include?(ds_ob.id)
-
- form_ds = form_data.select do |ds| ds[".id"] && (ds[".id"].to_i == ds_ob.id) end.first
-
- update_ds = false
-
- if ds_ob.title != form_ds["title"]
- ds_ob.title = form_ds["title"]
- updated_ds = true
- end
-
- if ds_ob.description != form_ds["desc"]
- ds_ob.description = form_ds["desc"]
- updated_ds = true
- end
-
- input_obs = ds_ob.data_items.select do |di| di.category == "input" end
- output_obs = ds_ob.data_items.select do |di| di.category == "output" end
-
- pre_input_ids = input_obs.map do |di| di.id end
- pre_output_ids = output_obs.map do |di| di.id end
-
- post_input_ids = (form_ds["inputs"].map do |input| input[".id"] end - [nil]).map do |input| input.to_i end
-
- post_output_ids = (form_ds["outputs"].map do |output| output[".id"] end - [nil]).map do |output| output.to_i end
-
- # Update inputs
-
- input_obs.each do |input_ob|
-
- if post_input_ids.include?(input_ob.id)
-
- updated_input = false
-
- form_input = form_ds["inputs"].select do |input| input[".id"] && (input[".id"].to_i == input_ob.id) end.first
-
- if input_ob.label != form_input["label"]
- input_ob.label = form_input["label"]
- updated_input = true
- end
-
- if input_ob.data != form_input["data"]
- input_ob.data = ""
- updated_input = true
- end
-
- if updated_input
- input_ob.save
- updated_ds = true
- end
- end
- end
-
- # Create inputs
-
- form_ds["inputs"].select do |input| input[".id"].nil? end.each do |input|
- DataItem.create(:data_set => ds_ob, :category => "input",
- :label => input["label"], :data ="" input["data"])
- end
-
- # Delete inputs
-
- (pre_input_ids - post_input_ids).each do |id|
- DataItem.destroy(id)
- end
-
- # Update outputs
-
- output_obs.each do |output_ob|
-
- if post_output_ids.include?(output_ob.id)
-
- updated_output = false
-
- form_output = form_ds["outputs"].select do |output| output[".id"] && (output[".id"].to_i == output_ob.id) end.first
-
- if output_ob.label != form_output["label"]
- output_ob.label = form_output["label"]
- updated_output = true
- end
-
- if output_ob.data != form_output["data"]
- output_ob.data = ""
- updated_output = true
- end
-
- if updated_output
- output_ob.save
- updated_ds = true
- end
- end
- end
-
- # Create outputs
-
- form_ds["outputs"].select do |output| output[".id"].nil? end.each do |output|
- DataItem.create(:data_set => ds_ob, :category => "output",
- :label => output["label"], :data ="" output["data"])
- end
-
- # Delete outputs
-
- (pre_output_ids - post_output_ids).each do |id|
- DataItem.destroy(id)
- end
-
- ds_ob.save if updated_ds
- end
- end
-
- # Create data sets
-
- form_data.select do |ds| ds[".id"].nil? end.each do |ds|
-
- ds_ob = DataSet.create(:contributable => @workflow, :user => current_user,
- :category => 'example', :title => ds["title"], :description => ds["desc"])
-
- ds["inputs"].each do |input|
- DataItem.create(:data_set => ds_ob, :category => "input",
- :label => input["label"], :data ="" input["data"])
- end
-
- ds["outputs"].each do |output|
- DataItem.create(:data_set => ds_ob, :category => "output",
- :label => output["label"], :data ="" output["data"])
- end
- end
-
- # Delete data sets
-
- (pre_ds_ids - post_ds_ids).each do |id|
- DataSet.destroy(id)
- end
-
- rescue
- end
-
redirect_to(workflow_url(@workflow))
end
@@ -1243,29 +1053,5 @@
return ok
end
- def get_example_data_sets
-
- @data_sets = DataSet.find(:all,
- :conditions => ["contributable_type = ? AND contributable_id = ? AND category = ? AND user_id = ?",
- @workflow.class.name, @workflow.id, 'example', current_user.id]).map do |data_set|
-
- { "title" => data_set.title,
- "desc" => data_set.description,
- ".id" => data_set.id,
-
- "inputs" => data_set.data_items.select do |item|
- item.category == 'input'
- end.map do |input|
- { ".id" => input.id, "label" => input.label, "data" => input.data }
- end,
-
- "outputs" => data_set.data_items.select do |item|
- item.category == 'output'
- end.map do |output|
- { ".id" => output.id, "label" => output.label, "data" => output.data }
- end
- }
- end
- end
end
Modified: branches/datasets/app/models/data_set.rb (2837 => 2838)
--- branches/datasets/app/models/data_set.rb 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/app/models/data_set.rb 2011-11-23 15:46:19 UTC (rev 2838)
@@ -5,6 +5,8 @@
class DataSet < ActiveRecord::Base
+ include ActionController::UrlWriter #To generate URLs for the metadata file of the zip archive
+
acts_as_site_entity
validates_presence_of :title
@@ -14,12 +16,99 @@
belongs_to :workflow
belongs_to :contributor, :polymorphic => true
- #todo: Rails 2: can probably use separate finders for input/output relationships as it supports conditions on
- # joined tables;
+ #The "data items" are represented as relationships. Subject = data, Object = port
has_many :relationships, :class_name => "Relationship", :as => :context,
:dependent => :destroy
#this association is just to ensure text data is deleted when the data set is. not actually used.
has_many :text_datas, :dependent => :destroy
+
+ # Zip/archiving stuff below taken from pack model
+
+ # Zips the pack up and returns the path to the zip file
+ def create_zip(user)
+ #Make folder if it doesn't exist
+ FileUtils.mkdir(Pack.archive_folder) if !File.exists?(DataSet.archive_folder)
+ #Remove existing archive
+ FileUtils.rm Dir.glob(archive_file_path(true).gsub(/[\[\]]/, "?")), :force => true
+
+ #Create the zip file
+ zipfile = Zip::ZipFile.open(archive_file_path, Zip::ZipFile::CREATE)
+
+ #Add the data
+ relationships.each do |r|
+ add_data_item_to_zip(user, zipfile, r)
+ end
+
+ #Add metadata
+ zipfile.get_output_stream("_metadata.txt") do |stream|
+ stream.write("********** Snapshot of the data set: #{self.title} **********\r\n\r\n")
+ stream.write("Downloaded from #{Conf.sitename}\r\n")
+ stream.write("Snapshot generated at #{Time.now.strftime("%H:%M:%S on %A, %d %B %Y")}\r\n\r\n")
+ stream.write("========== Data Set Details ==========\r\n\r\n")
+ stream.write("Title: #{title}\r\n")
+ stream.write("Location: #{workflow_data_set_url(workflow, self)}\r\n")
+ stream.write("Workflow: #{workflow.title}\r\n")
+ stream.write("Workflow location: #{workflow_url(workflow)}\r\n")
+ stream.write("Created by: #{self.contributor.label}\r\n")
+ stream.write("Created at: #{self.created_at.strftime("%H:%M:%S on %A, %d %B %Y")}\r\n")
+ stream.write("Last updated at: #{self.updated_at.strftime("%H:%M:%S on %A, %d %B %Y")}\r\n")
+ end
+
+ #Close and give read permissions
+ zipfile.close()
+ File.chmod(0644, archive_file_path)
+
+ #Remove temp files
+ zip_filenames.each do |temp_file|
+ FileUtils.rm Dir.glob(DataSet.archive_folder + "/" + "#{temp_file}.*"), :force => true
+ end
+
+ archive_file_path
+ end
+
+ private
+
+ def self.archive_folder
+ # single declaration point of where the zip archives for downloadable data sets would live
+ return "tmp/data_sets"
+ end
+
+ def archive_file(no_timestamp=false)
+ # the name of the zip file, where contents of current data set will be placed
+ filename = "[DATA SET] #{self.title.gsub(/[^\w\.\-]/,'_').downcase}"
+ filename += (no_timestamp ? "*" : " - #{Time.now.strftime('%Y-%m-%d @ %H%M')}")
+ filename += ".zip"
+ return filename
+ end
+
+ def archive_file_path(no_timestamp=false)
+ # "#{Conf.base_uri}/packs/#{id}/download/pack_#{id}.zip"
+ return(DataSet.archive_folder + "/" + archive_file(no_timestamp))
+ end
+
+ def add_data_item_to_zip(user, zipfile, data_item)
+ data = ""
+ port = data_item.objekt
+
+ if data.kind_of?(Blob)
+ if Authorization.is_authorized?("download", nil, data, user)
+ filename = zipfile.get_output_stream("#{port.port_type}s/#{port.name} - #{data.local_name}") do |stream|
+ stream.write(data.content_blob.data)
+ end
+ return filename
+ else
+ return false
+ end
+ elsif data.kind_of?(TextData)
+ filename = zipfile.get_output_stream("#{port.port_type}s/#{port.name} - text.txt") do |stream|
+ stream.write(data.data)
+ end
+ return filename
+ else
+ raise "Unsupported data type"
+ end
+ end
+
end
Modified: branches/datasets/app/views/data_sets/index.rhtml (2837 => 2838)
--- branches/datasets/app/views/data_sets/index.rhtml 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/app/views/data_sets/index.rhtml 2011-11-23 15:46:19 UTC (rev 2838)
@@ -1,7 +1,9 @@
<ul class="sectionIcons">
- <li>
- <%= icon('new', new_workflow_data_set_path(@workflow), nil, nil, 'Create new data set') %>
- </li>
+ <% if mine?(@workflow) %>
+ <li>
+ <%= icon('new', new_workflow_data_set_path(@workflow), nil, nil, 'Create new data set') %>
+ </li>
+ <% end %>
</ul>
<h1>Data Sets</h1>
Modified: branches/datasets/app/views/data_sets/show.rhtml (2837 => 2838)
--- branches/datasets/app/views/data_sets/show.rhtml 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/app/views/data_sets/show.rhtml 2011-11-23 15:46:19 UTC (rev 2838)
@@ -7,6 +7,9 @@
</div>
<div style="float: right; margin: 0.5em">
<ul class="sectionIcons">
+ <li>
+ <%= icon('download', download_workflow_data_set_path(@workflow, @data_set), nil, nil, 'Download data set') %>
+ </li>
<% if mine?(@workflow) %>
<li>
<%= icon('edit', edit_workflow_data_set_path(@workflow, @data_set), nil, nil, 'Edit data set') %>
Deleted: branches/datasets/app/views/workflows/_data_sets_form.rhtml (2837 => 2838)
--- branches/datasets/app/views/workflows/_data_sets_form.rhtml 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/app/views/workflows/_data_sets_form.rhtml 2011-11-23 15:46:19 UTC (rev 2838)
@@ -1,6 +0,0 @@
-<div id="data_sets"></div>
-
-<input type="button" return false;" value="Add new set of example inputs / outputs" />
-
-<script type="text/_javascript_" src=""
-<script type="text/_javascript_">renderDataSets(<%= data_sets.to_json %>)</script>
Deleted: branches/datasets/app/views/workflows/extra_metadata.rhtml (2837 => 2838)
--- branches/datasets/app/views/workflows/extra_metadata.rhtml 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/app/views/workflows/extra_metadata.rhtml 2011-11-23 15:46:19 UTC (rev 2838)
@@ -1,14 +0,0 @@
-<%= _javascript__include_tag :fckeditor %>
-
-<h1>Example inputs / outputs</h1>
-
-<form id="metadata" action="" "/workflows/address@hidden/process_extra_metadata" %>" method="post">
-
- <%= render :partial => "data_sets_form", :locals => { :data_sets => @data_sets, :default_ports => @default_ports } %>
-
- <p style="text-align: center">
- <input id="submit-button" type="submit" value="Update" />
- </p>
-
-</form>
-
Modified: branches/datasets/app/views/workflows/tag_suggestions.rhtml (2837 => 2838)
--- branches/datasets/app/views/workflows/tag_suggestions.rhtml 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/app/views/workflows/tag_suggestions.rhtml 2011-11-23 15:46:19 UTC (rev 2838)
@@ -38,10 +38,6 @@
<div id="summary-text"></div>
- <h1>Example inputs / outputs</h1>
-
- <%= render :partial => "data_sets_form", :locals => { :data_sets => @data_sets, :default_ports => @default_ports } %>
-
<h2>Finish</h2>
<p>Complete the upload process.</p>
Modified: branches/datasets/config/routes.rb (2837 => 2838)
--- branches/datasets/config/routes.rb 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/config/routes.rb 2011-11-23 15:46:19 UTC (rev 2838)
@@ -118,8 +118,6 @@
:destroy_version => :delete,
:edit_version => :get,
:update_version => :put,
- :process_extra_metadata => :post,
- :extra_metadata => :get,
:process_tag_suggestions => :post,
:tag_suggestions => :get } do |workflow|
# workflows have nested citations
@@ -127,7 +125,7 @@
workflow.resources :reviews
workflow.resources :previews
workflow.resources :comments, :collection => { :timeline => :get }
- workflow.resources :data_sets
+ workflow.resources :data_sets, :member => { :download => :get }
end
#todo: Rails 2. Nest this in the above and use :shallow => true
Deleted: branches/datasets/public/_javascript_s/data_sets.js (2837 => 2838)
--- branches/datasets/public/_javascript_s/data_sets.js 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/public/_javascript_s/data_sets.js 2011-11-23 15:46:19 UTC (rev 2838)
@@ -1,200 +0,0 @@
-// myExperiment: app/controllers/workflows_controller.rb
-//
-// Copyright (c) 2010 University of Manchester and the University of Southampton.
-// See license.txt for details.
-
-function form_name() {
- return Array.prototype.slice.call(arguments).join("_");
-}
-
-function saveDataSets() {
-
- function saveOptionalField(name, key, outputHash) {
-
- value_el = document.forms["metadata"][name]
-
- if (value_el == undefined)
- return;
-
- outputHash[key] = value_el.value;
- }
-
- var data_set_count = parseInt(document.forms["metadata"][form_name("ds", "count")].value)
-
- var data_sets = [];
-
- for (var s = 0; s < data_set_count; s++) {
- var data_set = {
- "title" : document.forms["metadata"][form_name("ds", s, "title")].value,
- "desc" : document.forms["metadata"][form_name("ds", s, "desc")].value
- };
-
- saveOptionalField(form_name("ds", s, ".id"), ".id", data_set);
-
- data_set["inputs"] = []
- data_set["outputs"] = []
-
- var input_count = parseInt(document.forms["metadata"][form_name("ds", s, "input", "count")].value);
- var output_count = parseInt(document.forms["metadata"][form_name("ds", s, "output", "count")].value);
-
- for (var i = 0; i < input_count; i++) {
-
- input = {
- "label" : document.forms["metadata"][form_name("ds", s, "input", i, "label")].value,
- "data" : document.forms["metadata"][form_name("ds", s, "input", i, "data")].value
- };
-
- saveOptionalField(form_name("ds", s, "input", i, ".id"), ".id", input);
-
- data_set["inputs"].push(input);
- }
-
- for (var o = 0; o < output_count; o++) {
-
- output = {
- "label" : document.forms["metadata"][form_name("ds", s, "output", o, "label")].value,
- "data" : document.forms["metadata"][form_name("ds", s, "output", o, "data")].value
- };
-
- saveOptionalField(form_name("ds", s, "output", o, ".id"), ".id", output)
-
- data_set["outputs"].push(output);
- }
-
- data_sets.push(data_set);
- }
-
- return data_sets;
-}
-
-function renderDataSets(data_sets) {
-
- function renderOptionalField(name, value) {
- if (value == undefined) {
- return "";
- } else {
- return "<input type='hidden' name='" + name + "' value='" + value + "'></input>";
- }
- }
-
- var markup = "";
-
- markup += "<input type='hidden' name='" + form_name("ds", "count") + "' value='" + data_sets.length + "'></input>";
-
- if (data_sets.length == 0) {
-
- markup += "<p><i>You have not provided any example data sets.</i></p>";
-
- } else {
-
- for (var s = 0; s < data_sets.length; s++) {
-
- var data_set = data_sets[s];
-
- markup += "<div class=\"form\">";
- markup += renderOptionalField(form_name("ds", s, ".id"), data_set[".id"]);
- markup += "<input type='hidden' name='" + form_name("ds", s, "input", "count") + "' value='" + data_set["inputs"].length + "'></input>"
- markup += "<input type='hidden' name='" + form_name("ds", s, "output", "count") + "' value='" + data_set["outputs"].length + "'></input>"
-
- markup += " <div class=\"dataset\">";
- markup += " <div class=\"form-triple\">";
- markup += " <div class=\"form-label\">Title</div>";
- markup += " <div class=\"form-data\"><input class=\"dataset-title\" name=\"" + form_name("ds", s, "title") + "\" value=\"" + data_set["title"] + "\" /></div>";
- markup += " <div class=\"form-action\"></div>";
- markup += " </div>";
- markup += " <div class=\"form-triple\">";
- markup += " <div class=\"form-label\">Description</div>";
- markup += " <div class=\"form-data\"><textarea class=\"dataset-description\" id=\"" + form_name("ds", s, "desc") + "\" name=\"" + form_name("ds", s, "desc") + "\">" + data_set["desc"] + "</textarea></div>";
- markup += " <div class=\"form-action\"></div>";
- markup += " </div>";
- markup += " <table class=\"dataset-table\">";
- markup += " <thead>";
- markup += " <tr>";
- markup += " <th class=\"form-label\">Input</th>";
- markup += " <th class=\"form-data\">Value</th>";
- markup += " </tr>";
- markup += " </thead>";
- markup += " <tbody>";
-
- for (var i = 0; i < data_set["inputs"].length; i++) {
-
- var input = data_set["inputs"][i];
-
- markup += renderOptionalField(form_name("ds", s, "input", i, ".id"), input[".id"]);
-
- markup += " <tr>";
- markup += " <td class=\"label\"><input class=\"dataset-io-label\" name=\"" + form_name("ds", s, "input", i, "label") + "\" value=\"" + input["label"] + "\" /></td>";
- markup += " <td class=\"data\"><textarea class=\"dataset-io-data\" name=\"" + form_name("ds", s, "input", i, "data") + "\">" + input["data"] + "</textarea></td>";
- markup += " <td class=\"action\"><input class=\"dataset-io-action\" type=\"button\" value=\"Delete\" /></td>";
- markup += " </tr>";
- }
-
- markup += " </tbody>";
- markup += " </table>";
- markup += " <input type='button' value='Add new input' />";
- markup += " <table class=\"dataset-table\">";
- markup += " <thead>";
- markup += " <tr>";
- markup += " <th class=\"form-label\">Output</th>";
- markup += " <th class=\"form-data\">Value</th>";
- markup += " </tr>";
- markup += " </thead>";
- markup += " <tbody>";
-
- for (var i = 0; i < data_set["outputs"].length; i++) {
-
- var output = data_set["outputs"][i];
-
- markup += renderOptionalField(form_name("ds", s, "output", i, ".id"), output[".id"]);
-
- markup += " <tr>";
- markup += " <td class=\"label\"><input class=\"dataset-io-label\" name=\"" + form_name("ds", s, "output", i, "label") + "\" value=\"" + output["label"] + "\" /></td>";
- markup += " <td class=\"data\"><textarea class=\"dataset-io-data\" name=\"" + form_name("ds", s, "output", i, "data") + "\">" + output["data"] + "</textarea></td>";
- markup += " <td class=\"action\"><input class=\"dataset-io-action\" type=\"button\" value=\"Delete\" /></td>";
- markup += " </tr>";
- }
-
- markup += " </tbody>";
- markup += " </table>";
- markup += " <input type='button' value='Add new output' /></div>";
- markup += " <input class='delete-data-set' type='button' value='Delete set of example inputs / outputs' />";
- markup += " <div style='clear: right'></div>";
- markup += " </div>";
- markup += "</div>";
- }
- }
-
- document.getElementById('data_sets').innerHTML = markup;
-
- for (var s = 0; s < data_sets.length; s++) {
- var oFCKeditor = new FCKeditor(form_name("ds", s, "desc"), '400px', '80px', 'None');
- oFCKeditor.BasePath = '/_javascript_s/fckeditor/';
- oFCKeditor.Config['CustomConfigurationsPath'] = '/_javascript_s/fckcustom.js';
- oFCKeditor.ReplaceTextarea();
- }
-}
-
-function deleteDataSet(i) {
- var data_sets = saveDataSets();
- data_sets.splice(i, 1);
- renderDataSets(data_sets);
-}
-
-function addDataSet() {
- var data_sets = saveDataSets();
- data_sets.push( { "title" : "", "desc" : "", "inputs" : [], "outputs" : [] } );
- renderDataSets(data_sets);
-}
-
-function addDataItem(type, s) {
- var data_sets = saveDataSets();
- data_sets[s][type].push( { "label" : "", "data" : "" } );
- renderDataSets(data_sets);
-}
-
-function deleteDataItem(type, s, i) {
- var data_sets = saveDataSets();
- data_sets[s][type].splice(i, 1);
- renderDataSets(data_sets);
-}
-
Modified: branches/datasets/public/stylesheets/styles.css (2837 => 2838)
--- branches/datasets/public/stylesheets/styles.css 2011-11-23 11:28:53 UTC (rev 2837)
+++ branches/datasets/public/stylesheets/styles.css 2011-11-23 15:46:19 UTC (rev 2838)
@@ -2051,78 +2051,6 @@
padding-top: 1em;
}
-/* Data set form */
-
-.form {
- background: #e8e8e8;
- width: 566px;
- padding: 6px;
- border: 1px solid #d0d0d0;
-margin-top: 1em;
-margin-bottom: 1em;
-}
-
-.form-triple {
- margin-top: 0.2em;
- margin-bottom: 0.2em;
-}
-
-.form-triple * {
- display: inline-block;
- vertical-align: top;
-}
-
-.form-label {
- width: 100px;
-}
-
-.form-data,
-.dataset-title,
-.dataset-description,
-.dataset-io-data,
-.dataset_io-description {
- width: 400px;
-}
-
-.dataset-description,
-.dataset-io-data,
-.dataset_io-description {
- height: 80px;
-}
-
-TABLE.dataset-table {
- margin-top: 1.0em;
- margin-bottom: 0.5em;
- border-collapse: collapse;
-}
-
-TABLE.dataset-table TH {
- color: white;
- background: gray;
- border: 1px solid gray;
-}
-
-TABLE.dataset-table TH,
-TABLE.dataset-table TD {
- text-align: left;
- vertical-align: top;
- padding: 4px;
-}
-
-TABLE.dataset-table .label,
-TABLE.dataset-table .data {
- background: #d0d0d0;
- border: 1px solid gray;
-}
-
-.dataset-io-label {
- width: 88px;
-}
-
-.delete-data-set {
- float: right;
-}
-
/* Styles Related to topics */
table.topic {