mercury-rails 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -0
- data/README.rdoc +152 -0
- data/VERSION +1 -0
- data/app/assets/images/mercury/button.png +0 -0
- data/app/assets/images/mercury/clippy.png +0 -0
- data/app/assets/images/mercury/default-snippet.png +0 -0
- data/app/assets/images/mercury/loading-dark.gif +0 -0
- data/app/assets/images/mercury/loading-light.gif +0 -0
- data/app/assets/images/mercury/search-icon.png +0 -0
- data/app/assets/images/mercury/toolbar/editable/buttons.png +0 -0
- data/app/assets/images/mercury/toolbar/markupable/buttons.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/_expander.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/_pressed.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/historypanel.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/insertcharacter.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/insertlink.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/insertmedia.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/inserttable.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/inspectorpanel.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/notespanel.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/objectspanel.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/preview.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/redo.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/save.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/todospanel.png +0 -0
- data/app/assets/images/mercury/toolbar/primary/undo.png +0 -0
- data/app/assets/images/mercury/toolbar/snippetable/buttons.png +0 -0
- data/app/assets/javascripts/mercury.js +30 -0
- data/app/assets/javascripts/mercury/dialog.js.coffee +75 -0
- data/app/assets/javascripts/mercury/dialogs/backcolor.js.coffee +6 -0
- data/app/assets/javascripts/mercury/dialogs/forecolor.js.coffee +6 -0
- data/app/assets/javascripts/mercury/dialogs/formatblock.js.coffee +4 -0
- data/app/assets/javascripts/mercury/dialogs/objectspanel.js.coffee +10 -0
- data/app/assets/javascripts/mercury/dialogs/style.js.coffee +4 -0
- data/app/assets/javascripts/mercury/history_buffer.js.coffee +30 -0
- data/app/assets/javascripts/mercury/mercury.js.coffee +293 -0
- data/app/assets/javascripts/mercury/modal.js.coffee +177 -0
- data/app/assets/javascripts/mercury/modals/htmleditor.js.coffee +10 -0
- data/app/assets/javascripts/mercury/modals/insertcharacter.js.coffee +4 -0
- data/app/assets/javascripts/mercury/modals/insertlink.js.coffee +92 -0
- data/app/assets/javascripts/mercury/modals/insertmedia.js.coffee +72 -0
- data/app/assets/javascripts/mercury/modals/insertsnippet.js.coffee +11 -0
- data/app/assets/javascripts/mercury/modals/inserttable.js.coffee +56 -0
- data/app/assets/javascripts/mercury/native_extensions.js.coffee +47 -0
- data/app/assets/javascripts/mercury/page_editor.js.coffee +139 -0
- data/app/assets/javascripts/mercury/palette.js.coffee +29 -0
- data/app/assets/javascripts/mercury/panel.js.coffee +97 -0
- data/app/assets/javascripts/mercury/region.js.coffee +103 -0
- data/app/assets/javascripts/mercury/regions/editable.js.coffee +546 -0
- data/app/assets/javascripts/mercury/regions/markupable.js.coffee +380 -0
- data/app/assets/javascripts/mercury/regions/snippetable.js.coffee +127 -0
- data/app/assets/javascripts/mercury/select.js.coffee +40 -0
- data/app/assets/javascripts/mercury/snippet.js.coffee +92 -0
- data/app/assets/javascripts/mercury/snippet_toolbar.js.coffee +69 -0
- data/app/assets/javascripts/mercury/statusbar.js.coffee +25 -0
- data/app/assets/javascripts/mercury/table_editor.js.coffee +266 -0
- data/app/assets/javascripts/mercury/toolbar.button.js.coffee +152 -0
- data/app/assets/javascripts/mercury/toolbar.button_group.js.coffee +42 -0
- data/app/assets/javascripts/mercury/toolbar.expander.js.coffee +56 -0
- data/app/assets/javascripts/mercury/toolbar.js.coffee +72 -0
- data/app/assets/javascripts/mercury/tooltip.js.coffee +67 -0
- data/app/assets/javascripts/mercury/uploader.js.coffee +213 -0
- data/app/assets/javascripts/mercury/websocket.js.coffee +34 -0
- data/app/assets/stylesheets/mercury.css +31 -0
- data/app/assets/stylesheets/mercury/dialog.scss +178 -0
- data/app/assets/stylesheets/mercury/mercury.scss +119 -0
- data/app/assets/stylesheets/mercury/modal.scss +192 -0
- data/app/assets/stylesheets/mercury/statusbar.scss +23 -0
- data/app/assets/stylesheets/mercury/toolbar.scss +417 -0
- data/app/assets/stylesheets/mercury/tooltip.scss +26 -0
- data/app/assets/stylesheets/mercury/uploader.scss +109 -0
- data/app/controllers/images_controller.rb +19 -0
- data/app/controllers/mercury_controller.rb +20 -0
- data/app/models/image.rb +14 -0
- data/app/views/layouts/mercury.html.haml +12 -0
- data/app/views/mercury/modals/character.html.haml +252 -0
- data/app/views/mercury/modals/htmleditor.html.haml +8 -0
- data/app/views/mercury/modals/link.html.haml +31 -0
- data/app/views/mercury/modals/media.html.haml +33 -0
- data/app/views/mercury/modals/sanitizer.html.haml +4 -0
- data/app/views/mercury/modals/table.html.haml +49 -0
- data/app/views/mercury/palettes/backcolor.html.haml +79 -0
- data/app/views/mercury/palettes/forecolor.html.haml +79 -0
- data/app/views/mercury/panels/history.html.haml +0 -0
- data/app/views/mercury/panels/notes.html.haml +0 -0
- data/app/views/mercury/panels/snippets.html.haml +10 -0
- data/app/views/mercury/selects/formatblock.html.haml +10 -0
- data/app/views/mercury/selects/style.html.haml +4 -0
- data/app/views/mercury/snippets/example.html.haml +2 -0
- data/app/views/mercury/snippets/example_options.html.haml +16 -0
- data/config/engine.rb +6 -0
- data/config/routes.rb +15 -0
- data/db/migrate/20110526035601_create_images.rb +11 -0
- data/features/editing/basic.feature +11 -0
- data/features/step_definitions/debug_steps.rb +14 -0
- data/features/step_definitions/web_steps.rb +211 -0
- data/features/support/env.rb +46 -0
- data/features/support/paths.rb +35 -0
- data/features/support/selectors.rb +42 -0
- data/lib/mercury-rails.rb +4 -0
- data/log/.gitkeep +0 -0
- data/mercury-rails.gemspec +230 -0
- data/spec/javascripts/mercury/dialog_spec.js.coffee +258 -0
- data/spec/javascripts/mercury/history_buffer_spec.js.coffee +79 -0
- data/spec/javascripts/mercury/mercury_spec.js.coffee +52 -0
- data/spec/javascripts/mercury/native_extensions_spec.js.coffee +66 -0
- data/spec/javascripts/mercury/page_editor_spec.js.coffee +435 -0
- data/spec/javascripts/mercury/palette_spec.js.coffee +51 -0
- data/spec/javascripts/mercury/panel_spec.js.coffee +147 -0
- data/spec/javascripts/mercury/region_spec.js.coffee +261 -0
- data/spec/javascripts/mercury/regions/_editable_.js.coffee +0 -0
- data/spec/javascripts/mercury/regions/_markupable_.js.coffee +0 -0
- data/spec/javascripts/mercury/regions/snippetable_spec.js.coffee +368 -0
- data/spec/javascripts/mercury/select_spec.js.coffee +51 -0
- data/spec/javascripts/mercury/snippet_spec.js.coffee +246 -0
- data/spec/javascripts/mercury/snippet_toolbar_spec.js.coffee +186 -0
- data/spec/javascripts/mercury/statusbar_spec.js.coffee +78 -0
- data/spec/javascripts/mercury/table_editor_spec.js.coffee +192 -0
- data/spec/javascripts/mercury/toolbar.button_group_spec.js.coffee +92 -0
- data/spec/javascripts/mercury/toolbar.button_spec.js.coffee +341 -0
- data/spec/javascripts/mercury/toolbar.expander_spec.js.coffee +120 -0
- data/spec/javascripts/mercury/toolbar_spec.js.coffee +152 -0
- data/spec/javascripts/mercury/tooltip_spec.js.coffee +188 -0
- data/spec/javascripts/mercury/uploader_spec.js.coffee +512 -0
- data/spec/javascripts/responses/blank.html +1 -0
- data/spec/javascripts/spec_helper.js +513 -0
- data/spec/javascripts/templates/mercury/dialog.html +2 -0
- data/spec/javascripts/templates/mercury/page_editor.html +24 -0
- data/spec/javascripts/templates/mercury/palette.html +16 -0
- data/spec/javascripts/templates/mercury/panel.html +16 -0
- data/spec/javascripts/templates/mercury/region.html +2 -0
- data/spec/javascripts/templates/mercury/regions/snippetable.html +4 -0
- data/spec/javascripts/templates/mercury/select.html +16 -0
- data/spec/javascripts/templates/mercury/snippet.html +1 -0
- data/spec/javascripts/templates/mercury/snippet_toolbar.html +16 -0
- data/spec/javascripts/templates/mercury/statusbar.html +7 -0
- data/spec/javascripts/templates/mercury/table_editor.html +65 -0
- data/spec/javascripts/templates/mercury/toolbar.button.html +64 -0
- data/spec/javascripts/templates/mercury/toolbar.button_group.html +9 -0
- data/spec/javascripts/templates/mercury/toolbar.expander.html +18 -0
- data/spec/javascripts/templates/mercury/toolbar.html +10 -0
- data/spec/javascripts/templates/mercury/tooltip.html +12 -0
- data/spec/javascripts/templates/mercury/uploader.html +11 -0
- data/vendor/assets/javascripts/jquery-1.6.js +8865 -0
- data/vendor/assets/javascripts/jquery-ui-1.8.13.custom.min.js +249 -0
- data/vendor/assets/javascripts/jquery-ui-1.8.13.sortable.custom.js +1078 -0
- data/vendor/assets/javascripts/jquery.easing.js +173 -0
- data/vendor/assets/javascripts/jquery.json2.js +178 -0
- data/vendor/assets/javascripts/jquery.serialize_object.js +16 -0
- data/vendor/assets/javascripts/jquery.ujs.js +289 -0
- data/vendor/assets/javascripts/liquidmetal.js +88 -0
- data/vendor/assets/javascripts/showdown.js +1362 -0
- metadata +364 -0
@@ -0,0 +1,109 @@
|
|
1
|
+
/*
|
2
|
+
* Uploader
|
3
|
+
*----------------------------------------------------------------------------*/
|
4
|
+
.mercury-uploader-overlay {
|
5
|
+
position: absolute;
|
6
|
+
z-index: 10040;
|
7
|
+
top: 0;
|
8
|
+
left: 0;
|
9
|
+
width: 100%;
|
10
|
+
height: 100%;
|
11
|
+
opacity: .95;
|
12
|
+
/*display: none;*/
|
13
|
+
background: rgba(0,0,0, .65);
|
14
|
+
}
|
15
|
+
.mercury-uploader {
|
16
|
+
position: absolute;
|
17
|
+
z-index: 10050;
|
18
|
+
top: 300px;
|
19
|
+
left: 400px;
|
20
|
+
width: 500px;
|
21
|
+
height: 150px;
|
22
|
+
overflow: hidden;
|
23
|
+
padding: 15px;
|
24
|
+
background: rgba(0,0,0, .70);
|
25
|
+
border-radius: 10px;
|
26
|
+
-moz-border-radius: 10px;
|
27
|
+
font: normal normal normal 12px/normal Helvetica, Tahoma, Arial, sans-serif;
|
28
|
+
color: #CCC;
|
29
|
+
.mercury-uploader-preview {
|
30
|
+
float: left;
|
31
|
+
width: 150px;
|
32
|
+
height: 150px;
|
33
|
+
border: 1px solid #CCC;
|
34
|
+
border-radius: 5px;
|
35
|
+
-moz-border-radius: 5px;
|
36
|
+
b {
|
37
|
+
display: table-cell;
|
38
|
+
width: 150px;
|
39
|
+
height: 150px;
|
40
|
+
text-align: center;
|
41
|
+
vertical-align: middle;
|
42
|
+
}
|
43
|
+
img {
|
44
|
+
margin: 5px;
|
45
|
+
max-width: 140px;
|
46
|
+
max-height: 140px;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
.mercury-uploader-details {
|
50
|
+
width: 333px;
|
51
|
+
overflow: hidden;
|
52
|
+
float: left;
|
53
|
+
padding-left: 15px;
|
54
|
+
span {
|
55
|
+
color: #F00;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
.mercury-uploader-progress {
|
59
|
+
position: absolute;
|
60
|
+
bottom: 15px;
|
61
|
+
right: 15px;
|
62
|
+
width: 333px;
|
63
|
+
div.mercury-uploader-indicator {
|
64
|
+
width: 100%;
|
65
|
+
height: 30px;
|
66
|
+
margin: 5px 0 0;
|
67
|
+
position: relative;
|
68
|
+
background-color: #BABABA;
|
69
|
+
border-radius: 35px;
|
70
|
+
-moz-border-radius: 35px;
|
71
|
+
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #C7C7C7), color-stop(1, #B0B0B0));
|
72
|
+
background: -moz-linear-gradient(#B0B0B0 0%, #C7C7C7 100%);
|
73
|
+
-webkit-box-shadow: inset 0px 1px 2px 0px rgba(0,0,0, 0.5), 0px 1px 0px 0px rgba(255,255,255, 0.3);
|
74
|
+
-moz-box-shadow: inset 0px 1px 2px 0px rgba(0,0,0, 0.5), 0px 1px 0px 0px rgba(255,255,255, 0.3);
|
75
|
+
box-shadow: inset 0px 1px 2px 0px rgba(0,0,0, 0.5), 0px 1px 0px 0px rgba(255,255,255, 0.3);
|
76
|
+
div {
|
77
|
+
min-width: 28px;
|
78
|
+
position: relative;
|
79
|
+
overflow: hidden;
|
80
|
+
height: 28px;
|
81
|
+
border-radius: 35px;
|
82
|
+
width: 0;
|
83
|
+
-moz-border-radius: 35px;
|
84
|
+
-webkit-animation: animate-stripes 2s linear infinite;
|
85
|
+
-webkit-background-size: 44px 44px;
|
86
|
+
background: -webkit-gradient(linear, 0 0, 44 44, color-stop(0.00, rgba(255,255,255, 0.17)), color-stop(0.25, rgba(255,255,255, 0.17)), color-stop(0.26, rgba(255,255,255, 0)), color-stop(0.50, rgba(255,255,255, 0)), color-stop(0.51, rgba(255,255,255, 0.17)), color-stop(0.75, rgba(255,255,255, 0.17)), color-stop(0.76, rgba(255,255,255, 0)), color-stop(1.00, rgba(255,255,255, 0))),
|
87
|
+
-webkit-gradient(linear, left bottom, left top, color-stop(0, rgba(255,255,255, 0.1)), color-stop(1, rgba(255,255,255, 0.37)));
|
88
|
+
background: -moz-repeating-linear-gradient(top left -30deg, rgba(255,255,255, 0.17), rgba(255,255,255, 0.17) 15px, rgba(255,255,255, 0) 15px, rgba(255,255,255, 0) 30px),
|
89
|
+
-moz-linear-gradient(rgba(255,255,255, 0.1) 0%, rgba(255,255,255, 0.37) 100%);
|
90
|
+
background-color: #09F;
|
91
|
+
box-shadow: inset 0px 1px 0px 0px rgba(255,255,255, 0.4),
|
92
|
+
inset 0px -1px 1px rgba(0,0,0, 0.2);
|
93
|
+
-moz-box-shadow: inset 0px 1px 0px 0px rgba(255,255,255, 0.4),
|
94
|
+
inset 0px -1px 1px rgba(0,0,0, 0.2);
|
95
|
+
border: 1px solid #0083DA;
|
96
|
+
b {
|
97
|
+
display: none;
|
98
|
+
position: absolute;
|
99
|
+
right: 0;
|
100
|
+
line-height: 28px;
|
101
|
+
padding-right: 12px;
|
102
|
+
color: rgba(0, 0, 0, .6);
|
103
|
+
text-shadow: rgba(255, 255, 255, 0.45) 0 1px 0px;
|
104
|
+
white-space: nowrap;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
}
|
108
|
+
}
|
109
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class ImagesController < MercuryController
|
2
|
+
|
3
|
+
respond_to :json
|
4
|
+
|
5
|
+
# POST /images.json
|
6
|
+
def create
|
7
|
+
@image = Image.new(params[:image])
|
8
|
+
@image.save
|
9
|
+
respond_with @image
|
10
|
+
end
|
11
|
+
|
12
|
+
# DELETE /images/1.json
|
13
|
+
def destroy
|
14
|
+
@image = Image.find(params[:id])
|
15
|
+
@image.destroy
|
16
|
+
respond_with @image
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class MercuryController < ActionController::Base
|
2
|
+
protect_from_forgery
|
3
|
+
|
4
|
+
def edit
|
5
|
+
render text: '', layout: 'mercury'
|
6
|
+
end
|
7
|
+
|
8
|
+
def resource
|
9
|
+
render action: "/#{params[:type]}/#{params[:resource]}", layout: false
|
10
|
+
end
|
11
|
+
|
12
|
+
def snippet_options
|
13
|
+
render action: "/snippets/#{params[:name]}_options", layout: false
|
14
|
+
end
|
15
|
+
|
16
|
+
def snippet_preview
|
17
|
+
render action: "/snippets/#{params[:name]}", layout: false
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/app/models/image.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
class Image < ActiveRecord::Base
|
2
|
+
|
3
|
+
has_attached_file :image, styles: { medium: "300x300>", thumb: "100x100>" }
|
4
|
+
|
5
|
+
delegate :url, to: :image
|
6
|
+
|
7
|
+
def serializable_hash(options = nil)
|
8
|
+
options ||= {}
|
9
|
+
options[:methods] ||= []
|
10
|
+
options[:methods] << :url
|
11
|
+
super(options)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title Mercury Editor
|
5
|
+
= csrf_meta_tags
|
6
|
+
= stylesheet_link_tag "mercury"
|
7
|
+
= javascript_include_tag "mercury"
|
8
|
+
:javascript
|
9
|
+
Mercury.Snippet.load({
|
10
|
+
'snippet_1': {name: 'example', options: {'options[favorite_beer]': "miller_lite", 'options[first_name]': "1"}},
|
11
|
+
});
|
12
|
+
%body= javascript_tag 'new Mercury.PageEditor()'
|
@@ -0,0 +1,252 @@
|
|
1
|
+
%form#mercury_insertcharacter{ style: 'width:456px' }
|
2
|
+
|
3
|
+
.mercury-modal-pane-container
|
4
|
+
.mercury-modal-pane
|
5
|
+
|
6
|
+
.character{ data: {entity: "#34"}, title: "quotation mark (APL quote)" } "
|
7
|
+
.character{ data: {entity: "#38"}, title: "ampersand" } &
|
8
|
+
.character{ data: {entity: "#60"}, title: "less-than sign" } <
|
9
|
+
.character{ data: {entity: "#62"}, title: "greater-than sign" } >
|
10
|
+
.character{ data: {entity: "#710"}, title: "modifier letter circumflex accent" } ˆ
|
11
|
+
.character{ data: {entity: "#732"}, title: "small tilde" } ˜
|
12
|
+
.character{ data: {entity: "#160"}, title: "non-breaking space" }  
|
13
|
+
.character{ data: {entity: "#8194"}, title: "en space" }  
|
14
|
+
.character{ data: {entity: "#8195"}, title: "em space" }  
|
15
|
+
.character{ data: {entity: "#8201"}, title: "thin space" }  
|
16
|
+
.character{ data: {entity: "#8211"}, title: "en dash" } –
|
17
|
+
.character{ data: {entity: "#8212"}, title: "em dash" } —
|
18
|
+
.character{ data: {entity: "#8216"}, title: "left single quotation mark" } ‘
|
19
|
+
.character{ data: {entity: "#8217"}, title: "right single quotation mark" } ’
|
20
|
+
.character{ data: {entity: "#8218"}, title: "single low-9 quotation mark" } ‚
|
21
|
+
.character{ data: {entity: "#8220"}, title: "left double quotation mark" } “
|
22
|
+
.character{ data: {entity: "#8221"}, title: "right double quotation mark" } ”
|
23
|
+
.character{ data: {entity: "#8222"}, title: "double low-9 quotation mark" } „
|
24
|
+
.character{ data: {entity: "#8224"}, title: "dagger" } †
|
25
|
+
.character{ data: {entity: "#8225"}, title: "double dagger" } ‡
|
26
|
+
.character{ data: {entity: "#8240"}, title: "per mille sign" } ‰
|
27
|
+
.character{ data: {entity: "#8249"}, title: "single left-pointing angle quotation mark" } ‹
|
28
|
+
.character{ data: {entity: "#8250"}, title: "single right-pointing angle quotation mark" } ›
|
29
|
+
.character{ data: {entity: "#161"}, title: "inverted exclamation mark" } ¡
|
30
|
+
.character{ data: {entity: "#162"}, title: "cent sign" } ¢
|
31
|
+
.character{ data: {entity: "#163"}, title: "pound sign" } £
|
32
|
+
.character{ data: {entity: "#164"}, title: "currency sign" } ¤
|
33
|
+
.character{ data: {entity: "#165"}, title: "yen sign" } ¥
|
34
|
+
.character{ data: {entity: "#166"}, title: "broken bar" } ¦
|
35
|
+
.character{ data: {entity: "#167"}, title: "section sign" } §
|
36
|
+
.character{ data: {entity: "#168"}, title: "spacing diaeresis" } ¨
|
37
|
+
.character{ data: {entity: "#169"}, title: "copyright sign" } ©
|
38
|
+
.character{ data: {entity: "#170"}, title: "feminine ordinal indicator" } ª
|
39
|
+
.character{ data: {entity: "#186"}, title: "masculine ordinal indicator" } º
|
40
|
+
.character{ data: {entity: "#171"}, title: "left pointing guillemet" } «
|
41
|
+
.character{ data: {entity: "#172"}, title: "not sign" } ¬
|
42
|
+
.character{ data: {entity: "#174"}, title: "registered trade mark sign" } ®
|
43
|
+
.character{ data: {entity: "#175"}, title: "spacing macron" } ¯
|
44
|
+
.character{ data: {entity: "#176"}, title: "degree sign" } °
|
45
|
+
.character{ data: {entity: "#177"}, title: "plus-or-minus sign" } ±
|
46
|
+
.character{ data: {entity: "#185"}, title: "superscript one" } ¹
|
47
|
+
.character{ data: {entity: "#178"}, title: "superscript digit two" } ²
|
48
|
+
.character{ data: {entity: "#179"}, title: "superscript digit three" } ³
|
49
|
+
.character{ data: {entity: "#180"}, title: "acute accent" } ´
|
50
|
+
.character{ data: {entity: "#181"}, title: "micro sign" } µ
|
51
|
+
.character{ data: {entity: "#182"}, title: "pilcrow sign" } ¶
|
52
|
+
.character{ data: {entity: "#183"}, title: "middle dot" } ·
|
53
|
+
.character{ data: {entity: "#184"}, title: "cedilla" } ¸
|
54
|
+
.character{ data: {entity: "#187"}, title: "right-pointing double angle quotation mark" } »
|
55
|
+
.character{ data: {entity: "#188"}, title: "fraction one quarter" } ¼
|
56
|
+
.character{ data: {entity: "#189"}, title: "fraction one half" } ½
|
57
|
+
.character{ data: {entity: "#190"}, title: "fraction three quarters" } ¾
|
58
|
+
.character{ data: {entity: "#191"}, title: "inverted question mark" } ¿
|
59
|
+
.character{ data: {entity: "#215"}, title: "multiplication sign" } ×
|
60
|
+
.character{ data: {entity: "#247"}, title: "division sign" } ÷
|
61
|
+
.character{ data: {entity: "#192"}, title: "latin capital letter A with grave" } À
|
62
|
+
.character{ data: {entity: "#224"}, title: "latin small letter a with grave" } à
|
63
|
+
.character{ data: {entity: "#193"}, title: "latin capital letter A with acute" } Á
|
64
|
+
.character{ data: {entity: "#225"}, title: "latin small letter a with acute" } á
|
65
|
+
.character{ data: {entity: "#194"}, title: "latin capital letter A with circumflex" } Â
|
66
|
+
.character{ data: {entity: "#226"}, title: "latin small letter a with circumflex" } â
|
67
|
+
.character{ data: {entity: "#195"}, title: "latin capital letter A with tilde" } Ã
|
68
|
+
.character{ data: {entity: "#227"}, title: "latin small letter a with tilde" } ã
|
69
|
+
.character{ data: {entity: "#196"}, title: "latin capital letter A with diaeresis" } Ä
|
70
|
+
.character{ data: {entity: "#228"}, title: "latin small letter a with diaeresis" } ä
|
71
|
+
.character{ data: {entity: "#197"}, title: "latin capital letter A with ring above" } Å
|
72
|
+
.character{ data: {entity: "#229"}, title: "latin small letter a with ring above" } å
|
73
|
+
.character{ data: {entity: "#200"}, title: "latin capital letter E with grave" } È
|
74
|
+
.character{ data: {entity: "#232"}, title: "latin small letter e with grave" } è
|
75
|
+
.character{ data: {entity: "#201"}, title: "latin capital letter E with acute" } É
|
76
|
+
.character{ data: {entity: "#233"}, title: "latin small letter e with acute" } é
|
77
|
+
.character{ data: {entity: "#202"}, title: "latin capital letter E with circumflex" } Ê
|
78
|
+
.character{ data: {entity: "#234"}, title: "latin small letter e with circumflex" } ê
|
79
|
+
.character{ data: {entity: "#203"}, title: "latin capital letter E with diaeresis" } Ë
|
80
|
+
.character{ data: {entity: "#235"}, title: "latin small letter e with diaeresis" } ë
|
81
|
+
.character{ data: {entity: "#204"}, title: "latin capital letter I with grave" } Ì
|
82
|
+
.character{ data: {entity: "#236"}, title: "latin small letter i with grave" } ì
|
83
|
+
.character{ data: {entity: "#205"}, title: "latin capital letter I with acute" } Í
|
84
|
+
.character{ data: {entity: "#237"}, title: "latin small letter i with acute" } í
|
85
|
+
.character{ data: {entity: "#206"}, title: "latin capital letter I with circumflex" } Î
|
86
|
+
.character{ data: {entity: "#238"}, title: "latin small letter i with circumflex" } î
|
87
|
+
.character{ data: {entity: "#207"}, title: "latin capital letter I with diaeresis" } Ï
|
88
|
+
.character{ data: {entity: "#239"}, title: "latin small letter i with diaeresis" } ï
|
89
|
+
.character{ data: {entity: "#210"}, title: "latin capital letter O with grave" } Ò
|
90
|
+
.character{ data: {entity: "#242"}, title: "latin small letter o with grave" } ò
|
91
|
+
.character{ data: {entity: "#211"}, title: "latin capital letter O with acute" } Ó
|
92
|
+
.character{ data: {entity: "#243"}, title: "latin small letter o with acute" } ó
|
93
|
+
.character{ data: {entity: "#212"}, title: "latin capital letter O with circumflex" } Ô
|
94
|
+
.character{ data: {entity: "#244"}, title: "latin small letter o with circumflex" } ô
|
95
|
+
.character{ data: {entity: "#213"}, title: "latin capital letter O with tilde" } Õ
|
96
|
+
.character{ data: {entity: "#245"}, title: "latin small letter o with tilde" } õ
|
97
|
+
.character{ data: {entity: "#214"}, title: "latin capital letter O with diaeresis" } Ö
|
98
|
+
.character{ data: {entity: "#246"}, title: "latin small letter o with diaeresis" } ö
|
99
|
+
.character{ data: {entity: "#216"}, title: "latin capital letter O with stroke" } Ø
|
100
|
+
.character{ data: {entity: "#248"}, title: "latin small letter o with stroke" } ø
|
101
|
+
.character{ data: {entity: "#217"}, title: "latin capital letter U with grave" } Ù
|
102
|
+
.character{ data: {entity: "#249"}, title: "latin small letter u with grave" } ù
|
103
|
+
.character{ data: {entity: "#218"}, title: "latin capital letter U with acute" } Ú
|
104
|
+
.character{ data: {entity: "#250"}, title: "latin small letter u with acute" } ú
|
105
|
+
.character{ data: {entity: "#219"}, title: "latin capital letter U with circumflex" } Û
|
106
|
+
.character{ data: {entity: "#251"}, title: "latin small letter u with circumflex" } û
|
107
|
+
.character{ data: {entity: "#220"}, title: "latin capital letter U with diaeresis" } Ü
|
108
|
+
.character{ data: {entity: "#252"}, title: "latin small letter u with diaeresis" } ü
|
109
|
+
.character{ data: {entity: "#221"}, title: "latin capital letter Y with acute" } Ý
|
110
|
+
.character{ data: {entity: "#253"}, title: "latin small letter y with acute" } ý
|
111
|
+
.character{ data: {entity: "#376"}, title: "latin capital letter Y with diaeresis" } Ÿ
|
112
|
+
.character{ data: {entity: "#255"}, title: "latin small letter y with diaeresis" } ÿ
|
113
|
+
.character{ data: {entity: "#198"}, title: "latin capital ligature AE" } Æ
|
114
|
+
.character{ data: {entity: "#230"}, title: "latin small ligature ae" } æ
|
115
|
+
.character{ data: {entity: "#338"}, title: "latin capital ligature OE" } Œ
|
116
|
+
.character{ data: {entity: "#339"}, title: "latin small ligature oe" } œ
|
117
|
+
.character{ data: {entity: "#352"}, title: "latin capital letter S with caron" } Š
|
118
|
+
.character{ data: {entity: "#353"}, title: "latin small letter s with caron" } š
|
119
|
+
.character{ data: {entity: "#199"}, title: "latin capital letter C with cedilla" } Ç
|
120
|
+
.character{ data: {entity: "#231"}, title: "latin small letter c with cedilla" } ç
|
121
|
+
.character{ data: {entity: "#208"}, title: "latin capital letter ETH" } Ð
|
122
|
+
.character{ data: {entity: "#240"}, title: "latin small letter eth" } ð
|
123
|
+
.character{ data: {entity: "#209"}, title: "latin capital letter N with tilde" } Ñ
|
124
|
+
.character{ data: {entity: "#241"}, title: "latin small letter n with tilde" } ñ
|
125
|
+
.character{ data: {entity: "#222"}, title: "latin capital letter THORN" } Þ
|
126
|
+
.character{ data: {entity: "#254"}, title: "latin small letter thorn" } þ
|
127
|
+
.character{ data: {entity: "#223"}, title: "latin small letter sharp s (ess-zed)" } ß
|
128
|
+
.character{ data: {entity: "#402"}, title: "latin small f with hook (function)" } ƒ
|
129
|
+
.character{ data: {entity: "#913"}, title: "greek capital letter alpha" } Α
|
130
|
+
.character{ data: {entity: "#914"}, title: "greek capital letter beta" } Β
|
131
|
+
.character{ data: {entity: "#915"}, title: "greek capital letter gamma" } Γ
|
132
|
+
.character{ data: {entity: "#916"}, title: "greek capital letter delta" } Δ
|
133
|
+
.character{ data: {entity: "#917"}, title: "greek capital letter epsilon" } Ε
|
134
|
+
.character{ data: {entity: "#918"}, title: "greek capital letter zeta" } Ζ
|
135
|
+
.character{ data: {entity: "#919"}, title: "greek capital letter eta" } Η
|
136
|
+
.character{ data: {entity: "#920"}, title: "greek capital letter theta" } Θ
|
137
|
+
.character{ data: {entity: "#921"}, title: "greek capital letter iota" } Ι
|
138
|
+
.character{ data: {entity: "#922"}, title: "greek capital letter kappa" } Κ
|
139
|
+
.character{ data: {entity: "#923"}, title: "greek capital letter lambda" } Λ
|
140
|
+
.character{ data: {entity: "#924"}, title: "greek capital letter mu" } Μ
|
141
|
+
.character{ data: {entity: "#925"}, title: "greek capital letter nu" } Ν
|
142
|
+
.character{ data: {entity: "#926"}, title: "greek capital letter xi" } Ξ
|
143
|
+
.character{ data: {entity: "#927"}, title: "greek capital letter omicron" } Ο
|
144
|
+
.character{ data: {entity: "#928"}, title: "greek capital letter pi" } Π
|
145
|
+
.character{ data: {entity: "#929"}, title: "greek capital letter rho" } Ρ
|
146
|
+
.character{ data: {entity: "#931"}, title: "greek capital letter sigma" } Σ
|
147
|
+
.character{ data: {entity: "#932"}, title: "greek capital letter tau" } Τ
|
148
|
+
.character{ data: {entity: "#933"}, title: "greek capital letter upsilon" } Υ
|
149
|
+
.character{ data: {entity: "#934"}, title: "greek capital letter phi" } Φ
|
150
|
+
.character{ data: {entity: "#935"}, title: "greek capital letter chi" } Χ
|
151
|
+
.character{ data: {entity: "#936"}, title: "greek capital letter psi" } Ψ
|
152
|
+
.character{ data: {entity: "#937"}, title: "greek capital letter omega" } Ω
|
153
|
+
.character{ data: {entity: "#945"}, title: "greek small letter alpha" } α
|
154
|
+
.character{ data: {entity: "#946"}, title: "greek small letter beta" } β
|
155
|
+
.character{ data: {entity: "#947"}, title: "greek small letter gamma" } γ
|
156
|
+
.character{ data: {entity: "#948"}, title: "greek small letter delta" } δ
|
157
|
+
.character{ data: {entity: "#949"}, title: "greek small letter epsilon" } ε
|
158
|
+
.character{ data: {entity: "#950"}, title: "greek small letter zeta" } ζ
|
159
|
+
.character{ data: {entity: "#951"}, title: "greek small letter eta" } η
|
160
|
+
.character{ data: {entity: "#952"}, title: "greek small letter theta" } θ
|
161
|
+
.character{ data: {entity: "#953"}, title: "greek small letter iota" } ι
|
162
|
+
.character{ data: {entity: "#954"}, title: "greek small letter kappa" } κ
|
163
|
+
.character{ data: {entity: "#955"}, title: "greek small letter lambda" } λ
|
164
|
+
.character{ data: {entity: "#956"}, title: "greek small letter mu" } μ
|
165
|
+
.character{ data: {entity: "#957"}, title: "greek small letter nu" } ν
|
166
|
+
.character{ data: {entity: "#958"}, title: "greek small letter xi" } ξ
|
167
|
+
.character{ data: {entity: "#959"}, title: "greek small letter omicron" } ο
|
168
|
+
.character{ data: {entity: "#960"}, title: "greek small letter pi" } π
|
169
|
+
.character{ data: {entity: "#961"}, title: "greek small letter rho" } ρ
|
170
|
+
.character{ data: {entity: "#962"}, title: "greek small letter final sigma" } ς
|
171
|
+
.character{ data: {entity: "#963"}, title: "greek small letter sigma" } σ
|
172
|
+
.character{ data: {entity: "#964"}, title: "greek small letter tau" } τ
|
173
|
+
.character{ data: {entity: "#965"}, title: "greek small letter upsilon" } υ
|
174
|
+
.character{ data: {entity: "#966"}, title: "greek small letter phi" } φ
|
175
|
+
.character{ data: {entity: "#967"}, title: "greek small letter chi" } χ
|
176
|
+
.character{ data: {entity: "#968"}, title: "greek small letter psi" } ψ
|
177
|
+
.character{ data: {entity: "#969"}, title: "greek small letter omega" } ω
|
178
|
+
.character{ data: {entity: "#977"}, title: "greek small letter theta symbol" } ϑ
|
179
|
+
.character{ data: {entity: "#978"}, title: "greek upsilon with hook symbol" } ϒ
|
180
|
+
.character{ data: {entity: "#982"}, title: "greek pi symbol" } ϖ
|
181
|
+
.character{ data: {entity: "#8226"}, title: "bullet (black small circle)" } •
|
182
|
+
.character{ data: {entity: "#8230"}, title: "horizontal ellipsis" } …
|
183
|
+
.character{ data: {entity: "#8242"}, title: "prime (minutes/feet)" } ′
|
184
|
+
.character{ data: {entity: "#8243"}, title: "double prime (seconds/inches)" } ″
|
185
|
+
.character{ data: {entity: "#8254"}, title: "overline" } ‾
|
186
|
+
.character{ data: {entity: "#8260"}, title: "fraction slash" } ⁄
|
187
|
+
.character{ data: {entity: "#8472"}, title: "Weierstrass p" } ℘
|
188
|
+
.character{ data: {entity: "#8465"}, title: "imaginary part" } ℑ
|
189
|
+
.character{ data: {entity: "#8476"}, title: "real part symbol" } ℜ
|
190
|
+
.character{ data: {entity: "#8482"}, title: "trade mark sign" } ™
|
191
|
+
.character{ data: {entity: "#8501"}, title: "first transfinite cardinal" } ℵ
|
192
|
+
.character{ data: {entity: "#8592"}, title: "leftwards arrow" } ←
|
193
|
+
.character{ data: {entity: "#8593"}, title: "upwards arrow" } ↑
|
194
|
+
.character{ data: {entity: "#8594"}, title: "rightwards arrow" } →
|
195
|
+
.character{ data: {entity: "#8595"}, title: "downwards arrow" } ↓
|
196
|
+
.character{ data: {entity: "#8596"}, title: "left right arrow" } ↔
|
197
|
+
.character{ data: {entity: "#8629"}, title: "downwards arrow with corner leftwards" } ↵
|
198
|
+
.character{ data: {entity: "#8656"}, title: "leftwards double arrow" } ⇐
|
199
|
+
.character{ data: {entity: "#8657"}, title: "upwards double arrow" } ⇑
|
200
|
+
.character{ data: {entity: "#8658"}, title: "rightwards double arrow" } ⇒
|
201
|
+
.character{ data: {entity: "#8659"}, title: "downwards double arrow" } ⇓
|
202
|
+
.character{ data: {entity: "#8660"}, title: "left right double arrow" } ⇔
|
203
|
+
.character{ data: {entity: "#8704"}, title: "for all" } ∀
|
204
|
+
.character{ data: {entity: "#8706"}, title: "partial differential" } ∂
|
205
|
+
.character{ data: {entity: "#8707"}, title: "there exists" } ∃
|
206
|
+
.character{ data: {entity: "#8709"}, title: "empty set (null set/diameter)" } ∅
|
207
|
+
.character{ data: {entity: "#8711"}, title: "nabla (backward difference)" } ∇
|
208
|
+
.character{ data: {entity: "#8712"}, title: "element of" } ∈
|
209
|
+
.character{ data: {entity: "#8713"}, title: "not an element of" } ∉
|
210
|
+
.character{ data: {entity: "#8715"}, title: "contains as member" } ∋
|
211
|
+
.character{ data: {entity: "#8719"}, title: "n-ary product (product sign)" } ∏
|
212
|
+
.character{ data: {entity: "#8721"}, title: "n-ary sumation" } ∑
|
213
|
+
.character{ data: {entity: "#8722"}, title: "minus sign" } −
|
214
|
+
.character{ data: {entity: "#8727"}, title: "asterisk operator" } ∗
|
215
|
+
.character{ data: {entity: "#8730"}, title: "square root (radical sign)" } √
|
216
|
+
.character{ data: {entity: "#8733"}, title: "proportional to" } ∝
|
217
|
+
.character{ data: {entity: "#8734"}, title: "infinity" } ∞
|
218
|
+
.character{ data: {entity: "#8736"}, title: "angle" } ∠
|
219
|
+
.character{ data: {entity: "#8743"}, title: "logical and (wedge)" } ∧
|
220
|
+
.character{ data: {entity: "#8744"}, title: "logical or (vee)" } ∨
|
221
|
+
.character{ data: {entity: "#8745"}, title: "intersection (cap)" } ∩
|
222
|
+
.character{ data: {entity: "#8746"}, title: "union (cup)" } ∪
|
223
|
+
.character{ data: {entity: "#8747"}, title: "integral" } ∫
|
224
|
+
.character{ data: {entity: "#8756"}, title: "therefore" } ∴
|
225
|
+
.character{ data: {entity: "#8764"}, title: "tilde operator (varies with/similar to)" } ∼
|
226
|
+
.character{ data: {entity: "#8773"}, title: "approximately equal to" } ≅
|
227
|
+
.character{ data: {entity: "#8776"}, title: "almost equal to (asymptotic to)" } ≈
|
228
|
+
.character{ data: {entity: "#8800"}, title: "not equal to" } ≠
|
229
|
+
.character{ data: {entity: "#8801"}, title: "identical to" } ≡
|
230
|
+
.character{ data: {entity: "#8804"}, title: "less-than or equal to" } ≤
|
231
|
+
.character{ data: {entity: "#8805"}, title: "greater-than or equal to" } ≥
|
232
|
+
.character{ data: {entity: "#8834"}, title: "subset of" } ⊂
|
233
|
+
.character{ data: {entity: "#8835"}, title: "superset of" } ⊃
|
234
|
+
.character{ data: {entity: "#8836"}, title: "not a subset of" } ⊄
|
235
|
+
.character{ data: {entity: "#8838"}, title: "subset of or equal to" } ⊆
|
236
|
+
.character{ data: {entity: "#8839"}, title: "superset of or equal to" } ⊇
|
237
|
+
.character{ data: {entity: "#8853"}, title: "circled plus (direct sum)" } ⊕
|
238
|
+
.character{ data: {entity: "#8855"}, title: "circled times (vector product)" } ⊗
|
239
|
+
.character{ data: {entity: "#8869"}, title: "up tack (orthogonal to/perpendicular)" } ⊥
|
240
|
+
.character{ data: {entity: "#8901"}, title: "dot operator" } ⋅
|
241
|
+
.character{ data: {entity: "#8968"}, title: "left ceiling (apl upstile)" } ⌈
|
242
|
+
.character{ data: {entity: "#8969"}, title: "right ceiling" } ⌉
|
243
|
+
.character{ data: {entity: "#8970"}, title: "left floor (apl downstile)" } ⌊
|
244
|
+
.character{ data: {entity: "#8971"}, title: "right floor" } ⌋
|
245
|
+
.character{ data: {entity: "#9001"}, title: "left-pointing angle bracket (bra)" } 〈
|
246
|
+
.character{ data: {entity: "#9002"}, title: "right-pointing angle bracket (ket)" } 〉
|
247
|
+
.character{ data: {entity: "#9674"}, title: "lozenge" } ◊
|
248
|
+
.character{ data: {entity: "#9824"}, title: "black spade suit" } ♠
|
249
|
+
.character{ data: {entity: "#9827"}, title: "black club suit (shamrock)" } ♣
|
250
|
+
.character{ data: {entity: "#9829"}, title: "black heart suit (valentine)" } ♥
|
251
|
+
.character{ data: {entity: "#9830"}, title: "black diamond suit" } ♦
|
252
|
+
.character{ data: {entity: "#x2603"}, title: "snowman" } ☃
|
@@ -0,0 +1,31 @@
|
|
1
|
+
= semantic_form_for 'link', { html: { id: 'mercury_link', style: 'width:600px' } } do |f|
|
2
|
+
|
3
|
+
.mercury-modal-pane-container
|
4
|
+
.mercury-modal-pane
|
5
|
+
|
6
|
+
= f.inputs id: 'link_text_container' do
|
7
|
+
= f.input :text, required: false, label: 'Link Content'
|
8
|
+
|
9
|
+
= f.inputs 'Standard Links' do
|
10
|
+
= f.input :external_url, required: false, input_html: { class: 'selectable' },
|
11
|
+
label: '<input name="link_type" type="radio" value="external_url" checked="checked"/>URL'.html_safe
|
12
|
+
|
13
|
+
= f.inputs 'Index / Bookmark Links' do
|
14
|
+
= f.input :existing_bookmark, as: :select, required: false, input_html: { class: 'selectable' }, collection: [], include_blank: false,
|
15
|
+
label: '<input name="link_type" type="radio" value="existing_bookmark"/>Existing Links'.html_safe
|
16
|
+
= f.input :new_bookmark, required: false, input_html: { class: 'selectable' },
|
17
|
+
label: '<input name="link_type" type="radio" value="new_bookmark"/>Bookmark'.html_safe
|
18
|
+
|
19
|
+
= f.inputs 'Options' do
|
20
|
+
= f.input :target, as: :select, required: false, label: 'Link Target',
|
21
|
+
include_blank: 'Self (the same window or tab)',
|
22
|
+
collection: [['Blank (a new window or tab)', '_blank'], ['Top (removes any frames)', '_top'], ['Popup Window (javascript new window popup)', 'popup']]
|
23
|
+
|
24
|
+
#popup_options.link-target-options{ style: 'display:none' }
|
25
|
+
= f.input :popup_width, required: false, label: 'Popup Width'
|
26
|
+
= f.input :popup_height, required: false, label: 'Popup Height'
|
27
|
+
|
28
|
+
.mercury-modal-controls
|
29
|
+
|
30
|
+
= f.buttons do
|
31
|
+
= f.commit_button 'Insert Link'
|