@plusscommunities/pluss-feeds-web 1.0.2-beta.0 → 1.0.3

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.
package/dist/index.cjs.js CHANGED
@@ -73,13 +73,13 @@ const values = {
73
73
  textAreYouSureYouWantToDelete: 'Are you sure you want to delete the post?',
74
74
  textAreYouSureYouWantToApprove: 'Are you sure you want to approve the post?',
75
75
  textAreYouSureYouWantToReject: 'Are you sure you want to reject the post?',
76
- textSingularName: 'Resident Feed',
77
- textEmptyState: 'Your Resident Feeds will show here',
78
- textTitleFeeds: 'Care Feeds',
79
- textMenuTitle: 'Care Feeds',
80
- textPermissionFeedManagement: 'Resident Feed Management',
81
- textPermissionFeedPost: 'Post Resident Feed',
82
- textPermissionFeedDraft: 'Draft Resident Feed'
76
+ textSingularName: 'Resident Activity',
77
+ textEmptyState: 'Your Resident Activity will show here',
78
+ textTitleFeeds: 'Resident Activity',
79
+ textMenuTitle: 'Resident Activity',
80
+ textPermissionFeedManagement: 'Resident Activity Feed Management',
81
+ textPermissionFeedPost: 'Post to Resident Activity Feed',
82
+ textPermissionFeedDraft: 'Resident Activity Feed Submission (Approval Required)'
83
83
  };
84
84
 
85
85
  // import * as PlussCore from '../../pluss-core/src';
