sproutcore 1.5.0.pre.4.1 → 1.5.0.pre.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. data/CHANGELOG +7 -0
  2. data/VERSION.yml +1 -1
  3. data/lib/buildtasks/manifest.rake +4 -3
  4. data/lib/frameworks/sproutcore/Buildfile +1 -2
  5. data/lib/frameworks/sproutcore/CHANGELOG.md +8 -3
  6. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/app-selector.css +19 -23
  7. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/button.css +139 -135
  8. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/dock.css +5 -0
  9. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/general.css +0 -1
  10. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/menu.css +10 -13
  11. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/modal.css +9 -8
  12. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/picker.css +19 -12
  13. data/lib/frameworks/sproutcore/apps/greenhouse/models/design.js +2 -2
  14. data/lib/frameworks/sproutcore/apps/greenhouse/states/modals.js +1 -1
  15. data/lib/frameworks/sproutcore/apps/greenhouse/theme.js +2 -2
  16. data/lib/frameworks/sproutcore/apps/greenhouse/views/plist_item.js +3 -1
  17. data/lib/frameworks/sproutcore/frameworks/animation/core.js +1 -1
  18. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +31 -20
  19. data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +15 -9
  20. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +5 -5
  21. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +1 -1
  22. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +23 -45
  23. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +1 -1
  24. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +60 -5
  25. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +1 -1
  26. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +2 -2
  27. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +4 -4
  28. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/ready/done.js +32 -0
  29. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +5 -2
  30. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +8 -3
  31. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/layout.js +4 -4
  32. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/collection.js +51 -5
  33. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/core.js +18 -0
  34. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template_view/handlebars.js +261 -0
  35. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +55 -0
  36. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +2 -19
  37. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +3 -1
  38. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +17 -0
  39. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +96 -1
  40. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/prepareContext.js +15 -0
  41. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayerLocation.js +19 -0
  42. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/collection.js +8 -1
  43. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +179 -4
  44. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +8 -14
  45. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +7 -0
  46. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +4 -4
  47. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +51 -114
  48. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +84 -36
  49. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +4 -67
  50. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +244 -1
  51. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +1 -1
  52. data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +1 -1
  53. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +7 -1
  54. data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +1 -1
  55. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +2 -2
  56. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/normalize.js +23 -1
  57. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +4 -2
  58. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +4 -0
  59. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +4 -1
  60. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/record_type_is.js +4 -0
  61. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_comparisons.js +4 -0
  62. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_query_extensions.js +4 -0
  63. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +4 -0
  64. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +5 -1
  65. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +5 -1
  66. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/loadRecord.js +64 -0
  67. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +38 -35
  68. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/unloadRecords.js +4 -0
  69. data/lib/frameworks/sproutcore/frameworks/datetime/system/datetime.js +7 -4
  70. data/lib/frameworks/sproutcore/frameworks/datetime/tests/system/datetime.js +2 -2
  71. data/lib/frameworks/sproutcore/frameworks/debug/core.js +1 -1
  72. data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +5 -5
  73. data/lib/frameworks/sproutcore/frameworks/designer/coders/object.js +1 -1
  74. data/lib/frameworks/sproutcore/frameworks/designer/designers/view_designer.js +11 -3
  75. data/lib/frameworks/sproutcore/frameworks/designer/ext/binding.js +33 -0
  76. data/lib/frameworks/sproutcore/frameworks/designer/ext/object.js +1 -1
  77. data/lib/frameworks/sproutcore/frameworks/designer/ext/page.js +5 -33
  78. data/lib/frameworks/sproutcore/frameworks/designer/ext/view.js +0 -27
  79. data/lib/frameworks/sproutcore/frameworks/designer/tests/coders/page.js +54 -0
  80. data/lib/frameworks/sproutcore/frameworks/designer/tests/designers/view_designer.js +47 -0
  81. data/lib/frameworks/sproutcore/frameworks/designer/views/drawing.js +4 -4
  82. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +19 -6
  83. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +1 -1
  84. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +1 -1
  85. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +1 -1
  86. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +133 -39
  87. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +3 -3
  88. data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +6 -5
  89. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +8 -2
  90. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/ui.js +10 -2
  91. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +8 -2
  92. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +10 -2
  93. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/ui_diagram.js +15 -9
  94. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +8 -2
  95. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +8 -2
  96. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +10 -2
  97. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +10 -2
  98. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +31 -0
  99. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +10 -3
  100. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +10 -3
  101. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +10 -3
  102. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +15 -8
  103. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +10 -3
  104. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +1 -1
  105. data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +1 -1
  106. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +1 -7
  107. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +10 -0
  108. data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +3 -3
  109. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +2 -2
  110. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +17 -5
  111. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +60 -27
  112. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +1 -1
  113. data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +4 -4
  114. data/lib/frameworks/sproutcore/frameworks/foundation/system/cookie.js +29 -18
  115. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +18 -18
  116. data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +5 -5
  117. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +62 -1
  118. data/lib/frameworks/sproutcore/frameworks/foundation/tests/integration/creating_views.js +8 -3
  119. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/ui.js +4 -3
  120. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +5 -3
  121. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +5 -3
  122. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/cookie.js +20 -4
  123. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +235 -0
  124. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +5 -0
  125. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +0 -2
  126. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +8 -3
  127. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +2 -2
  128. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +19 -11
  129. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +6 -13
  130. data/lib/frameworks/sproutcore/frameworks/handlebars/extensions.js +23 -117
  131. data/lib/frameworks/sproutcore/frameworks/handlebars/extensions/bind.js +136 -0
  132. data/lib/frameworks/sproutcore/frameworks/handlebars/extensions/collection.js +75 -0
  133. data/lib/frameworks/sproutcore/frameworks/handlebars/extensions/localization.js +5 -0
  134. data/lib/frameworks/sproutcore/frameworks/handlebars/extensions/view.js +115 -0
  135. data/lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js +143 -80
  136. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +1 -1
  137. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +4 -4
  138. data/lib/frameworks/sproutcore/frameworks/media/views/video.js +5 -5
  139. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array.js +14 -0
  140. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +1 -1
  141. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +13 -13
  142. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +4 -4
  143. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +3 -3
  144. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +1 -1
  145. data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +25 -17
  146. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/pointers.psd +0 -0
  147. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +18 -12
  148. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +30 -16
  149. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +27 -15
  150. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +5 -0
  151. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/button.css +8 -0
  152. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +25 -16
  153. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +21 -15
  154. data/lib/frameworks/sproutcore/themes/ace/resources/imagebutton/ace/imagebutton.css +11 -0
  155. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel.png +0 -0
  156. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.css +41 -0
  157. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers.png +0 -0
  158. data/lib/sproutcore.rb +2 -0
  159. data/lib/sproutcore/buildfile.rb +17 -17
  160. data/lib/sproutcore/buildfile/task.rb +4 -12
  161. data/lib/sproutcore/buildfile/task_manager.rb +13 -4
  162. data/lib/sproutcore/models/manifest.rb +3 -3
  163. data/lib/sproutcore/models/target.rb +1 -1
  164. data/spec/fixtures/real_world/Buildfile +1 -1
  165. data/vendor/chance/lib/chance/imagers/data_url.rb +38 -19
  166. data/vendor/chance/lib/chance/instance.rb +4 -7
  167. data/vendor/chance/lib/chance/slicing.rb +6 -10
  168. metadata +18 -5
  169. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/tabbed.css +0 -68
  170. data/lib/frameworks/sproutcore/frameworks/designer/coders/localization.js +0 -19
  171. data/lib/sproutcore/buildfile/cloneable.rb +0 -34
