changeset 1354:fc0fecf09eb9 bug_635

Restore our original repos settings page. But I don't think this is going to work well with the new routes configuration
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Thu, 18 Jul 2013 11:18:35 +0100
parents 0f5c32bfd33e
children 3d01be97cb5a
files app/controllers/projects_controller.rb app/controllers/repositories_controller.rb app/views/projects/settings/_repositories.html.erb
diffstat 3 files changed, 70 insertions(+), 36 deletions(-) [+]
line wrap: on
line diff
--- a/app/controllers/projects_controller.rb	Wed Jul 03 09:57:31 2013 +0100
+++ b/app/controllers/projects_controller.rb	Thu Jul 18 11:18:35 2013 +0100
@@ -196,6 +196,7 @@
     @issue_category ||= IssueCategory.new
     @member ||= @project.members.new
     @trackers = Tracker.sorted.all
+    @repository ||= @project.repository
     @wiki ||= @project.wiki
   end
 
--- a/app/controllers/repositories_controller.rb	Wed Jul 03 09:57:31 2013 +0100
+++ b/app/controllers/repositories_controller.rb	Thu Jul 18 11:18:35 2013 +0100
@@ -60,6 +60,21 @@
   end
 
   def edit
+    @repository = @project.repository
+    params[:repository_scm]='Mercurial'
+    if !@repository
+      @repository = Repository.factory(params[:repository_scm])
+      @repository.project = @project if @repository
+    end
+    if request.post? && @repository
+      attrs = pickup_extra_info
+      @repository.safe_attributes = attrs[:attrs]
+      if attrs[:attrs_extra].keys.any?
+        @repository.merge_extra_info(attrs[:attrs_extra])
+      end
+      @repository.project = @project
+      redirect_to settings_project_path(@project, :tab => 'repositories')
+    end
   end
 
   def update
--- a/app/views/projects/settings/_repositories.html.erb	Wed Jul 03 09:57:31 2013 +0100
+++ b/app/views/projects/settings/_repositories.html.erb	Thu Jul 18 11:18:35 2013 +0100
@@ -1,41 +1,59 @@
-<% if @project.repositories.any? %>
-<table class="list">
-  <thead>
-    <tr>
-      <th><%= l(:field_identifier) %></th>
-      <th><%= l(:field_repository_is_default) %></th>
-      <th><%= l(:label_scm) %></th>
-      <th><%= l(:label_repository) %></th>
-      <th></th>
-    </tr>
-  </thead>
-  <tbody>
-  <% @project.repositories.sort.each do |repository| %>
-    <tr class="<%= cycle 'odd', 'even' %>">
-      <td>
-      <%= link_to repository.identifier, 
-            {:controller => 'repositories', :action => 'show',:id => @project, :repository_id => repository.identifier_param} if repository.identifier.present? %>
-      </td>
-      <td align="center"><%= checked_image repository.is_default? %></td>
-      <td><%=h repository.scm_name %></td>
-      <td><%=h repository.url %></td>
-      <td class="buttons">
-      <% if User.current.allowed_to?(:manage_repository, @project) %>
-        <%= link_to(l(:label_user_plural), committers_repository_path(repository),
+
+<%= javascript_include_tag 'repository' %>
+
+<%= form_for @repository,
+       :as => :repository,
+       :url => { :controller => 'repositories', :action => 'edit', :id => @project },
+       :remote => true,
+       :method => 'post' do |f| %>
+
+<%= error_messages_for 'repository' %>
+
+<div class="box tabular">
+
+<p>
+<% if @repository %>
+   <%= l(:text_settings_repo_explanation).html_safe %></ br>
+   <% if @repository.is_external %>
+     <p><%= l(:text_settings_repo_is_external).html_safe %></ br>
+   <% else %>
+     <p><%= l(:text_settings_repo_is_internal).html_safe %></ br>
+   <% end %>
+</p>
+
+
+<p>
+	<%= label_tag('repository_is_external', l(:label_is_external_repository)) %>
+	<%= check_box :repository, :is_external, :onclick => "toggle_ext_url()" %> 
+	<br/><em><%= l(:setting_external_repository).html_safe %></em>
+</p>
+
+<p>
+	<%= label_tag('repository_external_url', l(:label_repository_external_url)) %>
+	<%= text_field :repository, :external_url, :disabled => !(@repository and @repository.is_external) %> 
+	<br/><em><%= l(:setting_external_repository_url).html_safe %></em>
+</p>
+
+<p><%= l(:text_settings_repo_need_help).html_safe %></p>
+
+</div>
+
+<div class="contextual">
+<% if @repository && !@repository.new_record? %>
+<%= link_to(l(:label_user_plural),
+                {
+                :controller => 'repositories',
+                :action     => 'committers',
+                :id         => @project
+                },
              :class => 'icon icon-user') %>
-        <%= link_to(l(:button_edit), edit_repository_path(repository),
-             :class => 'icon icon-edit') %>
-        <%= delete_link repository_path(repository) %>
-      <% end %>
-      </td>
-    </tr>
-  <% end %>
-  </tbody>
-</table>
+<% end %>
+</div>
+
+<%= submit_tag(l(:button_save)) %>
+
 <% else %>
-<p class="nodata"><%= l(:label_no_data) %></p>
+   <%= l(:text_settings_repo_creation).html_safe %></ br>
 <% end %>
 
-<% if User.current.allowed_to?(:manage_repository, @project) %>
-  <p><%= link_to l(:label_repository_new), new_project_repository_path(@project), :class => 'icon icon-add' %></p>
 <% end %>