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.
@@ -24,10 +24,12 @@ $(document).ready(function() {
24
24
  };
25
25
  }
26
26
 
27
- $('#user_table').dataTable({
28
- "bJQueryUI": true,
29
- "sPaginationType": "full_numbers"
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
- function initFormTabs(){
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 depcreated, please use `spud.admin.editor.init()` instead.');
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
- selector = (typeof(selector) == 'undefined') ? '.spud_form_date_picker' : selector;
123
- $(selector).datepicker({
124
- 'format': 'yyyy-mm-dd',
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','forecolor','backcolor','|','justifyleft','justifycenter','justifyright','justifyfull','|','formatselect','fontsizeselect','cut','copy','paste','pastetext','pasteword','|','bullist','numlist','outdent','indent'],
14
- ['tablecontrols','|','link','unlink','anchor','image','code'],
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
- //var alignment:
50
- $(selector).tinymce({
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 || 1;
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
+ })();
@@ -401,6 +401,10 @@ form input.full-width {
401
401
  -moz-transform: rotate(-1deg);
402
402
  }
403
403
 
404
+ .time_select select {
405
+ width:auto;
406
+ }
407
+
404
408
  @-moz-keyframes jiggle {
405
409
  0% {
406
410
  -moz-transform: rotate(-1deg);
@@ -1,5 +1,5 @@
1
1
  module Spud
2
2
  module Core
3
- VERSION = "0.9.3"
3
+ VERSION = "0.9.4"
4
4
  end
5
5
  end
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.3
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: -4022793112075818376
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: -4022793112075818376
620
+ hash: -1527295184139763898
619
621
  requirements: []
620
622
  rubyforge_project:
621
623
  rubygems_version: 1.8.24