@@ -22,6 +22,7 @@
22
22
  border: none;
23
23
  }
24
24
 
25
+ .sc-theme .anchored .sc-collection-view .sc-collection-item.sel,
25
26
  .sc-theme.focus .anchored .sc-collection-view.focus .sc-collection-item.sel {
26
27
  background: #A4BE49;
27
28
  color: #000;
@@ -66,6 +67,10 @@
66
67
  border-top: 1px solid #333;
67
68
  }
68
69
 
70
+ .anchored .sc-label-view {
71
+ color: #fff;
72
+ }
73
+
69
74
  .anchored .sc-label-view.title {
70
75
  top: 12px !important;
71
76
  }
@@ -23,7 +23,6 @@
23
23
  /* General Styles
24
24
  ---------------------------------------------- */
25
25
 
26
- body.sc-theme,
27
26
  body.sc-theme > .sc-pane.sc-main{
28
27
  overflow: hidden;
29
28
  background: static_url('images/main-bg.png');
@@ -21,11 +21,7 @@
21
21
  background: none;
22
22
  }
23
23
 
24
- .sc-panel.sc-menu .sc-menu-item a span {
25
- color: #eaeaea;
26
- text-shadow: 0 1px 0 #000;
27
- }
28
-
24
+ .sc-panel.sc-menu .sc-menu-item a span,
29
25
  .sc-panel.sc-menu .sc-menu-item.focus a span {
30
26
  color: #eaeaea;
31
27
  text-shadow: 0 1px 0 #000;
@@ -40,13 +36,14 @@
40
36
  }
