Merge branch 'wiki'
This commit is contained in:
5
Gemfile
5
Gemfile
@@ -72,8 +72,9 @@ gem 'paperclip' ,'~>3.4.0'
|
||||
|
||||
gem 'git'
|
||||
gem 'haml'
|
||||
#gem 'RedCloth'
|
||||
#gem 'gollum'
|
||||
gem 'RedCloth'
|
||||
gem 'wikicloth'
|
||||
gem 'gollum-lib'
|
||||
gem 'awesome_nested_set'
|
||||
gem 'annotate', ">=2.5.0"
|
||||
gem 'carrierwave', "~>0.9.0"
|
||||
|
||||
@@ -12,6 +12,7 @@ class HomeController < ApplicationController
|
||||
def intern
|
||||
authorize! :seeintern, User
|
||||
@neuigkeiten = Neuigkeit.intern.recent
|
||||
@themengruppen=Themengruppe.intern
|
||||
end
|
||||
def startdev
|
||||
render 'setup_fetsite_dev'
|
||||
|
||||
@@ -32,6 +32,10 @@ class ThemenController < ApplicationController
|
||||
end
|
||||
def verwalten
|
||||
@thema = Thema.find(params[:id])
|
||||
unless (@thema.wikiname.empty? || @thema.wikiname.nil?)
|
||||
redirect_to verwalten_wiki_path(Wiki.find(@thema.id))
|
||||
end
|
||||
|
||||
@fragen=@thema.fragen
|
||||
@toolbar_elements = [{:icon=>:pencil, :hicon=>'icon-pencil', :text=>"Verwalten", :path=>verwalten_thema_path(@thema)}]
|
||||
|
||||
@@ -54,6 +58,7 @@ class ThemenController < ApplicationController
|
||||
# GET /themen/1/edit
|
||||
def edit
|
||||
@thema = Thema.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.js
|
||||
|
||||
46
app/controllers/wikis_controller.rb
Normal file
46
app/controllers/wikis_controller.rb
Normal file
@@ -0,0 +1,46 @@
|
||||
class WikisController < ApplicationController
|
||||
load_and_authorize_resource
|
||||
|
||||
def show
|
||||
@wiki = Wiki.find(params[:id])
|
||||
@fragen = @wiki.fragen
|
||||
@toolbar_elements = [{:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('wiki.edit'), :path=>verwalten_wiki_path(@wiki)}]
|
||||
end
|
||||
|
||||
def wiki
|
||||
@wiki = Wiki.find_or_init(params[:name])
|
||||
@fragen = @wiki.fragen
|
||||
@toolbar_elements = []
|
||||
# @toolbar_elements = [{:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('wiki.edit'), :path=>verwalten_wiki_path(@wiki)}]
|
||||
|
||||
redirect_to wiki_path(@wiki)
|
||||
end
|
||||
|
||||
def verwalten
|
||||
@wiki = Wiki.find(params[:id])
|
||||
@toolbar_elements = [{:icon=>:pencil, :hicon=>'icon-pencil', :text=>I18n.t('wiki.edit'), :path=>edit_wiki_path(@wiki)}]
|
||||
|
||||
end
|
||||
def edit
|
||||
@wiki = Wiki.find(params[:id])
|
||||
|
||||
end
|
||||
|
||||
def update
|
||||
@wiki = Wiki.find(params[:id])
|
||||
@themen = @wiki.themengruppe.themen.order(:priority).reverse
|
||||
@wiki.raw_data=params[:wiki][:raw_data]
|
||||
respond_to do |format|
|
||||
if @wiki.update_attributes(params[:wiki])
|
||||
format.html { redirect_to @wiki, notice: 'Thema was successfully updated.' }
|
||||
format.json { head :no_content }
|
||||
format.js
|
||||
else
|
||||
format.html { render action: "edit" }
|
||||
format.json { render json: @wiki.errors, status: :unprocessable_entity }
|
||||
format.js { render action: "edit" }
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
@@ -22,7 +22,9 @@ class Thema < ActiveRecord::Base
|
||||
validates :text, :presence => true
|
||||
scope :search, ->(query) {where("text like ? or title like ?", "%#{query}%", "%#{query}%")}
|
||||
translates :title,:text, :versioning =>true, :fallbacks_for_empty_translations => true
|
||||
|
||||
def is_wiki?
|
||||
wikiname.empty? || wikiname.nil?
|
||||
end
|
||||
def text_first_words
|
||||
md = /<p>(?<text>[^\<\>]*)/.match Sanitize.clean(self.text,:elements=>['p'])
|
||||
words=md[:text].split(" ") unless md.nil?
|
||||
|
||||
@@ -20,4 +20,17 @@ class Themengruppe < ActiveRecord::Base
|
||||
validates :text, :presence => true
|
||||
|
||||
translates :title,:text, :versioning =>true, :fallbacks_for_empty_translations => true
|
||||
|
||||
scope :intern,-> {where(:public=>false)}
|
||||
|
||||
def self.find_wiki_default
|
||||
where(:wiki_default=>true).first
|
||||
end
|
||||
|
||||
def make_wiki_default
|
||||
Themengruppe.where(:wiki_default=>:true).update_all(:wiki_default=>:false)
|
||||
self.wiki_default=true;
|
||||
self.save;
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
73
app/models/wiki.rb
Normal file
73
app/models/wiki.rb
Normal file
@@ -0,0 +1,73 @@
|
||||
class Wiki < Thema
|
||||
validates :wikiname, :uniqueness=>true, :presence=>true
|
||||
after_initialize :load_wiki
|
||||
attr_accessible :wikiname, :wikiformat, :hidelink, :raw_data
|
||||
WIKIFORMATS={nil=> :textile, 0 =>:textile, 1=> :mediawiki}
|
||||
|
||||
def self.find_or_init(name)
|
||||
w = Wiki.where(:wikiname=>name).first
|
||||
page = is_file_availaible(name)
|
||||
if w.nil?
|
||||
unless page.nil?
|
||||
w=Wiki.new(:wikiname=>name, :title=>name, :wikiformat=>Wiki::WIKIFORMATS.invert[page.format], :hidelink=>true)
|
||||
else
|
||||
w=Wiki.new(:wikiname=>name, :title=>name, :wikiformat=>0, :hidelink=>true)
|
||||
wiki = Gollum::Wiki.new("../wiki.git", :base_path => "/wiki")
|
||||
page=wiki.write_page(name, :textile, "ioi", self.commit)
|
||||
w.reload_page
|
||||
end
|
||||
|
||||
w.themengruppe = Themengruppe.find_wiki_default
|
||||
w.raw_data="Neues Wiki"
|
||||
w.save
|
||||
end
|
||||
w
|
||||
end
|
||||
|
||||
def raw_data
|
||||
self.page.raw_data
|
||||
end
|
||||
|
||||
def raw_data=(data)
|
||||
self.get_page(self.wikiname)
|
||||
self.wiki.update_page(self.page, self.wikiname, Wiki::WIKIFORMATS[self.wikiformat], data, self.commit)
|
||||
self.text=self.page.formatted_data
|
||||
|
||||
end
|
||||
|
||||
def page
|
||||
self.get_page(wikiname) if @page.nil?
|
||||
@page
|
||||
end
|
||||
|
||||
def wiki
|
||||
@wiki
|
||||
end
|
||||
def reload_page
|
||||
self.get_page(self.wikiname)
|
||||
end
|
||||
protected
|
||||
|
||||
|
||||
def self.is_file_availaible(name)
|
||||
wiki = Gollum::Wiki.new("../wiki.git", :base_path => "/wiki")
|
||||
wiki.page(name)
|
||||
end
|
||||
|
||||
def load_wiki
|
||||
@wiki = Gollum::Wiki.new("../wiki.git", :base_path => "/wiki")
|
||||
end
|
||||
|
||||
def get_page(name)
|
||||
@page= @wiki.page(name)
|
||||
@page=self.wiki.write_page(self.wikiname, Wiki::WIKIFORMATS[self.wikiformat]," ",self.commit) if @page.nil?
|
||||
@page
|
||||
end
|
||||
def commit
|
||||
{message: "RailsUpdate", name:"SomeUser", email: "ttt@t"}
|
||||
end
|
||||
|
||||
def self.commit
|
||||
{message: "RailsUpdate", name:"SomeUser", email: "ttt@t"}
|
||||
end
|
||||
end
|
||||
@@ -4,6 +4,17 @@
|
||||
<div class="span6">
|
||||
<%= link_to "Adressliste", internlist_fetprofiles_path %>
|
||||
<%= link_to "Internes Nachschlagewerk" %>
|
||||
<ul class="unstyled linkbox-list">
|
||||
<li>
|
||||
<% @themengruppen.each do |themengruppe| %>
|
||||
<div class="container-fluid">
|
||||
<%= render themengruppe if can?(:show,themengruppe)%>
|
||||
</div>
|
||||
<% end %>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="span6">
|
||||
<h2>Neuigkeiten</h2>
|
||||
|
||||
@@ -5,5 +5,3 @@
|
||||
|
||||
<%= render :partial=>'layouts/pretty_toolbar' %>
|
||||
|
||||
<%= link_to new_thema_attachment_path(@thema) ,:remote=>true do %> new Attachment <% end %>
|
||||
<%= render :partial => "themen/select", :object => @thema, :locals=>{:editor => :false} %>
|
||||
|
||||
@@ -1,29 +1,21 @@
|
||||
<div class="content-wrap content-column">
|
||||
<%= render :partial=>'layouts/pretty_toolbar' %>
|
||||
<p> <%= link_to "FAQS", faqs_themengruppen_path,class: :btn %></p>
|
||||
<ul class="unstyled linkbox-list">
|
||||
<%= render :partial=>'layouts/pretty_toolbar' %>
|
||||
<p>
|
||||
<%= link_to "FAQS", faqs_themengruppen_path,class: :btn %>
|
||||
</p>
|
||||
<ul class="unstyled linkbox-list">
|
||||
<li>
|
||||
<% @themengruppen.each do |themengruppe| %>
|
||||
|
||||
|
||||
|
||||
<div class="container-fluid">
|
||||
<%= render themengruppe %>
|
||||
<br/>
|
||||
<div class="row-fluid">
|
||||
<!--
|
||||
<%= link_to 'Edit', edit_themengruppe_path(themengruppe) %>
|
||||
-->
|
||||
<%= render themengruppe if can?(:show,themengruppe)%>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<% end %>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
</div>
|
||||
|
||||
<script class="hidden-phone">
|
||||
|
||||
<!-- make_equal_height();
|
||||
|
||||
51
app/views/themes/blue1/home/index.html.erb
Normal file
51
app/views/themes/blue1/home/index.html.erb
Normal file
@@ -0,0 +1,51 @@
|
||||
<div class="content-wrap content-column">
|
||||
<h1><%= I18n.t('home.willkommen') %></h1></p>
|
||||
<div class="container-fluid">
|
||||
<div class="row-fluid">
|
||||
<div class="span6">
|
||||
|
||||
|
||||
<p>
|
||||
<%= link_to I18n.t('home.login'), user_omniauth_authorize_path(:ldap) %>
|
||||
</p>
|
||||
<div class="alert">
|
||||
<h2>Beta Test</h2>
|
||||
<p>Die Webseite befindet sich derzeit in einem Entwicklungsstadium,
|
||||
volle Funktionsfähigkeit ist noch nicht erreicht. Bitte Featurerequests und
|
||||
Fehlermeldungen auf GitHub melden.
|
||||
</p>
|
||||
<p>
|
||||
<%= link_to "Issues", "http://www.github.com/fetsite/fetsite/issues" %>
|
||||
</p>
|
||||
<p>
|
||||
Bezüglich Design und Steuerung sind Vorschläge erwünscht.
|
||||
</p>
|
||||
<p><%= link_to "Steuerelemente und Komponenten", "http://getbootstrap.com/2.3.2/index.html" %></p>
|
||||
<p>Um bei der Entwicklung mitzuhelfen braucht nur Ruby on Rails installiert werden</p>
|
||||
<p><%= link_to "Getting Started" , startdev_home_index_path %></p>
|
||||
<p> Das Kalender Feature wird überarbeitet, in Zukunft soll folgender Link nicht mehr funktionieren <%= link_to "Kalender", calendars_path %>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<%= link_to "Entwicklungsstatus" , dev_home_index_path %>
|
||||
<%= render 'beispiele' %>
|
||||
</div>
|
||||
<div class="span6">
|
||||
<ul class="unstyled linkbox-list" style="max-width:70em">
|
||||
<% @neuigkeiten.each do |n| %>
|
||||
<li><%= render n if can?(:show, n) %> </li>
|
||||
<% end %>
|
||||
</ul>
|
||||
Verschiedene Styles
|
||||
<ul>
|
||||
<li> <%= link_to "Darkblue", home_index_path({:theme=>"darkblue"}) %></li>
|
||||
<li> <%= link_to "Blue1", home_index_path({:theme=>"blue1"}) %></li>
|
||||
|
||||
<li> <%= link_to "2003", home_index_path({:theme=>"2003"}) %></li>
|
||||
<li> <%= link_to "white_1", home_index_path({:theme=>"white_1"}) %></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
38
app/views/wikis/_form.html.erb
Normal file
38
app/views/wikis/_form.html.erb
Normal file
@@ -0,0 +1,38 @@
|
||||
<%= tinymce_assets %>
|
||||
<div class="container-fluid">
|
||||
<%= semantic_form_for @wiki do |f| %>
|
||||
<%= f.inputs do %>
|
||||
<div class="row-fluid">
|
||||
<div class="span6">
|
||||
<%= f.input :title %>
|
||||
</div>
|
||||
<div class="span6">
|
||||
<%= f.input :themengruppe %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid">
|
||||
<div class="span6">
|
||||
<%= f.input :wikiformat, :as=>:select, :collection=>Wiki::WIKIFORMATS.invert %>
|
||||
</div>
|
||||
<div class="span6">
|
||||
<%= f.input :hidelink, :as=>:boolean %>
|
||||
|
||||
<%= @wiki.wikiname %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row-fluid">
|
||||
<div class="span12">
|
||||
<%= f.input :raw_data, :label=>false,:as=>:text, :input_html=>{:rows=>20,:class=>"row-fluid"} %>
|
||||
</div>
|
||||
</div>
|
||||
<%= f.actions do %>
|
||||
<%= f.action :submit, :as => :button %>
|
||||
<%= f.action :cancel, :as => :link %>
|
||||
<% end %>
|
||||
<% end %><% end %>
|
||||
<%= tinymce %>
|
||||
<h2>Attachments:</h2>
|
||||
|
||||
|
||||
|
||||
5
app/views/wikis/edit.html.erb
Normal file
5
app/views/wikis/edit.html.erb
Normal file
@@ -0,0 +1,5 @@
|
||||
<div id="themaview">
|
||||
<h1>Editing thema</h1>
|
||||
<%= render 'form' %>
|
||||
</div>
|
||||
</br><%= link_to 'Back', @thema %>
|
||||
9
app/views/wikis/show.html.erb
Normal file
9
app/views/wikis/show.html.erb
Normal file
@@ -0,0 +1,9 @@
|
||||
<p id="notice"><%= notice %></p>
|
||||
<%= link_to "Zurück", @wiki.themengruppe %>
|
||||
<br>
|
||||
<%= debug @wiki %>
|
||||
<%= render :partial=>"themen/small", :object=>@wiki %>
|
||||
|
||||
|
||||
<%= render :partial=>'layouts/pretty_toolbar' %>
|
||||
|
||||
8
app/views/wikis/verwalten.html.erb
Normal file
8
app/views/wikis/verwalten.html.erb
Normal file
@@ -0,0 +1,8 @@
|
||||
verwalte ein wiki
|
||||
|
||||
<%= @wiki %>
|
||||
|
||||
<%= render :partial=>'layouts/pretty_toolbar' %>
|
||||
|
||||
<%= debug @wiki %>
|
||||
<%= debug params %>
|
||||
@@ -19,7 +19,21 @@
|
||||
end
|
||||
|
||||
devise_for :users , :controllers=>{:omniauth_callbacks=> "users/omniauth_callbacks"}
|
||||
scope '(:locale)' do
|
||||
scope '(t/:theme)' do
|
||||
|
||||
get "wiki/:name", action: :wiki, controller: :wikis
|
||||
resources :wikis do
|
||||
member do
|
||||
get :verwalten
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# end
|
||||
# end
|
||||
scope ':locale' do
|
||||
scope '(t/:theme)' do
|
||||
# Studien
|
||||
|
||||
7
db/migrate/20140529120536_add_wiki_to_thema.rb
Normal file
7
db/migrate/20140529120536_add_wiki_to_thema.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
class AddWikiToThema < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :themen, :wikiname, :string
|
||||
add_column :themen, :wikiformat, :integer
|
||||
add_column :themen, :hidelink, :boolea
|
||||
end
|
||||
end
|
||||
5
db/migrate/20140601114003_add_wiki_to_themengruppen.rb
Normal file
5
db/migrate/20140601114003_add_wiki_to_themengruppen.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
class AddWikiToThemengruppen < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :themengruppen, :wiki_default, :boolean
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user