diff --git a/.gitmodules b/.gitmodules index 24b7bc5..def50a2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "tinymce"] - path = tinymce + path = app/assets/javascripts/tinymce url = git@github.com:tinymce/tinymce-dist.git diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..292d124 --- /dev/null +++ b/Gemfile @@ -0,0 +1,15 @@ +source "https://rubygems.org" + +gemspec + +git "http://github.com/refinery/refinerycms", branch: "master" do + gem "refinerycms" + gem "refinerycms-testing" +end + +gem 'sqlite3' +gem 'pry' + +group :development, :test do + gem 'selenium-webdriver', '~> 2.43' +end diff --git a/Rakefile b/Rakefile new file mode 100755 index 0000000..23e3ce3 --- /dev/null +++ b/Rakefile @@ -0,0 +1,18 @@ +#!/usr/bin/env rake +begin + require 'bundler/setup' +rescue LoadError + puts 'You must `gem install bundler` and `bundle install` to run rake tasks' +end + +ENGINE_PATH = File.dirname(__FILE__) +APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__) + +if File.exists?(APP_RAKEFILE) + load 'rails/tasks/engine.rake' +end + +require "refinerycms-testing" +Refinery::Testing::Railtie.load_dummy_tasks(ENGINE_PATH) + +task :default => :spec diff --git a/app/assets/controllers/refinery/tinymce_controller.rb b/app/assets/controllers/refinery/tinymce_controller.rb new file mode 100644 index 0000000..ff1762d --- /dev/null +++ b/app/assets/controllers/refinery/tinymce_controller.rb @@ -0,0 +1,9 @@ +module Refinery + class TinymceController < ActionController::Base + + def tinymceiframe + render :template => "/refinery/tinymceiframe", :layout => false + end + + end +end diff --git a/app/assets/decorators/controllers/refinery/fast_controller_decorator.rb b/app/assets/decorators/controllers/refinery/fast_controller_decorator.rb new file mode 100644 index 0000000..092ffa4 --- /dev/null +++ b/app/assets/decorators/controllers/refinery/fast_controller_decorator.rb @@ -0,0 +1,5 @@ +Refinery::FastController.class_eval do + def tinymceiframe + render :template => "/refinery/tinymceiframe", :layout => false + end +end diff --git a/app/assets/javascripts/refinery/boot_tinymce.js.erb b/app/assets/javascripts/refinery/boot_tinymce.js.erb new file mode 100644 index 0000000..4582cfe --- /dev/null +++ b/app/assets/javascripts/refinery/boot_tinymce.js.erb @@ -0,0 +1,49 @@ +$(document).on('ready page:load', function(){ + + tinymce.init({ + selector: "textarea.visual_editor", + menubar : false, + plugins: ["image", "link"], + + file_browser_callback : function(field_name, url, type, win) { + + if (type == 'image') { + var title_text = "Choose an Image" + var cmsURL = '/refinery/dialogs/image'; + } else { + var title_text = "Choose Object to Link" + var cmsURL = '/refinery/dialogs/link'; + } + + tinymce.activeEditor.windowManager.open({ + file : cmsURL, + title : title_text, + width : 600, // Your dimensions may differ - toy around with them! + height : 600, + resizable : "yes", + inline : "yes", // This parameter only has an effect if you use the inlinepopups plugin! + close_previous : "yes" + }, { + window : win, + input : field_name + }); + } + }); + + $('#submit_button').on('click', function(event){ + var args = top.tinymce.activeEditor.windowManager.getParams(); + win = (args.window); + input = (args.input); + dialog_type = $('#visual_editor_dialog_type', window.parent.document).val(); + + if (dialog_type == 'link') { + selector = "#visual_editor_href"; + } else { + selector = "#visual_editor_src"; + } + win.document.getElementById(input).value = $(selector, window.parent.document).val(); + // window.alert( JSON.stringify(args) ); + top.tinymce.activeEditor.windowManager.close(); + }); + +}); diff --git a/app/assets/javascripts/refinery/tinymce.js b/app/assets/javascripts/refinery/tinymce.js new file mode 100644 index 0000000..eb2cb34 --- /dev/null +++ b/app/assets/javascripts/refinery/tinymce.js @@ -0,0 +1,14 @@ +/* + * TINYMCE + */ + +/* + Namespace: TINYMCE + Global Tinymce namespace. +*/ +/* + *= require tinymce/tinymce + *= require tinymce/tinymce.jquery + *= require refinery/boot_tinymce + *= require_self +*/ diff --git a/tinymce b/app/assets/javascripts/tinymce similarity index 100% rename from tinymce rename to app/assets/javascripts/tinymce diff --git a/app/assets/stylesheets/tinymce.css b/app/assets/stylesheets/tinymce.css new file mode 100644 index 0000000..4ecc69e --- /dev/null +++ b/app/assets/stylesheets/tinymce.css @@ -0,0 +1,4 @@ +#dialog_container, .dialog_container { + margin-left: 20px; +} + diff --git a/app/views/refinery/admin/dialogs/show.html.erb b/app/views/refinery/admin/dialogs/show.html.erb new file mode 100644 index 0000000..ce4a16e --- /dev/null +++ b/app/views/refinery/admin/dialogs/show.html.erb @@ -0,0 +1,16 @@ +
diff --git a/app/views/refinery/tinymceiframe.html.erb b/app/views/refinery/tinymceiframe.html.erb new file mode 100644 index 0000000..ff26ff4 --- /dev/null +++ b/app/views/refinery/tinymceiframe.html.erb @@ -0,0 +1,13 @@ + + + +