41
37
 
42
38
  /* Hide superfluous divs (css3 baby!) */
43
- .sc-panel.sc-menu .top-left-edge,
44
- .sc-panel.sc-menu .top-edge,
45
- .sc-panel.sc-menu .top-right-edge,
46
- .sc-panel.sc-menu .right-edge,
47
- .sc-panel.sc-menu .bottom-right-edge,
48
- .sc-panel.sc-menu .bottom-edge,
49
- .sc-panel.sc-menu .bottom-left-edge,
50
- .sc-panel.sc-menu .left-edge {
39
+ .greenhouse.menu .panel-background .top-left,
40
+ .greenhouse.menu .panel-background .top,
41
+ .greenhouse.menu .panel-background .top-right,
42
+ .greenhouse.menu .panel-background .left,
43
+ .greenhouse.menu .panel-background .middle,
44
+ .greenhouse.menu .panel-background .right,
45
+ .greenhouse.menu .panel-background .bottom-left,
46
+ .greenhouse.menu .panel-background .bottom,
47
+ .greenhouse.menu .panel-background .bottom-right {
51
48
  display: none;
52
49
  }
@@ -28,13 +28,14 @@
28
28
  }
29
29
 
30
30
  /* Hide superfluous divs (css3 baby!) */
31
- .sc-modal.for-sc-panel + .sc-panel .top-left-edge,
32
- .sc-modal.for-sc-panel + .sc-panel .top-edge,
33
- .sc-modal.for-sc-panel + .sc-panel .top-right-edge,
34
- .sc-modal.for-sc-panel + .sc-panel .right-edge,
35
- .sc-modal.for-sc-panel + .sc-panel .bottom-right-edge,
36
- .sc-modal.for-sc-panel + .sc-panel .bottom-edge,
37
- .sc-modal.for-sc-panel + .sc-panel .bottom-left-edge,
38
- .sc-modal.for-sc-panel + .sc-panel .left-edge {
31
+ .greenhouse.panel .panel-background .top-left,
32
+ .greenhouse.panel .panel-background .top,
33
+ .greenhouse.panel .panel-background .top-right,
34
+ .greenhouse.panel .panel-background .left,
35
+ .greenhouse.panel .panel-background .middle,
36
+ .greenhouse.panel .panel-background .right,
37
+ .greenhouse.panel .panel-background .bottom-left,
38
+ .greenhouse.panel .panel-background .bottom,
39
+ .greenhouse.panel .panel-background .bottom-right {
39
40
  display: none;
40
41
  }
@@ -7,7 +7,8 @@
7
7
 
8
8
 
9
9
  /* Pointers */
10
- .gh-picker.sc-pane.sc-panel.sc-palette.sc-picker .perfectBottom {
10
+
11
+ .sc-pane.sc-panel.sc-picker.gh-picker .perfectBottom {
11
12
  width: 25px;
12
13
  height: 15px;
13
14
  top: -11px;
@@ -15,7 +16,7 @@
15
16
  margin-left: -13px;
16
17
  background: static_url('images/picker/pointer-top.png') no-repeat;
17
18
  }
18
- .gh-picker.sc-pane.sc-panel.sc-palette.sc-picker .perfectTop {
19
+ .sc-pane.sc-panel.sc-picker.gh-picker .perfectTop {
19
20
  width: 21px;
20
21
  height: 11px;
21
22
  bottom: -11px;
@@ -23,14 +24,14 @@
23
24
  margin-left: -11px;
24
25
  background: static_url('images/picker/pointer-bottom.png') no-repeat;
25
26
  }
26
- .gh-picker.sc-pane.sc-panel.sc-palette.sc-picker .perfectLeft {
27
+ .sc-pane.sc-panel.sc-picker.gh-picker .perfectLeft {
27
28
  width: 12px;
28
29
  height: 22px;
29
30
  right: -13px;
30
31
  top: 22%;
31
32
  background: static_url('images/picker/pointer-right.png') no-repeat;
32
33
  }
33
- .gh-picker.sc-pane.sc-panel.sc-palette.sc-picker .perfectRight {
34
+ .sc-pane.sc-panel.sc-picker.gh-picker .perfectRight {
34
35
  width: 12px;
35
36
  height: 22px;
36
37
  left: -13px;
@@ -39,7 +40,12 @@
39
40
  }
40
41
 
41
42
  /* Edges */
42
- .gh-picker.sc-pane.sc-panel.sc-palette .top-left-edge {
43
+
44
+ .gh-picker .panel-background div {
45
+ position: absolute;
46
+ }
47
+
48
+ .gh-picker .panel-background .top-left {
43
49
  width: 18px;
44
50
  height: 53px;
45
51
  top: 0px;
@@ -48,7 +54,7 @@
48
54
  background: static_url('images/picker/top-left.png') no-repeat;
49
55
  }
50
56
 
51
- .gh-picker.sc-pane.sc-panel.sc-palette .top-edge {
57
+ .gh-picker .panel-background .top {
52
58
  left: 9px;
53
59
  right: 9px;
54
60
  height: 53px;
@@ -56,7 +62,7 @@
56
62
  background: static_url('images/picker/top.png') repeat-x;
57
63
  }
58
64
 
59
- .gh-picker.sc-pane.sc-panel.sc-palette .top-right-edge{
65
+ .gh-picker .panel-background .top-right {
60
66
  width: 18px;
61
67
  height: 53px;
62
68
  top: 0px;
@@ -65,7 +71,7 @@
65
71
  background: static_url('images/picker/top-right.png') no-repeat;
66
72
  }
67
73
 
68
- .gh-picker.sc-pane.sc-panel.sc-palette .right-edge{
74
+ .gh-picker .panel-background .right {
69
75
  top: 53px;
70
76
  bottom: 11px;
71
77
  width: 18px;
@@ -73,7 +79,7 @@
73
79
  background: static_url('images/picker/right.png') repeat-y;
74
80
  }
75
81
 
76
- .gh-picker.sc-pane.sc-panel.sc-palette .bottom-right-edge {
82
+ .gh-picker .panel-background .bottom-right {
77
83
  width: 18px;
78
84
  height: 23px;
79
85
  bottom: -12px;
@@ -82,7 +88,7 @@
82
88
  background: static_url('images/picker/bottom-right.png') no-repeat;
83
89
  }
84
90
 
85
- .gh-picker.sc-pane.sc-panel.sc-palette .bottom-edge {
91
+ .gh-picker .panel-background .bottom {
86
92
  left: 9px;
87
93
  right: 9px;
88
94
  height: 23px;
@@ -90,7 +96,7 @@
90
96
  background: static_url('images/picker/bottom.png') repeat-x;
91
97
  }
92
98
 
93
- .gh-picker.sc-pane.sc-panel.sc-palette .bottom-left-edge {
99
+ .gh-picker .panel-background .bottom-left {
94
100
  width: 18px;
95
101
  height: 23px;
96
102
  bottom: -12px;
@@ -99,7 +105,7 @@
99
105
  background: static_url('images/picker/bottom-left.png') no-repeat;
100
106
  }
101
107
 
102
- .gh-picker.sc-pane.sc-panel.sc-palette .left-edge {
108
+ .gh-picker .panel-background .left {
103
109
  top: 53px;
104
110
  bottom: 11px;
105
111
  width: 18px;
@@ -118,6 +124,7 @@
118
124
  border: none;
119
125
  }
120
126
 
127
+ .sc-theme .sc-panel.sc-palette .sc-collection-view .sc-collection-item.sel,
121
128
  .sc-theme.focus .sc-panel.sc-palette .sc-collection-view.focus .sc-collection-item.sel {
122
129
  background: #A4BE49;
123
130
  color: #000;
@@ -20,7 +20,7 @@ Greenhouse.Design = SC.Record.extend(
20
20
  defaults: SC.Record.attr(Object),
21
21
 
22
22
  canEdit: function(){
23
- return this._parentRecord.get('canEdit');
24
- }.property().cacheable()
23
+ return this.getPath('parentRecord.canEdit');
24
+ }.property('parentRecord').cacheable()
25
25
 
26
26
  }) ;
@@ -22,7 +22,7 @@ Greenhouse.mixin( /** @scope Greenhouse */{
22
22
  parallelStatechart: 'modals',
23
23
 
24
24
  newBindingPopup: function(item){
25
- Greenhouse.createBindingPopup.set('newItem', item);
25
+ Greenhouse.setPath('modalStates.createBindingPopup.newItem', item);
26
26
  this.gotoState('createBindingPopup');
27
27
  },
28
28
 
@@ -16,10 +16,10 @@ SC.Theme.addTheme(Greenhouse.Theme);
16
16
  SC.defaultTheme = 'greenhouse';
17
17
 
18
18
 
19
- Greenhouse.Theme.Well.containerRenderDelegate = SC.Object.create({
19
+ Greenhouse.Theme.wellRenderDelegate = SC.Object.create({
20
20
  name: 'container',
21
21
 
22
22
  render: function(dataSource, context) {},
23
23
 
24
24
  update: function() {}
25
- });
25
+ });
@@ -27,7 +27,6 @@ Greenhouse.PlistItemView = SC.View.extend(SC.Control,
27
27
  key = this.get('contentValueKey');
28
28
  propertyKey = (key && content) ? (content.get ? content.get(key) : content[key]) : content ;
29
29
  value = content.get('value');
30
-
31
30
  //do the label
32
31
  context.begin('label').addStyle({paddingLeft: 5}).text(propertyKey).end();
33
32
  if(value !== undefined){
@@ -38,6 +37,9 @@ Greenhouse.PlistItemView = SC.View.extend(SC.Control,
38
37
  this.renderCheckbox(context,content.get('value'));
39
38
  //context.begin('span').addStyle(this._valueStyle).text("bool").end();
40
39
  }
40
+ else if(value.isBinding){
41
+ context.begin('span').addStyle(this._valueStyle).text(value.displayValue()).end();
42
+ }
41
43
  else{
42
44
  value = value.toString();
43
45
  context.begin('span').addStyle(this._valueStyle).text(value).end();
@@ -62,7 +62,7 @@ SC.Animatable = {
62
62
 
63
63
  // properties that adjust should relay to style
64
64
  _styleProperties: [ "display", "transform" ],
65
- _layoutStyles: 'width height top bottom marginLeft marginTop left right zIndex minWidth maxWidth minHeight maxHeight centerX centerY opacity'.w(),
65
+ _layoutStyles: 'width height top bottom marginLeft marginTop left right zIndex minWidth maxWidth minHeight maxHeight centerX centerY opacity border borderTop borderRight borderBottom borderLeft'.w(),
66
66
 
67
67
  // we cache this dictionary so we don't generate a new one each time we make
68
68
  // a new animation. It is used so we can start the animations in order—
@@ -17,38 +17,49 @@ SC._detectBrowser = function(userAgent, language) {
17
17
  version = browser.version = (userAgent.match( /.*(?:rv|chrome|webkit|opera|ie)[\/: ](.+?)([ \);]|$)/ ) || [])[1];
18
18
  webkitVersion = (userAgent.match( /webkit\/(.+?) / ) || [])[1];
19
19
 
20
- // Platforms -- these should probably be moved to another object
21
- // We test for these first because it is helpful when determining browsers below
22
- browser.windows = !!/windows/.test(userAgent);
23
- browser.mac = !!/macintosh/.test(userAgent) || (/mac os x/.test(userAgent) && !/like mac os x/.test(userAgent));
24
- browser.iOS = !!/iphone|ipod|ipad/.test(userAgent);
25
- browser.android = !!/android/.test(userAgent);
26
-
27
- // IE-based browsers
20
+ browser.windows = browser.isWindows = !!/windows/.test(userAgent);
21
+ browser.mac = browser.isMac = !!/macintosh/.test(userAgent) || (/mac os x/.test(userAgent) && !/like mac os x/.test(userAgent));
22
+ browser.iPhone = browser.isiPhone = !!/iphone/.test(userAgent);
23
+ browser.iPod = browser.isiPod = !!/ipod/.test(userAgent);
24
+ browser.iPad = browser.isiPad = !!/ipad/.test(userAgent);
25
+ browser.iOS = browser.isiOS = browser.iPhone || browser.iPod || browser.iPad;
26
+ browser.android = browser.isAndroid = !!/android/.test(userAgent);
27
+
28
28
  browser.opera = /opera/.test(userAgent) ? version : 0;
29
+ browser.isOpera = !!browser.opera;
30
+
29
31
  browser.msie = /msie/.test(userAgent) && !browser.opera ? version : 0;
32
+ browser.isIE = !!browser.msie;
33
+ browser.isIE8OrLower = !!(browser.msie && parseInt(browser.msie, 10) <= 8);
30
34
 
31
- // Mozilla browsers
32
35
  browser.mozilla = /mozilla/.test(userAgent) && !/(compatible|webkit|msie)/.test(userAgent) ? version : 0;
36
+ browser.isMozilla = !!browser.mozilla;
33
37
 
34
- // Webkit-based browsers
35
38
  browser.webkit = /webkit/.test(userAgent) ? webkitVersion : 0;
39
+ browser.isWebkit = !!browser.webkit;
40
+
36
41
  browser.chrome = /chrome/.test(userAgent) ? version: 0;
42
+ browser.isChrome = !!browser.chrome;
43
+
37
44
  browser.mobileSafari = /apple.*mobile.*safari/.test(userAgent) && browser.iOS ? webkitVersion : 0;
38
- browser.iPadSafari = /iPad/.test(userAgent) && browser.iOS ? webkitVersion : 0;
39
- browser.iPhoneSafari = /iPhone/.test(userAgent) && browser.iOS ? webkitVersion : 0;
40
-
41
- // this is a stupid test -- anything that aren't the following doesn't necessarily mean Safari
45
+ browser.isMobileSafari = !!browser.mobileSafari;
46
+
47
+ browser.iPadSafari = browser.iPad && browser.isMobileSafari ? webkitVersion : 0;
48
+ browser.isiPadSafari = !!browser.iPadSafari;
49
+
50
+ browser.iPhoneSafari = browser.iPhone && browser.isMobileSafari ? webkitVersion : 0;
51
+ browser.isiPhoneSafari = !!browser.iphoneSafari;
52
+
53
+ browser.iPodSafari = browser.iPod && browser.isMobileSafari ? webkitVersion : 0;
54
+ browser.isiPodSafari = !!browser.iPodSafari;
55
+
42
56
  browser.safari = browser.webkit && !browser.chrome && !browser.iOS && !browser.android ? webkitVersion : 0;
57
+ browser.isSafari = !!browser.safari;
43
58
 
44
- // Language
45
59
  browser.language = language.split('-', 1)[0];
46
60
 
47
-
48
- browser.isIE8OrLower = !!(browser.msie && parseInt(browser.msie,10) <= 8);
49
-
50
- browser.current = browser.msie ? 'msie' : browser.mozilla ? 'mozilla' : browser.chrome ? 'chrome' : browser.safari ? 'safari' : browser.opera ? 'opera' : browser.mobileSafari ? 'mobile-safari' : 'unknown' ;
51
- return browser ;
61
+ browser.current = browser.msie ? 'msie' : browser.mozilla ? 'mozilla' : browser.chrome ? 'chrome' : browser.safari ? 'safari' : browser.opera ? 'opera' : browser.mobileSafari ? 'mobile-safari' : 'unknown';
62
+ return browser;
52
63
  };
53
64
 
54
65
  SC.browser = SC._detectBrowser();
@@ -10,6 +10,9 @@ var cleanBrowser = {
10
10
  windows: 0,
11
11
  mac: 0,
12
12
  iOS: 0,
13
+ iPhone: 0,
14
+ iPod: 0,
15
+ iPad: 0,
13
16
  android: 0,
14
17
  opera: 0,
15
18
  msie: 0,
@@ -17,6 +20,9 @@ var cleanBrowser = {
17
20
  webkit: 0,
18
21
  chrome: 0,
19
22
  mobileSafari: 0,
23
+ iPadSafari: 0,
24
+ iPodSafari: 0,
25
+ iPhoneSafari: 0,
20
26
  safari: 0
21
27
  };
22
28
 
@@ -133,27 +139,27 @@ test("Firefox Windows 4.0b7pre", function() {
133
139
 
134
140
  test("Mobile Safari - iOS 3.2.2 iPad", function() {
135
141
  var userAgent = "Mozilla/5.0 (iPad; U; CPU OS 3_2_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B500 Safari/531.21.10";
136
- testUserAgent(userAgent, { version: '531.21.10', webkit: '531.21.10', mobileSafari: '531.21.10', current: 'mobile-safari', iOS: true });
142
+ testUserAgent(userAgent, { version: '531.21.10', webkit: '531.21.10', mobileSafari: '531.21.10', iPadSafari: '531.21.10', current: 'mobile-safari', iOS: true, iPad: true });
137
143
  });
138
144
 
139
- test("Mobile Safari - iOS 4.0", function() {
145
+ test("Mobile Safari - iOS 4.0 iPhone", function() {
140
146
  var userAgent = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7";
141
- testUserAgent(userAgent, { version: '532.9', webkit: '532.9', mobileSafari: '532.9', current: 'mobile-safari', iOS: true });
147
+ testUserAgent(userAgent, { version: '532.9', webkit: '532.9', mobileSafari: '532.9', iPhoneSafari: '532.9', current: 'mobile-safari', iOS: true, iPhone: true });
142
148
  });
143
149
 
144
- test("Mobile Safari - iOS 4.1", function() {
150
+ test("Mobile Safari - iOS 4.1 iPhone", function() {
145
151
  var userAgent = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7";
146
- testUserAgent(userAgent, { version: '532.9', webkit: '532.9', mobileSafari: '532.9', current: 'mobile-safari', iOS: true });
152
+ testUserAgent(userAgent, { version: '532.9', webkit: '532.9', mobileSafari: '532.9', iPhoneSafari: '532.9', current: 'mobile-safari', iOS: true, iPhone: true });
147
153
  });
148
154
 
149
- test("iOS WebView - iOS 4.1", function() {
155
+ test("iOS WebView - iOS 4.1 iPhone", function() {
150
156
  var userAgent = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Mobile/8B117";
151
- testUserAgent(userAgent, { version: '532.9', webkit: '532.9', current: 'unknown', iOS: true });
157
+ testUserAgent(userAgent, { version: '532.9', webkit: '532.9', current: 'unknown', iOS: true, iPhone: true });
152
158
  });
153
159
 
154
- test("iOS WebView - iOS 4.2.1", function() {
160
+ test("iOS WebView - iOS 4.2.1 iPhone", function() {
155
161
  var userAgent = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8C14";
156
- testUserAgent(userAgent, { version: '533.17.9', webkit: '533.17.9', current: 'unknown', iOS: true });
162
+ testUserAgent(userAgent, { version: '533.17.9', webkit: '533.17.9', current: 'unknown', iOS: true, iPhone: true });
157
163
  });
158
164
 
159
165
  test("Unknown", function() {
@@ -128,7 +128,7 @@ SC.ResponderContext = {
128
128
 
129
129
  if (this._locked) {
130
130
  if (trace) {
131
- console.log('%@: AFTER ACTION: makeFirstResponder => %@'.fmt(this, this.responderNameFor(responder)));
131
+ SC.Logger.log('%@: AFTER ACTION: makeFirstResponder => %@'.fmt(this, this.responderNameFor(responder)));
132
132
  }
133
133
 
134
134
  this._pendingResponder = responder;
@@ -136,7 +136,7 @@ SC.ResponderContext = {
136
136
  }
137
137
 
138
138
  if (trace) {
139
- console.log('%@: makeFirstResponder => %@'.fmt(this, this.responderNameFor(responder)));
139
+ SC.Logger.log('%@: makeFirstResponder => %@'.fmt(this, this.responderNameFor(responder)));
140
140
  }
141
141
 
142
142
  if (responder) responder.set("becomingFirstResponder", YES);
@@ -233,7 +233,7 @@ SC.ResponderContext = {
233
233
 
234
234
  this._locked = YES;
235
235
  if (trace) {
236
- console.log("%@: begin action '%@' (%@, %@)".fmt(this, action, sender, context));
236
+ SC.Logger.log("%@: begin action '%@' (%@, %@)".fmt(this, action, sender, context));
237
237
  }
238
238
 
239
239
  if (!handled && !working && this.tryToPerform) {
@@ -251,8 +251,8 @@ SC.ResponderContext = {
251
251
  }
252
252
 
253
253
  if (trace) {
254
- if (!handled) console.log("%@: action '%@' NOT HANDLED".fmt(this,action));
255
- else console.log("%@: action '%@' handled by %@".fmt(this, action, this.responderNameFor(working)));
254
+ if (!handled) SC.Logger.log("%@: action '%@' NOT HANDLED".fmt(this,action));
255
+ else SC.Logger.log("%@: action '%@' handled by %@".fmt(this, action, this.responderNameFor(working)));
256
256
  }
257
257
 
258
258
  this._locked = NO ;
@@ -654,7 +654,7 @@ SC.Pane = SC.View.extend(SC.ResponderContext,
654
654
  init: function() {
655
655
  // Backwards compatibility
656
656
  if (this.hasTouchIntercept === YES) {
657
- console.warn("Do not set hasTouchIntercept directly. Use wantsTouchIntercept instead.");
657
+ SC.Logger.warn("Do not set hasTouchIntercept directly. Use wantsTouchIntercept instead.");
658
658
  this.hasTouchIntercept = SC.platform.touch;
659
659
  }
660
660
 
@@ -5,54 +5,32 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
- /** Detects the current browser type. Borrowed from jQuery + prototype */
9
- SC.mixin(SC.browser, (function() {
10
- var viewport = window.innerWidth,
11
- browser = SC.browser,
12
- standalone = navigator.standalone;
13
-
14
- // Add more SC-like descriptions...
15
- SC.extend(browser, /** @scope SC.browser */ {
16
-
17
- isOpera: !!browser.opera,
18
- isIE: !!browser.msie,
19
- isSafari: !!browser.safari,
20
- isMobileSafari: (!!browser.mobileSafari || !!browser.standalone),
21
- isMozilla: !!browser.mozilla,
22
- isWindows: !!browser.windows,
23
- isMac: !!browser.mac,
24
- isAndroid: !!browser.android,
25
- isiPhone: ((!!browser.mobileSafari || !!browser.standalone) && (viewport == 320 || viewport == 480)),
8
+ SC.mixin(SC.browser,
9
+ /** @scope SC.browser */ {
26
10
 
27
- /**
28
- The current browser name. This is useful for switch statements. */
29
- current: browser.msie ? 'msie' : browser.mozilla ? 'mozilla' : browser.safari ? 'safari' : browser.opera ? 'opera' : 'unknown',
30
-
31
- /**
32
- Pass any number of arguments, and this will check them against the browser
33
- version split on ".". If any of them are not equal, return the inequality.
34
- If as many arguments as were passed in are equal, return 0. If something
35
- is NaN, return 0. */
36
- compareVersion: function () {
37
- if (this._versionSplit === undefined) {
38
- var coerce = function (part) {
39
- return Number(part.match(/^[0-9]+/));
40
- };
41
- this._versionSplit = SC.A(this.version.split('.')).map(coerce);
42
- }
11
+ /**
12
+ Pass any number of arguments, and this will check them against the browser
13
+ version split on ".". If any of them are not equal, return the inequality.
14
+ If as many arguments as were passed in are equal, return 0. If something
15
+ is NaN, return 0.
16
+ */
17
+ compareVersion: function () {
18
+ if (this._versionSplit === undefined) {
19
+ var coerce = function (part) {
20
+ return Number(part.match(/^[0-9]+/));
21
+ };
22
+ this._versionSplit = SC.A(this.version.split('.')).map(coerce);
23
+ }
43
24
 
44
- var tests = SC.A(arguments).map(Number);
45
- for (var i = 0; i < tests.length; i++) {
46
- var check = this._versionSplit[i] - tests[i];
47
- if (isNaN(check)) return 0;
48
- if (check !== 0) return check;
49
- }
50
-
51
- return 0;
25
+ var tests = SC.A(arguments).map(Number);
26
+ for (var i = 0; i < tests.length; i++) {
27
+ var check = this._versionSplit[i] - tests[i];
28
+ if (isNaN(check)) return 0;
29
+ if (check !== 0) return check;
52
30
  }
53
31
 
54
- }) ;
55
- return browser ;
32
+ return 0;
33
+ }
56
34
 
57
- })() );
35
+ });
58
36