typo 3.99.3 → 3.99.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. data/README +1 -39
  2. data/app/controllers/admin/feedback_controller.rb +71 -0
  3. data/app/controllers/articles_controller.rb +11 -0
  4. data/app/helpers/admin/feedback_helper.rb +9 -0
  5. data/app/helpers/application_helper.rb +5 -1
  6. data/app/models/article.rb +21 -1
  7. data/app/models/blog.rb +25 -1
  8. data/app/models/comment.rb +12 -2
  9. data/app/models/content.rb +63 -4
  10. data/app/models/ping.rb +3 -3
  11. data/app/models/text_filter.rb +1 -1
  12. data/app/models/trackback.rb +12 -1
  13. data/app/views/admin/content/_form.rhtml +2 -2
  14. data/app/views/admin/feedback/_item.rhtml +15 -0
  15. data/app/views/admin/feedback/list.rhtml +46 -0
  16. data/app/views/admin/general/index.rhtml +26 -0
  17. data/app/views/articles/_comment.rhtml +3 -0
  18. data/app/views/articles/read.rhtml +2 -2
  19. data/app/views/layouts/administration.rhtml +1 -0
  20. data/bin/typo +3 -23
  21. data/components/plugins/sidebars/archives_controller.rb +1 -1
  22. data/components/plugins/sidebars/xml_controller.rb +1 -1
  23. data/components/plugins/textfilters/flickr_controller.rb +1 -1
  24. data/components/plugins/textfilters/sparkline_controller.rb +3 -2
  25. data/components/plugins/textfilters/textile_controller.rb +6 -0
  26. data/config/mongrel.conf +2 -0
  27. data/db/converters/wordpress2.rb +291 -0
  28. data/db/migrate/022_superclass_trackbacks.rb +1 -0
  29. data/db/migrate/023_superclass_pages.rb +4 -3
  30. data/db/schema.rb +4 -4
  31. data/doc/Installer.txt +81 -6
  32. data/doc/typo-4.0-release-notes.txt +135 -0
  33. data/installer/rails-installer.rb +22 -3
  34. data/installer/rails-installer/commands.rb +27 -26
  35. data/installer/rails-installer/web-servers.rb +2 -0
  36. data/lib/sidebars/plugin.rb +10 -8
  37. data/lib/tasks/release.rake +1 -1
  38. data/lib/typo_version.rb +1 -1
  39. data/public/javascripts/dragdrop.js +252 -63
  40. data/public/javascripts/effects.js +15 -10
  41. data/public/javascripts/prototype.js +59 -38
  42. data/public/javascripts/typo.js +10 -0
  43. data/public/stylesheets/administration.css +111 -66
  44. data/test/functional/admin/feedback_controller_test.rb +24 -0
  45. data/test/mocks/test/http_mock.rb +2 -1
  46. data/test/unit/article_test.rb +6 -0
  47. data/test/unit/comment_test.rb +12 -9
  48. data/test/unit/ping_test.rb +1 -1
  49. data/test/unit/trackback_test.rb +3 -5
  50. data/themes/azure/stylesheets/azure.css +7 -0
  51. data/themes/scribbish/views/articles/_article.rhtml +1 -1
  52. data/themes/scribbish/views/articles/_comment_form.rhtml +1 -1
  53. data/vendor/akismet/Akismet.rb +36 -17
  54. data/vendor/plugins/expiring_action_cache/lib/actionparamcache.rb +3 -1
  55. metadata +11 -42
  56. data/installer/rails-installer/web-server.rb +0 -108
  57. data/tmp/cache/META/DATA/ACTION_PARAM/10.1.0.181/articles/index/.cache +0 -537
  58. data/tmp/cache/META/DATA/ACTION_PARAM/localhost/articles/index/.cache +0 -537
  59. data/tmp/cache/META/DATA/ACTION_PARAM/localhost/xml/feed/format=atom&type=feed.cache +0 -671
  60. data/tmp/cache/META/DATA/ACTION_PARAM/localhost/xml/feed/format=rss20&type=feed.cache +0 -401
  61. data/tmp/cache/META/META/ACTION_PARAM/10.1.0.181/articles/index/.cache +0 -2
  62. data/tmp/cache/META/META/ACTION_PARAM/localhost/articles/index/.cache +0 -2
  63. data/tmp/cache/META/META/ACTION_PARAM/localhost/xml/feed/format=atom&type=feed.cache +0 -2
  64. data/tmp/cache/META/META/ACTION_PARAM/localhost/xml/feed/format=rss20&type=feed.cache +0 -2
