From 699fb9b23357cadc176a7a69193c0e8eb20d4410 Mon Sep 17 00:00:00 2001 From: benni Date: Tue, 9 Oct 2012 02:31:10 +0200 Subject: [PATCH] Fixed wiki pages. --- .../bootstrap_and_overrides.css.less | 25 ++++- app/assets/stylesheets/foodsoft.less | 13 --- app/controllers/pages_controller.rb | 17 ++++ app/helpers/pages_helper.rb | 6 +- app/views/foodcoop/workgroups/edit.html.haml | 5 +- app/views/home/index.html.haml | 17 ++-- app/views/pages/_body.html.haml | 11 +-- app/views/pages/_form.html.haml | 42 ++++---- app/views/pages/_recent_changes.html.haml | 7 +- app/views/pages/_site_map.html.haml | 7 +- app/views/pages/_title_list.html.haml | 7 +- app/views/pages/all.html.haml | 30 +++--- app/views/pages/edit.html.haml | 15 +-- app/views/pages/new.html.haml | 17 +--- app/views/pages/show.html.haml | 99 ++++++++++--------- app/views/pages/version.html.haml | 34 ++----- app/views/shared/_group.html.haml | 51 +++++----- app/views/shared/_group_form_fields.html.haml | 16 +-- config/locales/de.yml | 1 + 19 files changed, 200 insertions(+), 220 deletions(-) delete mode 100644 app/assets/stylesheets/foodsoft.less diff --git a/app/assets/stylesheets/bootstrap_and_overrides.css.less b/app/assets/stylesheets/bootstrap_and_overrides.css.less index d122d886..d4004530 100644 --- a/app/assets/stylesheets/bootstrap_and_overrides.css.less +++ b/app/assets/stylesheets/bootstrap_and_overrides.css.less @@ -36,4 +36,27 @@ body { @import "datepicker"; // Custom styles -@import "foodsoft"; \ No newline at end of file +section { + padding-bottom: 30px; + margin-bottom: 30px; + border-bottom: 1px solid #d3d3d3; +} + +// Tasks .. +.accepted { + color: #468847; +} +.unaccepted { + color: #B94A48; +} + +// Wiki +#wikiContent { + .editsection { + display: none; + } + .mw-headline a { + color: @textColor; + text-decoration: none; + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/foodsoft.less b/app/assets/stylesheets/foodsoft.less deleted file mode 100644 index 512a6403..00000000 --- a/app/assets/stylesheets/foodsoft.less +++ /dev/null @@ -1,13 +0,0 @@ -section { - padding-bottom: 30px; - margin-bottom: 30px; - border-bottom: 1px solid #d3d3d3; -} - -.accepted { - color: #468847; -} - -.unaccepted { - color: #B94A48; -} \ No newline at end of file diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 5ff62e88..8b4ce3cf 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -97,6 +97,23 @@ class PagesController < ApplicationController end def all + @pages = Page.non_redirected + @partial = params[:view] || 'recent_changes' + + if params[:name] + @pages = @pages.where("title LIKE ?", "%#{params[:name]}%").limit(20).order('updated_at DESC') + @partial = 'title_list' + else + order = case @partial + when 'recent_changes' then + 'updated_at DESC' + when 'site_map' then + 'created_at DESC' + when 'title_list' then + 'title DESC' + end + @pages.order(order) + end end def version diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb index 4154c461..09be29f0 100644 --- a/app/helpers/pages_helper.rb +++ b/app/helpers/pages_helper.rb @@ -41,10 +41,10 @@ module PagesHelper unless toc.blank? toc = WikiCloth.new({:data => toc, :link_handler => Wikilink.new}).to_html - section_count = 0 toc.gsub(/
  • ([^<>\n]*)/) do - section_count += 1 - "
  • #{$1}" + name = $1 + anchor = name.gsub(/\s/, '_').gsub(/[^a-zA-Z_]/, '') + "
  • #{name.truncate(20)}" end.html_safe end end diff --git a/app/views/foodcoop/workgroups/edit.html.haml b/app/views/foodcoop/workgroups/edit.html.haml index 24de5b4e..2fed947b 100644 --- a/app/views/foodcoop/workgroups/edit.html.haml +++ b/app/views/foodcoop/workgroups/edit.html.haml @@ -6,5 +6,6 @@ einladen. = simple_form_for [:foodcoop, @workgroup] do |f| = render :partial => 'shared/group_form_fields', :locals => {:f => f} - = f.submit - = link_to "oder abbrechen", foodcoop_workgroups_path + .form-actions + = f.submit + = link_to "oder abbrechen", foodcoop_workgroups_path diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml index fe654043..b246ff55 100644 --- a/app/views/home/index.html.haml +++ b/app/views/home/index.html.haml @@ -5,16 +5,12 @@ - unless @unaccepted_tasks.empty? && @next_tasks.empty? && @unassigned_tasks_number == 0 %section.well - %h2 Aufgaben - -unless @next_tasks.empty? - %div{:style => "float:left, margin-bottom:2em"} - %strong Deine Aufgaben für die nächste Woche: - %table.table(style="width:25em") - -for task in @next_tasks - %tr - %td= format_date task.due_date - %td - %b= task.name + - unless @next_tasks.empty? + %h3 Deine Aufgaben für nächste Woche + %dl.dl-horizontal + - @next_tasks.each do |task| + %dt= l task.due_date, format: "%A, %d. %b" + %dd= link_to task.name, task_path(task) - unless @unaccepted_tasks.empty? %h3 Aufgaben übernehmen @@ -23,7 +19,6 @@ - unless @unassigned_tasks_number == 0 %h3 Offene Aufgaben = "Es gibt #{@unassigned_tasks_number} #{link_to 'offene Aufgabe(n)', :controller => 'tasks'}".html_safe - %p= link_to "Meine Aufgaben", user_tasks_path - if current_user.ordergroup = render :partial => 'shared/open_orders', :locals => {:ordergroup => current_user.ordergroup} diff --git a/app/views/pages/_body.html.haml b/app/views/pages/_body.html.haml index 3f06f54d..db96b857 100644 --- a/app/views/pages/_body.html.haml +++ b/app/views/pages/_body.html.haml @@ -1,10 +1,9 @@ - content = wikified_body @page.body, @page.title - toc = generate_toc @page.body -- unless toc.blank? - #wikitoc - %h2 - Inhaltsverzeichnis - %span= link_to_function "[verstecken]", "Element.toggle('wikitoc-content')" - #wikitoc-content= toc +- unless toc.blank? or params[:preview] + - content_for :sidebar do + #wikitoc.well.well-small + %h3 Inhalt + = toc = content \ No newline at end of file diff --git a/app/views/pages/_form.html.haml b/app/views/pages/_form.html.haml index 2e24adb6..eaa22935 100644 --- a/app/views/pages/_form.html.haml +++ b/app/views/pages/_form.html.haml @@ -1,12 +1,26 @@ - if params[:preview] - %h2 Vorschau - #preview= render :partial => 'body' + %section#wikiContent + = render 'body' -#wiki-syntax-help - .box_title - %h2 Schnelle Formatierungshilfe - .column_content - %table(frame="void") +.row-fluid + .span8 + = simple_form_for @page do |f| + = f.hidden_field :lock_version + = f.input :title, input_html: {class: 'input-xxlarge'} + = f.input :body, input_html: {class: 'input-xxlarge'} + = f.input :parent_id, as: :select, collection: parent_pages_to_select(@page) + .form-actions + = button_tag :name => 'preview', class: 'btn' do + %i.icon-search + Vorschau + = button_tag class: 'btn' do + %i.icon-save + Speichern + = link_to "oder abbrechen", @page + + .span4 + %h3 Schnelle Formatierungshilfe + %table.table %tbody %tr %td(colspan=2) @@ -79,17 +93,3 @@ Siehe = link_to "Tabellen", "http://www.mediawiki.org/wiki/Help:Tables", :target => '_blank' -- simple_form_for @page do |f| - = f.hidden_field :lock_version - = f.input :title - = f.input :body, :input_html => {:size => "65x30"} - %p - = submit_tag "Vorschau", :name => 'preview' - | - = submit_tag "Speichern" - | - = link_to "Abbrechen", @page - | Oberseite ändern: - = collection_select(:page, :parent_id, parent_pages_to_select(@page), :id, :permalink, {:prompt => "Neue Oberseite?", :include_blank => true}) - -%div(style="clear:right; height:1px") diff --git a/app/views/pages/_recent_changes.html.haml b/app/views/pages/_recent_changes.html.haml index 1c0af9e2..6a5440c7 100644 --- a/app/views/pages/_recent_changes.html.haml +++ b/app/views/pages/_recent_changes.html.haml @@ -1,7 +1,8 @@ -.column_content - %table +%table.table.table-striped + %thead %tr %th Titel %th Zuletzt aktualisiert - - for page in Page.non_redirected.order('updated_at DESC') + %tbody + - for page in @pages = render :partial => "page_list_item", :locals => {:page => page, :level => 0, :siteMap => 0} diff --git a/app/views/pages/_site_map.html.haml b/app/views/pages/_site_map.html.haml index 85c01b41..f19afe64 100644 --- a/app/views/pages/_site_map.html.haml +++ b/app/views/pages/_site_map.html.haml @@ -1,11 +1,12 @@ -.column_content - %table +%table.table.table-striped + %thead %tr %th Titel %th Zuletzt aktualisiert - homepage = Page.find_by_permalink('Home') - unless homepage.nil? = render :partial => 'page_list_item', :locals => {:page => homepage, :level => 0, :siteMap => 1} - - for page in Page.no_parent.non_redirected.order('created_at DESC') + %tbody + - for page in @pages - if page.id != homepage.id = render :partial => 'page_list_item', :locals => {:page => page, :level => 0, :siteMap => 1} diff --git a/app/views/pages/_title_list.html.haml b/app/views/pages/_title_list.html.haml index e46c0075..3750a292 100644 --- a/app/views/pages/_title_list.html.haml +++ b/app/views/pages/_title_list.html.haml @@ -1,7 +1,8 @@ -.column_content - %table +%table.table.table-striped + %thead %tr %th Titel %th Zuletzt aktualisiert - - for page in Page.non_redirected.order('title DESC') + %tbody + - for page in @pages = render :partial => "page_list_item", :locals => {:page => page, :level => 0, :siteMap => 0} \ No newline at end of file diff --git a/app/views/pages/all.html.haml b/app/views/pages/all.html.haml index ac84ba19..c3d93b78 100644 --- a/app/views/pages/all.html.haml +++ b/app/views/pages/all.html.haml @@ -1,21 +1,17 @@ - title "Alle Wikiseiten", false -.wiki_all - #breadcrump - = link_to_wikipage_by_permalink("Home", "Foodcoop-Wiki") +- content_for :sidebar do + = link_to "Neue Seite anlegen", new_page_path, class: 'btn btn-primary' - %h1 Alle Wikiseiten +.navbar + .navbar-inner + %ul.nav + %li= link_to 'Letzte Änderungen', all_pages_path(:view => 'recent_changes') + %li= link_to 'Seiten-Liste', all_pages_path(:view => 'title_list') + %li= link_to 'Site Map', all_pages_path(:view => 'site_map') + = form_tag all_pages_path, method: :get, class: 'form-search pull-right' do + = text_field_tag :name, params[:name], class: 'input-medium search-query', + placeholder: 'Seitentitel ...' + = submit_tag "Suche", class: 'btn' - - #sidebar - #sidebar-links - = link_to "Neue Seite anlegen", new_page_path - - .left_column{:style => "width:100%"} - .box_title - #editOrderNav - = link_to 'Letzte Änderungen', all_pages_path(:view => 'recent_changes') - = link_to 'Seiten-Liste', all_pages_path(:view => 'title_list') - = link_to 'Site Map', all_pages_path(:view => 'site_map') - #left_column - = render :partial => params[:view] || 'recent_changes' \ No newline at end of file += render @partial \ No newline at end of file diff --git a/app/views/pages/edit.html.haml b/app/views/pages/edit.html.haml index 2d065b1a..c3f6789e 100644 --- a/app/views/pages/edit.html.haml +++ b/app/views/pages/edit.html.haml @@ -1,14 +1,3 @@ -- title "#{@page.title} bearbeiten", false +- title "Seite bearbeiten" -.wiki_edit - #breadcrump - = link_to_wikipage_by_permalink("Home", "Foodcoop-Wiki") - - for page in @page.ancestors.reverse - %span.wikiSeparator > - = link_to_wikipage(page) - %span.wikiSeparator > - = link_to_wikipage(@page) - - %h1 #{@page.title} bearbeiten - - = render :partial => 'form' += render 'form' diff --git a/app/views/pages/new.html.haml b/app/views/pages/new.html.haml index 8bb44198..6bac72c5 100644 --- a/app/views/pages/new.html.haml +++ b/app/views/pages/new.html.haml @@ -1,16 +1,3 @@ -- title "Neue Wikiseite anlegen", false +- title "Neue Wikiseite anlegen" -.wiki_new - #breadcrump - = link_to_wikipage_by_permalink("Home", "Foodcoop-Wiki") - - parent_page = Page.find_by_permalink(params[:parent]) - - if parent_page != nil - - for page in parent_page.ancestors.reverse - %span.wikiSeparator > - = link_to_wikipage(page) - %span.wikiSeparator > - = @page.title - - %h1 Neue Wikiseite anlegen - - = render :partial => 'form' += render 'form' diff --git a/app/views/pages/show.html.haml b/app/views/pages/show.html.haml index f84ebb26..19deeae4 100644 --- a/app/views/pages/show.html.haml +++ b/app/views/pages/show.html.haml @@ -1,51 +1,54 @@ - title @page.title, false -.wiki_show - - #breadcrump - = link_to_wikipage_by_permalink("Home", "Foodcoop-Wiki") - - for page in @page.ancestors.reverse - %span.wikiSeparator > - = link_to_wikipage(page) - %span.wikiSeparator > - = @page.title - - #sidebar - #sidebar-links - = link_to "Bearbeiten", edit_page_path(@page) - = link_to "Versionen (#{@page.versions.count})", "#versions", 'data-toggle-this' => '#versions' - - unless @page.children.empty? - = link_to "Unterseiten", "#subpages", 'data-toggle-this' => '#subpages' - #versions{:style => "display:none"} - .box_title - %h2 Versionen - .column_content - %ul - - for version in @page.versions.reverse - %li - = link_to I18n.l(version.updated_at, :format => "%d.%m.%y %H:%M"), version_page_path(@page, :version => version.lock_version) - = "(#{User.find_by_id(version.updated_by).try(:nick)})" - - - unless @page.children.empty? - #subpages{:style => "display:none"} - .box_title - %h2 Unterseiten - .column_content - %ul - - for page in @page.children - %li= link_to_wikipage(page) - - #wiki_content - %h1 - = @page.title - = render :partial => 'body' - - %hr.clear/ +- content_for :sidebar do %p - = link_to "Seite bearbeiten", edit_page_path(@page) - | - = link_to "Seite löschen", @page, :method => :delete, :confirm => "Achtung, auch alle Unterseiten werden gelöscht. Bist Du sicher?" - | Zuletzt bearbeitet von - %b - = "#{@page.user.try(:nick)}" - = "am #{format_datetime @page.updated_at}" + = link_to edit_page_path(@page), class: 'btn btn-primary' do + %i.icon-edit + Seite bearbeiten + .well.well-small + %ul.nav.nav-list + %li + %li= link_to "Versionen (#{@page.versions.count})", "#versions", 'data-toggle-this' => '#versions' + - unless @page.children.empty? + %li= link_to "Unterseiten", "#subpages", 'data-toggle-this' => '#subpages' + + #versions.well.well-small{:style => "display:none"} + %h3 Versionen + %ul.unstyled + - @page.versions.reverse.each do |version| + %li + = link_to I18n.l(version.updated_at, :format => "%d.%m.%y %H:%M"), version_page_path(@page, :version => version.lock_version) + = "(#{User.find_by_id(version.updated_by).try(:nick)})" + + - unless @page.children.empty? + #subpages.well.well-small{:style => "display:none"} + %h3 Unterseiten + %ul.unstyled + - @page.children.each do |page| + %li= link_to_wikipage(page) + +#breadcrump + = link_to_wikipage_by_permalink("Home", "Foodcoop-Wiki") + - for page in @page.ancestors.reverse + %span.wikiSeparator > + = link_to_wikipage(page) + %span.wikiSeparator > + = @page.title + + +#wikiContent + .page-header + %h1= @page.title + = render :partial => 'body' + +%hr.clear/ +%p + = link_to edit_page_path(@page), class: 'btn btn-primary' do + %i.icon-edit + Seite bearbeiten + = link_to "Seite löschen", @page, class: 'btn btn-danger', :method => :delete, + :confirm => "Achtung, auch alle Unterseiten werden gelöscht. Bist Du sicher?" + | Zuletzt bearbeitet von + %b + = "#{@page.user.try(:nick)}" + = "am #{format_datetime @page.updated_at}" diff --git a/app/views/pages/version.html.haml b/app/views/pages/version.html.haml index 369fa375..f1a15e3b 100644 --- a/app/views/pages/version.html.haml +++ b/app/views/pages/version.html.haml @@ -1,27 +1,11 @@ -- title @page.title, false +- title "#{@page.title} - Version #{@version.lock_version}" -.wiki_version - #breadcrump - = link_to_wikipage_by_permalink("Home", "Foodcoop-Wiki") - - for page in @page.ancestors.reverse - %span.wikiSeparator > - = link_to_wikipage(page) - %span.wikiSeparator > - = link_to_wikipage(@page) - - %h1 - = @page.title - - #sidebar - .box_title - %h2 Version - .column_content - %b= "#{format_datetime_timespec(@version.updated_at, "%a, %d.%m.%Y, %H:%M Uhr") }" - %ul - %li= "Autor: #{User.find(@version.updated_by).nick}" - %li= link_to "Aktuelle Version sehen", wiki_page_path(:permalink => @page.permalink) - %li= link_to "Auf diese Version zurücksetzen", revert_page_path(@page, :version => @version.lock_version) - - = wikified_body @version.body - %div(style="clear:right") +- content_for :sidebar do + %h3 Version + %b= "#{format_datetime_timespec(@version.updated_at, "%a, %d.%m.%Y, %H:%M Uhr") }" + %ul + %li= "Autor: #{User.find(@version.updated_by).nick}" + %li= link_to "Aktuelle Version sehen", wiki_page_path(:permalink => @page.permalink) + %li= link_to "Auf diese Version zurücksetzen", revert_page_path(@page, :version => @version.lock_version) += wikified_body @version.body diff --git a/app/views/shared/_group.html.haml b/app/views/shared/_group.html.haml index e91fabd2..1e4947fd 100644 --- a/app/views/shared/_group.html.haml +++ b/app/views/shared/_group.html.haml @@ -1,32 +1,25 @@ -%table - %tr - %td Beschreibung: - %td=h group.description +%dl.dl-horizontal + %dt Beschreibung: + %dd=h group.description - if group.is_a?(Ordergroup) and (@current_user.role_admin? or @current_user.role_finance?) - %tr - %td Kontakt: - %td=h group.contact - %tr - %td Adresse: - %td= link_to_gmaps group.contact_address - %tr - %td Gruppe hat Zugriff auf: - %td= format_roles(group) - %tr - %td Mitglieder: - %td - - members = group.users - = "(#{members.size})" - = members.collect(&:nick).join(", ") + %dt Kontakt: + %dd=h group.contact + %dt Adresse: + %dd= link_to_gmaps group.contact_address + %dt Zugriff auf: + %dd= format_roles(group) + %dt Mitglieder: + %dd + - members = group.users + = "(#{members.size})" + = members.collect(&:nick).join(", ") - if group.is_a?(Workgroup) - %tr - %td wöchentlicher Job: - %td - - if group.weekly_task - =h "#{group.task_name} am #{weekday(group.weekday)}" - - else - kein wöchentlicher Job definiert + %dt wöchentlicher Job: + %dd + - if group.weekly_task + =h "#{group.task_name} am #{weekday(group.weekday)}" + - else + kein wöchentlicher Job definiert - else - %tr - %td Äpfel-Bestellbeschränkung - %td= group.ignore_apple_restriction ? 'deaktiviert' : 'aktiviert' + %dt Äpfel-Bestellbeschränkung + %dd= group.ignore_apple_restriction ? 'deaktiviert' : 'aktiviert' diff --git a/app/views/shared/_group_form_fields.html.haml b/app/views/shared/_group_form_fields.html.haml index 5753aa16..8de6b874 100644 --- a/app/views/shared/_group_form_fields.html.haml +++ b/app/views/shared/_group_form_fields.html.haml @@ -1,5 +1,5 @@ = f.input :name -= f.input :description += f.input :description, as: :text, input_html: {rows: 4} = yield @@ -11,19 +11,20 @@ = f.input :task_name = f.input :task_required_users = f.input :task_duration, :as => :select, :collection => (1..3) - = f.input :task_description, as: :text, input_html: {rows: 10} + = f.input :task_description, as: :text, input_html: {rows: 5} = f.input :next_weekly_tasks_number -= f.input :user_tokens, :as => :string, :input_html => { 'data-pre' => f.object.users.map { |u| u.token_attributes }.to_json } += f.input :user_tokens, :as => :string, + :input_html => { 'data-pre' => f.object.users.map { |u| u.token_attributes }.to_json } -- content_for :head do +- content_for :javascript do :javascript function toggleWeeklyTaskFields() { if ($('#workgroup_weekly_task').is(':checked')) { - $('#weekly_task_fields div.input').show(); + $('#weekly_task_fields .control-group').show(); $('#weekly_task_fields input').removeAttr('disabled'); } else { - $('#weekly_task_fields div.input').hide(); + $('#weekly_task_fields .control-group').hide(); $('#weekly_task_fields input').attr('disabled', 'disabled'); } } @@ -39,7 +40,8 @@ prePopulate: $("##{f.object.class.to_s.underscore}_user_tokens").data("pre"), hintText: 'Nach Nutzerin suchen', noResultText: 'Keine Nutzerin gefunden', - searchingText: 'Suche ...' + searchingText: 'Suche ...', + theme: 'facebook' }); }); diff --git a/config/locales/de.yml b/config/locales/de.yml index 5f955591..8cc3b4e5 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -335,6 +335,7 @@ de: private: Privat page: body: 'Inhalt' + parent_id: Oberseite supplier: address: 'Adresse' phone: 'Telefon'