spud_core 0.9.3 → 0.9.4
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.
- data/app/assets/javascripts/spud/admin/application.js +11 -34
- data/app/assets/javascripts/spud/admin/date_picker.js +56 -0
- data/app/assets/javascripts/spud/admin/editor.js +19 -6
- data/app/assets/libs/tiny_mce/plugins/tableDropdown/editor_plugin.js +140 -0
- data/app/assets/stylesheets/spud/admin/application.css +4 -0
- data/lib/spud_core/version.rb +1 -1
- metadata +5 -3
@@ -24,10 +24,12 @@ $(document).ready(function() {
|
|
24
24
|
};
|
25
25
|
}
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
spud.admin.editor.init();
|
28
|
+
|
29
|
+
// $('#user_table').dataTable({
|
30
|
+
// "bJQueryUI": true,
|
31
|
+
// "sPaginationType": "full_numbers"
|
32
|
+
// });
|
31
33
|
|
32
34
|
$("#modal_window .modal-footer .form-submit").bind('click', function() {
|
33
35
|
$("#modal_window .modal-body form").submit();
|
@@ -71,9 +73,7 @@ $(document).ready(function() {
|
|
71
73
|
|
72
74
|
$('#multisite_switcher select').change(function() {
|
73
75
|
$(this).parent().submit();
|
74
|
-
// alert('test');
|
75
76
|
});
|
76
|
-
initFormTabs();
|
77
77
|
|
78
78
|
} );
|
79
79
|
|
@@ -89,41 +89,18 @@ function add_fields(link, association, content) {
|
|
89
89
|
$(link).parent().before(content.replace(regexp, new_id));
|
90
90
|
}
|
91
91
|
|
92
|
-
|
93
|
-
var tabNames = [];
|
94
|
-
|
95
|
-
$('.formtabs .formtab').each(function(tabind) {
|
96
|
-
if(tabind === 0) {
|
97
|
-
$(this).addClass('active');
|
98
|
-
}
|
99
|
-
this.id = 'tab-' + tabind;
|
100
|
-
tabNames.push($('.tab_name',this).first().val());
|
101
|
-
});
|
102
|
-
var tabButtons = $('.formtabs .formtab_buttons').first();
|
103
|
-
for(var x=0;x<tabNames.length;x++)
|
104
|
-
{
|
105
|
-
var tabButton = $('<li><a href="#tab-' + x + '" data-toggle="tab">' + tabNames[x] + '</a></li>');
|
106
|
-
if(x == 0) {
|
107
|
-
tabButton.addClass('active');
|
108
|
-
}
|
109
|
-
tabButtons.append(tabButton);
|
110
|
-
}
|
111
|
-
|
112
|
-
// $('.formtabs').tabs();
|
113
|
-
}
|
92
|
+
|
114
93
|
|
115
94
|
|
116
95
|
function initTinyMCE(selector) {
|
117
|
-
console.warn('Deprecation Notice: `initTinyMCE()` is
|
96
|
+
console.warn('Deprecation Notice: `initTinyMCE()` is deprecated, please use `spud.admin.editor.init()` instead.');
|
118
97
|
spud.admin.editor.init();
|
119
98
|
}
|
120
99
|
|
121
100
|
function initDatePicker(selector){
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
'autoclose': true
|
126
|
-
});
|
101
|
+
console.warn('Deprecation Notice: `initDatePicker()` is deprecated, please use `spud.admin.date_picker.init()` instead.');
|
102
|
+
spud.admin.date_picker.init();
|
103
|
+
|
127
104
|
}
|
128
105
|
|
129
106
|
function displayModalDialogWithOptions(options){
|
@@ -0,0 +1,56 @@
|
|
1
|
+
spud.admin.date_picker = {};
|
2
|
+
|
3
|
+
(function() {
|
4
|
+
var picker = spud.admin.date_picker;
|
5
|
+
|
6
|
+
parsePickerDate = function(value) {
|
7
|
+
var date = new Date();
|
8
|
+
|
9
|
+
var currentDateTimeComponents = value.split(" ");
|
10
|
+
var dateComponents = currentDateTimeComponents[0].split("-");
|
11
|
+
if(dateComponents.length >= 3) {
|
12
|
+
date = new Date(parseInt(dateComponents[0],10),parseInt(dateComponents[1],10) - 1,parseInt(dateComponents[2],10));
|
13
|
+
}
|
14
|
+
return date;
|
15
|
+
}
|
16
|
+
|
17
|
+
picker.init = function(selector) {
|
18
|
+
selector = (typeof(selector) == 'undefined') ? '.spud_form_date_picker' : selector;
|
19
|
+
$(selector).each(function() {
|
20
|
+
var $this = $(this);
|
21
|
+
var baseName = $this.attr('name');
|
22
|
+
$this.attr('name',baseName.replace("[","_").replace("]",""));
|
23
|
+
$this.datepicker({
|
24
|
+
'format': 'yyyy-mm-dd',
|
25
|
+
'autoclose': true
|
26
|
+
});
|
27
|
+
$this.val($this.val().split(" ")[0]);
|
28
|
+
var date = parsePickerDate($this.val());
|
29
|
+
|
30
|
+
var yearField = $("<input type='hidden'/>");
|
31
|
+
yearField.attr('name',baseName.replace(']',"(1i)]"));
|
32
|
+
yearField.val(date.getFullYear());
|
33
|
+
var monthField = $("<input type='hidden'/>");
|
34
|
+
monthField.attr('name',baseName.replace(']',"(2i)]"));
|
35
|
+
monthField.val(date.getMonth() + 1);
|
36
|
+
var dayField = $("<input type='hidden'/>");
|
37
|
+
dayField.attr('name',baseName.replace(']',"(3i)]"));
|
38
|
+
dayField.val(date.getUTCDate());
|
39
|
+
yearField.insertAfter($this);
|
40
|
+
monthField.insertAfter($this);
|
41
|
+
dayField.insertAfter($this);
|
42
|
+
|
43
|
+
|
44
|
+
$this.bind('change', function(evt) {
|
45
|
+
var date = parsePickerDate($(this).val());
|
46
|
+
yearField.val(date.getFullYear());
|
47
|
+
monthField.val(date.getMonth() + 1);
|
48
|
+
dayField.val(date.getUTCDate());
|
49
|
+
|
50
|
+
});
|
51
|
+
|
52
|
+
|
53
|
+
});
|
54
|
+
|
55
|
+
};
|
56
|
+
})();
|
@@ -6,12 +6,12 @@ spud.admin.editor = {};
|
|
6
6
|
var editor = spud.admin.editor;
|
7
7
|
|
8
8
|
var registeredPlugins = [
|
9
|
-
'autolink','lists','layer','table','advhr','advimage','advlink','iespell','inlinepopups','media','paste'
|
9
|
+
'autolink','lists','layer','table','tableDropdown','advhr','advimage','advlink','iespell','inlinepopups','media','paste'
|
10
10
|
];
|
11
11
|
|
12
12
|
var registeredButtons = [
|
13
|
-
['bold','italic','underline','strikethrough','
|
14
|
-
[
|
13
|
+
['bold','italic','underline','strikethrough','|','justifyleft','justifycenter','justifyright','justifyfull','|','formatselect','cut','copy','paste','pastetext','|','bullist','numlist','outdent','indent','|','tableDropdown','|','link','unlink','anchor','image','code'],
|
14
|
+
[],
|
15
15
|
[],
|
16
16
|
[]
|
17
17
|
];
|
@@ -38,6 +38,9 @@ spud.admin.editor = {};
|
|
38
38
|
"q[cite],samp,select[disabled|multiple|name|size],small," +
|
39
39
|
"textarea[cols|rows|disabled|name|readonly],tt,var,big";
|
40
40
|
|
41
|
+
var validFormats = "p,h1,h2,h3,h4,h5,h6";
|
42
|
+
|
43
|
+
theme_advanced_blockformats :
|
41
44
|
editor.init = function(){
|
42
45
|
editor.initWithOptions({});
|
43
46
|
};
|
@@ -46,8 +49,8 @@ spud.admin.editor = {};
|
|
46
49
|
var selector = options.selector || 'textarea.tinymce';
|
47
50
|
var theme = options.theme || 'advanced';
|
48
51
|
var height = options.height || 400;
|
49
|
-
|
50
|
-
|
52
|
+
$(selector).each(function() {
|
53
|
+
$(this).tinymce({
|
51
54
|
theme: theme,
|
52
55
|
plugins: registeredPlugins.join(','),
|
53
56
|
theme_advanced_toolbar_location: "top",
|
@@ -56,10 +59,20 @@ spud.admin.editor = {};
|
|
56
59
|
theme_advanced_buttons3: registeredButtons[2].join(','),
|
57
60
|
theme_advanced_buttons4: registeredButtons[3].join(','),
|
58
61
|
theme_advanced_toolbar_align: 'left',
|
62
|
+
theme_advanced_blockformats: validFormats,
|
59
63
|
convert_urls: false,
|
60
64
|
valid_elements: validElements,
|
65
|
+
width: $(this).width(),
|
61
66
|
height: height
|
67
|
+
});
|
62
68
|
});
|
69
|
+
|
70
|
+
};
|
71
|
+
|
72
|
+
editor.unload = function(selectorOptional) {
|
73
|
+
var selector = selectorOptional || 'textarea.tinymce';
|
74
|
+
$(selector).each(function() {$(this).tinymce().execCommand('mceRemoveControl',false,this.id);});
|
75
|
+
|
63
76
|
};
|
64
77
|
|
65
78
|
editor.registerPlugin = function(pluginName){
|
@@ -80,7 +93,7 @@ spud.admin.editor = {};
|
|
80
93
|
};
|
81
94
|
|
82
95
|
editor.registerButton = function(buttonNameOrArray, rowNum){
|
83
|
-
rowNum = rowNum ||
|
96
|
+
rowNum = rowNum || 0;
|
84
97
|
if(typeof(buttonNameOrArray) == 'object'){
|
85
98
|
registeredButtons[rowNum].concat(buttonNameOrArray);
|
86
99
|
}
|
@@ -0,0 +1,140 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Table Dropdown Plugin for TinyMCE
|
4
|
+
*
|
5
|
+
* Copyright 2011 Cory LaViska for A Beautiful Site, LLC. — www.abeautifulsite.net
|
6
|
+
*
|
7
|
+
* Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
|
8
|
+
*
|
9
|
+
*/
|
10
|
+
(function() {
|
11
|
+
|
12
|
+
tinymce.create('tinymce.plugins.TableDropdown', {
|
13
|
+
|
14
|
+
createControl: function(n, cm) {
|
15
|
+
|
16
|
+
switch( n ) {
|
17
|
+
|
18
|
+
case 'tableDropdown':
|
19
|
+
|
20
|
+
var c = cm.createSplitButton('tableDropdown', {
|
21
|
+
title : 'table.desc',
|
22
|
+
'class': 'mce_table',
|
23
|
+
onclick: function() {
|
24
|
+
tinymce.activeEditor.execCommand('mceInsertTable');
|
25
|
+
}
|
26
|
+
});
|
27
|
+
|
28
|
+
c.onRenderMenu.add(function(c, m) {
|
29
|
+
|
30
|
+
m.add({
|
31
|
+
title: 'table.desc',
|
32
|
+
icon: 'table',
|
33
|
+
cmd: 'mceInsertTable'
|
34
|
+
});
|
35
|
+
|
36
|
+
m.add({
|
37
|
+
title: 'table.del',
|
38
|
+
icon: 'delete_table',
|
39
|
+
cmd: 'mceTableDelete'
|
40
|
+
});
|
41
|
+
|
42
|
+
m.addSeparator();
|
43
|
+
|
44
|
+
m.add({
|
45
|
+
title: 'table.row_desc',
|
46
|
+
icon: 'row_props',
|
47
|
+
cmd: 'mceTableRowProps'
|
48
|
+
});
|
49
|
+
|
50
|
+
m.add({
|
51
|
+
title: 'table.cell_desc',
|
52
|
+
icon: 'cell_props',
|
53
|
+
cmd: 'mceTableCellProps'
|
54
|
+
});
|
55
|
+
|
56
|
+
m.addSeparator();
|
57
|
+
|
58
|
+
m.add({
|
59
|
+
title: 'table.row_before_desc',
|
60
|
+
icon: 'row_before',
|
61
|
+
cmd: 'mceTableInsertRowBefore'
|
62
|
+
});
|
63
|
+
|
64
|
+
m.add({
|
65
|
+
title: 'table.row_after_desc',
|
66
|
+
icon: 'row_after',
|
67
|
+
cmd: 'mceTableInsertRowAfter'
|
68
|
+
});
|
69
|
+
|
70
|
+
m.add({
|
71
|
+
title: 'table.delete_row_desc',
|
72
|
+
icon: 'delete_row',
|
73
|
+
cmd: 'mceTableDeleteRow'
|
74
|
+
});
|
75
|
+
|
76
|
+
m.addSeparator();
|
77
|
+
|
78
|
+
m.add({
|
79
|
+
title: 'table.col_before_desc',
|
80
|
+
icon: 'col_before',
|
81
|
+
cmd: 'mceTableInsertColBefore'
|
82
|
+
});
|
83
|
+
|
84
|
+
m.add({
|
85
|
+
title: 'table.col_after_desc',
|
86
|
+
icon: 'col_after',
|
87
|
+
cmd: 'mceTableInsertColAfter'
|
88
|
+
});
|
89
|
+
|
90
|
+
m.add({
|
91
|
+
title: 'table.delete_col_desc',
|
92
|
+
icon: 'delete_col',
|
93
|
+
cmd: 'mceTableDeleteCol'
|
94
|
+
});
|
95
|
+
|
96
|
+
m.addSeparator();
|
97
|
+
|
98
|
+
m.add({
|
99
|
+
title: 'table.merge_cells_desc',
|
100
|
+
icon: 'merge_cells',
|
101
|
+
cmd: 'mceTableMergeCells'
|
102
|
+
});
|
103
|
+
|
104
|
+
m.add({
|
105
|
+
title: 'table.split_cells_desc',
|
106
|
+
icon: 'split_cells',
|
107
|
+
cmd: 'mceTableSplitCells'
|
108
|
+
});
|
109
|
+
|
110
|
+
// Enable/disable menu items on node change
|
111
|
+
c.editor.onNodeChange.add( function(ed, cm, n, co) {
|
112
|
+
var items = items = ed.controlManager.controls[ed.id + '_tableDropdown'].menu.items,
|
113
|
+
p = ed.dom.getParent(ed.selection.getStart(), 'td,th,caption');
|
114
|
+
if( p && p.nodeName === 'CAPTION' ) p = 0;
|
115
|
+
tinymce.each(items, function(t) {
|
116
|
+
if( t.settings.icon === 'table' ) return;
|
117
|
+
t.setDisabled(!p);
|
118
|
+
});
|
119
|
+
});
|
120
|
+
|
121
|
+
// This really needs to be done with a callback, but there
|
122
|
+
// doesn't seem to be one that works in the wiki
|
123
|
+
setTimeout( function() {
|
124
|
+
c.editor.nodeChanged();
|
125
|
+
}, 50);
|
126
|
+
|
127
|
+
});
|
128
|
+
|
129
|
+
return c;
|
130
|
+
}
|
131
|
+
|
132
|
+
return null;
|
133
|
+
|
134
|
+
}
|
135
|
+
});
|
136
|
+
|
137
|
+
// Register plugin
|
138
|
+
tinymce.PluginManager.add('tableDropdown', tinymce.plugins.TableDropdown);
|
139
|
+
|
140
|
+
})();
|
data/lib/spud_core/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spud_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -286,6 +286,7 @@ files:
|
|
286
286
|
- app/assets/images/spud/admin/users_thumb.png
|
287
287
|
- app/assets/javascripts/spud/admin/application.js
|
288
288
|
- app/assets/javascripts/spud/admin/dashboard.js
|
289
|
+
- app/assets/javascripts/spud/admin/date_picker.js
|
289
290
|
- app/assets/javascripts/spud/admin/editor.js
|
290
291
|
- app/assets/javascripts/spud/admin/jquery.dataTables.min.js
|
291
292
|
- app/assets/javascripts/spud/admin/preinit.js
|
@@ -413,6 +414,7 @@ files:
|
|
413
414
|
- app/assets/libs/tiny_mce/plugins/table/merge_cells.htm
|
414
415
|
- app/assets/libs/tiny_mce/plugins/table/row.htm
|
415
416
|
- app/assets/libs/tiny_mce/plugins/table/table.htm
|
417
|
+
- app/assets/libs/tiny_mce/plugins/tableDropdown/editor_plugin.js
|
416
418
|
- app/assets/libs/tiny_mce/themes/advanced/about.htm
|
417
419
|
- app/assets/libs/tiny_mce/themes/advanced/anchor.htm
|
418
420
|
- app/assets/libs/tiny_mce/themes/advanced/charmap.htm
|
@@ -606,7 +608,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
606
608
|
version: '0'
|
607
609
|
segments:
|
608
610
|
- 0
|
609
|
-
hash: -
|
611
|
+
hash: -1527295184139763898
|
610
612
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
611
613
|
none: false
|
612
614
|
requirements:
|
@@ -615,7 +617,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
615
617
|
version: '0'
|
616
618
|
segments:
|
617
619
|
- 0
|
618
|
-
hash: -
|
620
|
+
hash: -1527295184139763898
|
619
621
|
requirements: []
|
620
622
|
rubyforge_project:
|
621
623
|
rubygems_version: 1.8.24
|