system_settings 0.7.0 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -12
  3. data/app/assets/config/manifest.js +1 -0
  4. data/app/assets/stylesheets/system_settings/application.css +227 -0
  5. data/app/controllers/system_settings/application_controller.rb +3 -9
  6. data/app/controllers/system_settings/settings_controller.rb +25 -21
  7. data/app/helpers/system_settings/application_helper.rb +36 -0
  8. data/app/models/system_settings/application_record.rb +2 -4
  9. data/app/models/system_settings/boolean_setting.rb +3 -5
  10. data/app/models/system_settings/configurator.rb +100 -94
  11. data/app/models/system_settings/decimal_list_setting.rb +6 -0
  12. data/app/models/system_settings/decimal_setting.rb +6 -0
  13. data/app/models/system_settings/errors/error.rb +2 -4
  14. data/app/models/system_settings/errors/not_found_error.rb +8 -3
  15. data/app/models/system_settings/errors/not_loaded_error.rb +2 -4
  16. data/app/models/system_settings/errors/settings_read_error.rb +2 -4
  17. data/app/models/system_settings/integer_list_setting.rb +3 -5
  18. data/app/models/system_settings/integer_setting.rb +3 -5
  19. data/app/models/system_settings/list_of_decimals_validator.rb +35 -0
  20. data/app/models/system_settings/list_of_integers_validator.rb +23 -25
  21. data/app/models/system_settings/list_of_strings_validator.rb +23 -25
  22. data/app/models/system_settings/setting.rb +3 -5
  23. data/app/models/system_settings/string_list_setting.rb +3 -5
  24. data/app/models/system_settings/string_setting.rb +7 -4
  25. data/app/models/system_settings/type/decimal_list.rb +40 -0
  26. data/app/models/system_settings/type/integer_list.rb +24 -33
  27. data/app/models/system_settings/type/string_list.rb +19 -21
  28. data/app/views/layouts/system_settings/application.html.erb +21 -0
  29. data/app/views/system_settings/settings/_common_attributes.html.erb +14 -0
  30. data/app/views/system_settings/settings/_form.html.erb +18 -0
  31. data/app/views/system_settings/settings/edit.html.erb +2 -0
  32. data/app/views/system_settings/settings/index.html.erb +29 -0
  33. data/app/views/system_settings/settings/show.html.erb +9 -0
  34. data/config/locales/system_settings.en.yml +27 -1
  35. data/config/locales/system_settings.lv.yml +65 -0
  36. data/config/routes.rb +5 -4
  37. data/lib/system_settings/engine.rb +3 -12
  38. data/lib/system_settings/version.rb +1 -1
  39. data/lib/system_settings.rb +1 -0
  40. metadata +18 -19
  41. data/app/controllers/system_settings/root_controller.rb +0 -13
  42. data/app/models/system_settings/pagination.rb +0 -20
  43. data/frontend/build/asset-manifest.json +0 -15
  44. data/frontend/build/favicon.ico +0 -0
  45. data/frontend/build/index.html +0 -1
  46. data/frontend/build/precache-manifest.3d1bd8b01752fe34cb52390bc898ad26.js +0 -22
  47. data/frontend/build/service-worker.js +0 -39
  48. data/frontend/build/static/css/main.04fc5f62.chunk.css +0 -2
  49. data/frontend/build/static/css/main.04fc5f62.chunk.css.map +0 -1
  50. data/frontend/build/static/js/2.8729aa12.chunk.js +0 -2
  51. data/frontend/build/static/js/2.8729aa12.chunk.js.map +0 -1
  52. data/frontend/build/static/js/main.8f1e7b9c.chunk.js +0 -2
  53. data/frontend/build/static/js/main.8f1e7b9c.chunk.js.map +0 -1
  54. data/frontend/build/static/js/runtime~main.ea5ad98e.js +0 -2
  55. data/frontend/build/static/js/runtime~main.ea5ad98e.js.map +0 -1
