diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 32d4474..4379695 100755
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -11,7 +11,9 @@ class UsersController < ApplicationController
def set_preferred_theme
@user=User.find(params[:id])
authorize!(:set_preferred_theme, @user)
- redirect_to user_url
+ @user.preferredtheme=params[:theme]
+ @user.save
+ redirect_to root_url
end
def add_role
authorize!(:add_role, User)
diff --git a/app/models/ability.rb b/app/models/ability.rb
index f10f098..99ba5bb 100755
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -160,6 +160,7 @@ end
can :showintern, Neuigkeit
can :showintern, Rubrik
can :seeintern, User
+ can :set_preferred_theme, user
can :list, Neuigkeit
can :shownonpublic, Rubrik
can :manage, Nlink
@@ -175,6 +176,7 @@ end
can :index, User
can :edit, User
can :manage, User
+ can :set_preferred_theme, User
end
if user.has_role?("newsadmin") || user.has_role?( "fetadmin") || user.has_role?( "fetuser")
diff --git a/app/models/neuigkeit.rb b/app/models/neuigkeit.rb
index 2609506..0db49de 100755
--- a/app/models/neuigkeit.rb
+++ b/app/models/neuigkeit.rb
@@ -30,6 +30,7 @@ class Neuigkeit < ActiveRecord::Base
translates :title,:text, :versioning=>{:gem=>:paper_trail, :options=>{:fallbacks_for_empty_translations => true}}
globalize_accessors :locales => [:de, :en], :attributes =>[:text,:title]
mount_uploader :picture, PictureUploader
+ include IsCommentable
default_scope order(:cache_order).includes(:calentries).includes(:title_pic)
scope :recent, -> { published.limit(10)}
diff --git a/app/views/home/intern.html.erb b/app/views/home/intern.html.erb
index 4dbf69d..edcae0b 100644
--- a/app/views/home/intern.html.erb
+++ b/app/views/home/intern.html.erb
@@ -7,7 +7,9 @@
<%= link_to "Adressliste", internlist_fetprofiles_path ,class: :linkbox %>
<%= link_to "Admin" , admin_home_index_path, class: :linkbox if current_user.has_role?(:fetadmin) %>
-
+
+<%= link_to ff_icon("ffi1-setting")+"Neue Oberfläche" , set_preferred_theme_user_path(current_user, params: {theme: "blue2"}), class: :linkbox if can? :set_preferred_theme , current_user %>
+
-
<% @themengruppen.each do |themengruppe| %>
diff --git a/app/views/themes/blue2/home/intern.html.erb b/app/views/themes/blue2/home/intern.html.erb
index 86dd73a..bd98825 100644
--- a/app/views/themes/blue2/home/intern.html.erb
+++ b/app/views/themes/blue2/home/intern.html.erb
@@ -3,7 +3,7 @@
-
+
-
<%= link_to fa_icon("list")+"Adressliste", internlist_fetprofiles_path ,class: :linkbox %>
@@ -19,6 +19,10 @@
-
<%= link_to ff_icon("ffi1-setting")+"Meetings" , meetingtyps_path, class: :linkbox if current_user.has_role?(:fetadmin) %>
+-
+ <%= link_to ff_icon("ffi1-setting")+"Alte Oberfläche" , set_preferred_theme_user_path(current_user, params: {theme: "blue1"}), class: :linkbox if can? :set_preferred_theme, current_user %>
+
+
Suche nach Protokollen
diff --git a/app/views/themes/blue2/neuigkeiten/show.html.erb b/app/views/themes/blue2/neuigkeiten/show.html.erb
index 24ad42c..f5ee3fb 100755
--- a/app/views/themes/blue2/neuigkeiten/show.html.erb
+++ b/app/views/themes/blue2/neuigkeiten/show.html.erb
@@ -41,8 +41,9 @@
" data-layout="standard" data-action="like" data-show-faces="true" data-share="true">
+<%= render_comments_for(@neuigkeit) %>
-<%= link_to fa_icon("link") + "Neue Verknüpfung" , "#", id: "findlink-open" if can? :find_link, @neuigkeit %>
+<%# link_to fa_icon("link") + "Neue Verknüpfung" , "#", id: "findlink-open" if can? :find_link, @neuigkeit %>
<% cache(cache_array_key(@neuigkeit.nlinks, "NLinks")) do %>
<%= render partial: 'neuigkeiten/nlink_list_whole', :object=>@neuigkeit.nlinks %>
diff --git a/config/routes.rb b/config/routes.rb
index aa8d6ae..896190e 100755
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -53,6 +53,7 @@ end
post :all_update
end
member do
+ get :set_preferred_theme
get :fb_set_default_publish_page
end
end
diff --git a/spec/features/admin_spec.rb b/spec/features/admin_spec.rb
new file mode 100644
index 0000000..02f0d11
--- /dev/null
+++ b/spec/features/admin_spec.rb
@@ -0,0 +1,36 @@
+
+require 'spec_helper'
+Capybara.add_selector(:href) do
+ xpath {|href| XPath.descendant[XPath.attr(:href).contains(href)] }
+end
+
+feature 'Administration', :type=> :feature do
+ let!(:user) {FactoryGirl.create(:user)}
+ let!(:rubrik) {FactoryGirl.create(:rubrik)}
+
+
+ let!(:themengruppe){ FactoryGirl.create(:themengruppe) }
+ let!(:studium) {FactoryGirl.create(:studium,:visible=>true)}
+ before(:each) do
+ FactoryGirl.create(:neuigkeit, rubrik_id: rubrik.id, author_id: user.id)
+ FactoryGirl.create(:thema, id: t=YAML.load_file("#{::Rails.root.to_s}/config/start_topic.yml").to_i, themengruppe_id: themengruppe.id)
+ studium.id
+ end
+ def sign_in
+ visit '/'
+ user.add_role(:fetadmin)
+
+ find(:href, "sign_in").click
+ fill_in 'user_email', with: user.email
+ fill_in 'user_password', with:"password"
+ click_button 'Sign in'
+ end
+
+ scenario 'change preferred theme' do
+ sign_in
+ visit "/admin/users/#{user.id}/set_preferred_theme?theme=blue2"
+ expect(User.find(user.id).preferredtheme).to eq("blue2")
+ visit "/admin/users/#{user.id}/set_preferred_theme?theme=blue1"
+ expect(User.find(user.id).preferredtheme).to eq("blue1")
+ end
+end