Commit 705a8ec6d14f104715a7f8d994de99c39ca92b9f

Authored by Francisco Marcelo de Araújo Lima Júnior
1 parent d0561132

add infra to embed feature

app/controllers/application_controller.rb
... ... @@ -55,6 +55,17 @@ class ApplicationController < ActionController::Base
55 55 !@no_design_blocks && self.class.uses_design_blocks?
56 56 end
57 57  
  58 + def self.no_design_theme
  59 + @no_design_theme
  60 + end
  61 + def self.uses_design_theme?
  62 + !@no_design_theme
  63 + end
  64 + def uses_design_theme
  65 + !@no_design_theme && self.class.uses_design_theme?
  66 + end
  67 +
  68 +
58 69 # Be sure to include AuthenticationSystem in Application Controller instead
59 70 include AuthenticatedSystem
60 71 include PermissionCheck
... ...
app/controllers/embed_controller.rb 0 → 100644
... ... @@ -0,0 +1,9 @@
  1 +class EmbedController < ApplicationController
  2 +
  3 + #no_design_blocks
  4 + no_design_theme
  5 +
  6 + def index
  7 + end
  8 +
  9 +end
... ...
app/helpers/boxes_helper.rb
... ... @@ -219,6 +219,18 @@ module BoxesHelper
219 219 buttons << thickbox_inline_popup_icon(:help, _('Help on this block'), {}, "help-on-box-#{block.id}") << content_tag('div', content_tag('h2', _('Help')) + content_tag('div', block.help, :style => 'margin-bottom: 1em;') + thickbox_close_button(_('Close')), :style => 'display: none;', :id => "help-on-box-#{block.id}")
220 220 end
221 221  
  222 + #if block.respond_to?(:embedable)
  223 + if true
  224 + html = content_tag('div',
  225 + content_tag('h2', _('Embed code')) +
  226 + content_tag('div', 'Below, you''ll see a field containing embed code for the block. Just copy the code and paste it into your website or blogging software.', :style => 'margin-bottom: 1em;') +
  227 + content_tag('textarea', '*This is the embed code for this block!*', :style => 'margin-bottom: 1em; width:100%; height:40%;') +
  228 + thickbox_copy_to_clipboard_button(_('Copy to clipboard')) +
  229 + thickbox_close_button(_('Close')), :style => 'display: none;', :id => "embed-code-box-#{block.id}")
  230 +
  231 + buttons << thickbox_inline_popup_icon(:embed, _('Embed code'), {}, "embed-code-box-#{block.id}") << html
  232 + end
  233 +
222 234 content_tag('div', buttons.join("\n") + tag('br', :style => 'clear: left'), :class => 'button-bar')
223 235 end
224 236  
... ...
app/helpers/thickbox_helper.rb
... ... @@ -8,4 +8,7 @@ module ThickboxHelper
8 8 def thickbox_close_button(title)
9 9 button_to_function(:close, title, 'tb_remove();')
10 10 end
  11 + def thickbox_copy_to_clipboard_button(title)
  12 + button_to_function(:'copy-to-clipboard', title, 'tb_copy_to_clipboard();')
  13 + end
11 14 end
... ...
app/views/embed/index.html.erb 0 → 100644
... ... @@ -0,0 +1 @@
  1 +<%= 'bli' %>
... ...
config/routes.rb
... ... @@ -31,6 +31,10 @@ ActionController::Routing::Routes.draw do |map|
31 31 map.connect 'thumbnails/*stuff', :controller => 'not_found', :action => 'nothing'
32 32 map.connect 'user_themes/*stuff', :controller => 'not_found', :action => 'nothing'
33 33  
  34 + # embed controller
  35 + map.embed 'embed', :controller => 'embed', :action => 'index'
  36 + map.embed_block 'embed/:block/', :controller => 'embed', :action => 'block'
  37 +
34 38 # online documentation
35 39 map.doc 'doc', :controller => 'doc', :action => 'index'
36 40 map.doc_section 'doc/:section', :controller => 'doc', :action => 'section'
... ...
public/designs/icons/tango/style.css
1 1 /******************SMALL ICONS********************/
  2 +.icon-embed { background-image: url(Tango/16x16/apps/utilities-terminal.png) }
  3 +.icon-copy-to-clipboard { background-image: url(Tango/16x16/actions/gtk-copy.png) }
2 4 .icon-edit { background-image: url(Tango/16x16/apps/text-editor.png) }
3 5 .icon-home { background-image: url(Tango/16x16/actions/go-home.png) }
4 6 .icon-home-not { background-image: url(mod/16x16/actions/go-home-not.png) }
... ...
public/javascripts/thickbox.js
... ... @@ -265,6 +265,10 @@ function tb_showIframe(){
265 265 jQuery("#TB_window").css({display:"block"});
266 266 }
267 267  
  268 +function tb_copy_to_clipboard() {
  269 + alert('Text copied to clipboard!');
  270 +}
  271 +
268 272 function tb_remove() {
269 273 jQuery("#TB_imageOff").unbind("click");
270 274 jQuery("#TB_closeWindowButton").unbind("click");
... ...