This commit is contained in:
2015-02-17 19:02:21 +01:00
17 changed files with 75 additions and 38 deletions

View File

@@ -117,6 +117,8 @@ gem 'whenever'
gem 'yaml_db' gem 'yaml_db'
gem 'etherpad-lite' gem 'etherpad-lite'
gem 'opengraph_parser'
# Image gallery # Image gallery
gem 'blueimp-gallery' gem 'blueimp-gallery'
gem 'blueimp-gallery-rails' gem 'blueimp-gallery-rails'

View File

@@ -26,7 +26,16 @@ class HomeController < ApplicationController
end end
def log
authorize! :doadmin, User
lines = params[:lines]
if Rails.env == "production"
@logs = `tail -n #{lines} log/production.log | grep Error`
else
@logs = `tail -n #{lines} log/development.log | grep -v 'actionpack\\|railties\\|activesupport\\|::Translation'`
end
end
def startdev def startdev
render 'setup_fetsite_dev' render 'setup_fetsite_dev'
end end

View File

@@ -6,7 +6,7 @@ class MeetingsController < ApplicationController
unless parent.nil? unless parent.nil?
#authorize! :show, parent #authorize! :show, parent
if params[:filter]=="upcomming" if params[:filter]=="upcomming"
@meetings=parent.meetings.includes(:calentry).where("calentries.start>?",1.hour.ago) @meetings=parent.meetings.upcomming
else else
@meetings=parent.meetings @meetings=parent.meetings
end end

View File

@@ -2,13 +2,16 @@ class RubrikenController < ApplicationController
before_filter {@toolbar_elements=[]} before_filter {@toolbar_elements=[]}
load_and_authorize_resource load_and_authorize_resource
def index def index
if can?(:showintern, Rubrik) # if can?(:showintern, Rubrik)
@rubriken = Rubrik.all # @rubriken = Rubrik.all
@neuigkeiten = Neuigkeit.page(params[:page]).per(3) # @neuigkeiten = Neuigkeit.page(params[:page]).per(3)
else # else
@rubriken = Rubrik.where(:public=>true) # @rubriken = Rubrik.where(:public=>true)
@neuigkeiten = Neuigkeit.public.published.page(params[:page]).per(3) # @neuigkeiten = Neuigkeit.public.published.page(params[:page]).per(3)
end # end
@rubriken= Rubrik.accessible_by(current_ability, :show)
@neuigkeiten = Neuigkeit.accessible_by(current_ability, :show).page(params[:page]).per(3)
@calentries= (@rubriken.map {|r| r.calendar}).collect(&:calentries).flatten.select {|c| c.object !=nil} @calentries= (@rubriken.map {|r| r.calendar}).collect(&:calentries).flatten.select {|c| c.object !=nil}
respond_to do |format| respond_to do |format|
@@ -21,20 +24,13 @@ class RubrikenController < ApplicationController
end end
def show def show
if can?(:shownonpublic, Rubrik) @rubriken= Rubrik.accessible_by(current_ability, :show)
@rubriken = Rubrik.all
else
@rubriken = Rubrik.where(:public=>true)
end
@rubrik = Rubrik.find(params[:id]) @rubrik = Rubrik.find(params[:id])
@moderatoren=User.with_role(:newsmoderator,@rubrik) @moderatoren=User.with_role(:newsmoderator,@rubrik)
@calentries= @rubrik.calendar.calentries.select {|c| c.object !=nil} @calentries= @rubrik.calendar.calentries.select {|c| c.object !=nil}
if can?(:showunpublished, Neuigkeit) @neuigkeiten = @rubrik.neuigkeiten.accessible_by(current_ability, :show).page(params[:page]).per(3)
@neuigkeiten = @rubrik.neuigkeiten.page(params[:page]).per(3)
else
@neuigkeiten = @rubrik.neuigkeiten.published.page(params[:page]).per(3)
end
@toolbar_elements << {:text=>I18n.t('neuigkeit.new.title'), :path=> new_rubrik_neuigkeit_path(@rubrik),:hicon=>'icon-plus-sign'} if can? :verwalten, @rubrik @toolbar_elements << {:text=>I18n.t('neuigkeit.new.title'), :path=> new_rubrik_neuigkeit_path(@rubrik),:hicon=>'icon-plus-sign'} if can? :verwalten, @rubrik
@toolbar_elements << {:text=>I18n.t('common.verwalten'), :path=>verwalten_rubrik_path(@rubrik),:icon=>:pencil} if can? :verwalten, @rubrik @toolbar_elements << {:text=>I18n.t('common.verwalten'), :path=>verwalten_rubrik_path(@rubrik),:icon=>:pencil} if can? :verwalten, @rubrik
@@ -47,7 +43,6 @@ class RubrikenController < ApplicationController
def new def new
@rubrik = Rubrik.new @rubrik = Rubrik.new
end end
def edit def edit

