wysihat-engine 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/CHANGELOG +17 -0
- data/README.textile +6 -2
- data/Rakefile +21 -4
- data/TODO +3 -1
- data/VERSION +1 -1
- data/app/controllers/wysihat_files_controller.rb +1 -0
- data/generators/wysihat/templates/css/facebox.css +43 -78
- data/generators/wysihat/templates/css/wysihat.css +29 -57
- data/generators/wysihat/templates/images/{b.png → facebox/b.png} +0 -0
- data/generators/wysihat/templates/images/{bl.png → facebox/bl.png} +0 -0
- data/generators/wysihat/templates/images/{br.png → facebox/br.png} +0 -0
- data/generators/wysihat/templates/images/{closelabel.gif → facebox/closelabel.gif} +0 -0
- data/generators/wysihat/templates/images/{loading.gif → facebox/loading.gif} +0 -0
- data/generators/wysihat/templates/images/{tl.png → facebox/tl.png} +0 -0
- data/generators/wysihat/templates/images/{tr.png → facebox/tr.png} +0 -0
- data/generators/wysihat/templates/images/{arrow_redo.png → icons/arrow_redo.png} +0 -0
- data/generators/wysihat/templates/images/{arrow_undo.png → icons/arrow_undo.png} +0 -0
- data/generators/wysihat/templates/images/{exclamation.png → icons/exclamation.png} +0 -0
- data/generators/wysihat/templates/images/{image.png → icons/image.png} +0 -0
- data/generators/wysihat/templates/images/{link.png → icons/link.png} +0 -0
- data/generators/wysihat/templates/images/{page_code.png → icons/page_code.png} +0 -0
- data/generators/wysihat/templates/images/{text_align_center.png → icons/text_align_center.png} +0 -0
- data/generators/wysihat/templates/images/{text_align_left.png → icons/text_align_left.png} +0 -0
- data/generators/wysihat/templates/images/{text_align_right.png → icons/text_align_right.png} +0 -0
- data/generators/wysihat/templates/images/{text_bold.png → icons/text_bold.png} +0 -0
- data/generators/wysihat/templates/images/{text_italic.png → icons/text_italic.png} +0 -0
- data/generators/wysihat/templates/images/{text_list_bullets.png → icons/text_list_bullets.png} +0 -0
- data/generators/wysihat/templates/images/{text_list_numbers.png → icons/text_list_numbers.png} +0 -0
- data/generators/wysihat/templates/images/{text_strikethrough.png → icons/text_strikethrough.png} +0 -0
- data/generators/wysihat/templates/images/{text_underline.png → icons/text_underline.png} +0 -0
- data/generators/wysihat/templates/javascripts/facebox.js +8 -18
- data/generators/wysihat/templates/javascripts/wysihat.js +2 -27
- data/generators/wysihat/templates/javascripts/wysihat_engine.js +38 -60
- data/generators/wysihat/templates/javascripts/wysihat_engine_pack.js +1 -1
- data/generators/wysihat/templates/sass/facebox.sass +5 -5
- data/generators/wysihat/templates/sass/wysihat.sass +18 -14
- data/generators/wysihat/wysihat_generator.rb +24 -27
- data/lib/wysihat-engine.rb +12 -17
- data/wysihat-engine.gemspec +29 -36
- metadata +27 -34
- data/generators/wysihat/templates/css/.sass-cache/242b5853f919a8e6346032f619374fe0847bac7b/facebox.cssc +0 -0
- data/generators/wysihat/templates/css/.sass-cache/242b5853f919a8e6346032f619374fe0847bac7b/wysihat.cssc +0 -0
- data/generators/wysihat/templates/images/film.png +0 -0
- data/generators/wysihat/templates/images/page_white_flash.png +0 -0
- data/generators/wysihat/templates/images/text_heading_1.png +0 -0
- data/generators/wysihat/templates/images/text_heading_2.png +0 -0
- data/generators/wysihat/templates/images/text_heading_3.png +0 -0
data/.gitignore
CHANGED
data/CHANGELOG
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
0.1.7 (November 6th, 2009) - Jeff Kreeftmeijer
|
2
|
+
* Toolbar didn't show up in IE. Fixed :)
|
3
|
+
|
4
|
+
0.1.7 (November 1st, 2009) - Jeff Kreeftmeijer
|
5
|
+
* added the exclamation.png icon back in the generator.
|
6
|
+
|
7
|
+
0.1.7 (October 28th, 2009) - Jeff Kreeftmeijer
|
8
|
+
* fixed a bug in the generator; it copied "loading.gif" to "loading.png". Thanks Eric!
|
9
|
+
* two functions in the rakefile were called cssify. One should've been called sassify. fixed :)
|
10
|
+
* added "render :layout => false" to WysihatFilesController#index
|
11
|
+
* put the "exclamation.png" icon back. Was pretty useful after all.
|
12
|
+
|
13
|
+
0.1.7 (October 27th, 2009) - Jeff Kreeftmeijer
|
14
|
+
* put the facebox images & icons in a subdir
|
15
|
+
* created sassify & cssify rake tasks (like the minify one)
|
16
|
+
* removed the .sass_cache dir and added it to the .gitignore file.
|
17
|
+
|
1
18
|
0.1.6 (October 21st, 2009) - Jeff Kreeftmeijer
|
2
19
|
* fixed a bug that sanitized the output (onsumbit) rather than the input (on paste).
|
3
20
|
|
data/README.textile
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
h1. WysiHat Engine
|
2
2
|
|
3
|
-
A Rails engine to help integrate the "37signals
|
3
|
+
A Rails engine to help integrate the "37signals WysiHat rich text editor":http://github.com/josh/wysihat/ to your application.
|
4
4
|
|
5
5
|
h2. Using the WysiHat Engine
|
6
6
|
|
7
|
-
We've written an "Installation Guide":http://wiki.github.com/80beans/wysihat-engine/installation and some "Examples":http://wiki.github.com/80beans/wysihat-engine/examples to get you started. Any questions? Don't hesitate to "ask":http://github.com/inbox/new/
|
7
|
+
We've written an "Installation Guide":http://wiki.github.com/80beans/wysihat-engine/installation and some "Examples":http://wiki.github.com/80beans/wysihat-engine/examples to get you started. Any questions? Don't hesitate to "ask":http://github.com/inbox/new/jeffkreeftmeijer.
|
8
|
+
|
9
|
+
h2. Demo
|
10
|
+
|
11
|
+
There's a "demo rails app":http://github.com/80beans/wysihat-engine-demo so you can have a quick look around.
|
8
12
|
|
9
13
|
h2. Contributing
|
10
14
|
|
data/Rakefile
CHANGED
@@ -40,19 +40,36 @@ task :minify do
|
|
40
40
|
|
41
41
|
pack.write(compressor.compress(string))
|
42
42
|
pack.close
|
43
|
-
end
|
43
|
+
end
|
44
|
+
|
45
|
+
desc 'create css files from the sass files. It will overwrite files if they already exist.'
|
46
|
+
task :cssify do
|
47
|
+
files = ['facebox', 'wysihat']
|
48
|
+
files.each do |file|
|
49
|
+
system "sass generators/wysihat/templates/sass/#{file}.sass generators/wysihat/templates/css/#{file}.css"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
desc 'create sass files from the css files. It will overwrite files if they already exist.'
|
54
|
+
task :sassify do
|
55
|
+
files = ['facebox', 'wysihat']
|
56
|
+
files.each do |file|
|
57
|
+
system "css2sass generators/wysihat/templates/css/#{file}.css generators/wysihat/templates/sass/#{file}.sass"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
44
61
|
|
45
62
|
begin
|
46
63
|
require 'jeweler'
|
47
64
|
Jeweler::Tasks.new do |gem|
|
48
65
|
gem.name = "wysihat-engine"
|
49
|
-
gem.summary = "A Rails engine to help integrate the 37signals
|
50
|
-
gem.description = "A Rails engine to help integrate the 37signals
|
66
|
+
gem.summary = "A Rails engine to help integrate the 37signals WysiHat rich text editor to your application."
|
67
|
+
gem.description = "A Rails engine to help integrate the 37signals WysiHat rich text editor to your application."
|
51
68
|
gem.email = "jeff@80beans.com"
|
52
69
|
gem.homepage = "http://www.80beans.com/2009/10/01/wysihat-engine/"
|
53
70
|
gem.authors = ["Jeff Kreeftmeijer"]
|
54
71
|
gem.add_development_dependency "yui-compressor", ">= 0.9.1"
|
55
|
-
gem.add_dependency '
|
72
|
+
gem.add_dependency 'paperclip', ">= 2.3.1"
|
56
73
|
end
|
57
74
|
rescue LoadError
|
58
75
|
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
data/TODO
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.7
|
@@ -1,95 +1,60 @@
|
|
1
|
-
#facebox .b {
|
2
|
-
background:url(../images/b.png);
|
3
|
-
}
|
4
|
-
|
5
|
-
#facebox .tl {
|
6
|
-
background:url(../images/tl.png);
|
7
|
-
}
|
8
|
-
|
9
|
-
#facebox .tr {
|
10
|
-
background:url(../images/tr.png);
|
11
|
-
}
|
12
|
-
|
13
|
-
#facebox .bl {
|
14
|
-
background:url(../images/bl.png);
|
15
|
-
}
|
16
|
-
|
17
|
-
#facebox .br {
|
18
|
-
background:url(../images/br.png);
|
19
|
-
}
|
20
|
-
|
21
1
|
#facebox {
|
22
2
|
position: absolute;
|
23
3
|
top: 0;
|
24
4
|
left: 0;
|
25
5
|
z-index: 100;
|
26
|
-
text-align: left;
|
27
|
-
|
28
|
-
|
29
|
-
#facebox .
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
#facebox
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
#facebox
|
38
|
-
|
39
|
-
|
40
|
-
}
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
#facebox .loading {
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
padding-top: 5px;
|
64
|
-
margin-top: 10px;
|
65
|
-
text-align: right;
|
66
|
-
}
|
67
|
-
|
68
|
-
#facebox .tl, #facebox .tr, #facebox .bl, #facebox .br {
|
69
|
-
height: 10px;
|
70
|
-
width: 10px;
|
71
|
-
overflow: hidden;
|
72
|
-
padding: 0;
|
73
|
-
}
|
6
|
+
text-align: left; }
|
7
|
+
#facebox .b {
|
8
|
+
background: url(../images/facebox/b.png); }
|
9
|
+
#facebox .tl {
|
10
|
+
background: url(../images/facebox/tl.png); }
|
11
|
+
#facebox .tr {
|
12
|
+
background: url(../images/facebox/tr.png); }
|
13
|
+
#facebox .bl {
|
14
|
+
background: url(../images/facebox/bl.png); }
|
15
|
+
#facebox .br {
|
16
|
+
background: url(../images/facebox/br.png); }
|
17
|
+
#facebox .popup {
|
18
|
+
position: relative; }
|
19
|
+
#facebox table {
|
20
|
+
border-collapse: collapse; }
|
21
|
+
#facebox td {
|
22
|
+
border-bottom: 0;
|
23
|
+
padding: 0; }
|
24
|
+
#facebox .body {
|
25
|
+
padding: 10px;
|
26
|
+
background: #fff;
|
27
|
+
width: 370px; }
|
28
|
+
#facebox .loading, #facebox .image {
|
29
|
+
text-align: center; }
|
30
|
+
#facebox img {
|
31
|
+
border: 0;
|
32
|
+
margin: 0; }
|
33
|
+
#facebox .footer {
|
34
|
+
border-top: 1px solid #DDDDDD;
|
35
|
+
padding-top: 5px;
|
36
|
+
margin-top: 10px;
|
37
|
+
text-align: right; }
|
38
|
+
#facebox .tl, #facebox .tr, #facebox .bl, #facebox .br {
|
39
|
+
height: 10px;
|
40
|
+
width: 10px;
|
41
|
+
overflow: hidden;
|
42
|
+
padding: 0; }
|
74
43
|
|
75
44
|
#facebox_overlay {
|
76
45
|
position: fixed;
|
77
46
|
top: 0px;
|
78
47
|
left: 0px;
|
79
|
-
height:100%;
|
80
|
-
width:100%;
|
81
|
-
}
|
48
|
+
height: 100%;
|
49
|
+
width: 100%; }
|
82
50
|
|
83
51
|
.facebox_hide {
|
84
|
-
z-index
|
85
|
-
}
|
52
|
+
z-index: -100; }
|
86
53
|
|
87
54
|
.facebox_overlayBG {
|
88
55
|
background-color: #000;
|
89
|
-
z-index: 99;
|
90
|
-
}
|
56
|
+
z-index: 99; }
|
91
57
|
|
92
|
-
* html #facebox_overlay {
|
58
|
+
* html #facebox_overlay {
|
93
59
|
position: absolute;
|
94
|
-
height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
|
95
|
-
}
|
60
|
+
height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); }
|
@@ -1,72 +1,44 @@
|
|
1
|
-
div.editor_toolbar a{
|
2
|
-
float:left;
|
3
|
-
width:16px;
|
4
|
-
height:16px;
|
5
|
-
margin:5px;
|
6
|
-
background-repeat: no-repeat;
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
}
|
12
|
-
|
1
|
+
div.editor_toolbar a {
|
2
|
+
float: left;
|
3
|
+
width: 16px;
|
4
|
+
height: 16px;
|
5
|
+
margin: 5px;
|
6
|
+
background-repeat: no-repeat; }
|
7
|
+
div.editor_toolbar span {
|
8
|
+
display: none; }
|
9
|
+
|
10
|
+
.editor_toolbar .button {
|
11
|
+
background-image: url('../images/icons/exclamation.png'); }
|
13
12
|
.editor_toolbar .bold {
|
14
|
-
background-image: url('../images/text_bold.png');
|
15
|
-
}
|
16
|
-
|
13
|
+
background-image: url('../images/icons/text_bold.png'); }
|
17
14
|
.editor_toolbar .italic {
|
18
|
-
background-image: url('../images/text_italic.png');
|
19
|
-
}
|
20
|
-
|
15
|
+
background-image: url('../images/icons/text_italic.png'); }
|
21
16
|
.editor_toolbar .underline {
|
22
|
-
background-image: url('../images/text_underline.png');
|
23
|
-
}
|
24
|
-
|
17
|
+
background-image: url('../images/icons/text_underline.png'); }
|
25
18
|
.editor_toolbar .strikethrough {
|
26
|
-
background-image: url('../images/text_strikethrough.png');
|
27
|
-
}
|
28
|
-
|
19
|
+
background-image: url('../images/icons/text_strikethrough.png'); }
|
29
20
|
.editor_toolbar .justifyleft {
|
30
|
-
background-image: url('../images/text_align_left.png');
|
31
|
-
}
|
32
|
-
|
21
|
+
background-image: url('../images/icons/text_align_left.png'); }
|
33
22
|
.editor_toolbar .justifycenter {
|
34
|
-
background-image: url('../images/text_align_center.png');
|
35
|
-
}
|
36
|
-
|
23
|
+
background-image: url('../images/icons/text_align_center.png'); }
|
37
24
|
.editor_toolbar .justifyright {
|
38
|
-
background-image: url('../images/text_align_right.png');
|
39
|
-
}
|
40
|
-
|
25
|
+
background-image: url('../images/icons/text_align_right.png'); }
|
41
26
|
.editor_toolbar .undo {
|
42
|
-
background-image: url('../images/arrow_undo.png');
|
43
|
-
}
|
44
|
-
|
27
|
+
background-image: url('../images/icons/arrow_undo.png'); }
|
45
28
|
.editor_toolbar .redo {
|
46
|
-
background-image: url('../images/arrow_redo.png');
|
47
|
-
}
|
48
|
-
|
29
|
+
background-image: url('../images/icons/arrow_redo.png'); }
|
49
30
|
.editor_toolbar .insertorderedlist {
|
50
|
-
background-image: url('../images/text_list_numbers.png');
|
51
|
-
}
|
52
|
-
|
31
|
+
background-image: url('../images/icons/text_list_numbers.png'); }
|
53
32
|
.editor_toolbar .insertunorderedlist {
|
54
|
-
background-image: url('../images/text_list_bullets.png');
|
55
|
-
}
|
56
|
-
|
33
|
+
background-image: url('../images/icons/text_list_bullets.png'); }
|
57
34
|
.editor_toolbar .link {
|
58
|
-
background-image: url('../images/link.png');
|
59
|
-
}
|
60
|
-
|
35
|
+
background-image: url('../images/icons/link.png'); }
|
61
36
|
.editor_toolbar .image {
|
62
|
-
background-image: url('../images/image.png');
|
63
|
-
}
|
64
|
-
|
37
|
+
background-image: url('../images/icons/image.png'); }
|
65
38
|
.editor_toolbar .html {
|
66
|
-
background-image: url('../images/page_code.png');
|
67
|
-
}
|
39
|
+
background-image: url('../images/icons/page_code.png'); }
|
68
40
|
|
69
|
-
iframe.editor{
|
70
|
-
|
71
|
-
|
72
|
-
}
|
41
|
+
iframe.editor {
|
42
|
+
border: 1px solid #999;
|
43
|
+
height: 400px;
|
44
|
+
width: 100%; }
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/generators/wysihat/templates/images/{text_align_center.png → icons/text_align_center.png}
RENAMED
File without changes
|
File without changes
|
data/generators/wysihat/templates/images/{text_align_right.png → icons/text_align_right.png}
RENAMED
File without changes
|
File without changes
|
File without changes
|
data/generators/wysihat/templates/images/{text_list_bullets.png → icons/text_list_bullets.png}
RENAMED
File without changes
|
data/generators/wysihat/templates/images/{text_list_numbers.png → icons/text_list_numbers.png}
RENAMED
File without changes
|
data/generators/wysihat/templates/images/{text_strikethrough.png → icons/text_strikethrough.png}
RENAMED
File without changes
|
File without changes
|
@@ -1,26 +1,16 @@
|
|
1
|
-
/*
|
2
|
-
* By Robert Gaal - http://wakoopa.com
|
1
|
+
/* Facebox for Prototype
|
3
2
|
*
|
4
|
-
*
|
5
|
-
*
|
3
|
+
* This is a slightly updated version of jeffkreeftmeijer's branch of facebox-for-prototype
|
4
|
+
* (http://github.com/jeffkreeftmeijer/facebox-for-prototype). The image locations are
|
5
|
+
* changed -- from /images/ to /images/facebox/ -- to keep the engine nice and tidy.
|
6
6
|
*
|
7
|
-
|
8
|
-
* http://www.opensource.org/licenses/mit-license.php
|
9
|
-
*
|
10
|
-
* Need help? Join the Google Groups mailing list:
|
11
|
-
* http://groups.google.com/group/facebox/
|
12
|
-
*
|
13
|
-
* Dependencies: prototype & script.aculo.us + images & CSS files from original facebox
|
14
|
-
* Usage: Append 'rel="facebox"' to an element to call it inside a so-called facebox
|
15
|
-
*
|
16
|
-
*--------------------------------------------------------------------------*/
|
17
|
-
|
7
|
+
*/
|
18
8
|
|
19
9
|
var Facebox = Class.create({
|
20
10
|
initialize : function(extra_set){
|
21
11
|
this.settings = {
|
22
|
-
loading_image : '/images/loading.gif',
|
23
|
-
close_image : '/images/closelabel.gif',
|
12
|
+
loading_image : '/images/facebox/loading.gif',
|
13
|
+
close_image : '/images/facebox/closelabel.gif',
|
24
14
|
image_types : new RegExp('\.' + ['png', 'jpg', 'jpeg', 'gif'].join('|') + '$', 'i'),
|
25
15
|
inited : true,
|
26
16
|
facebox_html : '\
|
@@ -38,7 +28,7 @@ var Facebox = Class.create({
|
|
38
28
|
</div> \
|
39
29
|
<div class="footer"> \
|
40
30
|
<a href="#" class="close"> \
|
41
|
-
<img src="/images/closelabel.gif" title="close" class="close_image" /> \
|
31
|
+
<img src="/images/facebox/closelabel.gif" title="close" class="close_image" /> \
|
42
32
|
</a> \
|
43
33
|
</div> \
|
44
34
|
</td> \
|
@@ -447,7 +447,7 @@ WysiHat.Window = (function() {
|
|
447
447
|
}
|
448
448
|
|
449
449
|
function getWindow() {
|
450
|
-
if (this.contentDocument)
|
450
|
+
if (this.contentDocument && this.contentDocument.defaultView)
|
451
451
|
return this.contentDocument.defaultView;
|
452
452
|
else if (this.contentWindow.document)
|
453
453
|
return this.contentWindow;
|
@@ -554,31 +554,6 @@ WysiHat.iFrame.Methods = {
|
|
554
554
|
return this;
|
555
555
|
},
|
556
556
|
|
557
|
-
|
558
|
-
linkStyleSheet: function(href) {
|
559
|
-
this.whenReady(function(editor){
|
560
|
-
var document = editor.getDocument();
|
561
|
-
if(document.createStyleSheet) { // IE
|
562
|
-
document.createStyleSheet(css);
|
563
|
-
} else {
|
564
|
-
var head = document.documentElement.getElementsByTagName('head')[0];
|
565
|
-
if (!head) {
|
566
|
-
head=document.createElement('head');
|
567
|
-
document.documentElement.insertBefore(head,document.getElementsByTagName('body')[0]);
|
568
|
-
}
|
569
|
-
var link='<link href="'+href+'" media="screen" rel="stylesheet" type="text/css"/>';
|
570
|
-
head=$(head);
|
571
|
-
if (head.insert) { // Safari
|
572
|
-
$(head).insert(link);
|
573
|
-
} else { // everyone else
|
574
|
-
head.innerHTML=head.innerHTML+link;
|
575
|
-
}
|
576
|
-
}
|
577
|
-
});
|
578
|
-
},
|
579
|
-
|
580
|
-
|
581
|
-
|
582
557
|
/**
|
583
558
|
* WysiHat.iFrame.Methods#getStyle(style) -> string
|
584
559
|
* - style specificication (i.e. backgroundColor)
|
@@ -2017,7 +1992,7 @@ WysiHat.Toolbar = Class.create((function() {
|
|
2017
1992
|
}
|
2018
1993
|
|
2019
1994
|
function createButtonElement(toolbar, options) {
|
2020
|
-
var button = Element('a', {
|
1995
|
+
var button = new Element('a', {
|
2021
1996
|
'class': 'button', 'href': '#'
|
2022
1997
|
});
|
2023
1998
|
button.update('<span>' + options.get('label') + '</span>');
|
@@ -4,12 +4,12 @@ var WysihatHelper = {
|
|
4
4
|
faceboxFile: function()
|
5
5
|
{
|
6
6
|
facebox.loading();
|
7
|
-
new Effect.Appear($('facebox'), {duration: .3});
|
7
|
+
new Effect.Appear($('facebox'), {duration: 0.3});
|
8
8
|
|
9
9
|
var fb = facebox;
|
10
|
-
|
10
|
+
var url = '/wysihat_files/?editor=' + this.id;
|
11
11
|
|
12
|
-
|
12
|
+
new Ajax.Request(url, {
|
13
13
|
method : 'get',
|
14
14
|
onFailure : function(transport){
|
15
15
|
fb.reveal(transport.responseText, null);
|
@@ -26,8 +26,8 @@ var WysihatHelper = {
|
|
26
26
|
this.unlinkSelection();
|
27
27
|
} else {
|
28
28
|
facebox.loading();
|
29
|
-
new Effect.Appear($('facebox'), {duration: .3});
|
30
|
-
iframe = this
|
29
|
+
new Effect.Appear($('facebox'), {duration: 0.3});
|
30
|
+
iframe = this;
|
31
31
|
facebox.reveal('<input type=\"text\" id=\"link_field\" style=\"width:100%;\"/>', null);
|
32
32
|
Event.observe('link_field', 'change', function(event) {
|
33
33
|
iframe.linkSelection($('link_field').value);
|
@@ -38,64 +38,42 @@ var WysihatHelper = {
|
|
38
38
|
faceboxHTML: function()
|
39
39
|
{
|
40
40
|
facebox.loading();
|
41
|
-
new Effect.Appear($('facebox'), {duration: .3});
|
42
|
-
iframe = this
|
41
|
+
new Effect.Appear($('facebox'), {duration: 0.3});
|
42
|
+
iframe = this;
|
43
43
|
facebox.reveal('<textarea id=\"html_editor\" style=\"width:100%; height:400px;\">' + iframe.contentWindow.document.body.innerHTML + '</textarea>', null);
|
44
44
|
Event.observe('html_editor', 'change', function(event) {
|
45
45
|
iframe.contentWindow.document.body.innerHTML = $('html_editor').value;
|
46
46
|
});
|
47
|
-
}
|
48
|
-
}
|
49
|
-
|
50
|
-
WysiHat.Editor.include(WysihatHelper);
|
51
|
-
|
52
|
-
Event.observe(window, 'load', function() {
|
53
|
-
$$('textarea.wysihat_editor').each(function(i){
|
54
|
-
var editor = WysiHat.Editor.attach(i.id);
|
55
|
-
var toolbar = new WysiHat.Toolbar(editor);
|
56
|
-
toolbars[i.id] = toolbar;
|
57
|
-
|
58
|
-
editor.inputFilter = function(text) {
|
59
|
-
return text.formatHTMLOutput().sanitize({
|
60
|
-
tags: ['span', 'p', 'br', 'strong', 'em', 'a'],
|
61
|
-
attributes: ['id', 'href']
|
62
|
-
});
|
63
|
-
};
|
64
|
-
|
65
|
-
editor.observe("wysihat:paste", function(event) {
|
66
|
-
setTimeout(function() {
|
67
|
-
event.target.reload();
|
68
|
-
}, 1);
|
69
|
-
});
|
70
|
-
|
71
|
-
$$('form').each(function(f){
|
72
|
-
f.onsubmit = function(){
|
73
|
-
editor.save();
|
74
|
-
}
|
75
|
-
});
|
76
|
-
});
|
77
|
-
});
|
47
|
+
}
|
48
|
+
};
|
78
49
|
|
79
|
-
function
|
80
|
-
|
81
|
-
|
50
|
+
function wysiHatify(tag_id, buttons){
|
51
|
+
WysiHat.Editor.include(WysihatHelper);
|
52
|
+
var editor = WysiHat.Editor.attach(tag_id);
|
53
|
+
var toolbar = new WysiHat.Toolbar(editor);
|
54
|
+
|
55
|
+
$$('form').each(function(i){
|
56
|
+
i.onsubmit = function(){
|
57
|
+
editor.save();
|
58
|
+
};
|
59
|
+
});
|
82
60
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
})
|
101
|
-
}
|
61
|
+
buttons.each(function(button){
|
62
|
+
switch(button.toLowerCase()){
|
63
|
+
case 'image':
|
64
|
+
toolbar.addButton({label : button.gsub('_','-').camelize().capitalize(), handler: function(editor) { return editor.faceboxFile(editor); }});
|
65
|
+
break;
|
66
|
+
case 'link':
|
67
|
+
toolbar.addButton({label : button.gsub('_','-').camelize().capitalize(), handler: function(editor) { return editor.faceboxLink(editor); }});
|
68
|
+
break;
|
69
|
+
case 'html':
|
70
|
+
toolbar.addButton({label : button.gsub('_','-').camelize().capitalize(), handler: function(editor) { return editor.faceboxHTML(editor); }});
|
71
|
+
break;
|
72
|
+
case 'paste':
|
73
|
+
toolbar.addButton({label : button.gsub('_','-').camelize().capitalize(), handler: function(editor) { return editor.faceboxPaste(editor); }});
|
74
|
+
break;
|
75
|
+
default:
|
76
|
+
toolbar.addButton({label : button.gsub('_','-').camelize().capitalize()});
|
77
|
+
}
|
78
|
+
});
|
79
|
+
}
|