active_admin_pro 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/active_admin_pro.js +1 -37
- data/app/assets/javascripts/active_admin_pro/actions/new.js +7 -5
- data/app/assets/javascripts/active_admin_pro/actions/show.js +9 -7
- data/app/assets/javascripts/active_admin_pro/components/codemirror_input.js +17 -21
- data/app/assets/javascripts/active_admin_pro/components/link.js +13 -15
- data/app/assets/javascripts/active_admin_pro/components/phone_input.js +9 -8
- data/app/assets/javascripts/active_admin_pro/components/progress_bar.js +2 -0
- data/app/assets/javascripts/active_admin_pro/components/select_input.js +12 -10
- data/app/assets/javascripts/active_admin_pro/components/sortable_handle.js +8 -6
- data/app/assets/javascripts/active_admin_pro/components/summernote_input.js +7 -5
- data/app/assets/javascripts/active_admin_pro/components/text_input.js +9 -8
- data/app/assets/javascripts/active_admin_pro/components/time_zone_input.js +9 -8
- data/app/assets/javascripts/active_admin_pro/components/title_to_slug.js +11 -9
- data/app/assets/stylesheets/active_admin_pro/components/codemirror_input.scss +1 -1
- data/app/assets/stylesheets/active_admin_pro/layout/flashes.scss +13 -19
- data/app/assets/stylesheets/codemirror/themes/active_admin_pro.scss +117 -0
- data/app/inputs/codemirror_input.rb +1 -1
- data/app/models/{activeadmin_pro → active_admin_pro}/summernote_image.rb +0 -0
- data/config/initializers/active_admin.rb +1 -1
- data/lib/active_admin_pro.rb +1 -0
- data/lib/active_admin_pro/engine.rb +1 -1
- data/lib/active_admin_pro/version.rb +1 -1
- data/lib/generators/{activeadmin_pro → active_admin_pro}/install_generator.rb +0 -0
- data/lib/tasks/{activeadmin_pro_tasks.rake → active_admin_pro_tasks.rake} +1 -1
- data/vendor/assets/javascripts/summernote.js +5 -41
- metadata +21 -7
- data/app/assets/javascripts/active_admin_pro/components/flashes.js +0 -9
- data/app/assets/stylesheets/codemirror/themes/activeadmin_pro.scss +0 -117
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40da224f2c53a66c89d0bb2d287d2f2860cf7c66
|
4
|
+
data.tar.gz: d93c77773de0d7d57a0faf4ef1784c9e349ce85f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f210b81c192fd547de7e428f236eeed58d8fb43c36ef3f2e53f852af5414ce6046a6758cbd1767dfd54886ab42725b1cc9d8e0e6334f68acc8ebf581f1788ba9
|
7
|
+
data.tar.gz: ccf864b13be94639683ab75c319aeb7c60d02ff137d5f5b631aee17d895c5a35bc1aa3a212580ead095b954233aead5abb486e1048659780858359e46b399e56
|
@@ -1,41 +1,5 @@
|
|
1
|
-
/* globals Turbolinks */
|
2
1
|
//= require active_admin/base
|
3
2
|
//= require activeadmin-sortable
|
3
|
+
//= require codelation
|
4
4
|
//= require turbolinks
|
5
|
-
//= require_self
|
6
5
|
//= require_tree ./active_admin_pro
|
7
|
-
|
8
|
-
// The app is fully ready for enabling transition cache,
|
9
|
-
// but I can't quite prevent all elements from flashing on load.
|
10
|
-
// Turbolinks.enableTransitionCache();
|
11
|
-
Turbolinks.enableProgressBar();
|
12
|
-
|
13
|
-
// I was struggling to get everything to fire off every page load,
|
14
|
-
// but only once per page load, so I came up with crap.
|
15
|
-
//
|
16
|
-
// Usage:
|
17
|
-
//
|
18
|
-
// App.ready(function() {
|
19
|
-
// console.log('This will be called once after every page load.');
|
20
|
-
// });
|
21
|
-
if (window.App === undefined) {
|
22
|
-
window.App = {
|
23
|
-
initialized: false,
|
24
|
-
initializers: []
|
25
|
-
};
|
26
|
-
}
|
27
|
-
|
28
|
-
App.ready = function(readyFunction) {
|
29
|
-
if (!App.initialized) {
|
30
|
-
App.initializers.push(readyFunction);
|
31
|
-
}
|
32
|
-
};
|
33
|
-
|
34
|
-
if (!App.initialized) {
|
35
|
-
$(document).on('ready page:load', function() {
|
36
|
-
$.each(App.initializers, function(index, initializer) {
|
37
|
-
initializer();
|
38
|
-
});
|
39
|
-
App.initialized = true;
|
40
|
-
});
|
41
|
-
}
|
@@ -1,8 +1,10 @@
|
|
1
1
|
// Enable dropdown for multiple actions on show pages.
|
2
|
-
|
2
|
+
(function() {
|
3
3
|
"use strict";
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
});
|
5
|
+
App.register('component').enter(function() {
|
6
|
+
setTimeout(function() {
|
7
|
+
$('body.new #main_content form input:not([type="hidden"]):first').focus();
|
8
|
+
}, 10);
|
9
|
+
})
|
10
|
+
})();
|
@@ -1,12 +1,14 @@
|
|
1
1
|
// Enable dropdown for multiple actions on show pages.
|
2
|
-
|
2
|
+
(function() {
|
3
3
|
"use strict";
|
4
4
|
|
5
|
-
|
6
|
-
$(
|
7
|
-
|
5
|
+
App.register('component').enter(function() {
|
6
|
+
$('body.show #titlebar_right').click(function() {
|
7
|
+
$(this).toggleClass('active');
|
8
|
+
});
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
$('body.show #active_admin_content').click(function() {
|
11
|
+
$('body.show #titlebar_right').removeClass('active');
|
12
|
+
});
|
11
13
|
});
|
12
|
-
});
|
14
|
+
})();
|
@@ -35,14 +35,12 @@
|
|
35
35
|
|
36
36
|
// CodeMirror editor field.
|
37
37
|
// @see https://codemirror.net
|
38
|
-
|
38
|
+
(function() {
|
39
39
|
"use strict";
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
codemirrorInputs = $('.input.codemirror');
|
45
|
-
windowElement = $(window);
|
41
|
+
App.register('component').enter(function() {
|
42
|
+
var codemirrorInputs = $('.input.codemirror');
|
43
|
+
var windowElement = $(window);
|
46
44
|
|
47
45
|
codemirrorInputs.each(function() {
|
48
46
|
var wrapper = $(this);
|
@@ -73,20 +71,18 @@ App.ready(function() {
|
|
73
71
|
});
|
74
72
|
});
|
75
73
|
|
74
|
+
// Code Mirror works best when there is a fixed width on its container, so
|
75
|
+
// let's detect the size the container is without the input and set the width.
|
76
|
+
function resizeCodemirrorInputs() {
|
77
|
+
codemirrorInputs.each(function() {
|
78
|
+
var wrapper = $(this);
|
79
|
+
wrapper.hide();
|
80
|
+
wrapper.css('width', wrapper.parent().innerWidth() + 'px');
|
81
|
+
wrapper.show();
|
82
|
+
});
|
83
|
+
}
|
84
|
+
|
76
85
|
resizeCodemirrorInputs();
|
77
86
|
windowElement.resize(resizeCodemirrorInputs);
|
78
|
-
}
|
79
|
-
|
80
|
-
// Code Mirror works best when there is a fixed width on its container, so
|
81
|
-
// let's detect the size the container is without the input and set the width.
|
82
|
-
function resizeCodemirrorInputs() {
|
83
|
-
codemirrorInputs.each(function() {
|
84
|
-
var wrapper = $(this);
|
85
|
-
wrapper.hide();
|
86
|
-
wrapper.css('width', wrapper.parent().innerWidth() + 'px');
|
87
|
-
wrapper.show();
|
88
|
-
});
|
89
|
-
}
|
90
|
-
|
91
|
-
activateBehavior();
|
92
|
-
});
|
87
|
+
});
|
88
|
+
})();
|
@@ -1,23 +1,21 @@
|
|
1
|
-
|
1
|
+
(function() {
|
2
2
|
"use strict";
|
3
|
-
|
4
|
-
var links
|
3
|
+
|
4
|
+
var body, links;
|
5
5
|
|
6
6
|
// Add active class on click to style while loading via turbolinks
|
7
7
|
// and add loading class to the body element.
|
8
|
-
|
9
|
-
body
|
10
|
-
$(
|
11
|
-
});
|
12
|
-
|
13
|
-
// Remove loading and active classes on page load
|
14
|
-
body.removeClass('loading');
|
15
|
-
links.removeClass('active');
|
8
|
+
App.register('component').enter(function() {
|
9
|
+
body = $('body');
|
10
|
+
links = $('a:not([data-method="delete"]):not([data-action="destroy"]):not(.has_many_add):not(.dropdown_menu_button):not([target="_blank"])');
|
16
11
|
|
17
|
-
|
18
|
-
|
19
|
-
|
12
|
+
links.click(function() {
|
13
|
+
body.addClass('loading');
|
14
|
+
$(this).addClass('active');
|
15
|
+
});
|
16
|
+
}).exit(function() {
|
17
|
+
// Remove loading and active classes on page unload
|
20
18
|
body.removeClass('loading');
|
21
19
|
links.removeClass('active');
|
22
20
|
});
|
23
|
-
});
|
21
|
+
})();
|
@@ -1,7 +1,7 @@
|
|
1
1
|
//= require intl-tel-input
|
2
2
|
//= require intl-tel-utils
|
3
3
|
|
4
|
-
|
4
|
+
(function() {
|
5
5
|
"use strict";
|
6
6
|
|
7
7
|
function activateBehavior() {
|
@@ -42,11 +42,12 @@ App.ready(function() {
|
|
42
42
|
});
|
43
43
|
}
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
45
|
+
App.register('component').enter(function() {
|
46
|
+
activateBehavior();
|
47
|
+
$('.has_many_add').click(function() {
|
48
|
+
setTimeout(function() {
|
49
|
+
activateBehavior();
|
50
|
+
}, 0);
|
51
|
+
});
|
49
52
|
});
|
50
|
-
|
51
|
-
activateBehavior();
|
52
|
-
});
|
53
|
+
})();
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Highlight the label for a select field on focus.
|
2
|
-
|
2
|
+
(function() {
|
3
3
|
"use strict";
|
4
4
|
|
5
5
|
function activateBehavior(selector) {
|
@@ -19,13 +19,15 @@ App.ready(function() {
|
|
19
19
|
});
|
20
20
|
}
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
activateBehavior('.has_many_fields:last .input.select');
|
26
|
-
}, 0);
|
27
|
-
});
|
22
|
+
App.register('component').enter(function() {
|
23
|
+
activateBehavior('.input.country:not(.filter_form_field)');
|
24
|
+
activateBehavior('.input.select:not(.filter_form_field)');
|
28
25
|
|
29
|
-
|
30
|
-
|
31
|
-
|
26
|
+
$('.has_many_add').click(function() {
|
27
|
+
setTimeout(function() {
|
28
|
+
activateBehavior('.has_many_fields:last .input.country');
|
29
|
+
activateBehavior('.has_many_fields:last .input.select');
|
30
|
+
}, 0);
|
31
|
+
});
|
32
|
+
});
|
33
|
+
})();
|
@@ -1,8 +1,10 @@
|
|
1
|
-
|
2
|
-
// @see https://github.com/neo/activeadmin-sortable
|
3
|
-
App.ready(function() {
|
1
|
+
(function() {
|
4
2
|
"use strict";
|
5
3
|
|
6
|
-
//
|
7
|
-
|
8
|
-
|
4
|
+
// Activate any sortable columns. The gem on its own doesn't handle using Turbolinks.
|
5
|
+
// @see https://github.com/neo/activeadmin-sortable
|
6
|
+
App.register('component').enter(function() {
|
7
|
+
// Normally fired by $(document).ready
|
8
|
+
$('.handle').closest('tbody').activeAdminSortable();
|
9
|
+
});
|
10
|
+
})();
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
// Summernote editor field.
|
10
10
|
// @see http://summernote.org
|
11
|
-
|
11
|
+
(function() {
|
12
12
|
"use strict";
|
13
13
|
|
14
14
|
var toolbar = [
|
@@ -28,7 +28,7 @@ App.ready(function() {
|
|
28
28
|
codemirror: {
|
29
29
|
lineNumbers: true,
|
30
30
|
mode: 'htmlmixed',
|
31
|
-
theme: '
|
31
|
+
theme: 'active_admin_pro'
|
32
32
|
},
|
33
33
|
height: 200,
|
34
34
|
minHeight: 180,
|
@@ -90,7 +90,7 @@ App.ready(function() {
|
|
90
90
|
$.ajax({
|
91
91
|
data: data,
|
92
92
|
type: "POST",
|
93
|
-
url: "/admin/
|
93
|
+
url: "/admin/active_admin_pro_summernote_images",
|
94
94
|
cache: false,
|
95
95
|
contentType: false,
|
96
96
|
processData: false,
|
@@ -128,5 +128,7 @@ App.ready(function() {
|
|
128
128
|
});
|
129
129
|
}
|
130
130
|
|
131
|
-
|
132
|
-
|
131
|
+
App.register('component').enter(function() {
|
132
|
+
activateBehavior();
|
133
|
+
});
|
134
|
+
})();
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// This is a Google Material Design inspired text field.
|
2
2
|
// The JavaScript doesn't do much. It just set the classes needed
|
3
3
|
// by the CSS based on the input's focus and blank/filled states.
|
4
|
-
|
4
|
+
(function() {
|
5
5
|
"use strict";
|
6
6
|
|
7
7
|
function activateBehavior() {
|
@@ -37,11 +37,12 @@ App.ready(function() {
|
|
37
37
|
});
|
38
38
|
}
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
App.register('component').enter(function() {
|
41
|
+
activateBehavior();
|
42
|
+
$('.has_many_add').click(function() {
|
43
|
+
setTimeout(function() {
|
44
|
+
activateBehavior();
|
45
|
+
}, 0);
|
46
|
+
});
|
44
47
|
});
|
45
|
-
|
46
|
-
activateBehavior();
|
47
|
-
});
|
48
|
+
})();
|
@@ -1,6 +1,6 @@
|
|
1
1
|
// Creates a select input populated with time zones and automatically
|
2
2
|
// selects the current time zone detected by the browser.
|
3
|
-
|
3
|
+
(function() {
|
4
4
|
"use strict";
|
5
5
|
|
6
6
|
var offset, option, select;
|
@@ -41,11 +41,12 @@ App.ready(function() {
|
|
41
41
|
return offset;
|
42
42
|
}
|
43
43
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
App.register('component').enter(function() {
|
45
|
+
activateBehavior();
|
46
|
+
$('.has_many_add').click(function() {
|
47
|
+
setTimeout(function() {
|
48
|
+
activateBehavior();
|
49
|
+
}, 0);
|
50
|
+
});
|
48
51
|
});
|
49
|
-
|
50
|
-
activateBehavior();
|
51
|
-
});
|
52
|
+
})();
|
@@ -1,16 +1,18 @@
|
|
1
1
|
//= require slug
|
2
2
|
/* globals slug */
|
3
3
|
|
4
|
-
|
4
|
+
(function() {
|
5
5
|
"use strict";
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
App.register('component').enter(function() {
|
8
|
+
var titleInput = $('.title-to-slug-title');
|
9
|
+
var slugInput = $('.title-to-slug-slug');
|
10
|
+
var titleAsSlug;
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
titleInput.bind('propertychange change click keyup input paste', function() {
|
13
|
+
titleAsSlug = slug(titleInput.val(), { lower: true });
|
14
|
+
slugInput.val(titleAsSlug);
|
15
|
+
slugInput.blur();
|
16
|
+
});
|
15
17
|
});
|
16
|
-
});
|
18
|
+
})();
|
@@ -1,7 +1,7 @@
|
|
1
|
-
$alert-background-color:
|
2
|
-
$alert-
|
3
|
-
$notice-background-color: rgba(
|
4
|
-
$notice-
|
1
|
+
$alert-background-color: rgba($red, 0.85);
|
2
|
+
$alert-font-color: $white;
|
3
|
+
$notice-background-color: rgba($green, 0.85);
|
4
|
+
$notice-font-color: $white;
|
5
5
|
|
6
6
|
@include keyframes(flash-up) {
|
7
7
|
0% {
|
@@ -21,32 +21,26 @@ $notice-text-color: $white;
|
|
21
21
|
}
|
22
22
|
}
|
23
23
|
|
24
|
-
.
|
24
|
+
.flash_alert,
|
25
|
+
.flash_notice {
|
26
|
+
@include animation(flash-up 6s 1);
|
25
27
|
@include transform(translateZ(0) translate3d(0, 100%, 0));
|
26
28
|
bottom: 0;
|
27
29
|
font-size: 1.6em;
|
28
|
-
left:
|
30
|
+
left: 0;
|
31
|
+
line-height: 1.2;
|
32
|
+
padding: 0.6em 0.9em;
|
29
33
|
position: fixed;
|
30
34
|
right: 0;
|
31
35
|
text-align: center;
|
32
|
-
z-index: 1000;
|
33
|
-
|
34
|
-
&.animate {
|
35
|
-
@include animation(flash-up 6s 1);
|
36
|
-
}
|
37
36
|
}
|
38
37
|
|
39
|
-
.flash_alert
|
40
|
-
.flash_error {
|
38
|
+
.flash_alert {
|
41
39
|
background-color: $alert-background-color;
|
42
|
-
color: $alert-
|
43
|
-
padding: ($base-font-size + 2px) ($base-font-size * 2);
|
44
|
-
text-shadow: 0 1px 1px darken($alert-background-color, 20%);
|
40
|
+
color: $alert-font-color;
|
45
41
|
}
|
46
42
|
|
47
43
|
.flash_notice {
|
48
44
|
background-color: $notice-background-color;
|
49
|
-
color: $notice-
|
50
|
-
padding: ($base-font-size + 2px) ($base-font-size * 2);
|
51
|
-
text-shadow: 0 1px 1px darken($notice-background-color, 20%);
|
45
|
+
color: $notice-font-color;
|
52
46
|
}
|
@@ -0,0 +1,117 @@
|
|
1
|
+
// Pretty good CodeMirror theme that matches the Google Material Design colors
|
2
|
+
.cm-s-active_admin_pro.CodeMirror {
|
3
|
+
background: color($blue-grey, 50);
|
4
|
+
color: color($grey, 800);
|
5
|
+
}
|
6
|
+
|
7
|
+
.cm-s-active_admin_pro div.CodeMirror-selected {
|
8
|
+
background: color($blue-grey, 100);
|
9
|
+
}
|
10
|
+
|
11
|
+
.cm-s-active_admin_pro .CodeMirror-line::selection,
|
12
|
+
.cm-s-active_admin_pro .CodeMirror-line > span::selection,
|
13
|
+
.cm-s-active_admin_pro .CodeMirror-line > span > span::selection {
|
14
|
+
background: rgba(color($blue-grey, 50), 0.99);
|
15
|
+
}
|
16
|
+
|
17
|
+
.cm-s-active_admin_pro .CodeMirror-line::-moz-selection,
|
18
|
+
.cm-s-active_admin_pro .CodeMirror-line > span::-moz-selection,
|
19
|
+
.cm-s-active_admin_pro .CodeMirror-line > span > span::-moz-selection {
|
20
|
+
background: rgba(color($blue-grey, 50), 0.99);
|
21
|
+
}
|
22
|
+
|
23
|
+
.cm-s-active_admin_pro .CodeMirror-gutters {
|
24
|
+
background: color($blue-grey, 100);
|
25
|
+
color: color($blue-grey, 800);
|
26
|
+
border-right: 0;
|
27
|
+
}
|
28
|
+
|
29
|
+
.cm-s-active_admin_pro .CodeMirror-guttermarker {
|
30
|
+
color: $white;
|
31
|
+
}
|
32
|
+
|
33
|
+
.cm-s-active_admin_pro .CodeMirror-guttermarker-subtle {
|
34
|
+
color: color($blue-grey, 800);
|
35
|
+
}
|
36
|
+
|
37
|
+
.cm-s-active_admin_pro .CodeMirror-linenumber {
|
38
|
+
color: color($blue-grey, 800);
|
39
|
+
}
|
40
|
+
|
41
|
+
.cm-s-active_admin_pro .CodeMirror-cursor {
|
42
|
+
border-left: 1px solid $black;
|
43
|
+
}
|
44
|
+
|
45
|
+
.cm-s-active_admin_pro span.cm-comment {
|
46
|
+
color: $grey;
|
47
|
+
}
|
48
|
+
|
49
|
+
.cm-s-active_admin_pro span.cm-atom {
|
50
|
+
color: $deep-purple;
|
51
|
+
}
|
52
|
+
|
53
|
+
.cm-s-active_admin_pro span.cm-number {
|
54
|
+
color: color($cyan, 700);
|
55
|
+
}
|
56
|
+
|
57
|
+
.cm-s-active_admin_pro span.cm-property {
|
58
|
+
color: color($amber, 700);
|
59
|
+
}
|
60
|
+
|
61
|
+
.cm-s-active_admin_pro span.cm-attribute {
|
62
|
+
color: $deep-purple;
|
63
|
+
}
|
64
|
+
|
65
|
+
.cm-s-active_admin_pro span.cm-keyword {
|
66
|
+
color: $pink;
|
67
|
+
}
|
68
|
+
|
69
|
+
.cm-s-active_admin_pro span.cm-string {
|
70
|
+
color: $blue;
|
71
|
+
}
|
72
|
+
|
73
|
+
.cm-s-active_admin_pro span.cm-variable {
|
74
|
+
color: color($grey, 800);
|
75
|
+
}
|
76
|
+
|
77
|
+
.cm-s-active_admin_pro span.cm-variable-2 {
|
78
|
+
color: color($grey, 800);
|
79
|
+
}
|
80
|
+
|
81
|
+
.cm-s-active_admin_pro span.cm-variable-3 {
|
82
|
+
color: color($grey, 800);
|
83
|
+
}
|
84
|
+
|
85
|
+
.cm-s-active_admin_pro span.cm-def {
|
86
|
+
color: $indigo;
|
87
|
+
}
|
88
|
+
|
89
|
+
.cm-s-active_admin_pro span.cm-bracket {
|
90
|
+
color: $green;
|
91
|
+
}
|
92
|
+
|
93
|
+
.cm-s-active_admin_pro span.cm-tag {
|
94
|
+
color: $deep-purple;
|
95
|
+
}
|
96
|
+
|
97
|
+
.cm-s-active_admin_pro span.cm-header {
|
98
|
+
color: color($blue, 700);
|
99
|
+
}
|
100
|
+
|
101
|
+
.cm-s-active_admin_pro span.cm-link {
|
102
|
+
color: $cyan;
|
103
|
+
}
|
104
|
+
|
105
|
+
.cm-s-active_admin_pro span.cm-error {
|
106
|
+
background: $red;
|
107
|
+
color: $white;
|
108
|
+
}
|
109
|
+
|
110
|
+
.cm-s-active_admin_pro .CodeMirror-activeline-background {
|
111
|
+
background: $amber;
|
112
|
+
}
|
113
|
+
|
114
|
+
.cm-s-active_admin_pro .CodeMirror-matchingbracket {
|
115
|
+
background: color($blue-grey, 100);
|
116
|
+
color: $black !important;
|
117
|
+
}
|
@@ -19,7 +19,7 @@ class CodemirrorInput < Formtastic::Inputs::TextInput
|
|
19
19
|
codemirror_options[:tabSize] ||= 2
|
20
20
|
|
21
21
|
# Set the default theme to the matching Active Admin Pro theme
|
22
|
-
codemirror_options[:theme] ||= "
|
22
|
+
codemirror_options[:theme] ||= "active_admin_pro"
|
23
23
|
|
24
24
|
# Pass the CodeMirror options as a data attribute to the input element
|
25
25
|
super.merge(class: "codemirror", data: { codemirror: codemirror_options })
|
File without changes
|
@@ -31,5 +31,5 @@ ActiveAdmin.application.tap do |config|
|
|
31
31
|
config.meta_tags["viewport"] ||= "initial-scale=1, maximum-scale=1, width=device-width"
|
32
32
|
|
33
33
|
# Add route and controller for Summernote's image uploads
|
34
|
-
config.load_paths.unshift File.join(File.expand_path("../../..", __FILE__), "lib", "
|
34
|
+
config.load_paths.unshift File.join(File.expand_path("../../..", __FILE__), "lib", "active_admin_pro", "summernote_image")
|
35
35
|
end
|
data/lib/active_admin_pro.rb
CHANGED
@@ -2,7 +2,7 @@ module ActiveAdminPro
|
|
2
2
|
class Engine < ::Rails::Engine
|
3
3
|
# Load Rails Generators
|
4
4
|
generators do
|
5
|
-
require File.join(File.expand_path("../..", __FILE__), "generators", "
|
5
|
+
require File.join(File.expand_path("../..", __FILE__), "generators", "active_admin_pro", "install_generator.rb")
|
6
6
|
end
|
7
7
|
end
|
8
8
|
end
|
File without changes
|
@@ -605,6 +605,10 @@
|
|
605
605
|
* @param {Node} node
|
606
606
|
*/
|
607
607
|
var nodeLength = function (node) {
|
608
|
+
if (node === undefined || node === null) {
|
609
|
+
return 0;
|
610
|
+
}
|
611
|
+
|
608
612
|
if (isText(node)) {
|
609
613
|
return node.nodeValue.length;
|
610
614
|
}
|
@@ -6109,46 +6113,6 @@
|
|
6109
6113
|
};
|
6110
6114
|
};
|
6111
6115
|
|
6112
|
-
var ImagePopover = function (context) {
|
6113
|
-
var ui = $.summernote.ui;
|
6114
|
-
|
6115
|
-
var options = context.options;
|
6116
|
-
|
6117
|
-
this.shouldInitialize = function () {
|
6118
|
-
return !list.isEmpty(options.popover.image);
|
6119
|
-
};
|
6120
|
-
|
6121
|
-
this.initialize = function () {
|
6122
|
-
this.$popover = ui.popover({
|
6123
|
-
className: 'note-image-popover'
|
6124
|
-
}).render().appendTo('body');
|
6125
|
-
var $content = this.$popover.find('.popover-content');
|
6126
|
-
|
6127
|
-
context.invoke('buttons.build', $content, options.popover.image);
|
6128
|
-
};
|
6129
|
-
|
6130
|
-
this.destroy = function () {
|
6131
|
-
this.$popover.remove();
|
6132
|
-
};
|
6133
|
-
|
6134
|
-
this.update = function (target) {
|
6135
|
-
if (dom.isImg(target)) {
|
6136
|
-
var pos = dom.posFromPlaceholder(target);
|
6137
|
-
this.$popover.css({
|
6138
|
-
display: 'block',
|
6139
|
-
left: pos.left,
|
6140
|
-
top: pos.top
|
6141
|
-
});
|
6142
|
-
} else {
|
6143
|
-
this.hide();
|
6144
|
-
}
|
6145
|
-
};
|
6146
|
-
|
6147
|
-
this.hide = function () {
|
6148
|
-
this.$popover.hide();
|
6149
|
-
};
|
6150
|
-
};
|
6151
|
-
|
6152
6116
|
var VideoDialog = function (context) {
|
6153
6117
|
var self = this;
|
6154
6118
|
var ui = $.summernote.ui;
|
@@ -6724,7 +6688,7 @@
|
|
6724
6688
|
'linkDialog': LinkDialog,
|
6725
6689
|
'linkPopover': LinkPopover,
|
6726
6690
|
'imageDialog': ImageDialog,
|
6727
|
-
'imagePopover': ImagePopover,
|
6691
|
+
// 'imagePopover': ImagePopover,
|
6728
6692
|
'videoDialog': VideoDialog,
|
6729
6693
|
'helpDialog': HelpDialog,
|
6730
6694
|
'airPopover': AirPopover
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_admin_pro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Pattison
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activeadmin
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: codelation_assets
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.2'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.2'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: fog
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -290,9 +304,9 @@ files:
|
|
290
304
|
- app/assets/javascripts/active_admin_pro/actions/new.js
|
291
305
|
- app/assets/javascripts/active_admin_pro/actions/show.js
|
292
306
|
- app/assets/javascripts/active_admin_pro/components/codemirror_input.js
|
293
|
-
- app/assets/javascripts/active_admin_pro/components/flashes.js
|
294
307
|
- app/assets/javascripts/active_admin_pro/components/link.js
|
295
308
|
- app/assets/javascripts/active_admin_pro/components/phone_input.js
|
309
|
+
- app/assets/javascripts/active_admin_pro/components/progress_bar.js
|
296
310
|
- app/assets/javascripts/active_admin_pro/components/select_input.js
|
297
311
|
- app/assets/javascripts/active_admin_pro/components/sortable_handle.js
|
298
312
|
- app/assets/javascripts/active_admin_pro/components/summernote_input.js
|
@@ -453,21 +467,21 @@ files:
|
|
453
467
|
- app/assets/stylesheets/active_admin_pro/vendor/neat/settings/_grid.scss
|
454
468
|
- app/assets/stylesheets/active_admin_pro/vendor/neat/settings/_visual-grid.scss
|
455
469
|
- app/assets/stylesheets/active_admin_pro/vendor/normalize.css
|
456
|
-
- app/assets/stylesheets/codemirror/themes/
|
470
|
+
- app/assets/stylesheets/codemirror/themes/active_admin_pro.scss
|
457
471
|
- app/inputs/codemirror_input.rb
|
458
472
|
- app/inputs/datepicker_input.rb
|
459
473
|
- app/inputs/phone_input.rb
|
460
474
|
- app/inputs/summernote_input.rb
|
461
475
|
- app/inputs/time_zone_input.rb
|
462
|
-
- app/models/
|
476
|
+
- app/models/active_admin_pro/summernote_image.rb
|
463
477
|
- config/initializers/active_admin.rb
|
464
478
|
- config/locales/en.yml
|
465
479
|
- lib/active_admin_pro.rb
|
466
480
|
- lib/active_admin_pro/engine.rb
|
467
481
|
- lib/active_admin_pro/summernote_image/summernote_image.rb
|
468
482
|
- lib/active_admin_pro/version.rb
|
469
|
-
- lib/generators/
|
470
|
-
- lib/tasks/
|
483
|
+
- lib/generators/active_admin_pro/install_generator.rb
|
484
|
+
- lib/tasks/active_admin_pro_tasks.rake
|
471
485
|
- spec/spec_helper.rb
|
472
486
|
- vendor/assets/javascripts/bootstrap.js
|
473
487
|
- vendor/assets/javascripts/codemirror.js
|
@@ -1,117 +0,0 @@
|
|
1
|
-
// Pretty good CodeMirror theme that matches the Google Material Design colors
|
2
|
-
.cm-s-activeadmin_pro.CodeMirror {
|
3
|
-
background: color($blue-grey, 50);
|
4
|
-
color: color($grey, 800);
|
5
|
-
}
|
6
|
-
|
7
|
-
.cm-s-activeadmin_pro div.CodeMirror-selected {
|
8
|
-
background: color($blue-grey, 100);
|
9
|
-
}
|
10
|
-
|
11
|
-
.cm-s-activeadmin_pro .CodeMirror-line::selection,
|
12
|
-
.cm-s-activeadmin_pro .CodeMirror-line > span::selection,
|
13
|
-
.cm-s-activeadmin_pro .CodeMirror-line > span > span::selection {
|
14
|
-
background: rgba(color($blue-grey, 50), 0.99);
|
15
|
-
}
|
16
|
-
|
17
|
-
.cm-s-activeadmin_pro .CodeMirror-line::-moz-selection,
|
18
|
-
.cm-s-activeadmin_pro .CodeMirror-line > span::-moz-selection,
|
19
|
-
.cm-s-activeadmin_pro .CodeMirror-line > span > span::-moz-selection {
|
20
|
-
background: rgba(color($blue-grey, 50), 0.99);
|
21
|
-
}
|
22
|
-
|
23
|
-
.cm-s-activeadmin_pro .CodeMirror-gutters {
|
24
|
-
background: color($blue-grey, 100);
|
25
|
-
color: color($blue-grey, 800);
|
26
|
-
border-right: 0;
|
27
|
-
}
|
28
|
-
|
29
|
-
.cm-s-activeadmin_pro .CodeMirror-guttermarker {
|
30
|
-
color: $white;
|
31
|
-
}
|
32
|
-
|
33
|
-
.cm-s-activeadmin_pro .CodeMirror-guttermarker-subtle {
|
34
|
-
color: color($blue-grey, 800);
|
35
|
-
}
|
36
|
-
|
37
|
-
.cm-s-activeadmin_pro .CodeMirror-linenumber {
|
38
|
-
color: color($blue-grey, 800);
|
39
|
-
}
|
40
|
-
|
41
|
-
.cm-s-activeadmin_pro .CodeMirror-cursor {
|
42
|
-
border-left: 1px solid $black;
|
43
|
-
}
|
44
|
-
|
45
|
-
.cm-s-activeadmin_pro span.cm-comment {
|
46
|
-
color: $grey;
|
47
|
-
}
|
48
|
-
|
49
|
-
.cm-s-activeadmin_pro span.cm-atom {
|
50
|
-
color: $deep-purple;
|
51
|
-
}
|
52
|
-
|
53
|
-
.cm-s-activeadmin_pro span.cm-number {
|
54
|
-
color: color($cyan, 700);
|
55
|
-
}
|
56
|
-
|
57
|
-
.cm-s-activeadmin_pro span.cm-property {
|
58
|
-
color: color($amber, 700);
|
59
|
-
}
|
60
|
-
|
61
|
-
.cm-s-activeadmin_pro span.cm-attribute {
|
62
|
-
color: $deep-purple;
|
63
|
-
}
|
64
|
-
|
65
|
-
.cm-s-activeadmin_pro span.cm-keyword {
|
66
|
-
color: $pink;
|
67
|
-
}
|
68
|
-
|
69
|
-
.cm-s-activeadmin_pro span.cm-string {
|
70
|
-
color: $blue;
|
71
|
-
}
|
72
|
-
|
73
|
-
.cm-s-activeadmin_pro span.cm-variable {
|
74
|
-
color: color($grey, 800);
|
75
|
-
}
|
76
|
-
|
77
|
-
.cm-s-activeadmin_pro span.cm-variable-2 {
|
78
|
-
color: color($grey, 800);
|
79
|
-
}
|
80
|
-
|
81
|
-
.cm-s-activeadmin_pro span.cm-variable-3 {
|
82
|
-
color: color($grey, 800);
|
83
|
-
}
|
84
|
-
|
85
|
-
.cm-s-activeadmin_pro span.cm-def {
|
86
|
-
color: $indigo;
|
87
|
-
}
|
88
|
-
|
89
|
-
.cm-s-activeadmin_pro span.cm-bracket {
|
90
|
-
color: $green;
|
91
|
-
}
|
92
|
-
|
93
|
-
.cm-s-activeadmin_pro span.cm-tag {
|
94
|
-
color: $deep-purple;
|
95
|
-
}
|
96
|
-
|
97
|
-
.cm-s-activeadmin_pro span.cm-header {
|
98
|
-
color: color($blue, 700);
|
99
|
-
}
|
100
|
-
|
101
|
-
.cm-s-activeadmin_pro span.cm-link {
|
102
|
-
color: $cyan;
|
103
|
-
}
|
104
|
-
|
105
|
-
.cm-s-activeadmin_pro span.cm-error {
|
106
|
-
background: $red;
|
107
|
-
color: $white;
|
108
|
-
}
|
109
|
-
|
110
|
-
.cm-s-activeadmin_pro .CodeMirror-activeline-background {
|
111
|
-
background: $amber;
|
112
|
-
}
|
113
|
-
|
114
|
-
.cm-s-activeadmin_pro .CodeMirror-matchingbracket {
|
115
|
-
background: color($blue-grey, 100);
|
116
|
-
color: $black !important;
|
117
|
-
}
|