View File

@@ -3,7 +3,7 @@ class ThemengruppenController < ApplicationController
# GET /themengruppen.json # GET /themengruppen.json
load_and_authorize_resource load_and_authorize_resource
def index def index
@themengruppen = Themengruppe.where(:public=>true).order(:priority).reverse @themengruppen = Themengruppe.accessible_by(current_ability, :show).order(:priority).reverse_order
@toolbar_elements = [] @toolbar_elements = []
@toolbar_elements << {:icon=>:plus, :hicon=>'icon-plus-sign', :text=>I18n.t('themengruppe.new'), :path=>new_themengruppe_path()} if can? :new, Themengruppe @toolbar_elements << {:icon=>:plus, :hicon=>'icon-plus-sign', :text=>I18n.t('themengruppe.new'), :path=>new_themengruppe_path()} if can? :new, Themengruppe
@toolbar_elements << {:icon=>:plus, :hicon=>'icon-plus-sign', :text=>I18n.t('themengruppe.manage_all'), :path=>verwalten_all_themengruppen_path()} if can? :verwalten_all, Themengruppe @toolbar_elements << {:icon=>:plus, :hicon=>'icon-plus-sign', :text=>I18n.t('themengruppe.manage_all'), :path=>verwalten_all_themengruppen_path()} if can? :verwalten_all, Themengruppe
@@ -22,11 +22,8 @@ class ThemengruppenController < ApplicationController
# GET /themengruppen/1.json # GET /themengruppen/1.json
def show def show
@themengruppe = Themengruppe.find(params[:id]) @themengruppe = Themengruppe.find(params[:id])
if can? :showdraft , Thema @themen=@themengruppe.themen.accessible_by(current_ability, :show)
@themen = @themengruppe.themen
else
@themen = @themengruppe.themen.public
end
@toolbar_elements = [] @toolbar_elements = []
@toolbar_elements << {:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t("themengruppe.manage"), :path=>themengruppe_verwalten_path(@themengruppe)} if can? :edit, @themengruppe @toolbar_elements << {:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t("themengruppe.manage"), :path=>themengruppe_verwalten_path(@themengruppe)} if can? :edit, @themengruppe
@@ -63,7 +60,6 @@ class ThemengruppenController < ApplicationController
@toolbar_elements =[] @toolbar_elements =[]
@toolbar_elements << {:text=>I18n.t('themengruppe.show'), :path=>themengruppe_path(@themengruppe)} if can? :show, @themengruppe @toolbar_elements << {:text=>I18n.t('themengruppe.show'), :path=>themengruppe_path(@themengruppe)} if can? :show, @themengruppe
@toolbar_elements << {:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('themengruppe.edit'), :path=>edit_themengruppe_path(@themengruppe)} if can? :edit, @themengruppe @toolbar_elements << {:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('themengruppe.edit'), :path=>edit_themengruppe_path(@themengruppe)} if can? :edit, @themengruppe
@toolbar_elements << {:icon=>:plus, :hicon=>'icon-plus-sign', :text=>I18n.t('thema.add'), :path=>new_themengruppe_thema_path(@themengruppe), :remote=>true} if can? :new, Thema @toolbar_elements << {:icon=>:plus, :hicon=>'icon-plus-sign', :text=>I18n.t('thema.add'), :path=>new_themengruppe_thema_path(@themengruppe), :remote=>true} if can? :new, Thema
@toolbar_elements << {:hicon=>'icon-remove-circle',:text=>I18n.t('themengruppe.remove'), :path=>themengruppe_path(@themengruppe), :method=>:delete,:confirm=>I18n.t('themengruppe.sure')} if can? :delete, @themengruppe @toolbar_elements << {:hicon=>'icon-remove-circle',:text=>I18n.t('themengruppe.remove'), :path=>themengruppe_path(@themengruppe), :method=>:delete,:confirm=>I18n.t('themengruppe.sure')} if can? :delete, @themengruppe

