Add help page for Foodsoft variables

This commit is contained in:
wvengen 2015-03-20 16:32:58 +01:00
parent a6f02a24d4
commit 15ac566ece
5 changed files with 38 additions and 1 deletions

View file

@ -1386,6 +1386,11 @@ en:
title: Title title: Title
update: update:
notice: Page was updated notice: Page was updated
variables:
title: Foodsoft variables
description: Variables return information from somewhere else. When you use the variable, it will be replaced by its value when displayed. Foodsoft has a number of pre-defined variables, such as the name and address of your foodcoop, the software version, and the number of members and suppliers. See the table below for all variables. You can use these in wiki pages as well as in the footer (from the configuration screen).
variable: Variable
value: Current value
version: version:
author: 'Author: %{user}' author: 'Author: %{user}'
date_format: "%a, %d-%m-%Y, %H:%M" date_format: "%a, %d-%m-%Y, %H:%M"

View file

@ -40,7 +40,7 @@ module Foodsoft
'supplier_count' => ->{ Supplier.undeleted.count }, 'supplier_count' => ->{ Supplier.undeleted.count },
'active_supplier_count' => ->{ active_supplier_count }, 'active_supplier_count' => ->{ active_supplier_count },
'active_suppliers' => ->{ active_suppliers }, 'active_suppliers' => ->{ active_suppliers },
'first_order_date' => ->{ I18n.l Order.first.created_at.to_date } 'first_order_date' => ->{ I18n.l Order.first.try{|o| o.starts.to_date} }
} }
# Return expanded variable # Return expanded variable

View file

@ -1,6 +1,7 @@
# encoding: utf-8 # encoding: utf-8
class PagesController < ApplicationController class PagesController < ApplicationController
before_filter -> { require_plugin_enabled FoodsoftWiki } before_filter -> { require_plugin_enabled FoodsoftWiki }
before_filter :catch_special_pages, only: [:show, :new]
skip_before_filter :authenticate, :only => :all skip_before_filter :authenticate, :only => :all
before_filter :only => :all do before_filter :only => :all do
@ -140,4 +141,18 @@ class PagesController < ApplicationController
redirect_to wiki_page_path(@page.permalink) redirect_to wiki_page_path(@page.permalink)
end end
def variables
keys = Foodsoft::ExpansionVariables.variables.keys
@variables = Hash[keys.map {|k| [k, Foodsoft::ExpansionVariables.get(k)]}]
render 'variables'
end
private
def catch_special_pages
if params[:id] == 'Help:Foodsoft_variables'
variables
end
end
end end

View file

@ -85,5 +85,6 @@
%td(colspan=2) %td(colspan=2)
%ul %ul
%li!= link_to t('.help.link_table'), '//www.mediawiki.org/wiki/Help:Tables', target: '_blank' %li!= link_to t('.help.link_table'), '//www.mediawiki.org/wiki/Help:Tables', target: '_blank'
%li!= link_to t('.help.link_variables'), page_path('Help:Foodsoft_variables'), target: '_blank'
%li!= link_to t('.help.link_lists'), '//www.mediawiki.org/wiki/Help:Lists', target: '_blank' %li!= link_to t('.help.link_lists'), '//www.mediawiki.org/wiki/Help:Lists', target: '_blank'
%li!= link_to t('.help.link_templates'), '//www.mediawiki.org/wiki/Help:Templates', target: '_blank' %li!= link_to t('.help.link_templates'), '//www.mediawiki.org/wiki/Help:Templates', target: '_blank'

View file

@ -0,0 +1,16 @@
- title t '.title'
%p= t '.description'
%table.table.table-hover
%thead
%tr
%th= t '.variable'
%th= t '.value'
%tbody
- @variables.each do |key, value|
%tr
%td
%tt= "{{#{key}}}"
%td
= value