active_admin_pro 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
}
|