View File

@@ -94,4 +94,12 @@ end
end end
raw(html) raw(html)
end end
def absurl(path)
if path.nil?
return nil
end
url=URI(root_url)
url.path=path
return url
end
end end

View File

@@ -92,6 +92,7 @@ class Ability
if loggedin if loggedin
end end
if( user.has_role?("fetuser") || user.has_role?("fetadmin")) if( user.has_role?("fetuser") || user.has_role?("fetadmin"))
can :showversions, Neuigkeit can :showversions, Neuigkeit
can :showintern, Neuigkeit can :showintern, Neuigkeit
can :showintern, Rubrik can :showintern, Rubrik

View File

@@ -10,7 +10,7 @@ class Meeting < ActiveRecord::Base
has_one :calentry, as: :object has_one :calentry, as: :object
has_one :calendar, :through=>:meetingtyp has_one :calendar, :through=>:meetingtyp
has_one :rubrik, :through=>:meetingtyp has_one :rubrik, :through=>:meetingtyp
scope :upcomming, includes(:calentry).where("calentries.start>?",1.hour.ago)
accepts_nested_attributes_for :calentry accepts_nested_attributes_for :calentry
# validate :agenda, :presence=>true # validate :agenda, :presence=>true
# validate :protocol, :presence=>true # validate :protocol, :presence=>true

View File

@@ -64,6 +64,18 @@ class Neuigkeit < ActiveRecord::Base
def name def name
self.title self.title
end end
def load_from_facebook(link)
event=FbGraph::Event.new(link).fetch(:access_token=>"CAABtfB8SO7kBADyHVHnWHqsxsU1bqqmeDdZCp7V1KF9G4o3oFHcZBq0IB8X3ird4muVIPuWKZB8jL1o9JCON60Lmnvk8rkZA2dyZAuU95dC0SWzOEnhtAEkyzZCN6hkKXdl87o38OloLBivc2kjJYmpUVKzdZAD5ywxKG7Hv5FWxXf6amWA782JSmcxgWsRDH4ZAZBXsUrhpnILNOVoKSBf1mGyfrFiPvA3QZD")
self.title=event.name
self.text=event.description
unless event.start_time.nil?
ce=Calentry.new(:start=>event.start_time, :ende=>event.end_time , :typ=>1)
ce.ende=ce.start if ce.ende.nil?
self.calentries<< ce
ce.save
end
end
def text_first_words def text_first_words
md = /<p>(?<text>[^\<\>]*)/.match Sanitize.clean(self.text,:elements=>['p']) md = /<p>(?<text>[^\<\>]*)/.match Sanitize.clean(self.text,:elements=>['p'])
words=md[:text].split(" ") unless md.nil? words=md[:text].split(" ") unless md.nil?

View File

@@ -8,6 +8,8 @@
format =:default format =:default
end %> end %>
<%= calentry.text %> <%= calentry.text %>
<% if !(defined? manage) || manage %>
<%= link_to "edit", edit_calentry_path(calentry),:remote=>true if can? :edit, calentry %> <%= link_to "edit", edit_calentry_path(calentry),:remote=>true if can? :edit, calentry %>
<%= link_to 'Delete', calentry, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, calentry %> <%= link_to 'Delete', calentry, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, calentry %>
<% end %>
</div> </div>

View File

@@ -0,0 +1 @@
<pre><%= @logs %></pre>

View File

