hippo-fw 0.9.6 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/client/hippo/components/asset.jsx +22 -2
  3. data/client/hippo/components/asset.scss +1 -1
  4. data/client/hippo/components/data-list.jsx +38 -27
  5. data/client/hippo/components/data-list/data-list.scss +2 -0
  6. data/client/hippo/components/data-table.jsx +4 -2
  7. data/client/hippo/components/data-table/formatters.js +7 -0
  8. data/client/hippo/components/data-table/table-styles.scss +10 -0
  9. data/client/hippo/components/date-time.jsx +93 -133
  10. data/client/hippo/components/date-time.scss +1 -36
  11. data/client/hippo/components/form/api.js +4 -3
  12. data/client/hippo/components/form/fields.jsx +7 -1
  13. data/client/hippo/components/form/fields/date-wrapper.jsx +4 -4
  14. data/client/hippo/components/icon.jsx +10 -1
  15. data/client/hippo/components/query-builder.jsx +6 -1
  16. data/client/hippo/components/record-finder/query-layer.jsx +1 -1
  17. data/client/hippo/components/save-button.jsx +55 -0
  18. data/client/hippo/components/text-editor.jsx +10 -9
  19. data/client/hippo/components/text-editor/text-editor.scss +0 -1
  20. data/client/hippo/components/time-zone-select.jsx +60 -0
  21. data/client/hippo/models/asset.js +10 -5
  22. data/client/hippo/models/base.js +1 -1
  23. data/client/hippo/models/pub_sub.js +22 -67
  24. data/client/hippo/models/pub_sub/channel.js +28 -8
  25. data/client/hippo/models/pub_sub/map.js +57 -0
  26. data/client/hippo/models/query/array-result.js +5 -4
  27. data/client/hippo/models/query/field.js +19 -3
  28. data/client/hippo/models/system-setting.js +16 -1
  29. data/client/hippo/models/tenant.js +8 -7
  30. data/client/hippo/screens/system-settings.jsx +10 -12
  31. data/client/hippo/screens/user-management/edit-form.jsx +10 -11
  32. data/client/hippo/workspace/index.jsx +6 -3
  33. data/client/hippo/workspace/menu-option.jsx +2 -5
  34. data/client/hippo/workspace/menu.jsx +13 -1
  35. data/client/hippo/workspace/styles.scss +11 -26
  36. data/command-reference-files/initial/Gemfile +1 -1
  37. data/command-reference-files/model/client/appy-app/models/test_test.js +1 -1
  38. data/command-reference-files/model/spec/server/models/test_test_spec.rb +10 -0
  39. data/lib/hippo/api/cable.rb +0 -2
  40. data/lib/hippo/command/generate_model.rb +2 -3
  41. data/lib/hippo/spec_helper.rb +4 -2
  42. data/lib/hippo/tenant.rb +7 -1
  43. data/lib/hippo/version.rb +1 -1
  44. data/package-lock.json +60 -46
  45. data/package.json +5 -2
  46. data/spec/client/components/__snapshots__/record-finder.spec.jsx.snap +1 -0
  47. data/spec/client/components/__snapshots__/time-zone-select.spec.jsx.snap +48 -0
  48. data/spec/client/components/form.spec.jsx +7 -0
  49. data/spec/client/components/time-zone-select.spec.jsx +11 -0
  50. data/spec/client/models/pub_sub.spec.js +1 -3
  51. data/spec/client/models/pub_sub/channel.spec.js +45 -0
  52. data/spec/client/models/system-setting.spec.js +14 -0
  53. data/spec/client/workspace/__snapshots__/menu.spec.jsx.snap +9 -9
  54. data/spec/server/api/tenant_change_spec.rb +1 -1
  55. data/templates/client/models/model.js +1 -1
  56. data/templates/spec/factories/model.rb +6 -0
  57. data/templates/spec/server/model_spec.rb +4 -4
  58. data/views/hippo_root_view.erb +4 -0
  59. metadata +11 -10
  60. data/client/hippo/components/date-time/calendar.jsx +0 -113
  61. data/client/hippo/components/date-time/date-time-drop.jsx +0 -75
  62. data/client/hippo/components/date-time/date-time.scss +0 -157
  63. data/client/hippo/components/date-time/time.jsx +0 -119
  64. data/client/hippo/workspace/foo.js +0 -0
  65. data/command-reference-files/model/spec/fixtures/appy-app/test_test.yml +0 -11
  66. data/command-reference-files/model/spec/server/test_test_spec.rb +0 -10
  67. data/spec/client/components/date-time.spec.jsx +0 -20