@@ -77,9 +77,12 @@ Element.getInlineOpacity = function(element){
77
77
  }
78
78
 
79
79
  Element.childrenWithClassName = function(element, className, findFirst) {
80
- return [$A($(element).getElementsByTagName('*'))[findFirst ? 'detect' : 'select']( function(c) {
81
- return c.className ? Element.hasClassName(c, className) : false;
82
- })].flatten();
80
+ var classNameRegExp = new RegExp("(^|\\s)" + className + "(\\s|$)");
81
+ var results = $A($(element).getElementsByTagName('*'))[findFirst ? 'detect' : 'select']( function(c) {
82
+ return (c.className && c.className.match(classNameRegExp));
83
+ });
84
+ if(!results) results = [];
85
+ return results;
83
86
  }
84
87
 
85
88
  Element.forceRerendering = function(element) {
@@ -91,11 +94,6 @@ Element.forceRerendering = function(element) {
91
94
  } catch(e) { }
92
95
  };
93
96
 
94
- ['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom',
95
- 'collectTextNodes','collectTextNodesIgnoreClass','childrenWithClassName'].each(
96
- function(f) { Element.Methods[f] = Element[f]; }
97
- );
98
-
99
97
  /*--------------------------------------------------------------------------*/
100
98
 
101
99
  Array.prototype.call = function() {
@@ -943,11 +941,18 @@ Effect.Fold = function(element) {
943
941
  effect.element.setStyle(oldStyle);
944
942
  } });
945
943
  }}, arguments[1] || {}));
946
- }
944
+ };
945
+
946
+ ['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom',
947
+ 'collectTextNodes','collectTextNodesIgnoreClass','childrenWithClassName'].each(
948
+ function(f) { Element.Methods[f] = Element[f]; }
949
+ );
947
950
 
948
951
  Element.Methods.visualEffect = function(element, effect, options) {
949
952
  s = effect.gsub(/_/, '-').camelize();
950
953
  effect_class = s.charAt(0).toUpperCase() + s.substring(1);
951
954
  new Effect[effect_class](element, options);
952
955
  return $(element);
953
- };
956
+ };
957
+
958
+ Element.addMethods();
@@ -1,4 +1,4 @@
1
- /* Prototype JavaScript framework, version 1.5.0_pre1
1
+ /* Prototype JavaScript framework, version 1.5.0_rc0
2
2
  * (c) 2005 Sam Stephenson <sam@conio.net>
3
3
  *
4
4
  * Prototype is freely distributable under the terms of an MIT-style license.
@@ -7,7 +7,7 @@
7
7
  /*--------------------------------------------------------------------------*/
8
8
 