@@ -93,8 +93,7 @@ const FeatureConfig = {
93
93
  menu: {
94
94
  order: values.menuOrder,
95
95
  text: values.textMenuTitle,
96
- icon: 'stethoscope',
97
- isFontAwesome: true,
96
+ icon: 'list-burger',
98
97
  url: values.routeHub,
99
98
  countProps: null,
100
99
  visibleExps: {
@@ -829,13 +828,15 @@ class FeedList extends React.Component {
829
828
  }, userContent);
830
829
  }
831
830
  renderTypePopup() {
831
+ const validTypes = ___default["default"].uniq(this.props.source.map(r => r.type)).filter(t => t);
832
+ const orderedTypes = ___default["default"].sortBy(validTypes, t => t.toLowerCase());
832
833
  return /*#__PURE__*/React__default["default"].createElement(Components$4.Popup, {
833
834
  title: "Select Type",
834
835
  maxWidth: 600,
835
836
  minWidth: 400,
836
837
  hasPadding: true,
837
838
  onClose: this.closeFilter
838
- }, ___default["default"].sortBy(___default["default"].uniq(this.props.source.map(r => r.type)), t => t.toLowerCase()).map(type => {
839
+ }, orderedTypes.map(type => {
839
840
  return /*#__PURE__*/React__default["default"].createElement(Components$4.Tag, {
840
841
  key: type,
841
842
  onClick: () => this.selectTypeFilter(type),
@@ -865,7 +866,7 @@ class FeedList extends React.Component {
865
866
  className: "table-TitleColumn"
866
867
  }, /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, {
867
868
  to: "".concat(values.routeFeedDetails, "/").concat(feed.id)
868
- }, /*#__PURE__*/React__default["default"].createElement("span", null, feed.title))), /*#__PURE__*/React__default["default"].createElement("td", null, moment__default["default"].utc(feed.createdTime).local().format('ddd D MMM YYYY h:mma')), /*#__PURE__*/React__default["default"].createElement("td", null, feed.user && feed.user.displayName), /*#__PURE__*/React__default["default"].createElement("td", null, feed.author && feed.author.displayName), /*#__PURE__*/React__default["default"].createElement("td", {
869
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, feed.title))), /*#__PURE__*/React__default["default"].createElement("td", null, moment__default["default"].utc(feed.created).local().format('ddd D MMM YYYY h:mma')), /*#__PURE__*/React__default["default"].createElement("td", null, feed.user && feed.user.displayName), /*#__PURE__*/React__default["default"].createElement("td", null, feed.author && feed.author.displayName), /*#__PURE__*/React__default["default"].createElement("td", {
869
870
  className: "table-options"
870
871
  }, canEdit ? /*#__PURE__*/React__default["default"].createElement("div", {
871
872
  style: {
@@ -1794,7 +1795,7 @@ class FeedHub extends React.Component {
1794
1795
  if (this.canAddNew()) {
1795
1796
  sectionItems.push({
1796
1797
  type: 'newButton',
1797
- text: 'New Feed',
1798
+ text: 'New Post',
1798
1799
  onClick: this.onAddNew
1799
1800
  });
1800
1801
  }
@@ -1831,7 +1832,7 @@ class FeedHub extends React.Component {
1831
1832
  if (Session$2.validateAccess(this.props.auth.site, values.permissionFeedManagement, this.props.auth)) {
1832
1833
  sectionItems.push({
1833
1834
  type: 'navItem',
1834
- text: 'Feed Types',
1835
+ text: 'Post Types',
1835
1836
  // icon: 'maintenance2',
1836
1837
  // isSVG: true,
1837
1838
  selected: this.state.selectedSection === 'feedTypes',
@@ -1846,11 +1847,11 @@ class FeedHub extends React.Component {
1846
1847
  sections: [{
1847
1848
  title: this.props.strings["".concat(values.featureKey, "_textTitleRequests")] || values.textTitleFeeds,
1848
1849
  items: sectionItems
1849
- }]
1850
- // helpGuide={{
1851
- // text: `Help with Feeds`,
1852
- // url: Urls.HelpGuide.Feeds,
1853
- // }}
1850
+ }],
1851
+ helpGuide: {
1852
+ text: "Help with Resident Activity",
1853
+ url: 'https://www.plusscommunities.com/resident-activity-feed-feature'
1854
+ }
1854
1855
  });
1855
1856
  }
1856
1857
  renderRight() {
@@ -2454,34 +2455,6 @@ class AddFeed extends React.Component {
2454
2455
  }, 100);
2455
2456
  }
2456
2457
  }
2457
- renderTypeOptions() {
2458
- const {
2459
- types,
2460
- type
2461
- } = this.state;
2462
- return /*#__PURE__*/React__default["default"].createElement("div", {
2463
- style: {
2464
- marginBottom: 15
2465
- }
2466
- }, /*#__PURE__*/React__default["default"].createElement(Components.Text, {
2467
- type: "formLabel"
2468
- }, "Select Type"), /*#__PURE__*/React__default["default"].createElement("div", {
2469
- className: "marginTop-4"
2470
- }, types.map(ev => {
2471
- if (ev === null) return null;
2472
- return /*#__PURE__*/React__default["default"].createElement(Components.Tag, {
2473
- key: ev.id,
2474
- text: ev.label,
2475
- style: {
2476
- backgroundColor: ev.colour,
2477
- borderRadius: 8,
2478
- marginRight: 10,
2479
- opacity: ev.label === type ? 1 : 0.5
2480
- },
2481
- onClick: () => this.onSelectType(ev.label)
2482
- });
2483
- })));
2484
- }
2485
2458
  renderSuccess() {
2486
2459
  if (!this.state.success) return null;
2487
2460
  const title = this.props.strings["".concat(values.featureKey, "_textTitleFeeds")] || values.textTitleFeeds;
@@ -2498,12 +2471,14 @@ class AddFeed extends React.Component {
2498
2471
  const {
2499
2472
  userId,
2500
2473
  userName,
2474
+ type,
2501
2475
  title
2502
2476
  } = this.state;
2503
- // console.log('validateForm', { userId, userName, title });
2477
+ // console.log('validateForm', { userId, userName, type, title });
2504
2478
 
2505
2479
  if (___default["default"].isEmpty(userId)) return false;
2506
2480
  if (___default["default"].isEmpty(userName)) return false;
2481
+ if (___default["default"].isEmpty(type)) return false;
2507
2482
  if (___default["default"].isEmpty(title)) return false;
2508
2483
  return true;
2509
2484
  }
@@ -2570,6 +2545,45 @@ class AddFeed extends React.Component {
2570
2545
  text: "Select User"
2571
2546
  })));
2572
2547
  }
2548
+ renderTypeOptions() {
2549
+ const {
2550
+ showWarnings,
2551
+ types,
2552
+ type
2553
+ } = this.state;
2554
+ const isValid = !!type;
2555
+ const showError = showWarnings && !isValid;
2556
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2557
+ className: "genericInputContainer ".concat(isValid ? 'genericInput-valid' : '', " ").concat(showError ? 'genericInput-error' : '').trim()
2558
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2559
+ style: {
2560
+ display: 'flex',
2561
+ flexDirection: 'row',
2562
+ alignItems: 'center',
2563
+ marginBottom: 0,
2564
+ justifyContent: 'space-between'
2565
+ }
2566
+ }, /*#__PURE__*/React__default["default"].createElement(Components.Text, {
2567
+ type: "formLabel"
2568
+ }, "Select Type"), showError ? /*#__PURE__*/React__default["default"].createElement("div", {
2569
+ className: "fieldLabel fieldLabel-warning"
2570
+ }, "Required") : null), /*#__PURE__*/React__default["default"].createElement("div", {
2571
+ className: "marginTop-4"
2572
+ }, types.map(ev => {
2573
+ if (ev === null) return null;
2574
+ return /*#__PURE__*/React__default["default"].createElement(Components.Tag, {
2575
+ key: ev.id,
2576
+ text: ev.label,
2577
+ style: {
2578
+ backgroundColor: ev.colour,
2579
+ borderRadius: 8,
2580
+ marginRight: 10,
2581
+ opacity: ev.label === type ? 1 : 0.5
2582
+ },
2583
+ onClick: () => this.onSelectType(ev.label)
2584
+ });
2585
+ })));
2586
+ }
2573
2587
  renderMain() {
2574
2588
  return /*#__PURE__*/React__default["default"].createElement("div", {
2575
2589
  style: {
@@ -2580,7 +2594,7 @@ class AddFeed extends React.Component {
2580
2594
  }, /*#__PURE__*/React__default["default"].createElement(Components.Text, {
2581
2595
  type: "formTitleLarge",
2582
2596
  className: "marginBottom-24"
2583
- }, this.state.feedId == null ? 'New' : 'Edit', " Feed"), this.renderSelectUser(), this.renderTypeOptions(), /*#__PURE__*/React__default["default"].createElement(Components.GenericInput, {
2597
+ }, this.state.feedId == null ? 'New' : 'Edit', " Post"), this.renderSelectUser(), this.renderTypeOptions(), /*#__PURE__*/React__default["default"].createElement(Components.GenericInput, {
2584
2598
  id: "title",
2585
2599
  label: "Title",
2586
2600
  type: "textarea",
package/dist/index.esm.js CHANGED
@@ -42,13 +42,13 @@ const values = {
42
42
  textAreYouSureYouWantToDelete: 'Are you sure you want to delete the post?',
43
43
  textAreYouSureYouWantToApprove: 'Are you sure you want to approve the post?',
44
44
  textAreYouSureYouWantToReject: 'Are you sure you want to reject the post?',
45
- textSingularName: 'Resident Feed',
46
- textEmptyState: 'Your Resident Feeds will show here',
47
- textTitleFeeds: 'Care Feeds',
48
- textMenuTitle: 'Care Feeds',
49
- textPermissionFeedManagement: 'Resident Feed Management',
50
- textPermissionFeedPost: 'Post Resident Feed',
51
- textPermissionFeedDraft: 'Draft Resident Feed'
45
+ textSingularName: 'Resident Activity',
46
+ textEmptyState: 'Your Resident Activity will show here',
47
+ textTitleFeeds: 'Resident Activity',
48
+ textMenuTitle: 'Resident Activity',
49
+ textPermissionFeedManagement: 'Resident Activity Feed Management',
50
+ textPermissionFeedPost: 'Post to Resident Activity Feed',
51
+ textPermissionFeedDraft: 'Resident Activity Feed Submission (Approval Required)'
52
52
  };
53
53
 
54
54
  // import * as PlussCore from '../../pluss-core/src';
@@ -62,8 +62,7 @@ const FeatureConfig = {
62
62
  menu: {
63
63
  order: values.menuOrder,
64
64
  text: values.textMenuTitle,
65
- icon: 'stethoscope',
66
- isFontAwesome: true,
65
+ icon: 'list-burger',
67
66
  url: values.routeHub,
68
67
  countProps: null,
69
68
  visibleExps: {
@@ -798,13 +797,15 @@ class FeedList extends Component {
798
797
  }, userContent);
799
798
  }
800
799
  renderTypePopup() {
800
+ const validTypes = _.uniq(this.props.source.map(r => r.type)).filter(t => t);
801
+ const orderedTypes = _.sortBy(validTypes, t => t.toLowerCase());
801
802
  return /*#__PURE__*/React.createElement(Components$4.Popup, {
802
803
  title: "Select Type",
803
804
  maxWidth: 600,
804
805
  minWidth: 400,
805
806
  hasPadding: true,
806
807
  onClose: this.closeFilter
807
- }, _.sortBy(_.uniq(this.props.source.map(r => r.type)), t => t.toLowerCase()).map(type => {
808
+ }, orderedTypes.map(type => {
808
809
  return /*#__PURE__*/React.createElement(Components$4.Tag, {
809
810
  key: type,
810
811
  onClick: () => this.selectTypeFilter(type),
@@ -834,7 +835,7 @@ class FeedList extends Component {
834
835
  className: "table-TitleColumn"
835
836
  }, /*#__PURE__*/React.createElement(Link, {
836
837
  to: "".concat(values.routeFeedDetails, "/").concat(feed.id)
837
- }, /*#__PURE__*/React.createElement("span", null, feed.title))), /*#__PURE__*/React.createElement("td", null, moment.utc(feed.createdTime).local().format('ddd D MMM YYYY h:mma')), /*#__PURE__*/React.createElement("td", null, feed.user && feed.user.displayName), /*#__PURE__*/React.createElement("td", null, feed.author && feed.author.displayName), /*#__PURE__*/React.createElement("td", {
838
+ }, /*#__PURE__*/React.createElement("span", null, feed.title))), /*#__PURE__*/React.createElement("td", null, moment.utc(feed.created).local().format('ddd D MMM YYYY h:mma')), /*#__PURE__*/React.createElement("td", null, feed.user && feed.user.displayName), /*#__PURE__*/React.createElement("td", null, feed.author && feed.author.displayName), /*#__PURE__*/React.createElement("td", {
838
839
  className: "table-options"
839
840
  }, canEdit ? /*#__PURE__*/React.createElement("div", {
840
841
  style: {
@@ -1763,7 +1764,7 @@ class FeedHub extends Component {
1763
1764
  if (this.canAddNew()) {
1764
1765
  sectionItems.push({
1765
1766
  type: 'newButton',
1766
- text: 'New Feed',
1767
+ text: 'New Post',
1767
1768
  onClick: this.onAddNew
1768
1769
  });
1769
1770
  }
@@ -1800,7 +1801,7 @@ class FeedHub extends Component {
1800
1801
  if (Session$2.validateAccess(this.props.auth.site, values.permissionFeedManagement, this.props.auth)) {
1801
1802
  sectionItems.push({
1802
1803
  type: 'navItem',
1803
- text: 'Feed Types',
1804
+ text: 'Post Types',
1804
1805
  // icon: 'maintenance2',
1805
1806
  // isSVG: true,
1806
1807
  selected: this.state.selectedSection === 'feedTypes',
@@ -1815,11 +1816,11 @@ class FeedHub extends Component {
1815
1816
  sections: [{
1816
1817
  title: this.props.strings["".concat(values.featureKey, "_textTitleRequests")] || values.textTitleFeeds,
1817
1818
  items: sectionItems
1818
- }]
1819
- // helpGuide={{
1820
- // text: `Help with Feeds`,
1821
- // url: Urls.HelpGuide.Feeds,
1822
- // }}
1819
+ }],
1820
+ helpGuide: {
1821
+ text: "Help with Resident Activity",
1822
+ url: 'https://www.plusscommunities.com/resident-activity-feed-feature'
1823
+ }
1823
1824
  });
1824
1825
  }
1825
1826
  renderRight() {
@@ -2423,34 +2424,6 @@ class AddFeed extends Component {
2423
2424
  }, 100);
2424
2425
  }
2425
2426
  }
2426
- renderTypeOptions() {
2427
- const {
2428
- types,
2429
- type
2430
- } = this.state;
2431
- return /*#__PURE__*/React.createElement("div", {
2432
- style: {
2433
- marginBottom: 15
2434
- }
2435
- }, /*#__PURE__*/React.createElement(Components.Text, {
2436
- type: "formLabel"
2437
- }, "Select Type"), /*#__PURE__*/React.createElement("div", {
2438
- className: "marginTop-4"
2439
- }, types.map(ev => {
2440
- if (ev === null) return null;
2441
- return /*#__PURE__*/React.createElement(Components.Tag, {
2442
- key: ev.id,
2443
- text: ev.label,
2444
- style: {
2445
- backgroundColor: ev.colour,
2446
- borderRadius: 8,
2447
- marginRight: 10,
2448
- opacity: ev.label === type ? 1 : 0.5
2449
- },
2450
- onClick: () => this.onSelectType(ev.label)
2451
- });
2452
- })));
2453
- }
2454
2427
  renderSuccess() {
2455
2428
  if (!this.state.success) return null;
2456
2429
  const title = this.props.strings["".concat(values.featureKey, "_textTitleFeeds")] || values.textTitleFeeds;
@@ -2467,12 +2440,14 @@ class AddFeed extends Component {
2467
2440
  const {
2468
2441
  userId,
2469
2442
  userName,
2443
+ type,
2470
2444
  title
2471
2445
  } = this.state;
2472
- // console.log('validateForm', { userId, userName, title });
2446
+ // console.log('validateForm', { userId, userName, type, title });
2473
2447
 
2474
2448
  if (_.isEmpty(userId)) return false;
2475
2449
  if (_.isEmpty(userName)) return false;
2450
+ if (_.isEmpty(type)) return false;
2476
2451
  if (_.isEmpty(title)) return false;
2477
2452
  return true;
2478
2453
  }
@@ -2539,6 +2514,45 @@ class AddFeed extends Component {
2539
2514
  text: "Select User"
2540
2515
  })));
2541
2516
  }
2517
+ renderTypeOptions() {
2518
+ const {
2519
+ showWarnings,
2520
+ types,
2521
+ type
2522
+ } = this.state;
2523
+ const isValid = !!type;
2524
+ const showError = showWarnings && !isValid;
2525
+ return /*#__PURE__*/React.createElement("div", {
2526
+ className: "genericInputContainer ".concat(isValid ? 'genericInput-valid' : '', " ").concat(showError ? 'genericInput-error' : '').trim()
2527
+ }, /*#__PURE__*/React.createElement("div", {
2528
+ style: {
2529
+ display: 'flex',
2530
+ flexDirection: 'row',
2531
+ alignItems: 'center',
2532
+ marginBottom: 0,
2533
+ justifyContent: 'space-between'
2534
+ }
2535
+ }, /*#__PURE__*/React.createElement(Components.Text, {
2536
+ type: "formLabel"
2537
+ }, "Select Type"), showError ? /*#__PURE__*/React.createElement("div", {
2538
+ className: "fieldLabel fieldLabel-warning"
2539
+ }, "Required") : null), /*#__PURE__*/React.createElement("div", {
2540
+ className: "marginTop-4"
2541
+ }, types.map(ev => {
2542
+ if (ev === null) return null;
2543
+ return /*#__PURE__*/React.createElement(Components.Tag, {
2544
+ key: ev.id,
2545
+ text: ev.label,
2546
+ style: {
2547
+ backgroundColor: ev.colour,
2548
+ borderRadius: 8,
2549
+ marginRight: 10,
2550
+ opacity: ev.label === type ? 1 : 0.5
2551
+ },
2552
+ onClick: () => this.onSelectType(ev.label)
2553
+ });
2554
+ })));
2555
+ }
2542
2556
  renderMain() {
2543
2557
  return /*#__PURE__*/React.createElement("div", {
2544
2558
  style: {
@@ -2549,7 +2563,7 @@ class AddFeed extends Component {
2549
2563
  }, /*#__PURE__*/React.createElement(Components.Text, {
2550
2564
  type: "formTitleLarge",
2551
2565
  className: "marginBottom-24"
2552
- }, this.state.feedId == null ? 'New' : 'Edit', " Feed"), this.renderSelectUser(), this.renderTypeOptions(), /*#__PURE__*/React.createElement(Components.GenericInput, {
2566
+ }, this.state.feedId == null ? 'New' : 'Edit', " Post"), this.renderSelectUser(), this.renderTypeOptions(), /*#__PURE__*/React.createElement(Components.GenericInput, {
2553
2567
  id: "title",
2554
2568
  label: "Title",
2555
2569
  type: "textarea",
package/dist/index.umd.js CHANGED
@@ -63,13 +63,13 @@
63
63
  textAreYouSureYouWantToDelete: 'Are you sure you want to delete the post?',
64
64
  textAreYouSureYouWantToApprove: 'Are you sure you want to approve the post?',
65
65
  textAreYouSureYouWantToReject: 'Are you sure you want to reject the post?',
66
- textSingularName: 'Resident Feed',
67
- textEmptyState: 'Your Resident Feeds will show here',
68
- textTitleFeeds: 'Care Feeds',
69
- textMenuTitle: 'Care Feeds',
70
- textPermissionFeedManagement: 'Resident Feed Management',
71
- textPermissionFeedPost: 'Post Resident Feed',
72
- textPermissionFeedDraft: 'Draft Resident Feed'
66
+ textSingularName: 'Resident Activity',
67
+ textEmptyState: 'Your Resident Activity will show here',
68
+ textTitleFeeds: 'Resident Activity',
69
+ textMenuTitle: 'Resident Activity',
70
+ textPermissionFeedManagement: 'Resident Activity Feed Management',
71
+ textPermissionFeedPost: 'Post to Resident Activity Feed',
72
+ textPermissionFeedDraft: 'Resident Activity Feed Submission (Approval Required)'
73
73
  };
74
74
 
75
75
  // import * as PlussCore from '../../pluss-core/src';
@@ -83,8 +83,7 @@
83
83
  menu: {
84
84
  order: values.menuOrder,
85
85
  text: values.textMenuTitle,
86
- icon: 'stethoscope',
87
- isFontAwesome: true,
86
+ icon: 'list-burger',
88
87
  url: values.routeHub,
89
88
  countProps: null,
90
89
  visibleExps: {
@@ -819,13 +818,15 @@
819
818
  }, userContent);
820
819
  }
821
820
  renderTypePopup() {
821
+ const validTypes = ___default["default"].uniq(this.props.source.map(r => r.type)).filter(t => t);
822
+ const orderedTypes = ___default["default"].sortBy(validTypes, t => t.toLowerCase());
822
823
  return /*#__PURE__*/React__default["default"].createElement(Components$4.Popup, {
823
824
  title: "Select Type",
824
825
  maxWidth: 600,
825
826
  minWidth: 400,
826
827
  hasPadding: true,
827
828
  onClose: this.closeFilter
828
- }, ___default["default"].sortBy(___default["default"].uniq(this.props.source.map(r => r.type)), t => t.toLowerCase()).map(type => {
829
+ }, orderedTypes.map(type => {
829
830
  return /*#__PURE__*/React__default["default"].createElement(Components$4.Tag, {
830
831
  key: type,
831
832
  onClick: () => this.selectTypeFilter(type),
@@ -855,7 +856,7 @@
855
856
  className: "table-TitleColumn"
856
857
  }, /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, {
857
858
  to: "".concat(values.routeFeedDetails, "/").concat(feed.id)
858
- }, /*#__PURE__*/React__default["default"].createElement("span", null, feed.title))), /*#__PURE__*/React__default["default"].createElement("td", null, moment__default["default"].utc(feed.createdTime).local().format('ddd D MMM YYYY h:mma')), /*#__PURE__*/React__default["default"].createElement("td", null, feed.user && feed.user.displayName), /*#__PURE__*/React__default["default"].createElement("td", null, feed.author && feed.author.displayName), /*#__PURE__*/React__default["default"].createElement("td", {
859
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, feed.title))), /*#__PURE__*/React__default["default"].createElement("td", null, moment__default["default"].utc(feed.created).local().format('ddd D MMM YYYY h:mma')), /*#__PURE__*/React__default["default"].createElement("td", null, feed.user && feed.user.displayName), /*#__PURE__*/React__default["default"].createElement("td", null, feed.author && feed.author.displayName), /*#__PURE__*/React__default["default"].createElement("td", {
859
860
  className: "table-options"
860
861
  }, canEdit ? /*#__PURE__*/React__default["default"].createElement("div", {
861
862
  style: {
@@ -1784,7 +1785,7 @@
1784
1785
  if (this.canAddNew()) {
1785
1786
  sectionItems.push({
1786
1787
  type: 'newButton',
1787
- text: 'New Feed',
1788
+ text: 'New Post',
1788
1789
  onClick: this.onAddNew
1789
1790
  });
1790
1791
  }
@@ -1821,7 +1822,7 @@
1821
1822
  if (Session$2.validateAccess(this.props.auth.site, values.permissionFeedManagement, this.props.auth)) {
1822
1823
  sectionItems.push({
1823
1824
  type: 'navItem',
1824
- text: 'Feed Types',
1825
+ text: 'Post Types',
1825
1826
  // icon: 'maintenance2',
1826
1827
  // isSVG: true,
1827
1828
  selected: this.state.selectedSection === 'feedTypes',
@@ -1836,11 +1837,11 @@
1836
1837
  sections: [{
1837
1838
  title: this.props.strings["".concat(values.featureKey, "_textTitleRequests")] || values.textTitleFeeds,
1838
1839
  items: sectionItems
1839
- }]
1840
- // helpGuide={{
1841
- // text: `Help with Feeds`,
1842
- // url: Urls.HelpGuide.Feeds,
1843
- // }}
1840
+ }],
1841
+ helpGuide: {
1842
+ text: "Help with Resident Activity",
1843
+ url: 'https://www.plusscommunities.com/resident-activity-feed-feature'
1844
+ }
1844
1845
  });
1845
1846
  }
1846
1847
  renderRight() {
@@ -2444,34 +2445,6 @@
2444
2445
  }, 100);
2445
2446
  }
2446
2447
  }
2447
- renderTypeOptions() {
2448
- const {
2449
- types,
2450
- type
2451
- } = this.state;
2452
- return /*#__PURE__*/React__default["default"].createElement("div", {
2453
- style: {
2454
- marginBottom: 15
2455
- }
2456
- }, /*#__PURE__*/React__default["default"].createElement(Components.Text, {
2457
- type: "formLabel"
2458
- }, "Select Type"), /*#__PURE__*/React__default["default"].createElement("div", {
2459
- className: "marginTop-4"
2460
- }, types.map(ev => {
2461
- if (ev === null) return null;
2462
- return /*#__PURE__*/React__default["default"].createElement(Components.Tag, {
2463
- key: ev.id,
2464
- text: ev.label,
2465
- style: {
2466
- backgroundColor: ev.colour,
2467
- borderRadius: 8,
2468
- marginRight: 10,
2469
- opacity: ev.label === type ? 1 : 0.5
2470
- },
2471
- onClick: () => this.onSelectType(ev.label)
2472
- });
2473
- })));
2474
- }
2475
2448
  renderSuccess() {
2476
2449
  if (!this.state.success) return null;
2477
2450
  const title = this.props.strings["".concat(values.featureKey, "_textTitleFeeds")] || values.textTitleFeeds;
@@ -2488,12 +2461,14 @@
2488
2461
  const {
2489
2462
  userId,
2490
2463
  userName,
2464
+ type,
2491
2465
  title
2492
2466
  } = this.state;
2493
- // console.log('validateForm', { userId, userName, title });
2467
+ // console.log('validateForm', { userId, userName, type, title });
2494
2468
 
2495
2469
  if (___default["default"].isEmpty(userId)) return false;
2496
2470
  if (___default["default"].isEmpty(userName)) return false;
2471
+ if (___default["default"].isEmpty(type)) return false;
2497
2472
  if (___default["default"].isEmpty(title)) return false;
2498
2473
  return true;
2499
2474
  }
@@ -2560,6 +2535,45 @@
2560
2535
  text: "Select User"
2561
2536
  })));
2562
2537
  }
2538
+ renderTypeOptions() {
2539
+ const {
2540
+ showWarnings,
2541
+ types,
2542
+ type
2543
+ } = this.state;
2544
+ const isValid = !!type;
2545
+ const showError = showWarnings && !isValid;
2546
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2547
+ className: "genericInputContainer ".concat(isValid ? 'genericInput-valid' : '', " ").concat(showError ? 'genericInput-error' : '').trim()
2548
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2549
+ style: {
2550
+ display: 'flex',
2551
+ flexDirection: 'row',
2552
+ alignItems: 'center',
2553
+ marginBottom: 0,
2554
+ justifyContent: 'space-between'
2555
+ }
2556
+ }, /*#__PURE__*/React__default["default"].createElement(Components.Text, {
2557
+ type: "formLabel"
2558
+ }, "Select Type"), showError ? /*#__PURE__*/React__default["default"].createElement("div", {
2559
+ className: "fieldLabel fieldLabel-warning"
2560
+ }, "Required") : null), /*#__PURE__*/React__default["default"].createElement("div", {
2561
+ className: "marginTop-4"
2562
+ }, types.map(ev => {
2563
+ if (ev === null) return null;
2564
+ return /*#__PURE__*/React__default["default"].createElement(Components.Tag, {
2565
+ key: ev.id,
2566
+ text: ev.label,
2567
+ style: {
2568
+ backgroundColor: ev.colour,
2569
+ borderRadius: 8,
2570
+ marginRight: 10,
2571
+ opacity: ev.label === type ? 1 : 0.5
2572
+ },
2573
+ onClick: () => this.onSelectType(ev.label)
2574
+ });
2575
+ })));
2576
+ }
2563
2577
  renderMain() {
2564
2578
  return /*#__PURE__*/React__default["default"].createElement("div", {
2565
2579
  style: {
@@ -2570,7 +2584,7 @@
2570
2584
  }, /*#__PURE__*/React__default["default"].createElement(Components.Text, {
2571
2585
  type: "formTitleLarge",
2572
2586
  className: "marginBottom-24"
2573
- }, this.state.feedId == null ? 'New' : 'Edit', " Feed"), this.renderSelectUser(), this.renderTypeOptions(), /*#__PURE__*/React__default["default"].createElement(Components.GenericInput, {
2587
+ }, this.state.feedId == null ? 'New' : 'Edit', " Post"), this.renderSelectUser(), this.renderTypeOptions(), /*#__PURE__*/React__default["default"].createElement(Components.GenericInput, {
2574
2588
  id: "title",
2575
2589
  label: "Title",
2576
2590
  type: "textarea",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-feeds-web",
3
- "version": "1.0.2-beta.0",
3
+ "version": "1.0.3",
4
4
  "description": "Extension package to enable feeds on Pluss Communities Platform",
5
5
  "main": "dist/index.cjs.js",
6
6
  "scripts": {
@@ -37,7 +37,7 @@
37
37
  "@babel/runtime": "^7.14.0"
38
38
  },
39
39
  "peerDependencies": {
40
- "@plusscommunities/pluss-core-web": "^1.6.2-beta.0",
40
+ "@plusscommunities/pluss-core-web": "^1.6.5",
41
41
  "@fortawesome/fontawesome-svg-core": "^6.4.0",
42
42
  "@fortawesome/free-solid-svg-icons": "^6.4.0",
43
43
  "@fortawesome/react-fontawesome": "^0.2.0",
@@ -384,9 +384,12 @@ class FeedList extends Component {
384
384
  }
385
385
 
386
386
  renderTypePopup() {
387
+ const validTypes = _.uniq(this.props.source.map((r) => r.type)).filter((t) => t);
388
+ const orderedTypes = _.sortBy(validTypes, (t) => t.toLowerCase());
389
+
387
390
  return (
388
391
  <Components.Popup title="Select Type" maxWidth={600} minWidth={400} hasPadding onClose={this.closeFilter}>
389
- {_.sortBy(_.uniq(this.props.source.map((r) => r.type)), (t) => t.toLowerCase()).map((type) => {
392
+ {orderedTypes.map((type) => {
390
393
  return (
391
394
  <Components.Tag key={type} onClick={() => this.selectTypeFilter(type)} text={type} className="marginRight-10 marginBottom-8" />
392
395
  );
@@ -421,7 +424,7 @@ class FeedList extends Component {
421
424
  <span>{feed.title}</span>
422
425
  </Link>
423
426
  </td>
424
- <td>{moment.utc(feed.createdTime).local().format('ddd D MMM YYYY h:mma')}</td>
427
+ <td>{moment.utc(feed.created).local().format('ddd D MMM YYYY h:mma')}</td>
425
428
  <td>{feed.user && feed.user.displayName}</td>
426
429
  <td>{feed.author && feed.author.displayName}</td>
427
430
  <td className="table-options">
@@ -14,8 +14,7 @@ const FeatureConfig = {
14
14
  menu: {
15
15
  order: values.menuOrder,
16
16
  text: values.textMenuTitle,
17
- icon: 'stethoscope',
18
- isFontAwesome: true,
17
+ icon: 'list-burger',
19
18
  url: values.routeHub,
20
19
  countProps: null,
21
20
  visibleExps: {
@@ -122,28 +122,6 @@ class AddFeed extends Component {
122
122
  this.setState({ type: key });
123
123
  };
124
124
 
125
- renderTypeOptions() {
126
- const { types, type } = this.state;
127
- return (
128
- <div style={{ marginBottom: 15 }}>
129
- <Components.Text type="formLabel">Select Type</Components.Text>
130
- <div className="marginTop-4">
131
- {types.map((ev) => {
132
- if (ev === null) return null;
133
- return (
134
- <Components.Tag
135
- key={ev.id}
136
- text={ev.label}
137
- style={{ backgroundColor: ev.colour, borderRadius: 8, marginRight: 10, opacity: ev.label === type ? 1 : 0.5 }}
138
- onClick={() => this.onSelectType(ev.label)}
139
- />
140
- );
141
- })}
142
- </div>
143
- </div>
144
- );
145
- }
146
-
147
125
  onHandleChange = (event) => {
148
126
  var stateChange = {};
149
127
  stateChange[event.target.getAttribute('id')] = event.target.value;
@@ -220,11 +198,12 @@ class AddFeed extends Component {
220
198
  }
221
199
 
222
200
  validateForm() {
223
- const { userId, userName, title } = this.state;
224
- // console.log('validateForm', { userId, userName, title });
201
+ const { userId, userName, type, title } = this.state;
202
+ // console.log('validateForm', { userId, userName, type, title });
225
203
 
226
204
  if (_.isEmpty(userId)) return false;
227
205
  if (_.isEmpty(userName)) return false;
206
+ if (_.isEmpty(type)) return false;
228
207
  if (_.isEmpty(title)) return false;
229
208
  return true;
230
209
  }
@@ -256,6 +235,7 @@ class AddFeed extends Component {
256
235
  const { showWarnings, selectedUser } = this.state;
257
236
  const isValid = !_.isNil(selectedUser);
258
237
  const showError = showWarnings && !isValid;
238
+
259
239
  return (
260
240
  <div className={`genericInputContainer ${isValid ? 'genericInput-valid' : ''} ${showError ? 'genericInput-error' : ''}`.trim()}>
261
241
  <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', marginBottom: 0, justifyContent: 'space-between' }}>
@@ -276,12 +256,40 @@ class AddFeed extends Component {
276
256
  );
277
257
  }
278
258
 
259
+ renderTypeOptions() {
260
+ const { showWarnings, types, type } = this.state;
261
+ const isValid = !!type;
262
+ const showError = showWarnings && !isValid;
263
+
264
+ return (
265
+ <div className={`genericInputContainer ${isValid ? 'genericInput-valid' : ''} ${showError ? 'genericInput-error' : ''}`.trim()}>
266
+ <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', marginBottom: 0, justifyContent: 'space-between' }}>
267
+ <Components.Text type="formLabel">Select Type</Components.Text>
268
+ {showError ? <div className="fieldLabel fieldLabel-warning">Required</div> : null}
269
+ </div>
270
+ <div className="marginTop-4">
271
+ {types.map((ev) => {
272
+ if (ev === null) return null;
273
+ return (
274
+ <Components.Tag
275
+ key={ev.id}
276
+ text={ev.label}
277
+ style={{ backgroundColor: ev.colour, borderRadius: 8, marginRight: 10, opacity: ev.label === type ? 1 : 0.5 }}
278
+ onClick={() => this.onSelectType(ev.label)}
279
+ />
280
+ );
281
+ })}
282
+ </div>
283
+ </div>
284
+ );
285
+ }
286
+
279
287
  renderMain() {
280
288
  return (
281
289
  <div style={{ marginBottom: 15 }}>
282
290
  <div className="padding-60 paddingVertical-40 bottomDivideBorder">
283
291
  <Components.Text type="formTitleLarge" className="marginBottom-24">
284
- {this.state.feedId == null ? 'New' : 'Edit'} Feed
292
+ {this.state.feedId == null ? 'New' : 'Edit'} Post
285
293
  </Components.Text>
286
294
  {/* Resident Information */}
287
295
  {this.renderSelectUser()}
@@ -121,7 +121,7 @@ class FeedHub extends Component {
121
121
  if (this.canAddNew()) {
122
122
  sectionItems.push({
123
123
  type: 'newButton',
124
- text: 'New Feed',
124
+ text: 'New Post',
125
125
  onClick: this.onAddNew,
126
126
  });
127
127
  }
@@ -157,7 +157,7 @@ class FeedHub extends Component {
157
157
  if (Session.validateAccess(this.props.auth.site, values.permissionFeedManagement, this.props.auth)) {
158
158
  sectionItems.push({
159
159
  type: 'navItem',
160
- text: 'Feed Types',
160
+ text: 'Post Types',
161
161
  // icon: 'maintenance2',
162
162
  // isSVG: true,
163
163
  selected: this.state.selectedSection === 'feedTypes',
@@ -175,10 +175,10 @@ class FeedHub extends Component {
175
175
  items: sectionItems,
176
176
  },
177
177
  ]}
178
- // helpGuide={{
179
- // text: `Help with Feeds`,
180
- // url: Urls.HelpGuide.Feeds,
181
- // }}
178
+ helpGuide={{
179
+ text: `Help with Resident Activity`,
180
+ url: 'https://www.plusscommunities.com/resident-activity-feed-feature',
181
+ }}
182
182
  />
183
183
  );
184
184
  }
@@ -30,13 +30,13 @@ const values = {
30
30
  textAreYouSureYouWantToDelete: 'Are you sure you want to delete the post?',
31
31
  textAreYouSureYouWantToApprove: 'Are you sure you want to approve the post?',
32
32
  textAreYouSureYouWantToReject: 'Are you sure you want to reject the post?',
33
- textSingularName: 'Resident Feed',
34
- textEmptyState: 'Your Resident Feeds will show here',
35
- textTitleFeeds: 'Care Feeds',
36
- textMenuTitle: 'Care Feeds',
37
- textPermissionFeedManagement: 'Resident Feed Management',
38
- textPermissionFeedPost: 'Post Resident Feed',
39
- textPermissionFeedDraft: 'Draft Resident Feed',
33
+ textSingularName: 'Resident Activity',
34
+ textEmptyState: 'Your Resident Activity will show here',
35
+ textTitleFeeds: 'Resident Activity',
36
+ textMenuTitle: 'Resident Activity',
37
+ textPermissionFeedManagement: 'Resident Activity Feed Management',
38
+ textPermissionFeedPost: 'Post to Resident Activity Feed',
39
+ textPermissionFeedDraft: 'Resident Activity Feed Submission (Approval Required)',
40
40
  };
41
41
 
42
42
  export { values };
@@ -30,13 +30,13 @@ const values = {
30
30
  textAreYouSureYouWantToDelete: 'Are you sure you want to delete the post?',
31
31
  textAreYouSureYouWantToApprove: 'Are you sure you want to approve the post?',
32
32
  textAreYouSureYouWantToReject: 'Are you sure you want to reject the post?',
33
- textSingularName: 'Resident Feed',
34
- textEmptyState: 'Your Resident Feeds will show here',
35
- textTitleFeeds: 'Care Feeds',
36
- textMenuTitle: 'Care Feeds',
37
- textPermissionFeedManagement: 'Resident Feed Management',
38
- textPermissionFeedPost: 'Post Resident Feed',
39
- textPermissionFeedDraft: 'Draft Resident Feed',
33
+ textSingularName: 'Resident Activity',
34
+ textEmptyState: 'Your Resident Activity will show here',
35
+ textTitleFeeds: 'Resident Activity',
36
+ textMenuTitle: 'Resident Activity',
37
+ textPermissionFeedManagement: 'Resident Activity Feed Management',
38
+ textPermissionFeedPost: 'Post to Resident Activity Feed',
39
+ textPermissionFeedDraft: 'Resident Activity Feed Submission (Approval Required)',
40
40
  };
41
41
 
42
42
  export { values };