@@ -1,119 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import cn from 'classnames';
4
- import { inRange, get, isString } from 'lodash';
5
- import { action, observable } from 'mobx';
6
- import { observer } from 'mobx-react';
7
- import InputSlider from 'react-input-slider';
8
- import CheckBox from 'grommet/components/CheckBox';
9
- import Box from 'grommet/components/Box';
10
-
11
- const NON_DIGIT = /\D/;
12
-
13
- function getDigits(ev) {
14
- const val = get(ev, 'target.value', ev.x);
15
- if (isString(val) && (!val || NON_DIGIT.test(val))) { return null; }
16
- return parseInt(val, 10);
17
- }
18
-
19
- @observer
20
- export default class TimeSelector extends React.PureComponent {
21
- static propTypes = {
22
- moment: PropTypes.object.isRequired,
23
- onChange: PropTypes.func.isRequired,
24
- minuteStep: PropTypes.number,
25
- }
26
-
27
- @observable isPM;
28
- @observable hour;
29
- @observable minutes;
30
-
31
- componentWillMount() {
32
- this.set(this.props);
33
- }
34
-
35
- componentWillReceiveProps(nextProps) {
36
- this.set(nextProps);
37
- }
38
-
39
- set(props) {
40
- this.isPM = !!(12 <= props.moment.hour());
41
- this.hour = (12 <= props.moment.hour()) ? props.moment.hour() - 12 : props.moment.hour();
42
- this.minutes = props.moment.minute();
43
- }
44
-
45
- @action.bound
46
- onHourChange(ev) {
47
- const d = getDigits(ev);
48
- const m = this.props.moment;
49
- if (inRange(d, 1, 13)) {
50
- m.hours(this.isPM ? d + 12 : d);
51
- this.hour = d;
52
- } else {
53
- this.hour = 0;
54
- m.hours(0);
55
- }
56
- this.props.onChange(m);
57
- }
58
-
59
- @action.bound
60
- onMinuteChange(ev) {
61
- const d = getDigits(ev);
62
- if (inRange(d, 0, 60)) {
63
- const m = this.props.moment;
64
- m.minutes(d);
65
- this.props.onChange(m);
66
- this.minutes = d;
67
- } else {
68
- this.minutes = 0;
69
- }
70
- }
71
-
72
- @action.bound
73
- toggleAMPM(ev) {
74
- this.isPM = ev.target.checked;
75
- this.props.moment.hours(this.isPM ? this.hour + 12 : this.hour);
76
- this.props.onChange(this.props.moment);
77
- }
78
-
79
- render() {
80
- const { hour, minutes } = this;
81
-
82
- return (
83
- <div className={cn('time-picker', this.props.className)}>
84
- <Box direction='row' className="showtime" justify="center" align="center">
85
- <input className="hour" value={hour} onChange={this.onHourChange} />
86
- <span className="separater">:</span>
87
- <input className="minutes" value={minutes} onChange={this.onMinuteChange} />
88
- <CheckBox
89
- toggle
90
- className="am-pm"
91
- label='AM / PM'
92
- checked={this.isPM}
93
- onChange={this.toggleAMPM}
94
- />
95
- </Box>
96
-
97
- <div className="sliders">
98
- <div className="time-text">Hours:</div>
99
- <InputSlider
100
- className="u-slider-time"
101
- xmin={1}
102
- xmax={12}
103
- step={this.props.minuteStep}
104
- x={hour}
105
- onChange={this.onHourChange}
106
- />
107
- <div className="time-text">Minutes:</div>
108
- <InputSlider
109
- className="u-slider-time"
110
- xmin={0}
111
- xmax={59}
112
- x={minutes || 0}
113
- onChange={this.onMinuteChange}
114
- />
115
- </div>
116
- </div>
117
- );
118
- }
119
- }
File without changes
@@ -1,11 +0,0 @@
1
- # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
-
3
- first:
4
- name: MyString
5
- email: MyString
6
-
7
- second:
8
- name: MyString
9
- email: MyString
10
-
11
-
@@ -1,10 +0,0 @@
1
- require_relative 'spec_helper'
2
-
3
- describe appy-app::TestTest do
4
-
5
- it "can be instantiated" do
6
- model = appy-app::TestTest.new
7
- expect( model ).to be_an(appy-app::TestTest)
8
- end
9
-
10
- end
@@ -1,20 +0,0 @@
1
- import React from 'react'; // eslint-disable-line no-unused-vars
2
- import DateTime from 'hippo/components/date-time/date-time-drop';
3
- import moment from 'moment';
4
-
5
- describe('DateTime Component', () => {
6
- let props;
7
- beforeEach(() => {
8
- props = {
9
- value: moment('2017-06-26T21:33:13Z'),
10
- onChange: jest.fn(),
11
- };
12
- });
13
-
14
- it('sets time', () => {
15
- const dt = mount(<DateTime {...props} />);
16
- dt.find('.minutes').simulate('change', { target: { value: '42' } });
17
- expect(props.onChange).toHaveBeenCalledWith(props.value);
18
- expect(props.value.minute()).toEqual(42);
19
- });
20
- });