spud_core 0.9.3 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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