9
9
  var Prototype = {
10
- Version: '1.5.0_pre1',
10
+ Version: '1.5.0_rc0',
11
11
  ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',
12
12
 
13
13
  emptyFunction: function() {},
@@ -25,7 +25,7 @@ var Class = {
25
25
  var Abstract = new Object();
26
26
 
27
27
  Object.extend = function(destination, source) {
28
- for (property in source) {
28
+ for (var property in source) {
29
29
  destination[property] = source[property];
30
30
  }
31
31
  return destination;
@@ -176,7 +176,7 @@ Object.extend(String.prototype, {
176
176
  },
177
177
 
178
178
  evalScripts: function() {
179
- return this.extractScripts().map(eval);
179
+ return this.extractScripts().map(function(script) { return eval(script) });
180
180
  },
181
181
 
182
182
  escapeHTML: function() {
@@ -355,7 +355,7 @@ var Enumerable = {
355
355
  var result;
356
356
  this.each(function(value, index) {
357
357
  value = (iterator || Prototype.K)(value, index);
358
- if (value >= (result || value))
358
+ if (result == undefined || value >= result)
359
359
  result = value;
360
360
  });
361
361
  return result;
@@ -365,7 +365,7 @@ var Enumerable = {
365
365
  var result;
366
366
  this.each(function(value, index) {
367
367
  value = (iterator || Prototype.K)(value, index);
368
- if (value <= (result || value))
368
+ if (result == undefined || value < result)
369
369
  result = value;
370
370
  });
371
371
  return result;
@@ -447,7 +447,8 @@ var $A = Array.from = function(iterable) {
447
447
 
448
448
  Object.extend(Array.prototype, Enumerable);
449
449
 
450
- Array.prototype._reverse = Array.prototype.reverse;
450
+ if (!Array.prototype._reverse)
451
+ Array.prototype._reverse = Array.prototype.reverse;
451
452
 
452
453
  Object.extend(Array.prototype, {
453
454
  _each: function(iterator) {
@@ -476,7 +477,7 @@ Object.extend(Array.prototype, {
476
477
 
477
478
  flatten: function() {
478
479
  return this.inject([], function(array, value) {
479
- return array.concat(value.constructor == Array ?
480
+ return array.concat(value && value.constructor == Array ?
480
481
  value.flatten() : [value]);
481
482
  });
482
483
  },
@@ -498,21 +499,13 @@ Object.extend(Array.prototype, {
498
499
  return (inline !== false ? this : this.toArray())._reverse();
499
500
  },
500
501
 
501
- shift: function() {
502
- var result = this[0];
503
- for (var i = 0; i < this.length - 1; i++)
504
- this[i] = this[i + 1];
505
- this.length--;
506
- return result;
507
- },
508
-
509
502
  inspect: function() {
510
503
  return '[' + this.map(Object.inspect).join(', ') + ']';
511
504
  }
512
505
  });
513
506
  var Hash = {
514
507
  _each: function(iterator) {
515
- for (key in this) {
508
+ for (var key in this) {
516
509
  var value = this[key];
517
510
  if (typeof value == 'function') continue;
518
511
 
@@ -590,9 +583,9 @@ var $R = function(start, end, exclusive) {
590
583
  var Ajax = {
591
584
  getTransport: function() {
592
585
  return Try.these(
586
+ function() {return new XMLHttpRequest()},
593
587
  function() {return new ActiveXObject('Msxml2.XMLHTTP')},
594
- function() {return new ActiveXObject('Microsoft.XMLHTTP')},
595
- function() {return new XMLHttpRequest()}
588
+ function() {return new ActiveXObject('Microsoft.XMLHTTP')}
596
589
  ) || false;
597
590
  },
598
591
 
@@ -644,6 +637,7 @@ Ajax.Base.prototype = {
644
637
  this.options = {
645
638
  method: 'post',
646
639
  asynchronous: true,
640
+ contentType: 'application/x-www-form-urlencoded',
647
641
  parameters: ''
648
642
  }
649
643
  Object.extend(this.options, options || {});
@@ -707,8 +701,7 @@ Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
707
701
  'Accept', 'text/javascript, text/html, application/xml, text/xml, */*'];
708
702
 
709
703
  if (this.options.method == 'post') {
710
- requestHeaders.push('Content-type',
711
- 'application/x-www-form-urlencoded');
704
+ requestHeaders.push('Content-type', this.options.contentType);
712
705
 
713
706
  /* Force "Connection: close" for Mozilla browsers to work around
714
707
  * a bug where XMLHttpReqeuest sends an incorrect Content-length
@@ -739,7 +732,7 @@ Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
739
732
 
740
733
  evalJSON: function() {
741
734
  try {
742
- return eval(this.header('X-JSON'));
735
+ return eval('(' + this.header('X-JSON') + ')');
743
736
  } catch (e) {}
744
737
  },
745
738
 
@@ -900,13 +893,14 @@ if (!window.Element)
900
893
 
901
894
  Element.extend = function(element) {
902
895
  if (!element) return;
896
+ if (_nativeExtensions) return element;
903
897
 
904
898
  if (!element._extended && element.tagName && element != window) {
905
- var methods = Element.Methods;
899
+ var methods = Element.Methods, cache = Element.extend.cache;
906
900
  for (property in methods) {
907
901
  var value = methods[property];
908
902
  if (typeof value == 'function')
909
- element[property] = value.bind(null, element);
903
+ element[property] = cache.findOrStore(value);
910
904
  }
911
905
  }
912
906
 
@@ -914,6 +908,14 @@ Element.extend = function(element) {
914
908
  return element;
915
909
  }
916
910
 
911
+ Element.extend.cache = {
912
+ findOrStore: function(value) {
913
+ return this[value] = this[value] || function() {
914
+ return value.apply(null, [this].concat($A(arguments)));
915
+ }
916
+ }
917
+ }
918
+
917
919
  Element.Methods = {
918
920
  visible: function(element) {
919
921
  return $(element).style.display != 'none';
@@ -1035,7 +1037,7 @@ Element.Methods = {
1035
1037
 
1036
1038
  setStyle: function(element, style) {
1037
1039
  element = $(element);
1038
- for (name in style)
1040
+ for (var name in style)
1039
1041
  element.style[name.camelize()] = style[name];
1040
1042
  },
1041
1043
 
@@ -1105,6 +1107,29 @@ Element.Methods = {
1105
1107
 
1106
1108
  Object.extend(Element, Element.Methods);
1107
1109
 
1110
+ var _nativeExtensions = false;
1111
+
1112
+ if(!HTMLElement && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
1113
+ var HTMLElement = {}
1114
+ HTMLElement.prototype = document.createElement('div').__proto__;
1115
+ }
1116
+
1117
+ Element.addMethods = function(methods) {
1118
+ Object.extend(Element.Methods, methods || {});
1119
+
1120
+ if(typeof HTMLElement != 'undefined') {
1121
+ var methods = Element.Methods, cache = Element.extend.cache;
1122
+ for (property in methods) {
1123
+ var value = methods[property];
1124
+ if (typeof value == 'function')
1125
+ HTMLElement.prototype[property] = cache.findOrStore(value);
1126
+ }
1127
+ _nativeExtensions = true;
1128
+ }
1129
+ }
1130
+
1131
+ Element.addMethods();
1132
+
1108
1133
  var Toggle = new Object();
1109
1134
  Toggle.display = Element.toggle;
1110
1135
 
@@ -1123,7 +1148,8 @@ Abstract.Insertion.prototype = {
1123
1148
  try {
1124
1149
  this.element.insertAdjacentHTML(this.adjacency, this.content);
1125
1150
  } catch (e) {
1126
- if (this.element.tagName.toLowerCase() == 'tbody') {
1151
+ var tagName = this.element.tagName.toLowerCase();
1152
+ if (tagName == 'tbody' || tagName == 'tr') {
1127
1153
  this.insertContent(this.contentFromAnonymousTable());
1128
1154
  } else {
1129
1155
  throw e;
@@ -1396,7 +1422,7 @@ var Form = {
1396
1422
  form = $(form);
1397
1423
  var elements = new Array();
1398
1424
 
1399
- for (tagName in Form.Element.Serializers) {
1425
+ for (var tagName in Form.Element.Serializers) {
1400
1426
  var tagElements = form.getElementsByTagName(tagName);
1401
1427
  for (var j = 0; j < tagElements.length; j++)
1402
1428
  elements.push(tagElements[j]);
@@ -1518,23 +1544,17 @@ Form.Element.Serializers = {
1518
1544
  var value = '', opt, index = element.selectedIndex;
1519
1545
  if (index >= 0) {
1520
1546
  opt = element.options[index];
1521
- value = opt.value;
1522
- if (!value && !('value' in opt))
1523
- value = opt.text;
1547
+ value = opt.value || opt.text;
1524
1548
  }
1525
1549
  return [element.name, value];
1526
1550
  },
1527
1551
 
1528
1552
  selectMany: function(element) {
1529
- var value = new Array();
1553
+ var value = [];
1530
1554
  for (var i = 0; i < element.length; i++) {
1531
1555
  var opt = element.options[i];
1532
- if (opt.selected) {
1533
- var optValue = opt.value;
1534
- if (!optValue && !('value' in opt))
1535
- optValue = opt.text;
1536
- value.push(optValue);
1537
- }
1556
+ if (opt.selected)
1557
+ value.push(opt.value || opt.text);
1538
1558
  }
1539
1559
  return [element.name, value];
1540
1560
  }
@@ -1751,7 +1771,8 @@ Object.extend(Event, {
1751
1771
  });
1752
1772
 
1753
1773
  /* prevent memory leaks in IE */
1754
- Event.observe(window, 'unload', Event.unloadCache, false);
1774
+ if (navigator.appVersion.match(/\bMSIE\b/))
1775
+ Event.observe(window, 'unload', Event.unloadCache, false);
1755
1776
  var Position = {
1756
1777
  // set to true if needed, warning: firefox performance problems
1757
1778
  // NOT neeeded for page scrolling, only if draggable contained in
@@ -76,6 +76,16 @@ function popup(mylink, windowname)
76
76
  return false;
77
77
  }
78
78
 
79
+ // From http://www.shawnolson.net/scripts/public_smo_scripts.js
80
+ function check_all(checkbox) {
81
+ var form = checkbox.form, z = 0;
82
+ for(z=0; z<form.length;z++){
83
+ if(form[z].type == 'checkbox' && form[z].name != 'checkall'){
84
+ form[z].checked = checkbox.checked;
85
+ }
86
+ }
87
+ }
88
+
79
89
  register_onload(function() {
80
90
  if ($('commentform')) {
81
91
  var _author = getCookie('author');
@@ -4,8 +4,7 @@
4
4
 
5
5
  body {
6
6
  margin: 0;
7
- background: #fff url(../images/admin/hdr-tile.gif) repeat-x;
8
- font: 1em/1.6em Helvetica, Arial, sans-serif;
7
+ font: 1em/1.6em Verdana, Helvetica, Arial, sans-serif;
9
8
  text-align: center;
10
9
  color: #000;
11
10
  }
@@ -13,7 +12,7 @@
13
12
 
14
13
  #container {
15
14
  text-align: left;
16
- font-size: 80%;
15
+ font-size: 70%;
17
16
  margin: 0 auto;
18
17
  }
19
18
 
@@ -63,7 +62,7 @@
63
62
  img { border: none; }
64
63
 
65
64
  a {
66
- color: #c00;
65
+ color: #8D805D;
67
66
  text-decoration: none;
68
67
  }
69
68
 
@@ -81,19 +80,21 @@
81
80
 
82
81
 
83
82
  #tabs-container {
83
+ height: 20px;
84
84
  width: 100%;
85
- padding: 0;
85
+ padding: 14px 0 0 100px;
86
86
  height: 16px;
87
- margin-top: 8px;
87
+ margin-top: -40px;
88
88
  border-bottom: 1px solid #637987;
89
+ background: #F8F7EF;
89
90
  }
90
91
 
91
92
  #tabs {
92
93
  padding: 0;
93
- margin: 0 0 0 30px;
94
- font-family: sans-serif, Arial, Helvetica;
95
- font-size: 0.8em;
94
+ margin: 0 0 0 40px;
95
+ font: normal 100% Georgia, Garamond, Times ;
96
96
  line-height: normal;
97
+ text-transform: uppercase;
97
98
  }
98
99
 
99
100
  #tabs li {
@@ -106,22 +107,21 @@
106
107
  #tabs li a {
107
108
  padding: 3px 8px 3px 8px;
108
109
  margin-left: 3px;
109
- background: #859AA8;
110
+ background: #F8F7EF;
110
111
  text-decoration: none;
111
112
  color: #003;
112
- border: 1px solid #637987;
113
- border-bottom: 0;
114
113
  line-height: normal;
115
114
  }
116
115
 
117
116
  #tabs li a:hover {
118
- #color: #fff;
119
- background: #D7DFE4;
120
- border-color: #859AA8;
117
+ color: #993300;
118
+ border-top: 12px solid #E8E4D3;
121
119
  }
122
120
 
123
121
  #tabs li a.active {
124
- background: white;
122
+ color: #993300;
123
+ border-top: 12px solid #E8E4D3;
124
+ background: #F8F7EF;
125
125
  }
126
126
 
127
127
  #tabs li a.active:hover {
@@ -136,9 +136,11 @@
136
136
  */
137
137
 
138
138
  .tasks {
139
- background: #F1F8E4;
140
- border: 1px solid #8DBA47;
139
+ background: #F8F7EF;
140
+ border-top: 1px dotted #C2C0BB;
141
+ border-bottom: 1px dotted #C2C0BB;
141
142
  padding: 5px;
143
+ margin-bottom: 15px;
142
144
  }
143
145
 
144
146
  .tasks ul {
@@ -161,7 +163,7 @@
161
163
  }
162
164
 
163
165
  .tasks li a:hover {
164
- background: #4A611C;
166
+ background: #637987;
165
167
  color: #fff;
166
168
  }
167
169
 
@@ -172,9 +174,8 @@
172
174
 
173
175
  h2 {
174
176
  font: normal 170% Georgia, Times, Helvetica;
175
- background: url(../images/admin/h-tile.gif) repeat-x;
176
177
  color: #930;
177
- padding: 25px 0 0 5px;
178
+ padding: 5px 0 0 5px;
178
179
  }
179
180
 
180
181
  h3 {
@@ -184,14 +185,19 @@
184
185
  }
185
186
 
186
187
  #header h1 {
188
+ background: #EDEBD5;
187
189
  margin: 0;
188
- padding: 25px 0 0 10px;
189
- font: normal 170% Helvetica, Sans-serif, Arial;
190
+ padding: 14px 0 12px 100px;
191
+ border-bottom: 1px dashed #A9A585;
192
+ border-top: 4px solid #4A4902;
193
+ font: normal 200% Georgia, Garamond, Times ;
194
+ text-transform: uppercase;
195
+ letter-spacing: 0.08em;
190
196
  }
191
197
 
192
198
  #header h1 a {
193
- color: #fff;
194
- margin: 20px 0 0 0;
199
+ color: #000;
200
+ margin: 10px 0 10px 0;
195
201
  text-decoration: none;
196
202
  border: none;
197
203
  }
@@ -253,7 +259,8 @@ label {
253
259
  }
254
260
 
255
261
  .form {
256
- background: #D7DFE4;
262
+ border: 1px solid #C2C0BB;
263
+ background: #F8F7EF;
257
264
  margin-bottom: 10px;
258
265
  padding: 0 0 0 10px;
259
266
  }
@@ -262,6 +269,21 @@ label {
262
269
  padding: 5px;
263
270
  }
264
271
 
272
+ .form input {
273
+ font-family: Georgia;
274
+ font-size: 1em;
275
+ letter-spacing: 0.02em;
276
+ }
277
+
278
+ .form textarea {
279
+ width: 350px;
280
+ font-family: Georgia;
281
+ line-height: 1.1em;
282
+ font-size: 1em;
283
+ letter-spacing: 0.02em;
284
+ word-spacing: 0.05em;
285
+ }
286
+
265
287
  #blog_name {
266
288
  font-size: 130%;
267
289
  }
@@ -284,14 +306,17 @@ label {
284
306
 
285
307
  #preview, #preview_extended {
286
308
  background: #fff;
287
- border: 4px double #ccc;
309
+ border: 1px dashed #ccc;
288
310
  padding: 5px;
289
311
  z-index: 9999;
290
- width: 48%;
312
+ width: 50%;
291
313
  float: right;
292
314
  clear: right;
293
315
  margin-bottom: 10px;
294
- line-height: 1.3em;
316
+ line-height: 1.5em;
317
+ letter-spacing: 0.02em;
318
+ word-spacing: 0.05em;
319
+ font-size: 0.95em;
295
320
  }
296
321
 
297
322
  /*
@@ -299,8 +324,8 @@ label {
299
324
  */
300
325
 
301
326
  .set {
302
- background: #D7DFE4;
303
- border: 1px solid #7D8692;
327
+ background: #F8F7EF;
328
+ border: 1px dotted #7D8692;
304
329
  padding: 0 10px 5px 10px;
305
330
  margin-bottom: 10px;
306
331
  position: relative;
@@ -317,7 +342,7 @@ label {
317
342
 
318
343
  #sidebar-config {
319
344
  /* Safari Fix */
320
- border-top: 1px solid #fff;
345
+ border-top: 5px solid #fff;
321
346
  }
322
347
 
323
348
  #sidebar-config p {
@@ -337,16 +362,21 @@ label {
337
362
 
338
363
  #cnt-active {
339
364
  margin-left: 320px;
340
- border: 1px solid #333;
341
- background: #c8d9ed;
365
+ background: #F8F7EF;
342
366
  }
343
367
 
344
- #available , #active {
345
- background: #c8d9ed;
368
+ #available {
369
+ background: #F8F7EF;
370
+ padding-bottom: 10px;
371
+ }
372
+
373
+ #active {
374
+ background: #F8F7EF;
375
+ padding-bottom: 10px;
346
376
  }
347
377
 
348
378
  #available h3, #active h3, #cnt-active h3 {
349
- background: #859aa8;
379
+ background: #E4E4D7;
350
380
  color: #333;
351
381
  margin: 0 0 10px 0;
352
382
  padding: 2px 5px;
@@ -381,7 +411,7 @@ label {
381
411
  }
382
412
 
383
413
  .target {
384
- background: #cde0f3;
414
+ background: #F8F7EF;
385
415
  margin: 5px;
386
416
  padding: 5px;
387
417
  }
@@ -394,12 +424,16 @@ label {
394
424
  padding: 0 0 5px;
395
425
  }
396
426
 
427
+ #info {
428
+ color: #4A4902;
429
+ }
430
+
397
431
  #info a {
398
- color: #fff;
432
+ color: #4A4902;
399
433
  }
400
434
 
401
435
  #info a:hover {
402
- background: #c00;
436
+ border-bottom: 1px dotted #222;
403
437
  }
404
438
 
405
439
  .form p>small {
@@ -456,7 +490,7 @@ label {
456
490
  */
457
491
 
458
492
  div#users {
459
- background: #c8d9ed;
493
+ background: #F8F7EF;
460
494
  margin-top: 10px;
461
495
  }
462
496
 
@@ -495,34 +529,36 @@ div.user {
495
529
  */
496
530
 
497
531
  #quick-post {
498
- background: #c8d9ed;
532
+ background: #EDEBD5;
499
533
  padding: 10px;
500
534
  border: 1px solid #9cabba;
501
535
  margin-left: 10px;
502
536
  border-top: none;
503
537
  }
504
538
 
539
+ #quick-post input {
540
+ font-family: Georgia;
541
+ font-size: 13px;
542
+ letter-spacing: 0.02em;
543
+ }
544
+
545
+ #quick-post textarea {
546
+ width: 350px;
547
+ font-family: Georgia;
548
+ line-height: 14px;
549
+ font-size: 12px;
550
+ letter-spacing: 0.02em;
551
+ word-spacing: 0.05em;
552
+ }
553
+
505
554
  #quick-navigate {
506
- background: #c8d9ed;
555
+ background: #F8F7EF;
507
556
  padding: 2px 5px 0px 5px;
508
- border: 1px solid #9cabba;
557
+ border: 1px dotted #9cabba;
509
558
  margin-left: 10px;
510
559
  border-top: none;
511
560
  }
512
- #edit-resource-metadata {
513
- background: #c8d9ed;
514
- padding: 1px;
515
- border: 1px solid #9cabba;
516
- margin-left: 0px;
517
- border-top: none;
518
- }
519
561
 
520
- #add-resource-metadata {
521
- background: #c8d9ed;
522
- padding: 1px;
523
- border: 1px solid #9cabba;
524
- margin-left: 0px;
525
- }
526
562
  #advanced { line-height: 1.3em; }
527
563
 
528
564
  #advanced label {
@@ -533,8 +569,13 @@ div.user {
533
569
 
534
570
  #loginform {
535
571
  width: 300px;
536
- margin-left: 110px;
537
- padding: 0px;
572
+ margin-left: auto;
573
+ margin-right: auto;
574
+ padding: 100px;
575
+ }
576
+
577
+ #loginform input {
578
+ margin-bottom: 10px;
538
579
  }
539
580
 
540
581
  #loginform div.form {
@@ -554,9 +595,11 @@ div.user {
554
595
  }
555
596
 
556
597
  #flash .notice {
557
- background: #CBE4C3;
558
- border-top: 1px solid #2E9410;
559
- border-bottom: 1px solid #2E9410;
598
+ font-size: 11px;
599
+ color: #fff;
600
+ background: #637987;
601
+ border-top: 1px solid #336699;
602
+ border-bottom: 1px solid #336699;
560
603
  }
561
604
 
562
605
  #flash .error {
@@ -578,8 +621,10 @@ div.user {
578
621
  border-bottom: 1px dotted #ccc;
579
622
  }
580
623
 
581
- #footer {
582
- font-size: 0.8em;
583
- color: #888;
584
- font-style: italic;
624
+ /*
625
+ * Feedback
626
+ */
627
+
628
+ .feedbackbody td {
629
+ border-bottom: 1px dotted #ccc;
585
630
  }