Mercurial > hg > soundsoftware-site
annotate lib/redmine/views/builders/json.rb @ 1327:287f201c2802 redmine-2.2-integration
Add italic
author | Chris Cannam <chris.cannam@soundsoftware.ac.uk> |
---|---|
date | Wed, 19 Jun 2013 20:56:22 +0100 |
parents | 433d4f72a19b |
children | 622f24f53b42 |
rev | line source |
---|---|
Chris@119 | 1 # Redmine - project management software |
Chris@1115 | 2 # Copyright (C) 2006-2012 Jean-Philippe Lang |
Chris@119 | 3 # |
Chris@119 | 4 # This program is free software; you can redistribute it and/or |
Chris@119 | 5 # modify it under the terms of the GNU General Public License |
Chris@119 | 6 # as published by the Free Software Foundation; either version 2 |
Chris@119 | 7 # of the License, or (at your option) any later version. |
Chris@909 | 8 # |
Chris@119 | 9 # This program is distributed in the hope that it will be useful, |
Chris@119 | 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
Chris@119 | 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
Chris@119 | 12 # GNU General Public License for more details. |
Chris@909 | 13 # |
Chris@119 | 14 # You should have received a copy of the GNU General Public License |
Chris@119 | 15 # along with this program; if not, write to the Free Software |
Chris@119 | 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
Chris@119 | 17 |
Chris@119 | 18 require 'blankslate' |
Chris@119 | 19 |
Chris@119 | 20 module Redmine |
Chris@119 | 21 module Views |
Chris@119 | 22 module Builders |
Chris@119 | 23 class Json < Structure |
Chris@1115 | 24 attr_accessor :jsonp |
Chris@1115 | 25 |
Chris@1115 | 26 def initialize(request, response) |
Chris@1115 | 27 super |
Chris@1115 | 28 self.jsonp = (request.params[:callback] || request.params[:jsonp]).to_s.gsub(/[^a-zA-Z0-9_]/, '') |
Chris@1115 | 29 end |
Chris@1115 | 30 |
Chris@119 | 31 def output |
Chris@1115 | 32 json = @struct.first.to_json |
Chris@1115 | 33 if jsonp.present? |
Chris@1115 | 34 json = "#{jsonp}(#{json})" |
Chris@1115 | 35 response.content_type = 'application/javascript' |
Chris@1115 | 36 end |
Chris@1115 | 37 json |
Chris@119 | 38 end |
Chris@119 | 39 end |
Chris@119 | 40 end |
Chris@119 | 41 end |
Chris@119 | 42 end |