Diff
Modified: branches/datasets/app/controllers/feedback_controller.rb (2834 => 2835)
--- branches/datasets/app/controllers/feedback_controller.rb 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/controllers/feedback_controller.rb 2011-11-22 15:47:19 UTC (rev 2835)
@@ -21,9 +21,9 @@
format.html { redirect_to "/feedback" }
end
else
- if captcha_valid?(params[:feedback][:captcha_id], params[:feedback][:captcha_validation])
+ if params[:feedback] && captcha_valid?(params[:feedback][:captcha_id], params[:feedback][:captcha_validation])
- from_user = params[:from] + ' (' + (!params[:email].blank? ? params[:email] : 'no email') + ')';
+ from_user = ( params[:from].blank? ? 'no from': params[:from] ) + ' (' + (!params[:email].blank? ? params[:email] : 'no email') + ')';
Mailer.deliver_feedback(from_user, params[:subject], params[:content])
respond_to do |format|
@@ -33,7 +33,7 @@
else
respond_to do |format|
flash[:error] = 'Your feedback has not been submitted. CAPTCHA was not entered correctly.'
- format.html { redirect_to "/feedback?from="+params[:from]+"&email="+params[:email]+"&subject="+params[:subject]+"&content="+params[:content] }
+ format.html { redirect_to "/feedback?from="+String(params[:from])+"&email="+String(params[:email])+"&subject="+String(params[:subject])+"&content="+String(params[:content]) }
end
end
end
Modified: branches/datasets/app/controllers/jobs_controller.rb (2834 => 2835)
--- branches/datasets/app/controllers/jobs_controller.rb 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/controllers/jobs_controller.rb 2011-11-22 15:47:19 UTC (rev 2835)
@@ -143,7 +143,7 @@
respond_to do |format|
if success and @job.save
flash[:notice] = "Job successfully created."
- format.html { redirect_to job_url(@job.experiment, @job) }
+ format.html { redirect_to experiment_job_url(@job.experiment, @job) }
else
flash[:error] = err_msg if err_msg
format.html { render :action ="" "new" }
@@ -161,7 +161,7 @@
respond_to do |format|
if @job.update_attributes(params[:job])
flash[:notice] = "Job was successfully updated."
- format.html { redirect_to job_url(@experiment, @job) }
+ format.html { redirect_to experiment_job_url(@experiment, @job) }
else
format.html { render :action ="" "edit" }
end
@@ -172,10 +172,10 @@
respond_to do |format|
if @job.destroy
flash[:notice] = "Job \"address@hidden" has been deleted"
- format.html { redirect_to jobs_url(@experiment) }
+ format.html { redirect_to experiment_jobs_url(@experiment) }
else
flash[:error] = "Failed to delete Job"
- format.html { redirect_to job_url(@experiment, @job) }
+ format.html { redirect_to experiment_job_url(@experiment, @job) }
end
end
end
@@ -218,7 +218,7 @@
flash[:error] = "An error has occurred whilst saving the inputs data"
end
- format.html { redirect_to job_url(@experiment, @job) }
+ format.html { redirect_to experiment_job_url(@experiment, @job) }
end
end
@@ -250,10 +250,10 @@
respond_to do |format|
if success
flash[:notice] = "Job has been successfully submitted. You can monitor progress in the 'Status' section."
- format.html { redirect_to job_url(@experiment, @job) }
+ format.html { redirect_to experiment_job_url(@experiment, @job) }
else
flash[:error] = "Failed to submit job. Errors: " + errors_text
- format.html { redirect_to job_url(@experiment, @job) }
+ format.html { redirect_to experiment_job_url(@experiment, @job) }
end
end
end
@@ -279,7 +279,7 @@
else
respond_to do |format|
flash[:error] = "Outputs XML unavailable - Job not completed successfully yet."
- format.html { redirect_to job_url(@experiment, @job) }
+ format.html { redirect_to experiment_job_url(@experiment, @job) }
end
end
end
@@ -303,7 +303,7 @@
respond_to do |format|
if child_job.save
flash[:notice] = "Job successfully created, based on Job address@hidden'."
- format.html { redirect_to job_url(@experiment, child_job) }
+ format.html { redirect_to experiment_job_url(@experiment, child_job) }
else
format.html { render :action ="" "new" }
end
@@ -386,7 +386,7 @@
(err = Job.new.errors).add(attr, message)
respond_to do |format|
- format.html { redirect_to jobs_url(params[:experiment_id]) }
+ format.html { redirect_to experiment_jobs_url(params[:experiment_id]) }
end
end
end
Modified: branches/datasets/app/controllers/messages_controller.rb (2834 => 2835)
--- branches/datasets/app/controllers/messages_controller.rb 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/controllers/messages_controller.rb 2011-11-22 15:47:19 UTC (rev 2835)
@@ -135,34 +135,39 @@
# check if sending is allowed and increment the message counter
sending_allowed = ActivityLimit.check_limit(current_user, "internal_message")[0]
- if sending_allowed
- @message = Message.new(params[:message])
- @message.from ||= current_user.id
-
- # set initial datetimes
- @message.read_at = nil
-
- # test for spoofing of "from" field
- unless @message.from.to_i == current_user.id.to_i
- errors = true
- @message.errors.add :from, "must be logged on"
- end
-
- # test for existance of reply_id
- if @message.reply_id
- begin
- reply = Message.find(@message.reply_id)
+ if params[:message] && params[:message].kind_of?(Hash)
+ if sending_allowed
+ @message = Message.new(params[:message])
+ @message.from ||= current_user.id
- # test that user is replying to a message that was actually received by them
- unless reply.to.to_i == current_user.id.to_i
+ # set initial datetimes
+ @message.read_at = nil
+
+ # test for spoofing of "from" field
+ unless @message.from.to_i == current_user.id.to_i
+ errors = true
+ @message.errors.add :from, "must be logged on"
+ end
+
+ # test for existance of reply_id
+ if @message.reply_id
+ begin
+ reply = Message.find(@message.reply_id)
+
+ # test that user is replying to a message that was actually received by them
+ unless reply.to.to_i == current_user.id.to_i
+ errors = true
+ @message.errors.add :reply_id, "not addressed to sender"
+ end
+ rescue ActiveRecord::RecordNotFound
errors = true
- @message.errors.add :reply_id, "not addressed to sender"
+ @message.errors.add :reply_id, "not found"
end
- rescue ActiveRecord::RecordNotFound
- errors = true
- @message.errors.add :reply_id, "not found"
end
end
+ else
+ @message = Message.new
+ errors = true
end
respond_to do |format|
Modified: branches/datasets/app/models/pack.rb (2834 => 2835)
--- branches/datasets/app/models/pack.rb 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/models/pack.rb 2011-11-22 15:47:19 UTC (rev 2835)
@@ -940,7 +940,6 @@
# penalty for no description
boost -= 20 if description.nil? || description.empty?
- puts "id = #{id}, score = #{boost}"
boost
end
Modified: branches/datasets/app/views/experiments/_table.rhtml (2834 => 2835)
--- branches/datasets/app/views/experiments/_table.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/experiments/_table.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -36,7 +36,7 @@
<% if Authorization.is_authorized?('edit', nil, experiment, current_user) %>
<%= icon('edit', edit_experiment_path(experiment), nil, nil, 'Edit') %>
<% end %>
- <%= icon "job", new_job_path(experiment), nil, nil, "New Job" %>
+ <%= icon "job", new_experiment_job_path(experiment), nil, nil, "New Job" %>
</td>
</tr>
<% end %>
Modified: branches/datasets/app/views/experiments/show.rhtml (2834 => 2835)
--- branches/datasets/app/views/experiments/show.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/experiments/show.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -55,7 +55,7 @@
<div class="tabTitle">Jobs</div>
<div class="tabContent">
<ul class="sectionIcons">
- <li><%= icon('new', new_job_path(@experiment), nil, nil, 'New Job') %></li>
+ <li><%= icon('new', new_experiment_job_path(@experiment), nil, nil, 'New Job') %></li>
</ul>
<% unless @experiment.jobs.empty? -%>
Modified: branches/datasets/app/views/jobs/_breadcrumbs.rhtml (2834 => 2835)
--- branches/datasets/app/views/jobs/_breadcrumbs.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/jobs/_breadcrumbs.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -6,7 +6,7 @@
<li><%= link_to "#{h(@experiment.title)}", experiment_path(@experiment) -%></li>
<li><b>»</b></li>
- <li><%= link_to 'Jobs', jobs_path(@experiment) -%></li>
+ <li><%= link_to 'Jobs', experiment_jobs_path(@experiment) -%></li>
<% if ["show", "new", "edit"].include? controller.action_name.to_s -%>
<li><b>»</b></li>
@@ -16,7 +16,7 @@
<% when "new" %>
<li>New Job</li>
<% when "edit" %>
- <li><%= link_to "#{h(@job.title)}", job_path(@experiment, @job) -%></li>
+ <li><%= link_to "#{h(@job.title)}", experiment_job_path(@experiment, @job) -%></li>
<li><b>»</b></li>
<li>Manage</li>
<% else %>
Modified: branches/datasets/app/views/jobs/_outputs.rhtml (2834 => 2835)
--- branches/datasets/app/views/jobs/_outputs.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/jobs/_outputs.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -2,7 +2,7 @@
<% outputs = job.outputs_data -%>
<% if false -%>
- <p><%= icon "package", outputs_package_job_path(experiment, job), nil, nil, "Download as compressed package" -%></p>
+ <p><%= icon "package", outputs_package_experiment_job_path(experiment, job), nil, nil, "Download as compressed package" -%></p>
<% end -%>
<p class="note_text" style="text-align: center;">
@@ -30,7 +30,7 @@
<h4>Download Data</h4>
<p>
- <%= icon "xml", outputs_xml_job_path(experiment, job), nil, nil, "Download as XML" -%>
+ <%= icon "xml", outputs_xml_experiment_job_path(experiment, job), nil, nil, "Download as XML" -%>
</p>
<p style="font-size: 93%; color: #666666; margin-left: 2em;">
You can open this XML file in the Taverna Data Viewer
Modified: branches/datasets/app/views/jobs/_status_info.rhtml (2834 => 2835)
--- branches/datasets/app/views/jobs/_status_info.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/jobs/_status_info.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -18,7 +18,7 @@
</p>
<p>
- <% form_tag submit_job_job_path(experiment, job) do -%>
+ <% form_tag submit_job_experiment_job_path(experiment, job) do -%>
<center><%= submit_tag "Submit Job", :disable_with => "Submitting..." -%></center>
<% end -%>
</p>
@@ -109,9 +109,9 @@
<br/><br/>
<ul class="sectionIcons">
- <li><%= icon('rerun', rerun_job_path(experiment, job), nil, { :confirm => 'Note: this will create a new Job with the settings and input data copied from this Job. Continue?', :method => :post }, 'Rerun Job') %></li>
+ <li><%= icon('rerun', rerun_experiment_job_path(experiment, job), nil, { :confirm => 'Note: this will create a new Job with the settings and input data copied from this Job. Continue?', :method => :post }, 'Rerun Job') %></li>
</ul>
<% end -%>
-<% end -%>
\ No newline at end of file
+<% end -%>
Modified: branches/datasets/app/views/jobs/_table.rhtml (2834 => 2835)
--- branches/datasets/app/views/jobs/_table.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/jobs/_table.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -11,7 +11,7 @@
<td class="mid" style="text-align: left;">
<p class="title">
<%= icon "job", nil, nil, nil, '' %>
- <%= link_to h(job.title), job_url(job.experiment, job) %>
+ <%= link_to h(job.title), experiment_job_url(job.experiment, job) %>
</p>
<p style="font-size: 85%; color: #666666;">
@@ -43,10 +43,10 @@
</td>
<td class="actions" style="width: 80px;">
- <%= icon "show", job_url(job.experiment, job), nil, nil, "View" %>
+ <%= icon "show", experiment_job_url(job.experiment, job), nil, nil, "View" %>
<% if false -%>
<% if Authorization.is_authorized?('edit', nil, job, current_user) -%>
- <%= icon('edit', edit_job_path(job.experiment, job), nil, nil, 'Edit') %>
+ <%= icon('edit', edit_experiment_job_path(job.experiment, job), nil, nil, 'Edit') %>
<% end -%>
<% end -%>
</td>
Modified: branches/datasets/app/views/jobs/new.rhtml (2834 => 2835)
--- branches/datasets/app/views/jobs/new.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/jobs/new.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -6,7 +6,7 @@
<%= error_messages_for :job %>
</center>
-<% form_for :job, :url ="" (@job.experiment ? jobs_path(@job.experiment) : { :controller => 'jobs', :action ="" 'create' }) do |form| -%>
+<% form_for :job, :url ="" (@job.experiment ? experiment_jobs_path(@job.experiment) : { :controller => 'jobs', :action ="" 'create' }) do |form| -%>
<p class="sub-heading">
<% if @job.experiment -%>
@@ -86,4 +86,4 @@
</div>
</center>
-<% end -%>
\ No newline at end of file
+<% end -%>
Modified: branches/datasets/app/views/jobs/show.rhtml (2834 => 2835)
--- branches/datasets/app/views/jobs/show.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/jobs/show.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -3,7 +3,7 @@
<% t "#{h @job.title}" -%>
<ul class="sectionIcons">
- <li><%= icon('rerun', rerun_job_path(@experiment, @job), nil, { :confirm => 'Note: this will create a new Job with the settings and input data copied from this Job. Continue?', :method => :post }, 'Rerun Job') %></li>
+ <li><%= icon('rerun', rerun_experiment_job_path(@experiment, @job), nil, { :confirm => 'Note: this will create a new Job with the settings and input data copied from this Job. Continue?', :method => :post }, 'Rerun Job') %></li>
</ul>
<h1>Job: <%= h @job.title %></h1>
@@ -118,7 +118,7 @@
<% unless @job.child_jobs.empty? -%>
<% @job.child_jobs.each do |j| -%>
<p>
- <%= link_to h(j.title), job_url(j.experiment, j) -%>
+ <%= link_to h(j.title), experiment_job_url(j.experiment, j) -%>
<span style="color: #666666;">(<%= datetime j.created_at -%>)</span>
</p>
<% end -%>
@@ -147,7 +147,7 @@
<br/>
- <% form_tag save_inputs_job_path(@experiment, @job), :multipart => true do -%>
+ <% form_tag save_inputs_experiment_job_path(@experiment, @job), :multipart => true do -%>
<% s_field_counter = 0 -%>
<% inputs.each do |i| -%>
@@ -287,7 +287,7 @@
<ul class="sectionIcons" style="margin-top: 1.5em;">
<li style="margin-left: 0;">
<%= link_to_remote "#{refresh_image} Refresh",
- :url ="" refresh_status_job_url(@experiment, @job),
+ :url ="" refresh_status_experiment_job_url(@experiment, @job),
:method => :get,
:update => 'status_box',
:success => "new Effect.Highlight('status_box', { duration: 1.5 });",
@@ -303,7 +303,7 @@
<p id="refresh_timer_text" class="note_text" style="text-align: center;">
Note: this section will automatically refresh every 10 seconds until job completion.
</p>
- <%= periodically_call_remote(:url ="" refresh_status_job_url(@experiment, @job),
+ <%= periodically_call_remote(:url ="" refresh_status_experiment_job_url(@experiment, @job),
:frequency => '10',
:update => 'status_box',
:method => :get,
@@ -330,7 +330,7 @@
<ul class="sectionIcons" style="margin-top: 1.5em;">
<li style="margin-left: 0;">
<%= link_to_remote "#{refresh_image} Refresh",
- :url ="" refresh_outputs_job_url(@experiment, @job),
+ :url ="" refresh_outputs_experiment_job_url(@experiment, @job),
:method => :get,
:update => 'outputs_box',
:success => "new Effect.Highlight('outputs_box', { duration: 1.5 });",
Modified: branches/datasets/app/views/layouts/_myexperiment.rhtml (2834 => 2835)
--- branches/datasets/app/views/layouts/_myexperiment.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/layouts/_myexperiment.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -35,18 +35,20 @@
<% else %>
<%= link_to image_tag(Conf.site_logo), "/" %>
<% end %>
- <div id="site_info_links" class="links">
+ </div>
+ <div id="myexp_links">
+ <div style="text-align: left; float: left; width: 34%; padding-top: 6px;" id="site_info_links" class="links">
<% if @content_for_site_info_links %>
<%= yield :site_info_links %>
<% else %>
<%= render :partial => 'layouts/site_info_links' %>
<% end %>
</div>
+ <div style="text-align: right; float: right; width: 64%;" id="user_links" class="links">
+ <%= render :partial => 'layouts/user_links' %>
+ </div>
</div>
- <div id="user_links" class="links">
- <%= render :partial => 'layouts/user_links' %>
- </div>
- <br class="clearer"/>
+ <div class="clearer"> </div>
</div>
<div id="myexp_tabs">
<%= render :partial => 'layouts/tab_bar' %>
Modified: branches/datasets/app/views/layouts/_tab_bar.rhtml (2834 => 2835)
--- branches/datasets/app/views/layouts/_tab_bar.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/layouts/_tab_bar.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -1,5 +1,7 @@
-<div class="tabnav">
+<ul class="tabnav">
<% Conf.main_tabs.each do |tab| %>
- <%= link_to(tab['label'], tab['link'], :class => "tab", :id => (tab['controller'] && controller.controller_name.match(tab['controller'])) ? 'selected_tabnav' : '') -%>
+ <li <%= (tab['controller'] && controller.controller_name.match(tab['controller'])) ? 'id="selected_tabnav"' : '' %>>
+ <%= link_to(tab['label'], tab['link']) -%>
+ </li>
<% end %>
-</div>
+</ul>
Modified: branches/datasets/app/views/memberships/new.rhtml (2834 => 2835)
--- branches/datasets/app/views/memberships/new.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/memberships/new.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -18,7 +18,7 @@
<small>(Administrator: <%= name @network.user_id -%>)</small>
<% else -%>
<b>Select group:</b><br/>
- <%= select_tag "membership[network_id]", options_from_collection_for_select(Network.find(:all, :order => "title ASC", :conditions => ["new_member_policy != 'invitation_only'"]), :id.to_i, :title), :style => "width: 360px; margin-top: 0.3em; margin-bottom: 0.5em" %>
+ <%= select_tag "membership[network_id]", options_from_collection_for_select(Network.find(:all, :order => "title ASC", :conditions => ["new_member_policy != 'invitation_only'"]), 'id', 'title'), :style => "width: 360px; margin-top: 0.3em; margin-bottom: 0.5em" %>
<% end -%>
</div>
Modified: branches/datasets/app/views/networks/show.rhtml (2834 => 2835)
--- branches/datasets/app/views/networks/show.rhtml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/app/views/networks/show.rhtml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -208,7 +208,7 @@
</div>
</div>
-<% if @network.administrator?(current_user.id) %>
+<% if logged_in? && @network.administrator?(current_user.id) %>
<% memberships = @network.memberships_accepted %>
<a name="manage_memberships"></a>
Modified: branches/datasets/config/environment.rb (2834 => 2835)
--- branches/datasets/config/environment.rb 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/config/environment.rb 2011-11-22 15:47:19 UTC (rev 2835)
@@ -113,13 +113,15 @@
load 'config/environment_private.rb' if FileTest.exist?('config/environment_private.rb')
# Fix for Ruby 1.8.7 when using Rails < 2.2
-module ActionView
- module Helpers
- module TextHelper
- def truncate(text, length = 30, truncate_string = "...")
- if text.nil? then return end
- l = length - truncate_string.chars.to_a.size
- (text.chars.to_a.size > length ? text.chars.to_a[0...l].join + truncate_string : text).to_s
+if RUBY_VERSION == "1.8.7" && ((Rails::VERSION::MAJOR == 1) || (Rails::VERSION::MAJOR == 2 && Rails::VERSION::MINOR < 2))
+ module ActionView
+ module Helpers
+ module TextHelper
+ def truncate(text, length = 30, truncate_string = "...")
+ if text.nil? then return end
+ l = length - truncate_string.chars.to_a.size
+ (text.chars.to_a.size > length ? text.chars.to_a[0...l].join + truncate_string : text).to_s
+ end
end
end
end
Modified: branches/datasets/installers/ubuntu/install.bash (2834 => 2835)
--- branches/datasets/installers/ubuntu/install.bash 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/installers/ubuntu/install.bash 2011-11-22 15:47:19 UTC (rev 2835)
@@ -11,51 +11,45 @@
source $settings_file || { echo "Could not find settings file at $settings_file. Aborting ..."; exit 1; }
echo "Preseeding debconf"
-sudo su -c "/usr/share/debconf/fix_db.pl" || { echo "Failed to run debconf fix_db script. Aborting ..."; exit 2; }
-sudo su -c "echo mysql-server-5.1 mysql-server/root_password password `echo "'"``echo ${mysql_root_password}``echo "'"` | debconf-set-selections" || { echo "Failed to set debconf option. Aborting ..."; exit 3; }
-sudo su -c "echo mysql-server-5.1 mysql-server/root_password_again password `echo "'"``echo ${mysql_root_password}``echo "'"` | debconf-set-selections" || { echo "Failed to set debconf option. Aborting ..."; exit 3; }
+sudo su -c "echo mysql-server-5.1 mysql-server/root_password password `echo "'"``echo ${mysql_root_password}``echo "'"` | debconf-set-selections" || { echo "Could not set debconf option mysql-server-5.1 mysql-server/root_password. Aborting ..."; exit 2; }
+sudo su -c "echo mysql-server-5.1 mysql-server/root_password_again password `echo "'"``echo ${mysql_root_password}``echo "'"` | debconf-set-selections" || { echo "Could not set debconf option mysql-server-5.1 mysql-server/root_password_again. Aborting ..."; exit 3; }
echo "Installing required APT packages"
-sudo apt-get update || { echo "Failed to update apt-get. Aborting ..."; exit 4; }
-sudo -n apt-get install -y build-essential exim4 ruby ruby1.8-dev libzlib-ruby rdoc irb rubygems rake libapache2-mod-fcgid libfcgi-ruby1.8 libmysql-ruby gcj-4.4-jre-headless subversion libopenssl-ruby1.8 libcurl3 libcurl3-gnutls libcurl4-openssl-dev mysql-server graphicsmagick imagemagick librmagick-ruby1.8 libmagick9-dev graphviz || { echo "Failed to installing required APT packages. Aborting ..."; exit 5; }
+sudo apt-get update || { echo "Could not update apt-get. Aborting ..."; exit 4; }
+sudo -n apt-get install -y build-essential exim4 ruby ruby1.8-dev libzlib-ruby rdoc irb rubygems rake libapache2-mod-fcgid libfcgi-ruby1.8 libmysql-ruby gcj-4.4-jre-headless subversion libopenssl-ruby1.8 libcurl3 libcurl3-gnutls libcurl4-openssl-dev mysql-server graphicsmagick imagemagick librmagick-ruby1.8 libmagick9-dev graphviz mlocate || { echo "Could not install required APT packages. Aborting ..."; exit 5; }
echo "Installing Rake version $rake_version and Rails version $rails_version Ruby Gems"
sudo gem install rake $nordoc $nori --version $rake_version || { echo "Could not install Rake Ruby Gem (version $rake_version). Aborting ..."; exit 6; }
-sudo gem install rails $nordoc $nori --version $rails_version || { echo "Failed to install Rails Ruby Gem (v$rails_version) and dependencies. Aborting ..."; exit 7; }
+sudo gem install rails $nordoc $nori --version $rails_version || { echo "Could not install Rails Ruby Gem (v$rails_version) and dependencies. Aborting ..."; exit 7; }
echo "Installing Ruby Gems required by myExperiment"
-sudo gem install $nordoc $nori rdoc rdoc-data || { echo "Could not install RDoc Ruby Gems. Aborting ..."; exit 40;}
if [ `cat /etc/environment | grep "/var/lib/gems/1.8/bin" | wc -l` -eq 0 ]; then
- cat /etc/environment | sed "s/\"$/:\/var\/lib\/gems\/1.8\/bin\"/" | sudo tee /etc/environment > /dev/null || { echo "Could not add Gems path to PATH. Aborting ..."; exit 33;}
+ cat /etc/environment | sed "s/\"$/:\/var\/lib\/gems\/1.8\/bin\"/" | sudo tee /etc/environment > /dev/null || { echo "Could not add Gems path to PATH. Aborting ..."; exit 8;}
fi
if [ `echo $PATH | grep "/var/lib/gems/1.8/bin" | wc -l` -eq 0 ]; then
- DOLLAR='$'; echo -e "export PATH=${DOLLAR}PATH:/var/lib/gems/1.8/bin\nalias sudo='sudo env PATH=${DOLLAR}PATH'" >> /home/$USER/.bashrc || { echo "Could not write to /home/$USER/.bashrc. Aborting ..."; exit 38;}
+ DOLLAR='$'; echo -e "export PATH=${DOLLAR}PATH:/var/lib/gems/1.8/bin\nalias sudo='sudo env PATH=${DOLLAR}PATH'" >> /home/$USER/.bashrc || { echo "Could not write to /home/$USER/.bashrc. Aborting ..."; exit 9;}
export PATH=$PATH:/var/lib/gems/1.8/bin
fi
-sudo env PATH=$PATH rdoc-data --install || { echo "Could not install rdoc-data. Aborting ..."; exit 9; }
-if [ "$nordoc" -eq 0 ]; then
- sudo gem rdoc --all --overwrite || { echo "Could overwrite RDoc for existing Ruby Gems. Aborting ..."; exit 39; }
-fi
-sudo gem install $nordoc $nori cgi_multipart_eof_fix daemons dsl_accessor fastthread gem_plugin json mime-types mongrel mongrel_cluster needle net-sftp net-ssh openid_login_generator RedCloth ruby-yadis rubyzip solr-ruby xml-simple libxml-ruby oauth ruby-hmac openurl curb marc taverna-scufl taverna-t2flow || { echo "Failed to install all remaining generic Ruby Gems required by myExperiment. Aborting ..."; exit 8; }
-sudo gem install rmagick $nordoc $nori --version=1.15.14 || { echo "Failed to install RMagick Ruby Gem. Aborting ..."; exit 10; }
+sudo gem install $nordoc $nori cgi_multipart_eof_fix daemons dsl_accessor fastthread gem_plugin json mime-types mongrel mongrel_cluster needle net-sftp net-ssh openid_login_generator RedCloth ruby-yadis rubyzip solr-ruby xml-simple libxml-ruby oauth ruby-hmac openurl curb marc taverna-scufl taverna-t2flow || { echo "Could not install all remaining generic Ruby Gems required by myExperiment. Aborting ..."; exit 10; }
+sudo gem install rmagick $nordoc $nori --version=1.15.14 || { echo "Could not install RMagick Ruby Gem. Aborting ..."; exit 11; }
echo "Making OAuth Ruby Gem compatible with Rails $version"
-tempdir=$(mktemp -d /tmp/myexp_installer.XXXXXXXXXX) || { echo "Could not create temporary file for writing patches to. Aborting ..."; exit 11; }
-cd $tempdir || { echo "Could not find temporary directory. Aborting ..."; exit 12; }
-echo "$oauth_patch" > oauth.patch || { echo "Could not write oauth patch file. Aborting ..."; exit 13; }
-echo "$net_http_patch" > net_http.patch || { echo "Could not write net/http patch file. Aborting ..."; exit 14; }
-echo "$settings_patch" > settings.patch || { echo "Could not write settings patch file. Aborting ..."; exit 15; }
-sudo updatedb || { echo "Failed to run updatedb so that OAuth Ruby Gem file that needs updating can be located. Aborting ..."; exit 16; }
+tempdir=$(mktemp -d /tmp/myexp_installer.XXXXXXXXXX) || { echo "Could not create temporary file for writing patches to. Aborting ..."; exit 12; }
+cd $tempdir || { echo "Could not find temporary directory. Aborting ..."; exit 13; }
+echo "$oauth_patch" > oauth.patch || { echo "Could not write oauth patch file. Aborting ..."; exit 14; }
+echo "$net_http_patch" > net_http.patch || { echo "Could not write net/http patch file. Aborting ..."; exit 15; }
+echo "$settings_patch" > settings.patch || { echo "Could not write settings patch file. Aborting ..."; exit 16; }
+sudo updatedb || { echo "Could not run updatedb so that OAuth Ruby Gem file that needs updating can be located. Aborting ..."; exit 17; }
oauth_file=`locate lib/oauth/request_proxy/action_controller_request.rb`
if [ ! -e $oauth_file ]; then
- echo "Could not locate OAuth Ruby Gem file that requires updating. Aborting ..."; exit 17;
+ echo "Could not locate OAuth Ruby Gem file that requires updating. Aborting ..."; exit 18;
fi
-sudo patch $oauth_file $tempdir/oauth.patch || { echo "Could not patch OAuth Ruby Gem file: $oauth_file. Aborting ..."; exit 18; }
+sudo patch $oauth_file $tempdir/oauth.patch || { echo "Could not patch OAuth Ruby Gem file: $oauth_file. Aborting ..."; exit 19; }
net_http_file=`locate net/http.rb`
if [ ! -e $net_http_file ]; then
- echo "Could not locate net/http Ruby file that requires updating. Aborting ..."; exit 19;
+ echo "Could not locate net/http Ruby file that requires updating. Aborting ..."; exit 20;
fi
-sudo patch $net_http_file $tempdir/net_http.patch || { echo "Could not patch net/http Ruby file: $net_http_file. Aborting ..."; exit 20; }
+sudo patch $net_http_file $tempdir/net_http.patch || { echo "Could not patch net/http Ruby file: $net_http_file. Aborting ..."; exit 21; }
echo "Checking out myExperiment codebase from SVN"
cd /
@@ -65,15 +59,15 @@
cd $idir
fi
done
-sudo chown $USER:www-data $install_dir || { echo "Could not update permissions on $install_dir. Aborting ..."; exit 21; }
-svn checkout svn://rubyforge.org/var/svn/myexperiment/trunk $install_dir || { echo "Could not checkout SVN to $install_dir. Aborting ..."; exit 22; }
-cd ${install_dir}/config/ || { echo "Could not find config directory for myExperiment. Aborting ..."; exit 23; }
+sudo chown $USER:www-data $install_dir || { echo "Could not update permissions on $install_dir. Aborting ..."; exit 22; }
+svn checkout svn://rubyforge.org/var/svn/myexperiment/trunk $install_dir || { echo "Could not checkout SVN to $install_dir. Aborting ..."; exit 23; }
+cd ${install_dir}/config/ || { echo "Could not find config directory for myExperiment. Aborting ..."; exit 24; }
echo "Setting up config files for myExperiment"
-cat database.yml.pre | sed "s/username: root/username: $mysql_user_name/" | sed "s/password:/password: $mysql_user_password/" > database.yml || { echo "Could not create database.yml file with appropriate configuration settings. Aborting ..."; exit 24; }
-cp default_settings.yml settings.yml || { echo "Could not copy default_settings.yml to settings.yml ..."; exit 25; }
-patch settings.yml $tempdir/settings.patch || { echo "Could not patch settings.yml. Aborting ..."; exit 26; }
-cp captcha.yml.pre captcha.yml || { echo "Could not create captcha.yml file. Aborting ..."; exit 27; }
+cat database.yml.pre | sed "s/username: root/username: $mysql_user_name/" | sed "s/password:/password: $mysql_user_password/" > database.yml || { echo "Could not create database.yml file with appropriate configuration settings. Aborting ..."; exit 25; }
+cp default_settings.yml settings.yml || { echo "Could not copy default_settings.yml to settings.yml ..."; exit 26; }
+patch settings.yml $tempdir/settings.patch || { echo "Could not patch settings.yml. Aborting ..."; exit 27; }
+cp captcha.yml.pre captcha.yml || { echo "Could not create captcha.yml file. Aborting ..."; exit 28; }
cd ..
echo "Setting up exim4 (Email) for myExperiment"
@@ -89,18 +83,18 @@
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
-dc_localdelivery='mail_spool'" | sudo tee /etc/exim4/update-exim4.conf.conf > /dev/null || { echo "Could not write new exim4 config. Aborting..."; exit 28; }
-echo "${fq_server_name}" | sudo tee /etc/mailname > /dev/null || { echo "Could not update hostname for /etc/mailname. Aborting..."; exit 29; }
-sudo dpkg-reconfigure -fnoninteractive exim4-config || { echo "Could not write new reconfingure exim4. Aborting..."; exit 30; }
+dc_localdelivery='mail_spool'" | sudo tee /etc/exim4/update-exim4.conf.conf > /dev/null || { echo "Could not write new exim4 config. Aborting..."; exit 29; }
+echo "${fq_server_name}" | sudo tee /etc/mailname > /dev/null || { echo "Could not update hostname for /etc/mailname. Aborting..."; exit 30; }
+sudo dpkg-reconfigure -fnoninteractive exim4-config || { echo "Could not write new reconfingure exim4. Aborting..."; exit 31; }
echo "Setting up myExperiment databases in MySQL"
-mysql -u root -p$mysql_root_password -e "CREATE USER '$mysql_user_name'@'localhost' IDENTIFIED BY '$mysql_user_password'; CREATE DATABASE m2_development; CREATE DATABASE m2_production; CREATE DATABASE m2_test; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,INDEX,ALTER,DROP,CREATE TEMPORARY TABLES,CREATE VIEW,SHOW VIEW ON m2_development . * TO '$mysql_user_name'@'localhost';GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,INDEX,ALTER,DROP,CREATE TEMPORARY TABLES,CREATE VIEW,SHOW VIEW ON m2_production . * TO '$mysql_user_name'@'localhost';GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,INDEX,ALTER,DROP,CREATE TEMPORARY TABLES,CREATE VIEW,SHOW VIEW ON m2_test . * TO '$mysql_user_name'@'localhost';" || { echo "Could not create myExperiment databases in MySQL and set up appropriate access for the $mysql_user_name user. Aborting ..."; exit 23; }
+mysql -u root -p$mysql_root_password -e "CREATE USER '$mysql_user_name'@'localhost' IDENTIFIED BY '$mysql_user_password'; CREATE DATABASE m2_development; CREATE DATABASE m2_production; CREATE DATABASE m2_test; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,INDEX,ALTER,DROP,CREATE TEMPORARY TABLES,CREATE VIEW,SHOW VIEW ON m2_development . * TO '$mysql_user_name'@'localhost';GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,INDEX,ALTER,DROP,CREATE TEMPORARY TABLES,CREATE VIEW,SHOW VIEW ON m2_production . * TO '$mysql_user_name'@'localhost';GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,INDEX,ALTER,DROP,CREATE TEMPORARY TABLES,CREATE VIEW,SHOW VIEW ON m2_test . * TO '$mysql_user_name'@'localhost';" || { echo "Could not create myExperiment databases in MySQL and set up appropriate access for the $mysql_user_name user. Aborting ..."; exit 32; }
echo "Migrating myExperiment database"
-rake db:migrate || { echo "Could not migrate myExperiment data model to a MySQL database. Aborting ..."; exit 31; }
+rake db:migrate || { echo "Could not migrate myExperiment data model to a MySQL database. Aborting ..."; exit 33; }
echo "Starting Solr (search) server and indexing"
-rake solr:start || { echo "Could not start Solr server. Aborting ..."; exit 32; }
+rake solr:start || { echo "Could not start Solr server. Aborting ..."; exit 34; }
echo "Starting Mongrel webserver as a daemon running myExperiment website"
ruby script/server -d || { echo "Could not start Mongrel Webserver for myExperiment website. Aborting ..."; exit 35; }
Modified: branches/datasets/lib/rest.rb (2834 => 2835)
--- branches/datasets/lib/rest.rb 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/lib/rest.rb 2011-11-22 15:47:19 UTC (rev 2835)
@@ -186,18 +186,20 @@
list_element_accessor = model_data['List Element Accessor'][i]
list_element_text = list_element_accessor ? eval("item.#{model_data['List Element Accessor'][i]}") : item
- if list_element_text.instance_of?(String)
- el = LibXML::XML::Node.new(model_data['List Element Name'][i])
+ if list_element_text
+ if list_element_text.instance_of?(String)
+ el = LibXML::XML::Node.new(model_data['List Element Name'][i])
- item_attrs.each do |key,value|
- el[key] = value
- end
+ item_attrs.each do |key,value|
+ el[key] = value
+ end
- el << list_element_text.to_s if list_element_text
+ el << list_element_text.to_s if list_element_text
- list_element << el
- else
- list_element << rest_reference(list_element_text, query)
+ list_element << el
+ else
+ list_element << rest_reference(list_element_text, query)
+ end
end
end
@@ -967,22 +969,27 @@
# Handle the preview and svg images. If there's a preview supplied, use
# it. Otherwise auto-generate one if we can.
- if preview.nil? and content
- metadata = Workflow.extract_metadata(:type => ob.content_type.title, :data ="" content)
- preview = metadata["image"].read if metadata["image"]
- end
+ begin
+ if preview.nil? and content
+ metadata = Workflow.extract_metadata(:type => ob.content_type.title, :data ="" content)
+ preview = metadata["image"].read if metadata["image"]
+ end
- if preview
- ob.image = preview
- end
+ if preview
+ ob.image = preview
+ end
- if svg.nil? and content
- metadata = Workflow.extract_metadata(:type => ob.content_type.title, :data ="" content)
- svg = metadata["image"].read if metadata["image"]
- end
+ if svg.nil? and content
+ metadata = Workflow.extract_metadata(:type => ob.content_type.title, :data ="" content)
+ svg = metadata["image"].read if metadata["image"]
+ end
- if svg
- ob.svg = svg
+ if svg
+ ob.svg = svg
+ end
+
+ rescue
+ return rest_response(500, :reason => "Unable to extract metadata")
end
success = if (action == 'create' and opts[:query]['id'])
@@ -2140,6 +2147,10 @@
# Call dispatcher
def rest_call_request(req_uri, format, rules, user, query)
- eval("#{rules['Function']}(:req_uri => req_uri, :format => format, :rules => rules, :user => user, :query => query)")
+ begin
+ eval("#{rules['Function']}(:req_uri => req_uri, :format => format, :rules => rules, :user => user, :query => query)")
+ rescue
+ return rest_response(500)
+ end
end
Modified: branches/datasets/lib/workflow_processors/bio_extract.rb (2834 => 2835)
--- branches/datasets/lib/workflow_processors/bio_extract.rb 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/lib/workflow_processors/bio_extract.rb 2011-11-22 15:47:19 UTC (rev 2835)
@@ -42,7 +42,7 @@
file.rewind
return !bioextract_model.nil?
rescue
- puts $!
+ logger.info($!)
return false
end
end
Modified: branches/datasets/lib/workflow_processors/galaxy.rb (2834 => 2835)
--- branches/datasets/lib/workflow_processors/galaxy.rb 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/lib/workflow_processors/galaxy.rb 2011-11-22 15:47:19 UTC (rev 2835)
@@ -176,7 +176,7 @@
workflow
rescue
- puts $!
+ logger.info $!
nil
end
end
Modified: branches/datasets/lib/workflow_processors/rapid_miner.rb (2834 => 2835)
--- branches/datasets/lib/workflow_processors/rapid_miner.rb 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/lib/workflow_processors/rapid_miner.rb 2011-11-22 15:47:19 UTC (rev 2835)
@@ -45,7 +45,7 @@
file.rewind
return !rapid_miner_model.nil?
rescue
- puts $!
+ logger.info $!
return false
end
end
@@ -291,7 +291,7 @@
package
rescue
- puts $!
+ logger.info $!
nil
end
end
Modified: branches/datasets/lib/workflow_processors/taverna2.rb (2834 => 2835)
--- branches/datasets/lib/workflow_processors/taverna2.rb 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/lib/workflow_processors/taverna2.rb 2011-11-22 15:47:19 UTC (rev 2835)
@@ -310,7 +310,6 @@
processors_element << build('processor') do |processor_element|
-puts "PROCESSOR NAME = #{processor.name}"
processor_element << build('name', processor.name) if processor.name
processor_element << build('description', processor.description) if processor.description
processor_element << build('type', processor.type) if processor.type
Modified: branches/datasets/public/stylesheets/elico.css (2834 => 2835)
--- branches/datasets/public/stylesheets/elico.css 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/public/stylesheets/elico.css 2011-11-22 15:47:19 UTC (rev 2835)
@@ -4,10 +4,14 @@
background: #cfd5dd;
}
-#myexp_searchbar, #myexp_sidebar, a.tab:hover, #selected_tabnav, .pagination a {
+#myexp_searchbar, #myexp_sidebar, .pagination a {
background: #4d597e;
}
+.tabnav li a:hover, .tabnav li#selected_tabnav a {
+ background: none repeat scroll 0 0 #4d597e;
+}
+
#elico_header
{
background: url("/images/elico_back1.png") repeat-x scroll center top #2C3966;
@@ -47,6 +51,10 @@
color: white;
}
+#doc2 {
+ padding: 0 1em;
+}
+
/* IE7 fixes */
#doc2 {
*overflow: hidden;
@@ -55,5 +63,16 @@
#elico_links_bar #inner {
*height: 100%;
+ height: 100%;
}
/* end of IE7 fixes */
+
+#myexp_header {
+ margin: 0em 0.5em;
+}
+
+#hd
+{
+ padding-top: 1em;
+}
+
Modified: branches/datasets/public/stylesheets/styles.css (2834 => 2835)
--- branches/datasets/public/stylesheets/styles.css 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/public/stylesheets/styles.css 2011-11-22 15:47:19 UTC (rev 2835)
@@ -7,7 +7,7 @@
http://developer.yahoo.com/yui/fonts/#fontsize
*/
body {
- background: #8e8e8e;
+ background: #8e8e8e url('/images/body-bg.gif') repeat-y center;
/* Only need to define one font here because the
YUI Fonts CSS provides a degradation path
(see: http://developer.yahoo.com/yui/fonts/) */
@@ -127,18 +127,12 @@
#doc2 {
background-color: #FFFFFF;
- padding: 0 1em;
}
#myexp_header {
- margin: 0em 0.5em;
+ margin: 1em 0.5em 0 0.5em;
}
-#hd
-{
- padding-top: 1em;
-}
-
.logo {
float: left;
width: 300px;
@@ -149,9 +143,16 @@
font-weight: bold;
}
+#myexp_links
+{
+ float: right;
+ width: 600px;
+ font-size: 93%;
+}
+
#site_info_links {
- margin: 0.5em 0;
}
+/* margin: 0.5em 0; */
#user_links {
float: right;
@@ -296,8 +297,6 @@
}
/* begin css tabs nav */
-
-/* TODO: Remove me?
.tabnav {
text-align: center;
font-weight: bolder;
@@ -344,34 +343,9 @@
background-color: #317eff;
background-image: none;
color: #FFFFFF;
-} */
-
-.tabnav
-{
- text-align: center;
- margin: 0;
- padding: 0;
}
-a.tab {
- display: inline-block;
- padding: 4px 12px;
- margin-left: 3px;
- border-style: solid;
- border-color: #BBBBBB;
- border-width: 1px 1px 0px 1px;
- text-decoration: none;
- background: url('/images/tab-bg.png') top repeat-x #EDEDED;
- color: #333333;
- font-weight: bolder;
- font-size: 108%;
-}
-a.tab:hover, #selected_tabnav {
- color: #FFFFFF;
- background: #317eff;
-}
-
/* end css tabs nav */
/* begin css breadcrumbs */
Modified: branches/datasets/test/fixtures/networks.yml (2834 => 2835)
--- branches/datasets/test/fixtures/networks.yml 2011-11-22 15:16:31 UTC (rev 2834)
+++ branches/datasets/test/fixtures/networks.yml 2011-11-22 15:47:19 UTC (rev 2835)
@@ -24,6 +24,8 @@
updated_at: 2007-12-05 15:45:59
exclusive_network:
+ id: 4
+ user_id: 1
title: An Invite Only Network
unique_name: invite_only
created_at: 2007-12-05 15:45:59