Commit 705a8ec6d14f104715a7f8d994de99c39ca92b9f
1 parent
d0561132
Exists in
master
and in
29 other branches
add infra to embed feature
Showing
8 changed files
with
46 additions
and
0 deletions
Show diff stats
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/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 | ... | ... |
... | ... | @@ -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"); | ... | ... |