@@ -3,7 +3,7 @@
<head> <head>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="logo2014_64.png"> <link rel="shortcut icon" href="<%= absurl("/logo2014_64.png")%>">
<!--<link rel="shortcut icon" href="http://www.fet.at/favicon.ico">--> <!--<link rel="shortcut icon" href="http://www.fet.at/favicon.ico">-->
<!----> <!---->

View File

@@ -5,7 +5,7 @@
<%= link_to "ankündigen", announce_meeting_path(meeting), remote: true if meeting.neuigkeit.nil? %> <%= link_to "ankündigen", announce_meeting_path(meeting), remote: true if meeting.neuigkeit.nil? %>
<%= link_to "edit", edit_meeting_path(meeting), remote: true %> <%= link_to "edit", edit_meeting_path(meeting), remote: true %>
<%= link_to 'Delete', meeting, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, meeting %> <%= link_to 'Delete', meeting, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, meeting %>
<%= render meeting.calentry unless meeting.calentry.nil? %> <%= render meeting.calentry, locals: {manage: 0} unless meeting.calentry.nil? %>
<%= link_to "Agenda" , create_agenda_meeting_path(meeting), :remote=>true if meeting.agenda.nil? %> <%= link_to "Agenda" , create_agenda_meeting_path(meeting), :remote=>true if meeting.agenda.nil? %>
<%= link_to "Protokoll" , create_protocol_meeting_path(meeting),:remote=>true if meeting.protocol.nil? %> <%= link_to "Protokoll" , create_protocol_meeting_path(meeting),:remote=>true if meeting.protocol.nil? %>
<%= render meeting.agenda unless meeting.agenda.nil? %> <%= render meeting.agenda unless meeting.agenda.nil? %>

View File

@@ -5,8 +5,7 @@
<td><%= fa_icon "globe" if r.public%></td> <td><%= fa_icon "globe" if r.public%></td>
<td><%= r.name %></td> <td><%= r.name %></td>
<td> <td>
<%= n.title %> <%= link_to n.title, n %>
</td> </td>
<td> <td>
<%= unless n.datum.nil? <%= unless n.datum.nil?

View File

@@ -1,3 +1,12 @@
<div>
<b>Titlepics</b>
<%= render :partial=>"attachments/form_bulk" %> <% @thema.titlepics.each do |tp| %>
<%= link_to image_tag(tp.datei.thumb.url) , set_titlepic_thema_attachment_path(tp.thema,tp,:params=>{:titlepic=>false}) %>
<% end %></div>
<b> List </b>
<%= render partial: "themen/attachment_list", object:@thema.attachments ,locals: {:editor => true}%> <%= render partial: "themen/attachment_list", object:@thema.attachments ,locals: {:editor => true}%>
<div>
<b>Form</b>
<%= render :partial=>"attachments/form_bulk" %>
</div>

View File

@@ -27,8 +27,10 @@
<b>Treffen/Sitzungen</b> <b>Treffen/Sitzungen</b>
<%= link_to "Neues Meeting", new_meeting_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true %> <%= link_to "Neues Meeting", new_meeting_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true %>
<div id="<%= Meeting.new_divid_for(small) %>"></div> <div id="<%= Meeting.new_divid_for(small) %>"></div>
<%= link_to "All", meetings_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true %> <ul class="nav nav-tabs">
<%= link_to "upcomming", meetings_path(:parent_id=>small.id, :parent_type=>"Thema",:filter=>"upcomming"), :remote=>true %> <li><%= link_to "All", meetings_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true if small.meetings.accessible_by(current_ability).count >0 %></li>
<li><%= link_to "upcomming", meetings_path(:parent_id=>small.id, :parent_type=>"Thema",:filter=>"upcomming"), :remote=>true if small.meetings.accessible_by(current_ability).upcomming.count >0 %></li>
</ul>
<%= render :partial=>"meetings/meeting_list", object: small.meetings, locals: {parent: small} %> <%= render :partial=>"meetings/meeting_list", object: small.meetings, locals: {parent: small} %>
<% end %> <% end %>

View File

@@ -135,6 +135,7 @@
get 'linksnotimplemented' get 'linksnotimplemented'
get 'kontakt' get 'kontakt'
get 'choose_contact_topics' get 'choose_contact_topics'
get 'log'
end end
end end