diff --git a/Gemfile b/Gemfile
index bf54489..e923aac 100755
--- a/Gemfile
+++ b/Gemfile
@@ -22,7 +22,7 @@ group :assets do
gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
end
-
+gem 'active_record_query_trace'
gem 'jquery-rails'
diff --git a/app/assets/stylesheets/layout.css.scss b/app/assets/stylesheets/layout.css.scss
index 1f5a328..7c655ed 100755
--- a/app/assets/stylesheets/layout.css.scss
+++ b/app/assets/stylesheets/layout.css.scss
@@ -205,4 +205,9 @@ form.inline input {
form.inline {
float:clear; }
-@import 'tinymce';
\ No newline at end of file
+@import 'tinymce';
+
+a.flag-true { color: $color_schema_3_dark}
+a.flag-true.flag-goodquality-true { color: green}
+
+a.flag-false { color: #CCC}
\ No newline at end of file
diff --git a/app/assets/stylesheets/themes/blue2/application.css.scss b/app/assets/stylesheets/themes/blue2/application.css.scss
index 6276bbd..1db0ed0 100755
--- a/app/assets/stylesheets/themes/blue2/application.css.scss
+++ b/app/assets/stylesheets/themes/blue2/application.css.scss
@@ -14,6 +14,7 @@
*= require jquery.fileupload-ui
*= require jquery.datetimepicker
*= require jquery.ui.dialog
+ *= require jquery.ui.tabs
* require 'bootstrap'
* require 'neuigkeiten'
@@ -77,9 +78,9 @@ $sansFontFamily: Helvetica, Arial;
div.header {
display: block;
-// backgro und: url('../../../../header1.png') no-repeat;
-// background-color:white;// $color_prim;
- // background-position: right;
+ // background: url('../../../../header1.png') no-repeat;
+ // background-color:white;// $color_prim;
+ // background-position: right;
vertical-align:middle;
float:left;
color:#000;
@@ -128,3 +129,29 @@ body {
background: #FFF; //#EFEFEF;
background-size:100%;
}
+
+ul.linklist_block a.linkbox
+{
+max-width:100%;
+padding:0;
+margin:5px;
+width: 6em;
+text-align:center;
+}
+ul.linklist_block a.linkbox:hover
+{background:lighten($color_schema_1,40%);
+}
+ul.linklist_block li
+{text-decoration: none;
+list-style:none;
+margin-bottom:2px;
+float:left;
+}
+ul.linklist_block li a i{
+display:block;
+vertical-align:middle;
+margin-right:6px;
+font-size:5em;
+line-height:70px;
+}
+ul.linklist_block { clear:left; float:none;}
diff --git a/app/controllers/.#crawler_controller.rb b/app/controllers/.#crawler_controller.rb
new file mode 120000
index 0000000..038438c
--- /dev/null
+++ b/app/controllers/.#crawler_controller.rb
@@ -0,0 +1 @@
+andreas@andreas-ThinkPad-S430.4992:1434372676
\ No newline at end of file
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index eb8fb64..60164ec 100755
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -51,6 +51,6 @@ def current_ability
@current_ability ||= Ability.new(current_user, request, params[:key])
end
def default_url_options
- {locale: I18n.locale, theme: nil , ansicht: nil}
+ {locale: nil, theme: nil , ansicht: nil} # I18n.locale
end
end
diff --git a/app/controllers/beispiele_controller.rb b/app/controllers/beispiele_controller.rb
index ee8390e..7c75fa5 100755
--- a/app/controllers/beispiele_controller.rb
+++ b/app/controllers/beispiele_controller.rb
@@ -3,6 +3,7 @@ class BeispieleController < ApplicationController
load_and_authorize_resource
include LikeVoteable
+ acts_as_flagable
def index
@beispiele = Beispiel.all
diff --git a/app/controllers/crawler_controller.rb b/app/controllers/crawler_controller.rb
index 25e571a..d47f3c5 100644
--- a/app/controllers/crawler_controller.rb
+++ b/app/controllers/crawler_controller.rb
@@ -4,6 +4,8 @@ class CrawlerController < ApplicationController
authorize! :doadmin, User
@crawlobjs=Crawlobject.where(:objtype=>5).order(:published_at).reverse_order
+ @crawlobjs_etit=Crawlobject.where(:objtype=>6).order(:published_at).reverse_order
+
end
def load_attachments
authorize! :doadmin, User
@@ -18,12 +20,17 @@ class CrawlerController < ApplicationController
end
end
def move_to_news
- authorize! :doadmin, User
-
+ authorize! :doadmin, User
co=Crawlobject.find(params[:id])
- if co.objtype == 5
- co.move_to_neuigkeit(User.find(Rails.configuration.crawlconfig[5]["user_id"]), Rubrik.find(Rails.configuration.crawlconfig[5]["rubrik_id"]))
+ if co.objtype == 5 || co.objtype==6
+ co.move_to_neuigkeit(User.find(Rails.configuration.crawlconfig[co.objtype]["user_id"]), Rubrik.find(Rails.configuration.crawlconfig[co.objtype]["rubrik_id"]))
redirect_to co.something
end
end
+
+ def do_crawl_news
+ Crawlobject.crawl_news(5)
+ Crawlobject.crawl_news(6)
+ redirect_to action: :index
+ end
end
diff --git a/app/controllers/lvas_controller.rb b/app/controllers/lvas_controller.rb
index 44f1a9b..760d3e4 100755
--- a/app/controllers/lvas_controller.rb
+++ b/app/controllers/lvas_controller.rb
@@ -47,6 +47,10 @@ class LvasController < ApplicationController
def show
@lva = Lva.find_by_id(params[:id])
@beispiel=Beispiel.new
+ @beispiele_all=@lva.beispiele.order(:datum).accessible_by(current_ability, :show)
+ @beispiele = @lva.beispiele.not_flag_badquality.not_flag_delete.order(:datum).accessible_by(current_ability, :show)
+ @beispiele_badQ = @lva.beispiele.flag_badquality.not_flag_delete.order(:datum).accessible_by(current_ability, :show)
+ @beispiele_deleted = @lva.beispiele.flag_delete.order(:datum).accessible_by(current_ability, :show)
@toolbar_elements =[]
@toolbar_elements<<{:hicon=>'icon-pencil', :icon=>:pencil,:text =>I18n.t('common.manage'),:path => verwalten_lva_path(@lva)} if can? :verwalten, @lva
@crawlobjects = @lva.crawlobjects.roots.accessible_by(current_ability)
diff --git a/app/models/ability.rb b/app/models/ability.rb
index 65087d3..1b460d5 100755
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -145,7 +145,7 @@ end
# Calendar
if( user.has_role?("fetuser") || user.has_role?("fetadmin"))
- can [:show, :edit, :update,:new,:create,:write, :write_etherpad, :read_from_etherpad, :dump_to_etherpad], Document
+ can [:show, :edit, :update,:new,:create,:write, :write_etherpad, :read_from_etherpad, :dump_to_etherpad, :search], Document
can :manage, Meeting
can :manage, Meetingtyp
end
diff --git a/app/models/beispiel.rb b/app/models/beispiel.rb
index 2fbf52f..24a0f7b 100755
--- a/app/models/beispiel.rb
+++ b/app/models/beispiel.rb
@@ -15,9 +15,15 @@ class Beispiel < ActiveRecord::Base
has_paper_trail
attr_accessible :desc, :name, :lva_id, :beispieldatei, :beispieldatei_cache, :datum
acts_as_votable
+ acts_as_flagable
belongs_to :lva
-
- mount_uploader :beispieldatei, AttachmentUploader
+ FLAG_ICONS = {"badquality"=>"fa fa-flag","goodquality"=>"fa fa-flag", "delete"=>"fa fa-trash"}
+ scope :not_flag_badquality, ->{where("flag_badquality IS NULL OR flag_badquality=?",false)}
+ scope :flag_badquality, ->{where("flag_badquality=?",true)}
+ scope :not_flag_delete, ->{where("flag_delete IS NULL OR flag_delete=?",false)}
+ scope :flag_delete, ->{where("flag_delete=?",true)}
+
+ mount_uploader :beispieldatei, AttachmentUploader
validates :beispieldatei, :presence => true
validates :name, :presence => true
validates :lva_id, :presence => true
diff --git a/app/models/crawlobject.rb b/app/models/crawlobject.rb
index 4b00a7c..da31d88 100644
--- a/app/models/crawlobject.rb
+++ b/app/models/crawlobject.rb
@@ -15,7 +15,7 @@ class Crawlobject < ActiveRecord::Base
end
end
def move_to_neuigkeit(user,rubrik)
- if self.objtype == 5 and self.something.nil?
+ if ( self.objtype == 5 || self.objtype == 6 )and self.something.nil?
n=Neuigkeit.new
n.title=self.name
n.text=self.text
@@ -27,7 +27,7 @@ class Crawlobject < ActiveRecord::Base
self.something=n
self.save
return n
- elsif self.objtype == 5
+ elsif ( self.objtype == 5 || self.objtype==6)
n=self.something
n.title=self.name
n.text=self.text
diff --git a/app/models/neuigkeit.rb b/app/models/neuigkeit.rb
index 32a1dc4..3d2004d 100755
--- a/app/models/neuigkeit.rb
+++ b/app/models/neuigkeit.rb
@@ -21,7 +21,7 @@ class Neuigkeit < ActiveRecord::Base
has_many :nlinks, :dependent=> :destroy
has_one :meeting
has_many :attachments, :as=>:parent
-
+ has_one :title_pic, :class_name=>"Attachment", :as=>:parent, :conditions=>["attachments.flag_titlepic =?", true]
validates :rubrik, :presence=>true
@@ -29,7 +29,7 @@ class Neuigkeit < ActiveRecord::Base
translates :title,:text, :versioning=>{:gem=>:paper_trail, :options=>{:fallbacks_for_empty_translations => true}}
mount_uploader :picture, PictureUploader
- default_scope order(:cache_order)
+ default_scope order(:cache_order).includes(:calentries).includes(:title_pic)
scope :recent, -> { published.limit(10)}
scope :unpublished, -> {where("datum > ? OR datum IS NULL", Time.now)}
scope :published_scope, ->{where("datum <= ? AND datum IS NOT NULL", Time.now)}
@@ -66,8 +66,9 @@ class Neuigkeit < ActiveRecord::Base
if self.has_meeting?
return self.meeting.meetingtyp.picture
else
- unless self.attachments.where(flag_titlepic: true).first.nil?
- return self.attachments.where(flag_titlepic: true).first.datei
+ unless self.title_pic.nil?
+ # return self.attachments.where(flag_titlepic: true).first.datei
+ return self.title_pic.datei
else
return self.picture
end
diff --git a/app/views/crawler/index.html.erb b/app/views/crawler/index.html.erb
index 08eeeb1..6d271a4 100644
--- a/app/views/crawler/index.html.erb
+++ b/app/views/crawler/index.html.erb
@@ -1,9 +1,39 @@
HTU News
-
-<% @crawlobjs.each do |co| %>
- | <%= render co %> |
-
-<%= link_to "move_to_news",move_to_news_crawler_path(co) %>
-<%= render co.something unless co.something.nil? %>
- |
<% end %>
-
+
+
+
+
+
+
+ <% @crawlobjs.each do |co| %>
+
+ | <%= render co %> |
+
+ <%= link_to "move_to_news",move_to_news_crawler_path(co) %>
+ <%= render co.something unless co.something.nil? %>
+ |
+
+ <% end %>
+
+
+
+
+
+ <% @crawlobjs_etit.each do |co| %>
+
+ | <%= render co %> |
+
+ <%= link_to "move_to_news",move_to_news_crawler_path(co) %>
+ <%= render co.something unless co.something.nil? %>
+ |
+
+ <% end %>
+
+
+
+
+
+
diff --git a/app/views/flags/.#_flaglink.html.erb b/app/views/flags/.#_flaglink.html.erb
new file mode 120000
index 0000000..d96c12d
--- /dev/null
+++ b/app/views/flags/.#_flaglink.html.erb
@@ -0,0 +1 @@
+andreas@andreas-ThinkPad-S430.11733:1434727463
\ No newline at end of file
diff --git a/app/views/flags/_flag.js.erb b/app/views/flags/_flag.js.erb
new file mode 100644
index 0000000..fe82719
--- /dev/null
+++ b/app/views/flags/_flag.js.erb
@@ -0,0 +1 @@
+$('#<%=@obj.flaglinkid(params[:flag]) %>').replaceWith("<%= escape_javascript( render(partial: "flags/flaglink", format: "html", locals: {flag: params[:flag]}) )%>");
diff --git a/app/views/flags/_flaglink.html.erb b/app/views/flags/_flaglink.html.erb
new file mode 100644
index 0000000..3c515df
--- /dev/null
+++ b/app/views/flags/_flaglink.html.erb
@@ -0,0 +1,2 @@
+<% fi = {"badquality"=>"fa fa-flag", "delete"=>"fa fa-trash"} %>
+<%= flag_link(@obj,flag, ff_icon(fi[flag])) %>
diff --git a/app/views/lvas/show.html.erb b/app/views/lvas/show.html.erb
index 644c8d8..4bc6e79 100755
--- a/app/views/lvas/show.html.erb
+++ b/app/views/lvas/show.html.erb
@@ -85,7 +85,7 @@
<%= I18n.t("lva.ratebsp")%> <%= link_to ffi1_icon("facebook1") + I18n.t('home.fblogin'), user_omniauth_authorize_path(:facebook) ,class: :linkbox %>
<%= link_to t("beispiel.zip") , beispiel_sammlung_lva_path(@lva), class: :linkbox %>
- <% @lva.beispiele.order(:datum).each do |b| %>
+ <% @beispiele_all.each do |b| %>
<% cache("beispiel_" +I18n.locale.to_s+b.id.to_s+can?(:delete,b).to_s+"_"+can?(:edit,b).to_s + "_" + b.updated_at.try(:utc).try(:to_s)) do %>
<%= render b%>
<% end %>
diff --git a/app/views/neuigkeiten/_compact.html.erb b/app/views/neuigkeiten/_compact.html.erb
index b0e2648..e6ac96a 100644
--- a/app/views/neuigkeiten/_compact.html.erb
+++ b/app/views/neuigkeiten/_compact.html.erb
@@ -13,7 +13,7 @@
<% end %> <% else %> <% end %>
- <%= neuigkeit.title%>
+ <%= raw(neuigkeit.title) %>
<%= raw(neuigkeit.text_first_words) unless neuigkeit.text.nil?%>
diff --git a/app/views/studien/_form.html.erb b/app/views/studien/_form.html.erb
index 7d0bef3..9cdf61d 100755
--- a/app/views/studien/_form.html.erb
+++ b/app/views/studien/_form.html.erb
@@ -10,32 +10,32 @@
-
+
-
-
- <%= f.input :abkuerzung %>
- <%= f.input :zahl %>
- <%= f.input :typ, :as=>:select, :include_blank=>false, :collection=>["Bachelor","Master"] %>
-
- <%= image_tag(@studium.picture.thumb.url) unless @studium.picture.nil? %>
- <%= f.file_field :picture %>
- <%= f.hidden_field :picture_cache %>
-
-
-
-
- <%= raw(@studium.desc) %>
-
- <%= f.input :desc, :as=>:hidden %>
-
-
+
+
+ <%= f.input :abkuerzung %>
+ <%= f.input :zahl %>
+ <%= f.input :typ, :as=>:select, :include_blank=>false, :collection=>["Bachelor","Master"] %>
+
+ <%= image_tag(@studium.picture.thumb.url) unless @studium.picture.nil? %>
+ <%= f.file_field :picture %>
+ <%= f.hidden_field :picture_cache %>
+
+
+
+
+ <%= raw(@studium.desc) %>
+
+ <%= f.input :desc, :as=>:hidden %>
+
+
<%= raw(@studium.qualifikation) %>
@@ -65,7 +65,7 @@
<%= tinymce :inline_div %>
<%= f.actions do %>
<%= f.action :submit, :as => :input %>
- <%= link_to 'Back', studien_path, :data=>{:locale=>I18n.locale}, class: :btn%>
+ <%= link_to 'Back', studien_path, :data=>{:locale=>I18n.locale}, class: :btn %>
<% end %>
<% end %>
diff --git a/app/views/themes/blue2/beispiele/_beispiel.html.erb b/app/views/themes/blue2/beispiele/_beispiel.html.erb
new file mode 100644
index 0000000..5f8ca83
--- /dev/null
+++ b/app/views/themes/blue2/beispiele/_beispiel.html.erb
@@ -0,0 +1,45 @@
+
+
+
+ <%=link_to ffi1_icon("note20")+" " + beispiel.name + " " + I18n.l(beispiel.datum), beispiel.beispieldatei.url, title: beispiel.desc %>
+
+
+ <%= (beispiel.beispieldatei.size/1024.0).round(2).to_s %>KiB
+
+
+ <%= flag_link(beispiel, "goodquality")%>
+
+ <%= flag_link(beispiel, "badquality")%>
+ <%= flag_link(beispiel, "delete")%>
+
+ <%=
+ if can?(:like, beispiel)
+ link_to ffi1_icon("like3")+" like" + "("+beispiel.get_likes.size.to_s+")", like_beispiel_path(beispiel),title: "liked by " + ((current_user.liked?(beispiel)) ? ("you and " + ((beispiel.get_likes.size - 1).to_s + " others")) : beispiel.get_likes.size.to_s), remote: true
+ else
+ "liked by " + beispiel.get_likes.size.to_s
+ end
+ %>
+
+ <%=
+ if can?(:dislike, beispiel)
+ link_to ffi1_icon("dislike")+" dislike" + "("+beispiel.get_dislikes.size.to_s+")", dislike_beispiel_path(beispiel),title:"disliked by " + ((current_user.disliked?(beispiel)) ? ("you and " + ((beispiel.get_dislikes.size - 1).to_s + " others")) : beispiel.get_dislikes.size.to_s) , remote: true
+ else
+ "disliked by " + beispiel.get_dislikes.size.to_s
+ end
+
+ %>
+
+ <%= link_to ff_icon("icon-pencil")+"edit", edit_beispiel_path(beispiel) if can? :edit, beispiel%>
+ <%= link_to fa_icon("trash")+"delete", beispiel_path(beispiel), :method=>:delete, :data=>{:confirm=>I18n.t('beispiel.sure')} if can? :delete, beispiel %>
+ <% link_to "Refresh", beispiel_path(beispiel,show_comments: true), remote: true %>
+
+
+ <% unless beispiel.desc.nil? || beispiel.desc.empty? %>
+
+
+
+ <%= beispiel.desc %>
+
+
+ <% end %>
+
diff --git a/app/views/themes/blue2/home/intern.html.erb b/app/views/themes/blue2/home/intern.html.erb
index 2f5aab7..3fdfd18 100644
--- a/app/views/themes/blue2/home/intern.html.erb
+++ b/app/views/themes/blue2/home/intern.html.erb
@@ -2,17 +2,23 @@
-
+
+
-
- <%= link_to "Adressliste", internlist_fetprofiles_path ,class: :linkbox %>
+ <%= link_to fa_icon("list")+"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")+"Admin" , admin_home_index_path, class: :linkbox if current_user.has_role?(:fetadmin) %>
-
- <%= link_to "Treeview" , treeview_home_index_path, class: :linkbox if current_user.has_role?(:fetadmin) %>
+ <%= link_to ff_icon("fa-folder")+"Treeview" , treeview_home_index_path, class: :linkbox if current_user.has_role?(:fetadmin) %>
-
+
-
+ <%= link_to ff_icon("ffi1-newspaper9")+"Crawler" , crawler_index_path, class: :linkbox if current_user.has_role?(:fetadmin) %>
+
+
+
+
Suche nach Protokollen
<%= semantic_form_for :search,:remote=>true, :url=>search_documents_path, :html=>{:id=>"search_form",:class=>"", :method=>'get'} do |f| %>
<%= f.input :query, :input_html => { :name => 'query' } , :label=>false, :class=>"search-query" %>
diff --git a/app/views/themes/blue2/lvas/show.html.erb b/app/views/themes/blue2/lvas/show.html.erb
new file mode 100755
index 0000000..cd7efcb
--- /dev/null
+++ b/app/views/themes/blue2/lvas/show.html.erb
@@ -0,0 +1,147 @@
+<%= content_for :header do %>
+
Fetsite - <%= @lva.full_name %>
+<% set_meta_tags :og => {
+ :url=>lva_path(:theme=>nil) }
+%>
+<%= display_meta_tags %>
+<% end %>
+
+
+ <%= render 'studien/tabs'%>
+
<%= notice %>
+
+
+
+ <%= render 'layouts/pretty_toolbar' %>
+
+
+
+
+
+
<%= @lva.full_name %>
+
+
+ -
+ <%= link_to ffi1_icon("live2")+"ET-Forum", @lva.forumlink, class: :linkbox, itemprop: "discussionUrl" unless @lva.forumlink.nil? or @lva.forumlink.empty?%>
+
+ -
+ <%= link_to "TISS", @lva.tisslink, class: :linkbox %>
+
+
+
+
<%= I18n.t('lva.pruefungsinfo')%>
+
+ <%= @lva.pruefungsinformation.to_s.html_safe %>
+
+
+
<%= I18n.t('lva.lernaufwand')%>
+
+ <%= @lva.lernaufwand %>
+
+
+
<%= I18n.t('lva.desc')%>
+
+ <%= @lva.desc.to_s.html_safe %>
+
+
+
+
+
+
+ - <%= I18n.t('lva.lvanr')%>: <%=@lva.lvanr %>
+ - ECTS: <%=@lva.ects %>
+ - <%= I18n.t('lva.stunden')%>: <%=@lva.stunden %>
+
+
<%= I18n.t('lva.module')%>
+
+ <% @lva.modul.each do |modul| %>
+ - <%= link_to modul.name , modul_path(modul)%>
+
+ <% modul.modulgruppen.each do |g| %>
+
+ - <%= link_to g.studium.title_context , studium_path(g.studium)%> (<%=link_to g.name, modulgruppe_path(g)%>)
+ <% end %>
+
+
+
+ <% end %>
+
+
+
+
<%= I18n.t "lecturers.lecturers" %>
+ <% @lva.lecturers.each do |lec| %>
+ <%= render :partial=>'lecturers/lec_lva', :object=>lec %>
+
+ <% end %>
+
+
+
+
+
+
+
+
+
<%= I18n.t("lva.bspe") %>
+
+ <%= I18n.t("lva.ratebsp")%>
+ <%= link_to ffi1_icon("facebook1") + I18n.t('home.fblogin'), user_omniauth_authorize_path(:facebook) ,class: :linkbox %>
+
+ <%= link_to t("beispiel.zip") , beispiel_sammlung_lva_path(@lva), class: :linkbox %>
+ <% @beispiele.each do |b| %>
+ <% cache("beispiel_" +I18n.locale.to_s+b.id.to_s+can?(:delete,b).to_s+"_"+can?(:edit,b).to_s + "_" + b.updated_at.try(:utc).try(:to_s)) do %>
+ <%= render b%>
+ <% end %>
+ <% end %>
+ <% if @beispiele_badQ.count > 0 %>
+
Bad Quality or Outdated
+ <% @beispiele_badQ.each do |b| %>
+ <% cache("beispiel_" +I18n.locale.to_s+b.id.to_s+can?(:delete,b).to_s+"_"+can?(:edit,b).to_s + "_" + b.updated_at.try(:utc).try(:to_s)) do %>
+ <%= render b%>
+ <% end %>
+ <% end %>
+ <% end %>
+ <% if @beispiele_deleted.count > 0 %>
+
Trash
+ <% @beispiele_deleted.each do |b| %>
+ <% cache("beispiel_" +I18n.locale.to_s+b.id.to_s+can?(:delete,b).to_s+"_"+can?(:edit,b).to_s + "_" + can?(:flag,b).to_s+ "_" + b.updated_at.try(:utc).try(:to_s)) do %>
+ <%= render b%>
+ <% end %>
+ <% end %>
+ <% end %>
+
+
+
+
+
+
+
+ <% unless @lva.nlinks.empty? %>
+
<%= I18n.t("rubrik.title") %>
+ <% @lva.nlinks.each do |l| %>
+ <%= render l.neuigkeit %>
+ <% end %>
+ <% end %>
+
+
+
+ <% cache("lva_beispiel_form_bulk_"+@lva.id.to_s+I18n.locale.to_s+@lva.updated_at.to_i.to_s) do %>
+
+
+ <%= render 'beispiele/form_bulk' %>
+
+
+
+ <% end %>
+ <% unless @crawlobjects.nil? %>
+
+
+ <% @crawlobjects.each do |co| %>
+ <%= render co %>
+ <% end %>
+
+
+ <% end %>
+
+
+
+
diff --git a/config/initializers/init_flagable.rb b/config/initializers/init_flagable.rb
new file mode 100644
index 0000000..48ef1d2
--- /dev/null
+++ b/config/initializers/init_flagable.rb
@@ -0,0 +1,4 @@
+require 'flagable'
+ActionController::Base.send :include, Flagable::ActsAsFlagableController
+ActiveRecord::Base.send :include, Flagable::ActsAsFlagableRecord
+ActionView::Base.send :include, Flagable::FlagableHelper
diff --git a/config/initializers/query_trace.rb b/config/initializers/query_trace.rb
new file mode 100644
index 0000000..a2c486b
--- /dev/null
+++ b/config/initializers/query_trace.rb
@@ -0,0 +1 @@
+ActiveRecordQueryTrace.enabled=true
diff --git a/config/routes.rb b/config/routes.rb
index 75fc02b..dd339d5 100755
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -21,6 +21,7 @@
resources :crawler, :only=>[] do
collection do
get :index
+ get :do_crawl_news
end
member do
get :move_to_news
@@ -31,9 +32,11 @@
devise_for :users , :controllers=>{:omniauth_callbacks=> "users/omniauth_callbacks"}
- scope '(:locale)' do
+ scope '(:locale)', constraints: {:locale=>/en|de/i} do
scope '(t/:theme)' do
-
+ get "" , controller: :home, action: :index
+ get "intern" , controller: :home, action: :intern
+
scope '(:ansicht)' do
resources :studien, :only=>[:new,:edit,:update,:destroy,:show] do
member do
@@ -70,6 +73,7 @@
member do
get 'like'
get 'dislike'
+ get 'flag'
end
end
resources :lvas do
@@ -106,7 +110,8 @@
resources :fragen, :only =>[:new, :edit, :update, :destroy, :create]
- resources :neuigkeiten, :only => [:show]
+ resources :neuigkeiten, :only => [:show] , constraints: {id: /\d+/i}
+ get "neuigkeiten", controller: :rubriken, action: :index, as: "neuigkeiten"
resources :rubriken do
collection do
get 'verwalten' , :action => :alle_verwalten
diff --git a/db/migrate/20150617105704_add_index_for_neuigkeiten.rb b/db/migrate/20150617105704_add_index_for_neuigkeiten.rb
new file mode 100644
index 0000000..ae03b04
--- /dev/null
+++ b/db/migrate/20150617105704_add_index_for_neuigkeiten.rb
@@ -0,0 +1,11 @@
+class AddIndexForNeuigkeiten < ActiveRecord::Migration
+ def change
+ add_index :neuigkeiten, :rubrik_id
+ add_index :neuigkeiten, :cache_is_published
+ add_index :calentries, [:object_type, :object_id]
+ add_index :attachments, [:parent_type, :parent_id]
+ add_index :attachments, [:flag_titlepic, :parent_type, :parent_id]
+ add_index :rubriken, :public
+ end
+
+end
diff --git a/db/migrate/20150620101949_add_flags_to_beispiel.rb b/db/migrate/20150620101949_add_flags_to_beispiel.rb
new file mode 100644
index 0000000..45c0d81
--- /dev/null
+++ b/db/migrate/20150620101949_add_flags_to_beispiel.rb
@@ -0,0 +1,14 @@
+class AddFlagsToBeispiel < ActiveRecord::Migration
+ def change
+ add_column :beispiele, :flag_badquality, :boolean
+ add_column :beispiele, :flag_duplicate, :boolean
+ add_column :beispiele, :flag_delete, :boolean
+ add_column :beispiele, :flag_goodquality, :boolean
+ add_column :beispiele, :lecturer_id, :integer
+ add_index :beispiele, :flag_badquality
+ add_index :beispiele, :flag_duplicate
+ add_index :beispiele, :flag_delete
+ add_index :beispiele, :flag_goodquality
+
+ end
+end
diff --git a/lib/.#flagable.rb b/lib/.#flagable.rb
new file mode 120000
index 0000000..d96c12d
--- /dev/null
+++ b/lib/.#flagable.rb
@@ -0,0 +1 @@
+andreas@andreas-ThinkPad-S430.11733:1434727463
\ No newline at end of file
diff --git a/lib/flagable.rb b/lib/flagable.rb
new file mode 100644
index 0000000..01aabff
--- /dev/null
+++ b/lib/flagable.rb
@@ -0,0 +1,70 @@
+module Flagable
+ module ActsAsFlagableController
+ extend ActiveSupport::Concern
+ included do
+
+ end
+ module ClassMethods
+ def acts_as_flagable(options={})
+ include Flagable::ActsAsFlagableController::LocalInstanceMethods
+ extend Flagable::ActsAsFlagableController::LocalClassMethods
+ end
+ end
+ module LocalClassMethods
+
+ end
+ module LocalInstanceMethods
+
+ def flag
+ fi = controller_name.classify.constantize::FLAG_ICONS
+
+ @obj=controller_name.classify.constantize.find(params[:id])
+ lflag=("flag_"+params[:flag]).to_sym
+ unless params[:flag].nil? || params[:flag].empty? || params[:value].nil?
+ if @obj.respond_to?(lflag.to_s+"=")
+ @obj.send(lflag.to_s+"=",params[:value]=="true")
+ @obj.save
+ end
+ end
+ respond_to do |format|
+ format.html {render partial: "flags/flaglink", locals: {flag: params[:flag],icon: fi[params[:flag]]}}
+ format.js {render partial: "flags/flag", locals: {flag: params[:flag], icon: fi[params[:flag]]}}
+ end
+ end
+ end
+ end
+
+ module ActsAsFlagableRecord
+ extend ActiveSupport::Concern
+ included do
+
+ end
+ module ClassMethods
+ def acts_as_flagable(options={})
+ include Flagable::ActsAsFlagableRecord::LocalInstanceMethods
+ #extend class methods
+ end
+ end
+ module LocalInstanceMethods
+ def get_flag(flag)
+ v= @obj.send("flag_"+flag.to_s) if @obj.respond_to?("flag_"+flag.to_s)
+ v= false if v.nil?
+ v
+ end
+ def flaglinkid(flag)
+ return self.class.to_s + "_" + self.id.to_s + "_flag_"+flag.to_s
+ end
+ end
+ end
+ module FlagableHelper
+
+ def flag_link(obj, flag, text="")
+ flag=flag.to_s
+ fi = obj.class::FLAG_ICONS
+ value=obj.send("flag_"+flag)
+ cstyle=(value) ? "true" :"false"
+ link_to ff_icon(fi[flag]), flag_beispiel_path(obj,{flag: flag, value: !value, theme: nil, locale: nil}), remote: true, class:("flag-"+cstyle +" flag-"+flag + "-"+cstyle ), id: obj.flaglinkid(flag)
+ end
+ end
+end
+ActionView::Base.send :include, Flagable::FlagableHelper