system_settings 0.6.2 → 0.6.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.
@@ -0,0 +1,2 @@
1
+ (this.webpackJsonpsystem_settings_frontend=this.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),s=a(60),i=a(11),c=a(18),o=a(14),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,s,i,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 s=r.headers.get("Authenticity-Token"),t.next=11,r.json();case 11:i=t.sent,a({type:P,authenticityToken:s,attributes:i}),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(i.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(9),V=a(4),H=a(8),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)),se=a.n(re),ie=se.a.start,ce=se.a.done,oe=(se.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),s=0;s<n;s++)r[s]=arguments[s];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),ie()}},{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,s=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===s.length&&r.a.createElement("tr",{className:K.a["empty-tr"]},r.a.createElement("td",{colSpan:this.columnCount},"No settings")),s.length>0&&s.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,s,i;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:s=a.sent,n({type:O,data:s,page:e}),a.next=14;break;case 9:throw a.prev=9,a.t0=a.catch(1),i="HTTPError"===a.t0.name?"Network request status: ".concat(a.t0.response.status," ").concat(a.t0.message):a.t0.message,n({type:_,errorMessage:i,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;ie(),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,s=e.attributes,i=s.id,c=s.name,o=s.type,u=s.description,l=s.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(i,"/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,s=e.hint,i=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:i},c,{className:Me.a.input,style:{width:"".concat(c.value.length,"ch")}})),u&&p&&r.a.createElement("span",{className:Me.a.error},p)),s&&r.a.createElement("div",{className:Me.a.hint},s))}}]),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(63),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,s=e.wrapperStyle,i=Object(Re.a)(e,["size","color","title","wrapperStyle"]);return r.a.createElement("span",{className:Ge.a.wrap,style:He({},s,{width:t,height:t})},r.a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg"},i,{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,s=e.error,i=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})),s&&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: ",s))),r.a.createElement(Pe,null,r.a.createElement("button",{className:"primary",type:"submit",disabled:i||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,s={value:a.value},function(){var e=Object(f.a)(m.a.mark((function e(t){var a,i,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:s,hooks:{beforeRequest:[M(r)]}}));case 5:return i=e.sent,e.next=8,i.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,s}}}))(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;ie(),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,s=e.authenticityToken,i=e.attributes,c=i.id,o=i.name,u=i.description,l=i.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:s,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(i.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(s.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.4c7bae4f.chunk.js.map
@@ -0,0 +1 @@
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.4c7bae4f.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 +1,2 @@
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()}([]);
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=this.webpackJsonpsystem_settings_frontend=this.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.ffc5e8a3.js.map
@@ -0,0 +1 @@
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","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.ffc5e8a3.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 = this[\"webpackJsonpsystem_settings_frontend\"] = this[\"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":""}
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SystemSettings
4
- VERSION = "0.6.2"
4
+ VERSION = "0.6.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: system_settings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krists Ozols
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-06 00:00:00.000000000 Z
11
+ date: 2019-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -60,12 +60,16 @@ files:
60
60
  - frontend/build/asset-manifest.json
61
61
  - frontend/build/favicon.ico
62
62
  - frontend/build/index.html
63
- - frontend/build/precache-manifest.c31853abffc7c301755b0e5b8443e875.js
63
+ - frontend/build/precache-manifest.797e3712a2c4d9798fbd0aa0c90a743f.js
64
64
  - frontend/build/service-worker.js
65
- - frontend/build/static/css/main.879d159f.chunk.css
66
- - frontend/build/static/js/2.8729aa12.chunk.js
67
- - frontend/build/static/js/main.99494978.chunk.js
68
- - frontend/build/static/js/runtime~main.ea5ad98e.js
65
+ - frontend/build/static/css/main.04fc5f62.chunk.css
66
+ - frontend/build/static/css/main.04fc5f62.chunk.css.map
67
+ - frontend/build/static/js/2.78beccc6.chunk.js
68
+ - frontend/build/static/js/2.78beccc6.chunk.js.map
69
+ - frontend/build/static/js/main.4c7bae4f.chunk.js
70
+ - frontend/build/static/js/main.4c7bae4f.chunk.js.map
71
+ - frontend/build/static/js/runtime-main.ffc5e8a3.js
72
+ - frontend/build/static/js/runtime-main.ffc5e8a3.js.map
69
73
  - lib/system_settings.rb
70
74
  - lib/system_settings/engine.rb
71
75
  - lib/system_settings/version.rb
@@ -1,22 +0,0 @@
1
- self.__precacheManifest = (self.__precacheManifest || []).concat([
2
- {
3
- "revision": "10b06f6accf86172de8c291da292df38",
4
- "url": "/system_settings/index.html"
5
- },
6
- {
7
- "revision": "11f98da2174a21a6e344",
8
- "url": "/system_settings/static/css/main.879d159f.chunk.css"
9
- },
10
- {
11
- "revision": "737e8eb5afc822b45d3e",
12
- "url": "/system_settings/static/js/2.8729aa12.chunk.js"
13
- },
14
- {
15
- "revision": "11f98da2174a21a6e344",
16
- "url": "/system_settings/static/js/main.99494978.chunk.js"
17
- },
18
- {
19
- "revision": "ff31b10dd32aeac88659",
20
- "url": "/system_settings/static/js/runtime~main.ea5ad98e.js"
21
- }
22
- ]);