@@ -1,2 +0,0 @@
1
- (window.webpackJsonpsystem_settings_frontend=window.webpackJsonpsystem_settings_frontend||[]).push([[0],{117:function(e,t,a){e.exports={container:"NotFoundPage_container__2g6QR"}},120:function(e,t,a){},121:function(e,t,a){e.exports={container:"ButtonBar_container__phfXp"}},122:function(e,t,a){e.exports={wrap:"ClassicSpinner_wrap__3gt1R"}},124:function(e,t,a){e.exports=a(239)},196:function(e,t,a){},22:function(e,t,a){e.exports={table:"ListPage_table__3BJUy","empty-tr":"ListPage_empty-tr__Z37SG",name:"ListPage_name__3WwZr",description:"ListPage_description__31PRS",value:"ListPage_value__1VJLD",actions:"ListPage_actions__1GibV"}},238:function(e,t,a){},239:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),i=a(60),s=a(11),c=a(18),o=a(15),u=a(243),l=a(19),p=a(12),m=a.n(p),f=a(23),h=a(46),g=a(114),b=a.n(g),d=a(115);function y(e){var t=new b.a(window.__SYSTEM_SETTINGS_BASENAME__),a=Object(d.join)(t.pathname,"api",e);return t.set("pathname",a),t.href}function v(e,t){var a=new Promise(function(t){return window.setTimeout(function(){return t(e)},e)});return new Promise(function(e,n){t.then(function(t){return a.then(function(){return e(t)})},function(e){return a.then(function(){return n(e)})})})}var E="LIST_FETCH_IN_PROGRESS",O="LIST_FETCH_SUCCESSFUL",_="LIST_FETCH_FAILED";function S(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,n)}return a}function j(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?S(a,!0).forEach(function(t){Object(l.a)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):S(a).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var w={fetching:!0,fetchErrorMessage:null,fetchSuccessful:null,page:0,items:[],totalCount:0},k=a(123),N="SETTING_FETCH_IN_PROGRESS",P="SETTING_FETCH_SUCCESSFUL",T="SETTING_FETCH_FAILED",C="SETTING_SAVE_IN_PROGRESS",x="SETTING_SAVE_SUCCESSFUL",I="SETTING_SAVE_FAILED";function L(e){return function(){var t=Object(f.a)(m.a.mark(function t(a){var n,r,i,s,c;return m.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return n=y("settings/".concat(e)),t.prev=1,a({type:N}),t.next=5,v(50,h.a.get(n));case 5:if((r=t.sent).ok){t.next=8;break}throw new Error(r.statusText);case 8:return i=r.headers.get("Authenticity-Token"),t.next=11,r.json();case 11:s=t.sent,a({type:P,authenticityToken:i,attributes:s}),t.next=20;break;case 15:throw t.prev=15,t.t0=t.catch(1),c="HTTPError"===t.t0.name?"Network request status: ".concat(t.t0.response.status," ").concat(t.t0.message):t.t0.message,a({type:T,errorMessage:c}),t.t0;case 20:case"end":return t.stop()}},t,null,[[1,15]])}));return function(e){return t.apply(this,arguments)}}()}function M(e){return function(t,a){return a.headers.set("X-CSRF-Token",e)}}function D(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,n)}return a}function A(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?D(a,!0).forEach(function(t){Object(l.a)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):D(a).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var F={attributes:{},authenticityToken:null,fetching:!0,fetchErrorMessage:null,fetchSuccessful:null,saving:!1,lastSaveSuccessful:null,saveErrorMessage:null},B=Object(s.b)({list:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case E:return j({},e,{fetching:!0});case O:return j({},e,{fetching:!1,fetchSuccessful:!0,items:t.data.items.map(function(e){return{id:e.id,type:e.type,name:e.name,value:e.value,description:e.description}}),page:t.page,totalCount:t.data.total_count});case _:return j({},e,{fetching:!1,fetchSuccessful:!1,items:[],fetchErrorMessage:t.errorMessage,page:t.page});default:return e}},setting:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:F,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case N:return A({},e,{fetching:!0,fetchSuccessful:null,fetchErrorMessage:null});case P:return A({},e,{fetching:!1,fetchSuccessful:!0,attributes:t.attributes,authenticityToken:t.authenticityToken});case T:return A({},e,{fetching:!1,fetchSuccessful:!1,fetchErrorMessage:t.errorMessage});case C:return A({},e,{saving:!0,lastSaveSuccessful:null,saveErrorMessage:null});case x:return A({},e,{saving:!1,lastSaveSuccessful:!0});case I:return A({},e,{saving:!1,lastSaveSuccessful:!1,saveErrorMessage:t.errorMessage});default:return e}},form:u.a}),R=a(6),q=a(10),G=a(8),V=a(4),H=a(7),U=a(21),z=a(33),J=a(30),Y=a.n(J),W=a(117),X=a.n(W),Z=function(e){function t(){return Object(R.a)(this,t),Object(G.a)(this,Object(V.a)(t).apply(this,arguments))}return Object(H.a)(t,e),Object(q.a)(t,[{key:"render",value:function(){return r.a.createElement("div",{className:X.a.container},"Page not found")}}]),t}(n.Component),Q=a(22),K=a.n(Q),$=a(41),ee=a.n($),te=a(49),ae=a.n(te),ne=function(e){function t(){return Object(R.a)(this,t),Object(G.a)(this,Object(V.a)(t).apply(this,arguments))}return Object(H.a)(t,e),Object(q.a)(t,[{key:"render",value:function(){var e=this.props.description;return r.a.createElement("div",{className:ae.a.wrap},r.a.createElement("div",{className:ae.a.container},r.a.createElement("div",{className:ae.a["error-large"]},"An error occurred while loading the page"),r.a.createElement("div",{className:ae.a["error-small"]},e)))}}]),t}(r.a.Component),re=(a(196),a(64)),ie=a.n(re),se=ie.a.start,ce=ie.a.done,oe=(ie.a.inc,a(1)),ue=a.n(oe),le=a(65),pe=a.n(le),me=function(e){function t(){return Object(R.a)(this,t),Object(G.a)(this,Object(V.a)(t).apply(this,arguments))}return Object(H.a)(t,e),Object(q.a)(t,[{key:"formattedValue",value:function(){var e=this.props,t=e.type,a=e.value;switch(t){case"SystemSettings::StringListSetting":case"SystemSettings::IntegerListSetting":return a?a.map(function(e,t){return r.a.createElement("span",{key:t,className:pe.a.section},e.toString())}):null;default:return r.a.createElement("span",{className:pe.a.section},a.toString())}}},{key:"render",value:function(){return r.a.createElement("span",{className:pe.a.wrap},this.formattedValue())}}]),t}(r.a.Component),fe=(ue.a.string.isRequired,ue.a.any.isRequired,a(118)),he=a.n(fe),ge=function(e){function t(){var e,a;Object(R.a)(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(a=Object(G.a)(this,(e=Object(V.a)(t)).call.apply(e,[this].concat(r)))).columnCount=4,a}return Object(H.a)(t,e),Object(q.a)(t,[{key:"componentDidMount",value:function(){this.initFetch()}},{key:"initFetch",value:function(){this.props.fetch(this.activePage(),25),se()}},{key:"activePage",value:function(){return parseInt(this.props.match.params.page)}},{key:"componentDidUpdate",value:function(e,t,a){this.props.location!==e.location&&this.initFetch(),!this.props.fetching&&e.fetching&&ce()}},{key:"handlePageChange",value:function(e){var t=Object(U.f)(this.props.match.path,{page:e});this.props.history.push(t)}},{key:"pagination",value:function(){var e=this.props.itemsCount;if(!(e<=25))return r.a.createElement(he.a,{key:"pagination",innerClass:ee.a.pagination,itemClass:ee.a.item,disabledClass:ee.a["item--disabled"],activeClass:ee.a["item--active"],linkClass:ee.a.link,hideFirstLastPages:!0,activePage:this.activePage(),itemsCountPerPage:25,totalItemsCount:e,pageRangeDisplayed:5,onChange:this.handlePageChange.bind(this)})}},{key:"render",value:function(){var e=this.props,t=e.fetching,a=e.fetchSuccessful,n=e.fetchErrorMessage,i=e.items;return t?null:a?[r.a.createElement("table",{key:"table",className:K.a.table},r.a.createElement("thead",null,r.a.createElement("tr",null,r.a.createElement("th",{className:K.a.name},"Name"),r.a.createElement("th",{className:K.a.description},"Description"),r.a.createElement("th",{className:K.a.value},"Value"),r.a.createElement("th",{className:K.a.actions}))),r.a.createElement("tbody",null,0===i.length&&r.a.createElement("tr",{className:K.a["empty-tr"]},r.a.createElement("td",{colSpan:this.columnCount},"No settings")),i.length>0&&i.map(function(e){return r.a.createElement("tr",{key:e.id},r.a.createElement("td",{className:K.a.name},r.a.createElement(z.a,{className:"sysname",to:"/settings/".concat(e.id)},e.name)),r.a.createElement("td",{className:K.a.description},e.description),r.a.createElement("td",{className:K.a.value},r.a.createElement(me,{type:e.type,value:e.value})),r.a.createElement("td",{className:K.a.actions},r.a.createElement(z.a,{className:K.a["primary-action"],to:"/settings/".concat(e.id,"/edit")},"Edit")))}))),this.pagination()]:r.a.createElement(ne,{description:n})}}]),t}(n.Component),be=Object(o.b)(function(e){return{page:e.list.page,items:e.list.items,itemsCount:e.list.totalCount,fetching:e.list.fetching,fetchSuccessful:e.list.fetchSuccessful,fetchErrorMessage:e.list.fetchErrorMessage}},function(e){return{fetch:function(t,a){(function(e,t){return function(){var a=Object(f.a)(m.a.mark(function a(n){var r,i,s;return m.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return r=y("settings"),a.prev=1,n({type:E}),a.next=5,v(50,h.a.get(r,{searchParams:{page:e,per:t}}).json());case 5:i=a.sent,n({type:O,data:i,page:e}),a.next=14;break;case 9:throw a.prev=9,a.t0=a.catch(1),s="HTTPError"===a.t0.name?"Network request status: ".concat(a.t0.response.status," ").concat(a.t0.message):a.t0.message,n({type:_,errorMessage:s,page:e}),a.t0;case 14:case"end":return a.stop()}},a,null,[[1,9]])}));return function(e){return a.apply(this,arguments)}}()})(t,a)(e).catch(function(){})}}})(ge),de=a(37),ye=";";function ve(e){switch(e){case"SystemSettings::StringSetting":return"String";case"SystemSettings::StringListSetting":return"List of strings";case"SystemSettings::IntegerSetting":return"Integer";case"SystemSettings::IntegerListSetting":return"List of integers";case"SystemSettings::BooleanSetting":return"Boolean";default:return"Unknown"}}function Ee(e,t){switch(e){case"SystemSettings::StringListSetting":return t.map(function(e){return e&&e.replace?e.replace(ye,"\\".concat(ye)):""}).join(ye);case"SystemSettings::IntegerListSetting":return t?t.join(ye):t;case"SystemSettings::BooleanSetting":default:return t}}var Oe=a(66),_e=a.n(Oe),Se=function(e){function t(){return Object(R.a)(this,t),Object(G.a)(this,Object(V.a)(t).apply(this,arguments))}return Object(H.a)(t,e),Object(q.a)(t,[{key:"render",value:function(){var e=this.props,t=e.name,a=e.children;return r.a.createElement("div",{className:_e.a.wrap},r.a.createElement("div",{className:_e.a.name},t),r.a.createElement("div",{className:_e.a.value},a))}}]),t}(n.PureComponent),je=(ue.a.string.isRequired,ue.a.any,a(120)),we=a.n(je),ke=a(121),Ne=a.n(ke),Pe=function(e){function t(){return Object(R.a)(this,t),Object(G.a)(this,Object(V.a)(t).apply(this,arguments))}return Object(H.a)(t,e),Object(q.a)(t,[{key:"render",value:function(){var e=this.props.children;return r.a.createElement("div",{className:Ne.a.container},e)}}]),t}(r.a.Component),Te=function(e){function t(e){var a;return Object(R.a)(this,t),(a=Object(G.a)(this,Object(V.a)(t).call(this,e))).goBack=a.goBack.bind(Object(de.a)(a)),a}return Object(H.a)(t,e),Object(q.a)(t,[{key:"componentDidMount",value:function(){var e=this.props.match.params.id;se(),this.props.fetch(e)}},{key:"componentDidUpdate",value:function(e,t,a){!this.props.fetching&&e.fetching&&ce()}},{key:"goBack",value:function(){var e=this.props.history;"POP"===e.action?e.push("/"):e.goBack()}},{key:"render",value:function(){var e=this.props,t=e.fetching,a=e.fetchSuccessful,n=e.fetchErrorMessage,i=e.attributes,s=i.id,c=i.name,o=i.type,u=i.description,l=i.value;return t?null:a?r.a.createElement("div",{className:we.a.wrap},r.a.createElement(Se,{name:"Name"},r.a.createElement("span",{className:"sysname"},c)),r.a.createElement(Se,{name:"Type",children:ve(o)}),r.a.createElement(Se,{name:"Description",children:u}),r.a.createElement(Se,{name:"Value"},r.a.createElement(me,{type:o,value:l})),r.a.createElement(Pe,null,r.a.createElement(z.a,{className:"button primary",to:"/settings/".concat(s,"/edit")},"Edit"),r.a.createElement("button",{className:"link",onClick:this.goBack},"Back"))):r.a.createElement(ne,{description:n})}}]),t}(n.Component),Ce=Object(o.b)(function(e){return{attributes:e.setting.attributes,fetching:e.setting.fetching,fetchSuccessful:e.setting.fetchSuccessful,fetchErrorMessage:e.setting.fetchErrorMessage}},function(e,t){return{fetch:function(t){return L(t)(e)}}})(Te),xe=a(242),Ie=a(240),Le=a(34),Me=a.n(Le);function De(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,n)}return a}var Ae=function(e){function t(){return Object(R.a)(this,t),Object(G.a)(this,Object(V.a)(t).apply(this,arguments))}return Object(H.a)(t,e),Object(q.a)(t,[{key:"render",value:function(){var e=this.props,t=e.id,a=e.type,n=e.label,i=e.hint,s=e.placeholder,c=e.input,o=e.meta,u=o.touched,l=o.error,p=Array.isArray(l)?l.join("; "):l;return r.a.createElement("div",{className:Me.a.wrap},r.a.createElement("label",{className:Me.a.label,htmlFor:t},n),r.a.createElement("div",{className:Me.a["input-and-error-wrap"]},r.a.createElement("input",Object.assign({id:t,type:a,placeholder:s},c,{className:Me.a.input,style:{width:"".concat(c.value.length,"ch")}})),u&&p&&r.a.createElement("span",{className:Me.a.error},p)),i&&r.a.createElement("div",{className:Me.a.hint},i))}}]),t}(r.a.Component);Ae.defaultProps={type:"text"};!function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?De(a,!0).forEach(function(t){Object(l.a)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):De(a).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}}({},Ie.a,{id:ue.a.string.isRequired,type:ue.a.string.isRequired,label:ue.a.string.isRequired,hint:ue.a.oneOfType([ue.a.string,ue.a.element]),placeholder:ue.a.string});var Fe=a(50),Be=a.n(Fe),Re=a(61),qe=a(122),Ge=a.n(qe);function Ve(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,n)}return a}function He(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?Ve(a,!0).forEach(function(t){Object(l.a)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Ve(a).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Ue=function(e){function t(){return Object(R.a)(this,t),Object(G.a)(this,Object(V.a)(t).apply(this,arguments))}return Object(H.a)(t,e),Object(q.a)(t,[{key:"render",value:function(){var e=this.props,t=e.size,a=e.color,n=e.title,i=e.wrapperStyle,s=Object(Re.a)(e,["size","color","title","wrapperStyle"]);return r.a.createElement("span",{className:Ge.a.wrap,style:He({},i,{width:t,height:t})},r.a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg"},s,{width:t,height:t,viewBox:"0 0 64 64",fill:"none",stroke:a,"aria-labelledby":"title"}),r.a.createElement("title",{id:"title"},n),r.a.createElement("g",{strokeWidth:"4",strokeLinecap:"round"},r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(180)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:"1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(210)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:"0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(240)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:".1;0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(270)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:".15;.1;0;1;.85;.7;.65;.55;.45;.35;.25;.15",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(300)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:".25;.15;.1;0;1;.85;.7;.65;.55;.45;.35;.25",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(330)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:".35;.25;.15;.1;0;1;.85;.7;.65;.55;.45;.35",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(0)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:".45;.35;.25;.15;.1;0;1;.85;.7;.65;.55;.45",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(30)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:".55;.45;.35;.25;.15;.1;0;1;.85;.7;.65;.55",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(60)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:".65;.55;.45;.35;.25;.15;.1;0;1;.85;.7;.65",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(90)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:".7;.65;.55;.45;.35;.25;.15;.1;0;1;.85;.7",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(120)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:".85;.7;.65;.55;.45;.35;.25;.15;.1;0;1;.85",repeatCount:"indefinite"})),r.a.createElement("line",{y1:"12",y2:"20",transform:"translate(32,32) rotate(150)"},r.a.createElement("animate",{attributeName:"stroke-opacity",dur:"750ms",values:"1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1",repeatCount:"indefinite"})))))}}]),t}(r.a.Component);Ue.defaultProps={color:"currentColor",size:"1rem",title:"Loading\u2026"};var ze=Ue,Je=function(e){function t(){return Object(R.a)(this,t),Object(G.a)(this,Object(V.a)(t).apply(this,arguments))}return Object(H.a)(t,e),Object(q.a)(t,[{key:"render",value:function(){var e=this.props,t=e.hint,a=e.handleSubmit,n=e.myHandleSubmit,i=e.error,s=e.pristine,c=e.submitting,o=e.valueInputType,u=e.backFn;return r.a.createElement("form",{onSubmit:a(n)},r.a.createElement("div",{className:Be.a.fields},r.a.createElement(xe.a,{name:"value",label:"Value",id:"secret_value",type:o,component:Ae,hint:t})),i&&r.a.createElement("div",{className:Be.a["error-wrap"]},r.a.createElement("div",{className:Be.a["error-message"]},r.a.createElement("div",null,"An error occurred while saving the data"),r.a.createElement("div",{className:Be.a["error-small"]},"Network request status: ",i))),r.a.createElement(Pe,null,r.a.createElement("button",{className:"primary",type:"submit",disabled:s||c},r.a.createElement("span",{className:"button-wrap"},r.a.createElement("span",{className:"button-text"},"Save"),c&&r.a.createElement(ze,{wrapperStyle:{marginLeft:"5px"},size:"1.5em"}))),r.a.createElement("button",{className:"link",onClick:u},"Back")))}}]),t}(r.a.Component);Je.defaultProps={};ue.a.number.isRequired,ue.a.string.isRequired,ue.a.string,ue.a.oneOfType([ue.a.string,ue.a.element]),ue.a.string.isRequired,ue.a.func.isRequired,ue.a.func.isRequired,ue.a.bool,ue.a.bool,ue.a.string,ue.a.object,ue.a.string,ue.a.func.isRequired;var Ye=a(241);function We(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,n)}return a}function Xe(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?We(a,!0).forEach(function(t){Object(l.a)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):We(a).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var Ze=Object(o.b)(function(e){var t=e.setting,a=t.fetchSuccessful,n=t.attributes;return{initialValues:Xe({},n,{value:a?Ee(n.type,n.value):n.value})}},function(e,t){return{myHandleSubmit:function(a){return(n=t.id,r=t.authenticityToken,i={value:a.value},function(){var e=Object(f.a)(m.a.mark(function e(t){var a,s,c,o,u;return m.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a=y("settings/".concat(n)),t({type:C}),e.prev=2,e.next=5,v(300,h.a.put(a,{json:i,hooks:{beforeRequest:[M(r)]}}));case 5:return s=e.sent,e.next=8,s.json();case 8:c=e.sent,t({type:x,attributes:c}),e.next=34;break;case 12:if(e.prev=12,e.t0=e.catch(2),t({type:I,errorMessage:e.t0.name}),"HTTPError"!==e.t0.name){e.next=33;break}if(422!==e.t0.response.status){e.next=29;break}return e.prev=17,e.next=20,e.t0.response.json();case 20:o=e.sent,e.next=26;break;case 23:throw e.prev=23,e.t1=e.catch(17),new k.a({_error:e.t0.message});case 26:throw new k.a(o.errors);case 29:throw u="".concat(e.t0.response.status," ").concat(e.t0.message),new k.a({_error:u});case 31:e.next=34;break;case 33:throw new k.a({_error:e.t0.message});case 34:case"end":return e.stop()}},e,null,[[2,12],[17,23]])}));return function(t){return e.apply(this,arguments)}}())(e);var n,r,i}}})(Object(Ye.a)({form:"edit-setting"})(Je)),Qe=function(e){function t(e){var a;return Object(R.a)(this,t),(a=Object(G.a)(this,Object(V.a)(t).call(this,e))).goBack=a.goBack.bind(Object(de.a)(a)),a}return Object(H.a)(t,e),Object(q.a)(t,[{key:"componentDidMount",value:function(){var e=this.props.match.params.id;se(),this.props.fetch(e)}},{key:"componentDidUpdate",value:function(e,t,a){!this.props.fetching&&e.fetching&&ce()}},{key:"hint",value:function(e){switch(e){case"SystemSettings::StringListSetting":case"SystemSettings::IntegerListSetting":return r.a.createElement(r.a.Fragment,null,"Separate values by ",r.a.createElement("code",null,";")," character.");default:return null}}},{key:"valueInputType",value:function(e){switch(e){case"SystemSettings::BooleanSetting":return"checkbox";default:return"text"}}},{key:"goBack",value:function(){var e=this.props.history;"POP"===e.action?e.push("/"):e.goBack()}},{key:"render",value:function(){var e=this.props,t=e.fetching,a=e.fetchSuccessful,n=e.fetchErrorMessage,i=e.authenticityToken,s=e.attributes,c=s.id,o=s.name,u=s.description,l=s.type;return t?null:a?r.a.createElement("div",null,r.a.createElement(Se,{name:"Name"},r.a.createElement("span",{className:"sysname"},o)),r.a.createElement(Se,{name:"Type"},ve(l)),r.a.createElement(Se,{name:"Description"},u),r.a.createElement(Ze,{id:c,authenticityToken:i,hint:this.hint(l),valueInputType:this.valueInputType(l),backFn:this.goBack})):r.a.createElement(ne,{description:n})}}]),t}(n.Component),Ke=Object(o.b)(function(e){return{attributes:e.setting.attributes,authenticityToken:e.setting.authenticityToken,fetching:e.setting.fetching,fetchSuccessful:e.setting.fetchSuccessful,fetchErrorMessage:e.setting.fetchErrorMessage}},function(e){return{fetch:function(t){L(t)(e).catch(function(){})}}})(Qe),$e=function(e){function t(){return Object(R.a)(this,t),Object(G.a)(this,Object(V.a)(t).apply(this,arguments))}return Object(H.a)(t,e),Object(q.a)(t,[{key:"render",value:function(){return r.a.createElement(U.c,{history:this.props.history},r.a.createElement("div",{className:Y.a.container},r.a.createElement("div",{className:Y.a["header-wrap"]},r.a.createElement("div",{className:Y.a.header},r.a.createElement(z.a,{to:"/",className:Y.a["header-name"]},this.props.name))),r.a.createElement("div",{className:Y.a["header-spacer"]}),r.a.createElement("div",{className:Y.a["content-wrap"]},r.a.createElement("div",{className:Y.a.content},r.a.createElement(U.d,null,r.a.createElement(U.b,{exact:!0,path:"/"},r.a.createElement(U.a,{to:Object(U.f)("/list/:page",{page:1})})),r.a.createElement(U.b,{path:"/list/:page",component:be}),r.a.createElement(U.b,{path:"/settings/:id/edit",component:Ke}),r.a.createElement(U.b,{path:"/settings/:id",component:Ce}),r.a.createElement(U.b,{component:Z}))))))}}]),t}(n.Component);$e.defaultProps={name:"System Settings"};var et=$e,tt=(a(238),Object(s.c)(B)),at=document.getElementById("root");window.__SYSTEM_SETTINGS_BASENAME__||(window.__SYSTEM_SETTINGS_BASENAME__="/system_settings");var nt=Object(c.a)({basename:window.__SYSTEM_SETTINGS_BASENAME__});Object(i.render)(r.a.createElement(o.a,{store:tt},r.a.createElement(et,{history:nt})),at)},30:function(e,t,a){e.exports={container:"App_container__6j1zw","header-wrap":"App_header-wrap__3CTKH",header:"App_header__14Wxn","header-name":"App_header-name__XmVJQ","header-spacer":"App_header-spacer__2nhtg","content-wrap":"App_content-wrap__V8jPR",content:"App_content__1dlDM"}},34:function(e,t,a){e.exports={wrap:"LabeledInput_wrap__29803",label:"LabeledInput_label__3s0me","input-and-error-wrap":"LabeledInput_input-and-error-wrap__1WE7-",error:"LabeledInput_error__3HfEM",hint:"LabeledInput_hint__1uKYN"}},41:function(e,t,a){e.exports={pagination:"Pagination_pagination__NJj9X",item:"Pagination_item__2fgd5","item--disabled":"Pagination_item--disabled__27--j","item--active":"Pagination_item--active__1nTy1",link:"Pagination_link__3Iz6l"}},49:function(e,t,a){e.exports={wrap:"PageLoadError_wrap__2WGP9",container:"PageLoadError_container__1vEsn","error-small":"PageLoadError_error-small__243N5"}},50:function(e,t,a){e.exports={"error-wrap":"SettingForm_error-wrap__2mrUQ","error-message":"SettingForm_error-message__2SoFD","error-small":"SettingForm_error-small__2DqG8"}},65:function(e,t,a){e.exports={wrap:"Value_wrap__uZ29f",section:"Value_section__36uaM"}},66:function(e,t,a){e.exports={wrap:"Attribute_wrap__3nYMg",name:"Attribute_name__2w8Tg",value:"Attribute_value__3P12Z"}}},[[124,1,2]]]);
2
- //# sourceMappingURL=main.8f1e7b9c.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["components/NotFoundPage.module.css","components/ButtonBar.module.scss","components/ClassicSpinner.module.scss","components/ListPage.module.scss","routes/backend.js","utils/slowdown.js","actions/list.js","reducers/list.js","actions/setting.js","reducers/setting.js","reducers/index.js","components/NotFoundPage.jsx","components/PageLoadError.jsx","progress_bar.js","components/Value.jsx","components/ListPage.jsx","containers/ConnectedListPage.js","utils/secrets.js","components/Attribute.jsx","components/ButtonBar.jsx","components/ViewPage.jsx","routes/frontend.js","containers/ConnectedViewPage.js","components/LabeledInput.jsx","components/ClassicSpinner.jsx","components/SettingForm.jsx","containers/ConnectedSettingForm.js","components/EditPage.jsx","containers/ConnectedEditPage.js","components/App.jsx","index.js","components/App.module.css","components/LabeledInput.module.scss","components/Pagination.module.scss","components/PageLoadError.module.scss","components/SettingForm.module.css","components/Value.module.scss","components/Attribute.module.scss"],"names":["module","exports","apiPath","path","parsedBase","URL","window","__SYSTEM_SETTINGS_BASENAME__","nextPathname","join","pathname","set","href","slowdown","time","promise","timer","Promise","resolve","setTimeout","reject","then","value","error","LIST_FETCH_IN_PROGRESS","LIST_FETCH_SUCCESSFUL","LIST_FETCH_FAILED","initialState","fetching","fetchErrorMessage","fetchSuccessful","page","items","totalCount","SETTING_FETCH_IN_PROGRESS","SETTING_FETCH_SUCCESSFUL","SETTING_FETCH_FAILED","SETTING_SAVE_IN_PROGRESS","SETTING_SAVE_SUCCESSFUL","SETTING_SAVE_FAILED","fetchSetting","id","dispatch","a","type","ky","get","response","ok","Error","statusText","token","headers","json","authenticityToken","attributes","message","name","status","errorMessage","addAuthenticityToken","input","options","saving","lastSaveSuccessful","saveErrorMessage","combineReducers","list","state","action","data","map","attrs","description","setting","form","NotFoundPage","className","styles","Component","PageLoadError","this","props","React","start","NProgress","done","inc","Value","v","i","key","toString","formattedValue","PropTypes","string","isRequired","any","ListPage","columnCount","initFetch","fetch","activePage","progressBarStart","parseInt","match","params","prevProps","prevState","snapshot","location","progressBarDone","nextPath","generatePath","history","push","itemsCount","innerClass","paginationStyles","itemClass","disabledClass","activeClass","linkClass","hideFirstLastPages","itemsCountPerPage","totalItemsCount","pageRangeDisplayed","onChange","handlePageChange","bind","length","colSpan","to","pagination","ConnectedListPage","connect","store","per_page","searchParams","per","fetchList","catch","SEP","humanReadableType","formatValueForForm","str","replace","Attribute","children","PureComponent","ButtonBar","ViewPage","goBack","onClick","ConnectedViewPage","ownProps","LabeledInput","label","hint","placeholder","meta","touched","Array","isArray","htmlFor","style","width","defaultProps","fieldPropTypes","oneOfType","element","ClassicSpinner","size","color","title","wrapperStyle","rest","height","xmlns","viewBox","fill","stroke","aria-labelledby","strokeWidth","strokeLinecap","y1","y2","transform","attributeName","dur","values","repeatCount","SettingForm","handleSubmit","myHandleSubmit","pristine","submitting","valueInputType","backFn","onSubmit","Field","component","disabled","marginLeft","number","func","bool","object","initialValues","csrfToken","put","hooks","beforeRequest","parsed","SubmissionError","_error","errors","reduxForm","EditPage","ConnectedEditPage","App","exact","createStore","reducers","rootEl","document","getElementById","process","createBrowserHistory","basename","render"],"mappings":"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","file":"static/js/main.8f1e7b9c.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"NotFoundPage_container__2g6QR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ButtonBar_container__phfXp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrap\":\"ClassicSpinner_wrap__3gt1R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table\":\"ListPage_table__3BJUy\",\"empty-tr\":\"ListPage_empty-tr__Z37SG\",\"name\":\"ListPage_name__3WwZr\",\"description\":\"ListPage_description__31PRS\",\"value\":\"ListPage_value__1VJLD\",\"actions\":\"ListPage_actions__1GibV\"};","import URL from \"url-parse\";\n\nimport { join } from \"path\";\n\nfunction getBase(){\n return window.__SYSTEM_SETTINGS_BASENAME__;\n}\n\nexport function apiPath(path) {\n let parsedBase = new URL(getBase());\n let nextPathname = join(parsedBase.pathname, 'api', path);\n parsedBase.set('pathname', nextPathname);\n return parsedBase.href;\n}\n","export function slowdown(time, promise){\n let timer = new Promise((resolve) => window.setTimeout(() => resolve(time), time));\n return new Promise((resolve, reject) => {\n promise.then(value => timer.then(() => resolve(value)), error => timer.then(() => reject(error)))\n });\n}\n","import ky from 'ky';\nimport {apiPath} from \"../routes/backend\";\nimport { slowdown } from \"../utils/slowdown\";\n\nexport const LIST_FETCH_IN_PROGRESS = \"LIST_FETCH_IN_PROGRESS\";\nexport const LIST_FETCH_SUCCESSFUL = \"LIST_FETCH_SUCCESSFUL\";\nexport const LIST_FETCH_FAILED = \"LIST_FETCH_FAILED\";\n\nexport function fetchList(page, per_page) {\n return async function (dispatch) {\n const path = apiPath(\"settings\");\n try {\n dispatch({type: LIST_FETCH_IN_PROGRESS});\n const json = await slowdown(50, ky.get(path, {searchParams: {page: page, per: per_page}}).json());\n dispatch({type: LIST_FETCH_SUCCESSFUL, data: json, page: page});\n } catch(error) {\n\n let message = (error.name === \"HTTPError\") ? `Network request status: ${error.response.status} ${error.message}` : error.message;\n\n dispatch({type: LIST_FETCH_FAILED, errorMessage: message, page: page});\n throw error;\n }\n }\n}","import {\n LIST_FETCH_IN_PROGRESS,\n LIST_FETCH_SUCCESSFUL,\n LIST_FETCH_FAILED\n} from \"../actions/list\";\n\nconst initialState = {\n fetching: true,\n fetchErrorMessage: null,\n fetchSuccessful: null,\n page: 0,\n items: [],\n totalCount: 0\n};\n\nexport default function(state = initialState, action) {\n switch(action.type){\n case LIST_FETCH_IN_PROGRESS:\n return { ...state, fetching: true };\n case LIST_FETCH_SUCCESSFUL:\n return { ...state, fetching: false, fetchSuccessful: true, items: action.data[\"items\"].map((attrs) => {\n return { id: attrs.id, type: attrs.type, name: attrs.name, value: attrs.value, description: attrs.description }\n }), page: action.page, totalCount: action.data[\"total_count\"] };\n case LIST_FETCH_FAILED:\n return { ...state, fetching: false, fetchSuccessful: false, items: [], fetchErrorMessage: action.errorMessage, page: action.page };\n default:\n return state;\n }\n}\n","import ky from 'ky';\n\nimport {apiPath} from \"../routes/backend\";\nimport { slowdown } from \"../utils/slowdown\";\nimport { SubmissionError } from 'redux-form';\n\nexport const SETTING_FETCH_IN_PROGRESS = \"SETTING_FETCH_IN_PROGRESS\";\nexport const SETTING_FETCH_SUCCESSFUL = \"SETTING_FETCH_SUCCESSFUL\";\nexport const SETTING_FETCH_FAILED = \"SETTING_FETCH_FAILED\";\n\nexport const SETTING_SAVE_IN_PROGRESS = \"SETTING_SAVE_IN_PROGRESS\";\nexport const SETTING_SAVE_SUCCESSFUL = \"SETTING_SAVE_SUCCESSFUL\";\nexport const SETTING_SAVE_FAILED = \"SETTING_SAVE_FAILED\";\n\nexport function fetchSetting(id) {\n return async function (dispatch) {\n const path = apiPath(`settings/${id}`);\n try {\n dispatch({type: SETTING_FETCH_IN_PROGRESS});\n const response = await slowdown(50, ky.get(path));\n if(!response.ok){\n throw new Error(response.statusText)\n }\n const token = response.headers.get(\"Authenticity-Token\");\n const json = await response.json();\n dispatch({type: SETTING_FETCH_SUCCESSFUL, authenticityToken: token, attributes: json});\n } catch(error) {\n\n let message = (error.name === \"HTTPError\") ? `Network request status: ${error.response.status} ${error.message}` : error.message;\n\n dispatch({type: SETTING_FETCH_FAILED, errorMessage: message});\n throw error;\n }\n }\n}\n\nfunction addAuthenticityToken(token) {\n return (input, options) => options.headers.set(\"X-CSRF-Token\", token);\n}\n\nexport function saveSetting(id, csrfToken, attributes) {\n return async function (dispatch) {\n const path = apiPath(`settings/${id}`);\n dispatch({type: SETTING_SAVE_IN_PROGRESS});\n try {\n const response = await slowdown(300, ky.put(path, {\n json: attributes,\n hooks: {\n beforeRequest: [addAuthenticityToken(csrfToken)]\n }\n }));\n\n const parsed = await response.json();\n\n dispatch({type: SETTING_SAVE_SUCCESSFUL, attributes: parsed});\n } catch (error) {\n dispatch({type: SETTING_SAVE_FAILED, errorMessage: error.name});\n\n if(error.name === \"HTTPError\") {\n if (error.response.status === 422){\n let json;\n try {\n json = await error.response.json();\n } catch (jsonParseError) {\n throw new SubmissionError({_error: error.message});\n }\n throw new SubmissionError(json.errors);\n } else {\n let message = `${error.response.status} ${error.message}`;\n throw new SubmissionError({_error: message});\n }\n } else {\n throw new SubmissionError({_error: error.message});\n }\n }\n }\n}\n","import {\n SETTING_FETCH_IN_PROGRESS,\n SETTING_FETCH_SUCCESSFUL,\n SETTING_FETCH_FAILED,\n SETTING_SAVE_IN_PROGRESS,\n SETTING_SAVE_SUCCESSFUL,\n SETTING_SAVE_FAILED\n} from \"../actions/setting\";\n\nconst initialState = {\n attributes: {},\n authenticityToken: null,\n fetching: true,\n fetchErrorMessage: null,\n fetchSuccessful: null,\n saving: false,\n lastSaveSuccessful: null,\n saveErrorMessage: null\n};\n\nexport default function(state = initialState, action) {\n switch(action.type){\n case SETTING_FETCH_IN_PROGRESS:\n return { ...state, fetching: true, fetchSuccessful: null, fetchErrorMessage: null };\n case SETTING_FETCH_SUCCESSFUL:\n return { ...state, fetching: false, fetchSuccessful: true, attributes: action.attributes, authenticityToken: action.authenticityToken};\n case SETTING_FETCH_FAILED:\n return { ...state, fetching: false, fetchSuccessful: false, fetchErrorMessage: action.errorMessage};\n case SETTING_SAVE_IN_PROGRESS:\n return { ...state, saving: true, lastSaveSuccessful: null, saveErrorMessage: null };\n case SETTING_SAVE_SUCCESSFUL:\n return { ...state, saving: false, lastSaveSuccessful: true };\n case SETTING_SAVE_FAILED:\n return { ...state, saving: false, lastSaveSuccessful: false, saveErrorMessage: action.errorMessage};\n default:\n return state;\n }\n}\n","import { combineReducers } from 'redux';\nimport { reducer as form } from 'redux-form'\nimport list from './list'\nimport setting from './setting'\n\nexport default combineReducers({\n list,\n setting,\n form\n});\n","import React, { Component } from 'react';\n\nimport styles from \"./NotFoundPage.module.css\"\n\nexport class NotFoundPage extends Component {\n render() {\n return (\n <div className={styles[\"container\"]}>\n Page not found\n </div>\n );\n }\n}\n\n","import React from 'react';\nimport styles from \"./PageLoadError.module.scss\";\nimport PropTypes from 'prop-types'\n\nexport class PageLoadError extends React.Component {\n\n render(){\n let { description } = this.props;\n return <div className={styles[\"wrap\"]}>\n <div className={styles[\"container\"]}>\n <div className={styles[\"error-large\"]}>An error occurred while loading the page</div>\n <div className={styles[\"error-small\"]}>{description}</div>\n </div>\n </div>\n }\n}\n\nPageLoadError.propTypes = {\n description: PropTypes.string.isRequired\n};","import \"./progress_bar.scss\"\nimport NProgress from \"nprogress/nprogress\"\n\nexport const { start, done, inc } = NProgress;","import React from 'react'\nimport PropTypes from 'prop-types'\nimport styles from \"./Value.module.scss\"\n\nexport class Value extends React.Component {\n formattedValue(){\n let { type, value } = this.props;\n switch(type) {\n case \"SystemSettings::StringListSetting\":\n case \"SystemSettings::IntegerListSetting\":\n if(value){\n return value.map((v, i) => <span key={i} className={styles[\"section\"]}>{v.toString()}</span>)\n } else {\n return null;\n }\n default:\n return <span className={styles[\"section\"]}>{value.toString()}</span>;\n }\n }\n render(){\n return <span className={styles[\"wrap\"]}>\n {this.formattedValue()}\n </span>\n }\n}\n\nexport const ValueProps = {\n type: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired\n};\n\nValue.propTypes = ValueProps;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types'\nimport { Link } from \"react-router-dom\";\nimport styles from \"./ListPage.module.scss\"\nimport paginationStyles from \"./Pagination.module.scss\"\nimport { PageLoadError } from \"./PageLoadError\";\nimport { start as progressBarStart, done as progressBarDone } from \"../progress_bar\"\nimport {Value} from \"./Value\";\nimport Pagination from \"react-js-pagination\";\n\nimport { generatePath } from \"react-router\"\n\nconst PER_PAGE = 25;\nconst PAGE_RANGE_DISPLAYED = 5;\n\nclass ListPage extends Component {\n\n componentDidMount() {\n this.initFetch()\n }\n\n initFetch(){\n this.props.fetch(this.activePage(), PER_PAGE);\n progressBarStart()\n }\n\n activePage(){\n return parseInt(this.props.match.params[\"page\"]);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if(this.props.location !== prevProps.location){\n this.initFetch()\n }\n if(!this.props.fetching && prevProps.fetching){\n progressBarDone()\n }\n }\n\n columnCount = 4;\n\n handlePageChange(page){\n let nextPath = generatePath(this.props.match.path, {page});\n this.props.history.push(nextPath);\n }\n\n pagination(){\n let { itemsCount } = this.props;\n if(itemsCount <= PER_PAGE) { return; }\n return <Pagination\n key=\"pagination\"\n innerClass={paginationStyles[\"pagination\"]}\n itemClass={paginationStyles[\"item\"]}\n disabledClass={paginationStyles[\"item--disabled\"]}\n activeClass={paginationStyles[\"item--active\"]}\n linkClass={paginationStyles[\"link\"]}\n hideFirstLastPages={true}\n activePage={this.activePage()}\n itemsCountPerPage={PER_PAGE}\n totalItemsCount={itemsCount}\n pageRangeDisplayed={PAGE_RANGE_DISPLAYED}\n onChange={this.handlePageChange.bind(this)}\n />\n }\n\n render() {\n let { fetching, fetchSuccessful, fetchErrorMessage, items } = this.props;\n if(fetching){\n return null;\n } else if (fetchSuccessful) {\n return [<table key=\"table\" className={styles[\"table\"]}>\n <thead>\n <tr>\n <th className={styles[\"name\"]}>Name</th>\n <th className={styles[\"description\"]}>Description</th>\n <th className={styles[\"value\"]}>Value</th>\n <th className={styles[\"actions\"]}/>\n </tr>\n </thead>\n <tbody>\n {items.length === 0 && <tr className={styles[\"empty-tr\"]}><td colSpan={this.columnCount}>No settings</td></tr>}\n {items.length > 0 && items.map((attrs) => {\n return <tr key={attrs.id}>\n <td className={styles[\"name\"]}><Link className=\"sysname\" to={`/settings/${attrs.id}`}>{attrs.name}</Link></td>\n <td className={styles[\"description\"]}>{attrs.description}</td>\n <td className={styles[\"value\"]}><Value type={attrs.type} value={attrs.value}/></td>\n <td className={styles[\"actions\"]}><Link className={styles[\"primary-action\"]} to={`/settings/${attrs.id}/edit`}>Edit</Link></td>\n </tr>\n })}\n </tbody>\n </table>, this.pagination()]\n } else {\n return <PageLoadError description={fetchErrorMessage} />\n }\n }\n}\n\nexport default ListPage;\n\nListPage.propTypes = {\n page: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n fetch: PropTypes.func.isRequired,\n fetching: PropTypes.bool.isRequired,\n fetchSuccessful: PropTypes.bool,\n fetchErrorMessage: PropTypes.string,\n itemsCount: PropTypes.number.isRequired,\n items: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.number.isRequired,\n type: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n description: PropTypes.string,\n }))\n};","import { connect } from 'react-redux';\nimport ListPage from '../components/ListPage';\nimport { fetchList } from \"../actions/list\"\n\nconst LIST_STORE = \"list\";\n\nconst mapStateToProps = ((store) => {\n return {\n page: store[LIST_STORE].page,\n items: store[LIST_STORE].items,\n itemsCount: store[LIST_STORE].totalCount,\n fetching: store[LIST_STORE].fetching,\n fetchSuccessful: store[LIST_STORE].fetchSuccessful,\n fetchErrorMessage: store[LIST_STORE].fetchErrorMessage,\n }\n});\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetch: (page, per_page) => {\n fetchList(page, per_page)(dispatch).catch(() => {})\n }\n }\n};\n\nexport const ConnectedListPage = connect(mapStateToProps, mapDispatchToProps)(ListPage);\n","const SEP = ';';\n\nexport function humanReadableType(type) {\n switch(type) {\n case \"SystemSettings::StringSetting\":\n return \"String\";\n case \"SystemSettings::StringListSetting\":\n return \"List of strings\";\n case \"SystemSettings::IntegerSetting\":\n return \"Integer\";\n case \"SystemSettings::IntegerListSetting\":\n return \"List of integers\";\n case \"SystemSettings::BooleanSetting\":\n return \"Boolean\";\n default:\n return \"Unknown\";\n }\n}\n\nexport function formatValueForForm(type, value) {\n switch(type) {\n case \"SystemSettings::StringListSetting\":\n return value.map((str) => {\n if(str && str.replace){\n return str.replace(SEP, `\\\\${SEP}`);\n } else {\n return \"\";\n }\n }).join(SEP);\n case \"SystemSettings::IntegerListSetting\":\n return value ? value.join(SEP) : value;\n case \"SystemSettings::BooleanSetting\":\n return value;\n default:\n return value;\n }\n}","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types'\nimport styles from './Attribute.module.scss';\n\nexport class Attribute extends PureComponent {\n render() {\n let {name, children} = this.props;\n return <div className={styles[\"wrap\"]}>\n <div className={styles[\"name\"]}>{name}</div>\n <div className={styles[\"value\"]}>{children}</div>\n </div>\n }\n}\n\nexport const AttributeProps = {\n name: PropTypes.string.isRequired,\n value: PropTypes.any\n};\n\nAttribute.propTypes = AttributeProps;","import React from 'react';\nimport styles from \"./ButtonBar.module.scss\";\n\nexport class ButtonBar extends React.Component {\n render(){\n let { children } = this.props;\n return <div className={styles[\"container\"]}>{children}</div>\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types'\nimport {humanReadableType} from \"../utils/secrets\";\nimport {Attribute} from \"./Attribute\";\nimport {Link} from \"react-router-dom\";\nimport { PageLoadError } from \"./PageLoadError\";\nimport styles from \"./ViewPage.module.scss\"\nimport { ButtonBar } from \"./ButtonBar\";\nimport { start as progressBarStart, done as progressBarDone } from \"../progress_bar\";\nimport {Value} from \"./Value\";\nimport {ROOT_PATH} from \"../routes/frontend\";\n\nexport class ViewPage extends Component {\n\n constructor(props){\n super(props);\n this.goBack = this.goBack.bind(this);\n }\n\n componentDidMount() {\n let { id } = this.props.match.params;\n progressBarStart();\n this.props.fetch(id);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if(!this.props.fetching && prevProps.fetching){\n progressBarDone()\n }\n }\n\n goBack(){\n let { history } = this.props;\n if(history.action === \"POP\") {\n history.push(ROOT_PATH);\n } else {\n history.goBack();\n }\n }\n\n render() {\n let { fetching, fetchSuccessful, fetchErrorMessage, attributes: {id, name, type, description, value} } = this.props;\n if(fetching){\n return null;\n } else if (fetchSuccessful) {\n return <div className={styles[\"wrap\"]}>\n <Attribute name=\"Name\"><span className=\"sysname\">{name}</span></Attribute>\n <Attribute name=\"Type\" children={humanReadableType(type)}/>\n <Attribute name=\"Description\" children={description}/>\n <Attribute name=\"Value\"><Value type={type} value={value}/></Attribute>\n <ButtonBar>\n <Link className=\"button primary\" to={`/settings/${id}/edit`}>Edit</Link>\n <button className=\"link\" onClick={this.goBack}>Back</button>\n </ButtonBar>\n </div>\n } else {\n return <PageLoadError description={fetchErrorMessage} />\n }\n }\n}\n\nViewPage.propTypes = {\n match: PropTypes.object.isRequired,\n attributes: PropTypes.shape({\n id: PropTypes.number,\n type: PropTypes.string,\n name: PropTypes.string,\n value: PropTypes.any,\n description: PropTypes.string\n }),\n fetch: PropTypes.func.isRequired,\n fetching: PropTypes.bool.isRequired,\n fetchSuccessful: PropTypes.bool,\n fetchErrorMessage: PropTypes.string,\n};","export const ROOT_PATH = \"/\";\nexport const LIST_PATH = \"/list/:page\";\nexport const EDIT_SETTING_PATH = \"/settings/:id/edit\";\nexport const SETTING_PATH = \"/settings/:id\";","import { connect } from 'react-redux';\nimport { ViewPage } from '../components/ViewPage';\nimport { fetchSetting } from \"../actions/setting\";\n\nconst mapStateToProps = ((store) => {\n return {\n attributes: store[\"setting\"].attributes,\n fetching: store[\"setting\"].fetching,\n fetchSuccessful: store[\"setting\"].fetchSuccessful,\n fetchErrorMessage: store[\"setting\"].fetchErrorMessage,\n }\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n fetch: (id) => {\n return fetchSetting(id)(dispatch)\n }\n\n }\n};\n\nexport const ConnectedViewPage = connect(mapStateToProps, mapDispatchToProps)(ViewPage);","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { fieldPropTypes } from \"redux-form\"\nimport styles from \"./LabeledInput.module.scss\"\n\nexport class LabeledInput extends React.Component {\n render(){\n let {id, type, label, hint, placeholder, input, meta: { touched, error } } = this.props;\n let errorMessage = Array.isArray(error) ? error.join(\"; \") : error;\n\n return <div className={styles[\"wrap\"]}>\n <label className={styles[\"label\"]} htmlFor={id}>{label}</label>\n <div className={styles[\"input-and-error-wrap\"]}>\n <input id={id} type={type} placeholder={placeholder} {...input} className={styles[\"input\"]} style={{width: `${input.value.length}ch`}} />\n {touched && errorMessage && <span className={styles[\"error\"]}>{errorMessage}</span>}\n </div>\n {hint && <div className={styles[\"hint\"]}>{hint}</div>}\n </div>\n }\n}\n\nLabeledInput.defaultProps = {\n type: \"text\"\n};\n\nexport const LabeledInputProps = {\n ...fieldPropTypes,\n id: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n hint: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n placeholder: PropTypes.string,\n};\n\nLabeledInput.propTypes = LabeledInputProps;\n","import React from 'react'\nimport PropTypes from \"prop-types\";\nimport style from \"./ClassicSpinner.module.scss\"\n\nexport class ClassicSpinner extends React.Component {\n render(){\n let { size, color, title, wrapperStyle, ...rest } = this.props;\n return (\n <span className={style[\"wrap\"]} style={{...wrapperStyle, width: size, height: size}}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" {...rest} width={size} height={size} viewBox=\"0 0 64 64\" fill=\"none\" stroke={color} aria-labelledby=\"title\">\n <title id=\"title\">{title}</title>\n <g strokeWidth=\"4\" strokeLinecap=\"round\">\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(180)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\"1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(210)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\"0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(240)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\".1;0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(270)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\".15;.1;0;1;.85;.7;.65;.55;.45;.35;.25;.15\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(300)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\".25;.15;.1;0;1;.85;.7;.65;.55;.45;.35;.25\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(330)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\".35;.25;.15;.1;0;1;.85;.7;.65;.55;.45;.35\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(0)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\".45;.35;.25;.15;.1;0;1;.85;.7;.65;.55;.45\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(30)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\".55;.45;.35;.25;.15;.1;0;1;.85;.7;.65;.55\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(60)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\".65;.55;.45;.35;.25;.15;.1;0;1;.85;.7;.65\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(90)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\".7;.65;.55;.45;.35;.25;.15;.1;0;1;.85;.7\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(120)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\".85;.7;.65;.55;.45;.35;.25;.15;.1;0;1;.85\" repeatCount=\"indefinite\"></animate>\n </line>\n <line y1=\"12\" y2=\"20\" transform=\"translate(32,32) rotate(150)\">\n <animate attributeName=\"stroke-opacity\" dur=\"750ms\" values=\"1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1\" repeatCount=\"indefinite\"></animate>\n </line>\n </g>\n </svg>\n </span>\n )\n }\n}\n\nClassicSpinner.propTypes = {\n size: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nClassicSpinner.defaultProps = {\n color: \"currentColor\",\n size: \"1rem\",\n title: \"Loading…\"\n};\n\nexport default ClassicSpinner;\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Field } from 'redux-form'\nimport {LabeledInput} from \"./LabeledInput\";\nimport styles from \"./SettingForm.module.css\"\nimport {ButtonBar} from \"./ButtonBar\";\nimport ClassicSpinner from \"./ClassicSpinner\";\n\nexport class SettingForm extends React.Component {\n render(){\n let {\n hint,\n handleSubmit,\n myHandleSubmit,\n error,\n pristine,\n submitting,\n valueInputType,\n backFn\n } = this.props;\n return <form onSubmit={handleSubmit(myHandleSubmit)}>\n <div className={styles[\"fields\"]}>\n <Field name=\"value\" label=\"Value\" id=\"secret_value\" type={valueInputType} component={LabeledInput} hint={hint} />\n </div>\n {error && <div className={styles[\"error-wrap\"]}>\n <div className={styles[\"error-message\"]}>\n <div>An error occurred while saving the data</div>\n <div className={styles[\"error-small\"]}>Network request status: {error}</div>\n </div>\n </div>}\n <ButtonBar>\n <button className={\"primary\"} type=\"submit\" disabled={pristine || submitting}>\n <span className=\"button-wrap\">\n <span className=\"button-text\">Save</span>\n {submitting && <ClassicSpinner wrapperStyle={{marginLeft: \"5px\"}} size={\"1.5em\"}/>}\n </span>\n </button>\n <button className=\"link\" onClick={backFn}>Back</button>\n </ButtonBar>\n </form>;\n }\n}\n\nSettingForm.defaultProps = {\n};\n\nexport const SettingFormProps = {\n id: PropTypes.number.isRequired,\n authenticityToken: PropTypes.string.isRequired,\n description: PropTypes.string,\n hint: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n valueInputType: PropTypes.string.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n myHandleSubmit: PropTypes.func.isRequired,\n pristine: PropTypes.bool,\n submitting: PropTypes.bool,\n error: PropTypes.string,\n extraClassNames: PropTypes.object,\n submitText: PropTypes.string,\n backFn: PropTypes.func.isRequired\n};\n\nSettingForm.propTypes = SettingFormProps;\n","import { connect } from 'react-redux';\nimport { SettingForm } from '../components/SettingForm';\nimport { reduxForm } from 'redux-form';\nimport { saveSetting } from \"../actions/setting\"\nimport {formatValueForForm} from \"../utils/secrets\";\n\nconst mapStateToProps = ((store) => {\n let {fetchSuccessful, attributes} = store[\"setting\"];\n return {\n initialValues: {\n ...attributes,\n value: fetchSuccessful ? formatValueForForm(attributes.type, attributes.value) : attributes.value\n }\n }\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n return {\n myHandleSubmit: (values) => {\n return saveSetting(ownProps.id, ownProps.authenticityToken, {value: values.value})(dispatch)\n }\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(reduxForm({form: \"edit-setting\"})(SettingForm))\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types'\nimport SettingForm from \"../containers/ConnectedSettingForm\"\nimport {Attribute} from \"./Attribute\";\nimport {humanReadableType} from \"../utils/secrets\";\nimport { start as progressBarStart, done as progressBarDone } from \"../progress_bar\";\nimport { PageLoadError } from \"./PageLoadError\";\nimport {ROOT_PATH} from \"../routes/frontend\";\n\nexport class EditPage extends Component {\n\n constructor(props){\n super(props);\n this.goBack = this.goBack.bind(this);\n }\n\n componentDidMount() {\n let { id } = this.props.match.params;\n progressBarStart();\n this.props.fetch(id);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if(!this.props.fetching && prevProps.fetching){\n progressBarDone()\n }\n }\n\n hint(type){\n switch (type) {\n case \"SystemSettings::StringListSetting\":\n case \"SystemSettings::IntegerListSetting\":\n return <>Separate values by <code>;</code> character.</>;\n default:\n return null\n }\n }\n\n valueInputType(type){\n switch (type) {\n case \"SystemSettings::BooleanSetting\":\n return \"checkbox\";\n default:\n return \"text\";\n }\n }\n\n goBack(){\n let { history } = this.props;\n if(history.action === \"POP\") {\n history.push(ROOT_PATH);\n } else {\n history.goBack();\n }\n }\n\n render() {\n let { fetching, fetchSuccessful, fetchErrorMessage, authenticityToken, attributes: {id, name, description, type} } = this.props;\n if(fetching){\n return null;\n } else if (fetchSuccessful) {\n return <div>\n <Attribute name=\"Name\"><span className=\"sysname\">{name}</span></Attribute>\n <Attribute name=\"Type\">{humanReadableType(type)}</Attribute>\n <Attribute name=\"Description\">{description}</Attribute>\n <SettingForm id={id} authenticityToken={authenticityToken} hint={this.hint(type)} valueInputType={this.valueInputType(type)} backFn={this.goBack} />\n </div>\n } else {\n return <PageLoadError description={fetchErrorMessage} />\n }\n }\n}\n\nEditPage.propTypes = {\n match: PropTypes.object.isRequired,\n attributes: PropTypes.shape({\n id: PropTypes.number,\n type: PropTypes.string,\n name: PropTypes.string,\n description: PropTypes.string\n }),\n authenticityToken: PropTypes.string,\n fetch: PropTypes.func.isRequired,\n fetching: PropTypes.bool.isRequired,\n fetchSuccessful: PropTypes.bool,\n fetchErrorMessage: PropTypes.string,\n};","import { connect } from 'react-redux';\nimport { EditPage } from '../components/EditPage';\nimport { fetchSetting } from \"../actions/setting\";\n\nconst mapStateToProps = ((store) => {\n return {\n attributes: store[\"setting\"].attributes,\n authenticityToken: store[\"setting\"].authenticityToken,\n fetching: store[\"setting\"].fetching,\n fetchSuccessful: store[\"setting\"].fetchSuccessful,\n fetchErrorMessage: store[\"setting\"].fetchErrorMessage,\n }\n});\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n fetch: (id) => {\n fetchSetting(id)(dispatch).catch(() => {})\n }\n }\n};\n\nexport const ConnectedEditPage = connect(mapStateToProps, mapDispatchToProps)(EditPage);","import React, {Component} from 'react';\nimport PropTypes from 'prop-types'\nimport {Router, Route, Switch, Link, Redirect} from \"react-router-dom\";\nimport {generatePath} from \"react-router\"\nimport styles from \"./App.module.css\"\nimport {NotFoundPage} from \"./NotFoundPage\";\nimport {ConnectedListPage as ListPage} from \"../containers/ConnectedListPage\";\nimport {ConnectedViewPage as ViewPage} from \"../containers/ConnectedViewPage\";\nimport {ConnectedEditPage as EditPage} from \"../containers/ConnectedEditPage\";\nimport {ROOT_PATH, LIST_PATH, SETTING_PATH, EDIT_SETTING_PATH} from \"../routes/frontend\";\nclass App extends Component {\n render() {\n return (\n <Router history={this.props.history}>\n <div className={styles[\"container\"]}>\n <div className={styles[\"header-wrap\"]}>\n <div className={styles[\"header\"]}>\n <Link to={ROOT_PATH} className={styles[\"header-name\"]}>{this.props.name}</Link>\n </div>\n </div>\n <div className={styles[\"header-spacer\"]}/>\n <div className={styles[\"content-wrap\"]}>\n <div className={styles[\"content\"]}>\n <Switch>\n <Route exact path={ROOT_PATH}>\n <Redirect to={generatePath(LIST_PATH, {page: 1})} />\n </Route>\n <Route path={LIST_PATH} component={ListPage}/>\n <Route path={EDIT_SETTING_PATH} component={EditPage}/>\n <Route path={SETTING_PATH} component={ViewPage}/>\n <Route component={NotFoundPage}/>\n </Switch>\n </div>\n </div>\n </div>\n </Router>\n );\n }\n}\n\nApp.defaultProps = {\n name: \"System Settings\"\n};\n\nApp.propTypes = {\n name: PropTypes.string.isRequired,\n history: PropTypes.object.isRequired\n};\n\nexport default App;\n","import React from 'react';\nimport { render } from 'react-dom';\nimport { createStore } from 'redux'\nimport { createBrowserHistory } from 'history';\nimport { Provider } from 'react-redux';\nimport reducers from './reducers';\nimport App from './components/App';\nimport './index.scss';\nimport \"./progress_bar\"\n\nconst store = createStore(reducers);\n\nconst rootEl = document.getElementById('root');\nif(!window.__SYSTEM_SETTINGS_BASENAME__){\n window.__SYSTEM_SETTINGS_BASENAME__ = process.env.PUBLIC_URL || \"/system_settings\";\n}\n\nconst history = createBrowserHistory({\n basename: window.__SYSTEM_SETTINGS_BASENAME__\n});\n\nrender((\n <Provider store={store}>\n <App history={history}/>\n </Provider>\n), rootEl);","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"App_container__6j1zw\",\"header-wrap\":\"App_header-wrap__3CTKH\",\"header\":\"App_header__14Wxn\",\"header-name\":\"App_header-name__XmVJQ\",\"header-spacer\":\"App_header-spacer__2nhtg\",\"content-wrap\":\"App_content-wrap__V8jPR\",\"content\":\"App_content__1dlDM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrap\":\"LabeledInput_wrap__29803\",\"label\":\"LabeledInput_label__3s0me\",\"input-and-error-wrap\":\"LabeledInput_input-and-error-wrap__1WE7-\",\"error\":\"LabeledInput_error__3HfEM\",\"hint\":\"LabeledInput_hint__1uKYN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pagination\":\"Pagination_pagination__NJj9X\",\"item\":\"Pagination_item__2fgd5\",\"item--disabled\":\"Pagination_item--disabled__27--j\",\"item--active\":\"Pagination_item--active__1nTy1\",\"link\":\"Pagination_link__3Iz6l\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrap\":\"PageLoadError_wrap__2WGP9\",\"container\":\"PageLoadError_container__1vEsn\",\"error-small\":\"PageLoadError_error-small__243N5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"error-wrap\":\"SettingForm_error-wrap__2mrUQ\",\"error-message\":\"SettingForm_error-message__2SoFD\",\"error-small\":\"SettingForm_error-small__2DqG8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrap\":\"Value_wrap__uZ29f\",\"section\":\"Value_section__36uaM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrap\":\"Attribute_wrap__3nYMg\",\"name\":\"Attribute_name__2w8Tg\",\"value\":\"Attribute_value__3P12Z\"};"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- !function(e){function t(t){for(var n,i,f=t[0],l=t[1],s=t[2],p=0,c=[];p<f.length;p++)i=f[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&c.push(o[i][0]),o[i]=0;for(n in l)Object.prototype.hasOwnProperty.call(l,n)&&(e[n]=l[n]);for(a&&a(t);c.length;)c.shift()();return u.push.apply(u,s||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,f=1;f<r.length;f++){var l=r[f];0!==o[l]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/system_settings/";var f=window.webpackJsonpsystem_settings_frontend=window.webpackJsonpsystem_settings_frontend||[],l=f.push.bind(f);f.push=t,f=f.slice();for(var s=0;s<f.length;s++)t(f[s]);var a=l;r()}([]);
2
- //# sourceMappingURL=runtime~main.ea5ad98e.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime~main.ea5ad98e.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/system_settings/\";\n\n \tvar jsonpArray = window[\"webpackJsonpsystem_settings_frontend\"] = window[\"webpackJsonpsystem_settings_frontend\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}