@galadrim/galadmin 0.0.92 → 0.0.95

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.
Files changed (37) hide show
  1. package/dist/api.js +0 -1
  2. package/dist/api.js.map +1 -1
  3. package/dist/tsconfig.tsbuildinfo +1 -1
  4. package/package.json +1 -1
  5. package/src/api.ts +0 -1
  6. package/src/front/build/asset-manifest.json +3 -3
  7. package/src/front/build/index.html +1 -1
  8. package/src/front/build/static/js/main.54c6805d.chunk.js +2 -0
  9. package/src/front/build/static/js/main.54c6805d.chunk.js.map +1 -0
  10. package/src/front/node_modules/.cache/.eslintcache +1 -1
  11. package/src/front/node_modules/.cache/babel-loader/5542d9f5a8b9e511c4c59dafed54627f.json +1 -0
  12. package/src/front/node_modules/.cache/babel-loader/c2802738342ee6a095c632f9b6bcd757.json +1 -0
  13. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/3c/20/9c58a32c34db7a52effb39cba00c9786c98897ba96ce2ba899a6b3aa5b3667973d803728610967fcf64e7a97a0abecaaed8c2766da3f32b1478658c312d7 +1 -0
  14. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/45/f1/762c5338097c49ba0bf02686f262417f03018a50eb7bc1d417c9867a5430ddaddf5e10ed6b30eb26d21695b7de4344ce8e2466cff9b8afb89115ccb94d87 +1 -0
  15. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/{78/3f/0a9a22755ad67c50ae70833b962ef46715ee4e2692ef01e68f5fd9f18a3e → 7f/ee/41cfdc380648c9587e643009f4945aafb2a4a36880d2dc1e65e335be54b2} +1 -1
  16. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/87/08/421190bfe6e50816e059da6c33526c9943732ef856ebd2752d0cbfb4a852 +1 -1
  17. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/{b3/1a/361d14cb1915f76889406ceae22e688c7e9b1e7f24a552f2f6d29d58307c → e0/21/7b9aebdb76223b9dc9a75973a1875624a3c299d5550b5f96e529fe3a1285} +1 -1
  18. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/e8/a0/0d48cce4b946fe50c4b6bf34f7e1a52058d2d785e0ff7d6f841b115a2f4a +1 -1
  19. package/src/front/node_modules/.package-lock.json +2 -2
  20. package/src/front/package-lock.json +2 -2
  21. package/src/front/src/components/inputs/ForeignSelectInput.js +2 -2
  22. package/src/front/src/utils/checkRequiredColumns.js +5 -1
  23. package/src/front/build/static/js/main.7b458d4d.chunk.js +0 -2
  24. package/src/front/build/static/js/main.7b458d4d.chunk.js.map +0 -1
  25. package/src/front/node_modules/.cache/babel-loader/3ab923a89f77f7db4d6176189de94e57.json +0 -1
  26. package/src/front/node_modules/.cache/babel-loader/4ac538d1c739882ef9cda45d40949403.json +0 -1
  27. package/src/front/node_modules/.cache/babel-loader/75afe094860464eea4635ac4096f166b.json +0 -1
  28. package/src/front/node_modules/.cache/babel-loader/88b26bbc9cf531475c494e9bc6aa1d43.json +0 -1
  29. package/src/front/node_modules/.cache/babel-loader/971dcff7d8a7f061777f698b88021ee3.json +0 -1
  30. package/src/front/node_modules/.cache/babel-loader/aa8b22e4a0727a957e357dffa4f4e310.json +0 -1
  31. package/src/front/node_modules/.cache/babel-loader/c09daad25ef186515d0a993e52335e61.json +0 -1
  32. package/src/front/node_modules/.cache/babel-loader/df912900f4b1fa0e8ae07da8181b7a71.json +0 -1
  33. package/src/front/node_modules/.cache/babel-loader/f4cb80e4316f8959fd9c2d589b91d8e5.json +0 -1
  34. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/18/8e/2417726dfffbb871c163bdb99d70f3394d9a2543219d6cde686aced2c26a2f671b73ef1a1de6430468314565b034be04b06e62b08827192a96483e0338b3 +0 -1
  35. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/84/ad/d97cdd00bcf0d10c691fe8aac1fde475e7e4b03a6b11153f0090501f2088b1faa73632a5ae701f7875e0018fd2254c094716b41e38c1b9802af8526716e1 +0 -1
  36. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/c0/a4/1411d6d247ac28821411eeb725b6f2385672045cc60d49d07028b5bed9e469e791d8568046f7d839cacdc7ce64e679857d6282243480cdbe8de7367982e7 +0 -1
  37. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/93/40/1664ad7eaeaf568aa45393ab7f158f62d0407af4e89717f5a845397dd57f +0 -2
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _objectSpread from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2\";import _regeneratorRuntime from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";import _asyncToGenerator from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{useContext,useRef,useState,useEffect}from\"react\";import{useParams,useHistory}from\"react-router-dom\";import axios from\"axios\";import Input from\"../components/Input\";import LabelTooltip from\"../components/LabelTooltip\";import{ConfigContext}from'../contexts/ConfigContext';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";import{Fragment as _Fragment}from\"react/jsx-runtime\";export default(function(){var config=useContext(ConfigContext);var _useParams=useParams(),viewIndex=_useParams.viewIndex,recordId=_useParams.recordId;var history=useHistory();var view=config.views[viewIndex];var _useState=useState(null),_useState2=_slicedToArray(_useState,2),record=_useState2[0],setRecord=_useState2[1];var filteredColumns=view.columns.filter(function(column){return column.dataType&&column.canEdit!==false&&!column.hidden;});var dataToUpdate=useRef({});var _useState3=useState(false),_useState4=_slicedToArray(_useState3,2),isUpdating=_useState4[0],setIsUpdating=_useState4[1];useEffect(function(){axios.get(\"/record\",{params:{viewIndex:viewIndex,recordId:recordId}}).then(function(response){dataToUpdate.current={};setRecord(response.data);});},[viewIndex,recordId]);var updateRecord=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:setIsUpdating(true);_context.prev=1;_context.next=4;return axios.post(\"/updateRecord\",{viewIndex:viewIndex,primaryValue:recordId,data:dataToUpdate.current});case 4:setIsUpdating(false);history.push(\"/record/\".concat(viewIndex,\"/\").concat(recordId));_context.next=12;break;case 8:_context.prev=8;_context.t0=_context[\"catch\"](1);if(_context.t0.response.responseText){window.swal({title:\"Erreur\",text:_context.t0.response.responseText,dangerMode:true});}setIsUpdating(false);case 12:case\"end\":return _context.stop();}}},_callee,null,[[1,8]]);}));return function updateRecord(){return _ref.apply(this,arguments);};}();return/*#__PURE__*/_jsxs(\"div\",{class:\"view\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"viewHeader\",children:/*#__PURE__*/_jsx(\"div\",{class:\"viewTitle\",children:view.label})}),/*#__PURE__*/_jsx(\"div\",{class:\"paddedView\",children:record?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{class:\"form\",children:filteredColumns.map(function(column,index){return/*#__PURE__*/_jsxs(\"div\",{class:\"formElement\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"formLabel\",children:[column.label,column.labelTooltip?/*#__PURE__*/_jsx(LabelTooltip,{text:column.labelTooltip}):null]}),/*#__PURE__*/_jsx(\"div\",{class:\"formInput\",children:/*#__PURE__*/_jsx(Input,{column:column,initialData:record,onChange:function onChange(newValues){dataToUpdate.current=_objectSpread(_objectSpread({},dataToUpdate.current),newValues);}})})]},index);})}),/*#__PURE__*/_jsx(\"div\",{class:\"button greenButton \".concat(isUpdating?\"loading\":\"\"),onClick:updateRecord,children:isUpdating?\"Sauvegarde en cours...\":\"Sauvegarder\"}),/*#__PURE__*/_jsx(\"div\",{class:\"button\",onClick:function onClick(){return history.goBack();},children:\"Annuler\"})]}):null})]});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/pages/EditRecord.js"],"names":["useContext","useRef","useState","useEffect","useParams","useHistory","axios","Input","LabelTooltip","ConfigContext","config","viewIndex","recordId","history","view","views","record","setRecord","filteredColumns","columns","filter","column","dataType","canEdit","hidden","dataToUpdate","isUpdating","setIsUpdating","get","params","then","response","current","data","updateRecord","post","primaryValue","push","responseText","window","swal","title","text","dangerMode","label","map","index","labelTooltip","newValues","goBack"],"mappings":"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","sourcesContent":["import { useContext, useRef, useState, useEffect } from \"react\";\nimport {\n useParams,\n useHistory\n} from \"react-router-dom\";\nimport axios from \"axios\";\nimport Input from \"../components/Input\"\nimport LabelTooltip from \"../components/LabelTooltip\"\nimport { ConfigContext } from '../contexts/ConfigContext'\n\nexport default () => {\n const config = useContext(ConfigContext)\n const { viewIndex, recordId } = useParams();\n const history = useHistory();\n const view = config.views[viewIndex];\n const [record, setRecord] = useState(null);\n const filteredColumns = view.columns.filter(\n column => column.dataType &&\n column.canEdit !== false &&\n !column.hidden\n )\n\n const dataToUpdate = useRef({})\n const [isUpdating, setIsUpdating] = useState(false)\n\n useEffect(() => {\n axios.get(\"/record\", {\n params: {\n viewIndex,\n recordId\n }\n }).then((response) => {\n dataToUpdate.current = {};\n setRecord(response.data);\n });\n }, [viewIndex, recordId]);\n\n const updateRecord = async () => {\n setIsUpdating(true)\n try {\n await axios.post(\"/updateRecord\", {\n viewIndex,\n primaryValue: recordId,\n data: dataToUpdate.current\n })\n setIsUpdating(false)\n history.push(`/record/${viewIndex}/${recordId}`)\n } catch (error) {\n if (error.response.responseText) {\n window.swal({\n title: \"Erreur\",\n text: error.response.responseText,\n dangerMode: true\n })\n }\n setIsUpdating(false)\n }\n }\n\n return (\n <div class=\"view\">\n <div class=\"viewHeader\">\n <div class=\"viewTitle\">{view.label}</div>\n </div>\n <div class=\"paddedView\">\n {record ? (\n <>\n <div class=\"form\">\n {filteredColumns.map((column, index) => {\n return (\n <div class='formElement' key={index}>\n <div class='formLabel'>\n {column.label}\n {column.labelTooltip ? <LabelTooltip text={column.labelTooltip} /> : null}\n </div>\n <div class='formInput'>\n <Input\n column={column}\n initialData={record}\n onChange={(newValues) => { dataToUpdate.current = { ...dataToUpdate.current, ...newValues } }}\n />\n </div>\n </div>\n )\n })}\n </div>\n <div class={`button greenButton ${isUpdating ? \"loading\" : \"\"}`} onClick={updateRecord}>{isUpdating ? \"Sauvegarde en cours...\" : \"Sauvegarder\"}</div>\n <div class=\"button\" onClick={() => history.goBack()}>Annuler</div>\n </>\n ) : null}\n </div>\n </div>\n )\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import{useEffect,useRef}from\"react\";import{jsx as _jsx}from\"react/jsx-runtime\";function useOutsideClickHandler(ref,handler){useEffect(function(){function handleClickOutside(event){if(ref.current&&!ref.current.contains(event.target)){handler();}}document.addEventListener(\"mousedown\",handleClickOutside);return function(){document.removeEventListener(\"mousedown\",handleClickOutside);};},[ref]);}export default function OutsideClickHandler(props){var wrapperRef=useRef(null);useOutsideClickHandler(wrapperRef,props.onOutsideClick);return/*#__PURE__*/_jsx(\"div\",{ref:wrapperRef,children:props.children});}","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/components/OutsideClickHandler.js"],"names":["useEffect","useRef","useOutsideClickHandler","ref","handler","handleClickOutside","event","current","contains","target","document","addEventListener","removeEventListener","OutsideClickHandler","props","wrapperRef","onOutsideClick","children"],"mappings":"AAAA,OAASA,SAAT,CAAoBC,MAApB,KAAkC,OAAlC,C,2CAEA,QAASC,CAAAA,sBAAT,CAAgCC,GAAhC,CAAqCC,OAArC,CAA8C,CAC1CJ,SAAS,CAAC,UAAM,CACZ,QAASK,CAAAA,kBAAT,CAA4BC,KAA5B,CAAmC,CAC/B,GAAIH,GAAG,CAACI,OAAJ,EAAe,CAACJ,GAAG,CAACI,OAAJ,CAAYC,QAAZ,CAAqBF,KAAK,CAACG,MAA3B,CAApB,CAAwD,CACpDL,OAAO,GACV,CACJ,CAEDM,QAAQ,CAACC,gBAAT,CAA0B,WAA1B,CAAuCN,kBAAvC,EACA,MAAO,WAAM,CACTK,QAAQ,CAACE,mBAAT,CAA6B,WAA7B,CAA0CP,kBAA1C,EACH,CAFD,CAGH,CAXQ,CAWN,CAACF,GAAD,CAXM,CAAT,CAYH,CAED,cAAe,SAASU,CAAAA,mBAAT,CAA6BC,KAA7B,CAAoC,CAC/C,GAAMC,CAAAA,UAAU,CAAGd,MAAM,CAAC,IAAD,CAAzB,CACAC,sBAAsB,CAACa,UAAD,CAAaD,KAAK,CAACE,cAAnB,CAAtB,CAEA,mBAAO,YAAK,GAAG,CAAED,UAAV,UAAuBD,KAAK,CAACG,QAA7B,EAAP,CACH","sourcesContent":["import { useEffect, useRef } from \"react\"\n\nfunction useOutsideClickHandler(ref, handler) {\n useEffect(() => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n handler()\n }\n }\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [ref]);\n}\n\nexport default function OutsideClickHandler(props) {\n const wrapperRef = useRef(null);\n useOutsideClickHandler(wrapperRef, props.onOutsideClick);\n\n return <div ref={wrapperRef}>{props.children}</div>;\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"export default(function(columns,data){var requiredUnfilledColumns=columns.filter(function(column){return column.required&&!data[column.name];});if(requiredUnfilledColumns.length>0){var message;if(requiredUnfilledColumns.length==1){message=\"Le champ requis \".concat(requiredUnfilledColumns.map(function(x){return x.label;}).join(\", \"),\" n'a pas \\xE9t\\xE9 rempli\");}else{message=\"Les champs requis \".concat(requiredUnfilledColumns.map(function(x){return x.label;}).join(\", \"),\" n'ont pas \\xE9t\\xE9 remplis\");}window.swal({title:\"Erreur\",text:message,dangerMode:true});return false;}return true;});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/utils/checkRequiredColumns.js"],"names":["columns","data","requiredUnfilledColumns","filter","column","required","name","length","message","map","x","label","join","window","swal","title","text","dangerMode"],"mappings":"AAAA,eAAe,SAACA,OAAD,CAAUC,IAAV,CAAmB,CAC9B,GAAMC,CAAAA,uBAAuB,CAAGF,OAAO,CAACG,MAAR,CAAe,SAAAC,MAAM,QAAIA,CAAAA,MAAM,CAACC,QAAP,EAAmB,CAACJ,IAAI,CAACG,MAAM,CAACE,IAAR,CAA5B,EAArB,CAAhC,CACA,GAAIJ,uBAAuB,CAACK,MAAxB,CAAiC,CAArC,CAAwC,CACpC,GAAIC,CAAAA,OAAJ,CACA,GAAIN,uBAAuB,CAACK,MAAxB,EAAkC,CAAtC,CAAyC,CACrCC,OAAO,2BAAsBN,uBAAuB,CAACO,GAAxB,CAA4B,SAAAC,CAAC,QAAIA,CAAAA,CAAC,CAACC,KAAN,EAA7B,EAA0CC,IAA1C,CAA+C,IAA/C,CAAtB,6BAAP,CACH,CAFD,IAEO,CACHJ,OAAO,6BAAwBN,uBAAuB,CAACO,GAAxB,CAA4B,SAAAC,CAAC,QAAIA,CAAAA,CAAC,CAACC,KAAN,EAA7B,EAA0CC,IAA1C,CAA+C,IAA/C,CAAxB,gCAAP,CACH,CACDC,MAAM,CAACC,IAAP,CAAY,CACRC,KAAK,CAAE,QADC,CAERC,IAAI,CAAER,OAFE,CAGRS,UAAU,CAAE,IAHJ,CAAZ,EAKA,MAAO,MAAP,CACH,CACD,MAAO,KAAP,CACH,CAjBD","sourcesContent":["export default (columns, data) => {\n const requiredUnfilledColumns = columns.filter(column => column.required && !data[column.name])\n if (requiredUnfilledColumns.length > 0) {\n let message;\n if (requiredUnfilledColumns.length == 1) {\n message = `Le champ requis ${requiredUnfilledColumns.map(x => x.label).join(\", \")} n'a pas été rempli`\n } else {\n message = `Les champs requis ${requiredUnfilledColumns.map(x => x.label).join(\", \")} n'ont pas été remplis`\n }\n window.swal({\n title: \"Erreur\",\n text: message,\n dangerMode: true\n })\n return false;\n }\n return true;\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _toConsumableArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{useState,useEffect,useContext}from\"react\";import axios from\"axios\";import{Link,useParams,useHistory}from\"react-router-dom\";import DownloadButton from\"../components/DownloadButton\";import AddFilterButton from\"../components/AddFilterButton\";import BulkActionsButton from\"../components/BulkActionsButton\";import getFormattedValue from\"../utils/getFormattedValue\";import{ConfigContext}from'../contexts/ConfigContext';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(){var _view$columns,_data$records;var _useParams=useParams(),viewIndex=_useParams.viewIndex,subviewIndex=_useParams.subviewIndex;var history=useHistory();var _useState=useState(1),_useState2=_slicedToArray(_useState,2),page=_useState2[0],setPage=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),currentFilters=_useState4[0],setCurrentFilters=_useState4[1];var _useState5=useState(null),_useState6=_slicedToArray(_useState5,2),orderBy=_useState6[0],setOrderBy=_useState6[1];var _useState7=useState(null),_useState8=_slicedToArray(_useState7,2),isDesc=_useState8[0],setIsDesc=_useState8[1];var _useState9=useState(null),_useState10=_slicedToArray(_useState9,2),query=_useState10[0],setQuery=_useState10[1];var _useState11=useState([]),_useState12=_slicedToArray(_useState11,2),selectedRecordIds=_useState12[0],setSelectedRecordIds=_useState12[1];var _useState13=useState(null),_useState14=_slicedToArray(_useState13,2),data=_useState14[0],setData=_useState14[1];var config=useContext(ConfigContext);var view=config.views[viewIndex];var filteredColumns=(_view$columns=view.columns)===null||_view$columns===void 0?void 0:_view$columns.filter(function(x){return!x.hideInTable&&!x.hidden;});useEffect(function(){setPage(1);setQuery(null);setOrderBy(null);setIsDesc(null);if(selectedRecordIds.length>0){setSelectedRecordIds([]);}if(currentFilters.length>0){setCurrentFilters([]);}},[viewIndex]);useEffect(function(){refreshData();},[viewIndex,subviewIndex,page,query,currentFilters,orderBy,isDesc]);function refreshData(){setData(null);axios.post(\"/records\",{viewIndex:viewIndex,subviewIndex:subviewIndex,page:page,filters:currentFilters.map(function(x){return x.query;}),orderBy:orderBy,isDesc:isDesc,query:query}).then(function(response){setData(response.data);});}return/*#__PURE__*/_jsxs(\"div\",{class:\"view\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"scrollable\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"viewHeader\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"viewTitle\",children:view.label}),/*#__PURE__*/_jsxs(\"div\",{class:\"viewHeaderActions\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"searchBarContainer\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"text\",placeholder:\"Rechercher\",class:\"searchBar\",onChange:function onChange(e){return setQuery(e.target.value);}}),/*#__PURE__*/_jsx(\"div\",{class:\"searchBarIcon\",children:/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-search\"})})]}),/*#__PURE__*/_jsx(BulkActionsButton,{viewIndex:viewIndex,selectedRecordIds:selectedRecordIds,refreshData:refreshData}),/*#__PURE__*/_jsx(AddFilterButton,{view:view,refreshData:refreshData,onAddFilter:function onAddFilter(filter){return setCurrentFilters([].concat(_toConsumableArray(currentFilters),[filter]));}}),/*#__PURE__*/_jsx(DownloadButton,{view:view,viewIndex:viewIndex,subviewIndex:subviewIndex,currentFilters:currentFilters,orderBy:orderBy,isDesc:isDesc,query:query}),view.canCreate?/*#__PURE__*/_jsx(Link,{to:\"/createRecord/\".concat(viewIndex),children:/*#__PURE__*/_jsx(\"div\",{class:\"plusButton\",children:/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-plus\"})})}):null]})]}),currentFilters.length>0?/*#__PURE__*/_jsx(\"div\",{class:\"filtersContainer\",children:currentFilters.map(function(filter,index){return/*#__PURE__*/_jsxs(\"div\",{class:\"filterItem\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"filterItemLabel\",children:filter.label}),/*#__PURE__*/_jsx(\"div\",{class:\"filterRemove\",onClick:function onClick(){setCurrentFilters(currentFilters.filter(function(x){return x.query!==filter.query;}));},children:/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-times\"})})]},index);})}):null,/*#__PURE__*/_jsxs(\"table\",{class:\"table\",children:[/*#__PURE__*/_jsx(\"thead\",{children:/*#__PURE__*/_jsxs(\"tr\",{children:[config.hideMultiselect?null:/*#__PURE__*/_jsx(\"th\",{}),filteredColumns.map(function(column,index){var sortName=column.dataType===\"foreign\"||column.dataType===\"datalist\"?column.formattedValue:column.sortName||column.name;return/*#__PURE__*/_jsxs(\"th\",{class:sortName?\"sortable\":\"\",onClick:function onClick(){if(sortName){setOrderBy(sortName);setIsDesc(orderBy===sortName?!isDesc:false);}},children:[column.label,sortName?/*#__PURE__*/_jsx(\"div\",{class:\"columnSortIcon\",children:/*#__PURE__*/_jsx(\"i\",{class:\"fas fa-sort\".concat(isDesc===true&&sortName===orderBy?\"-down\":isDesc===false&&sortName===orderBy?\"-up\":\"\")})}):null]},index);})]})}),/*#__PURE__*/_jsxs(\"tbody\",{children:[!data?Array.from({length:10}).map(function(_,index){return/*#__PURE__*/_jsx(\"tr\",{class:\"record\",children:Array.from({length:filteredColumns.length+(config.hideMultiselect?0:1)}).map(function(_,cellIndex){return/*#__PURE__*/_jsx(\"td\",{children:\" \"},cellIndex);})},index);}):null,data===null||data===void 0?void 0:(_data$records=data.records)===null||_data$records===void 0?void 0:_data$records.map(function(record){var recordId=record[view.primaryId];return/*#__PURE__*/_jsxs(\"tr\",{class:\"record \".concat(view.notClickable?\"nonClickableRow\":\"\"),onClick:function onClick(event){if(event.target.tagName==\"A\"){event.stopPropagation();return;}if(!view.notClickable){history.push(\"/record/\".concat(viewIndex,\"/\").concat(recordId));}},children:[config.hideMultiselect?null:/*#__PURE__*/_jsx(\"td\",{class:\"checkboxParent\",onClick:function onClick(e){setSelectedRecordIds(selectedRecordIds.includes(recordId)?selectedRecordIds.filter(function(x){return x!==recordId;}):[].concat(_toConsumableArray(selectedRecordIds),[recordId]));e.stopPropagation();},children:/*#__PURE__*/_jsx(\"div\",{class:\"checkbox \".concat(selectedRecordIds.includes(recordId)?\"checked\":\"\")})}),filteredColumns.map(function(column,index){return/*#__PURE__*/_jsx(\"td\",{children:getFormattedValue(column,record,true)},index);})]},recordId);})]})]})]}),/*#__PURE__*/_jsxs(\"div\",{class:\"tableFooter\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"tableCounter\",children:[(data===null||data===void 0?void 0:data.count)||\"-\",\" \",view.label]}),/*#__PURE__*/_jsxs(\"div\",{class:\"paginator\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"paginatorLeft\",onClick:function onClick(){return setPage(Math.max(1,page-1));},children:/*#__PURE__*/_jsx(\"i\",{class:\"fas fa-caret-left\"})}),/*#__PURE__*/_jsxs(\"div\",{class:\"paginatorNumber\",children:[page,\" / \",data&&data.count?Math.ceil(data.count/(view.limit||10)):\"-\"]}),/*#__PURE__*/_jsx(\"div\",{class:\"paginatorRight\",onClick:function onClick(){return setPage(Math.min(page+1,Math.ceil(data.count/(view.limit||10))));},children:/*#__PURE__*/_jsx(\"i\",{class:\"fas fa-caret-right\"})})]})]})]});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/pages/Records.js"],"names":["useState","useEffect","useContext","axios","Link","useParams","useHistory","DownloadButton","AddFilterButton","BulkActionsButton","getFormattedValue","ConfigContext","viewIndex","subviewIndex","history","page","setPage","currentFilters","setCurrentFilters","orderBy","setOrderBy","isDesc","setIsDesc","query","setQuery","selectedRecordIds","setSelectedRecordIds","data","setData","config","view","views","filteredColumns","columns","filter","x","hideInTable","hidden","length","refreshData","post","filters","map","then","response","label","e","target","value","canCreate","index","hideMultiselect","column","sortName","dataType","formattedValue","name","Array","from","_","cellIndex","records","record","recordId","primaryId","notClickable","event","tagName","stopPropagation","push","includes","count","Math","max","ceil","limit","min"],"mappings":"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","sourcesContent":["import { useState, useEffect, useContext } from \"react\"\nimport axios from \"axios\";\nimport {\n Link,\n useParams,\n useHistory\n} from \"react-router-dom\";\nimport DownloadButton from \"../components/DownloadButton\"\nimport AddFilterButton from \"../components/AddFilterButton\"\nimport BulkActionsButton from \"../components/BulkActionsButton\"\nimport getFormattedValue from \"../utils/getFormattedValue\"\nimport { ConfigContext } from '../contexts/ConfigContext'\n\nexport default () => {\n const { viewIndex, subviewIndex } = useParams();\n const history = useHistory();\n const [page, setPage] = useState(1)\n const [currentFilters, setCurrentFilters] = useState([])\n const [orderBy, setOrderBy] = useState(null);\n const [isDesc, setIsDesc] = useState(null);\n const [query, setQuery] = useState(null);\n const [selectedRecordIds, setSelectedRecordIds] = useState([])\n const [data, setData] = useState(null)\n const config = useContext(ConfigContext);\n const view = config.views[viewIndex]\n\n const filteredColumns = view.columns?.filter(x => !x.hideInTable && !x.hidden)\n\n useEffect(() => {\n setPage(1)\n setQuery(null)\n setOrderBy(null)\n setIsDesc(null)\n if (selectedRecordIds.length > 0) {\n setSelectedRecordIds([])\n }\n if (currentFilters.length > 0) {\n setCurrentFilters([])\n }\n }, [viewIndex])\n\n\n useEffect(() => {\n refreshData()\n }, [viewIndex, subviewIndex, page, query, currentFilters, orderBy, isDesc])\n\n function refreshData() {\n setData(null)\n axios.post(\"/records\", {\n viewIndex,\n subviewIndex,\n page,\n filters: currentFilters.map(function (x) {\n return x.query\n }),\n orderBy,\n isDesc,\n query\n }).then((response) => {\n setData(response.data)\n })\n }\n\n return (\n <div class=\"view\">\n <div class=\"scrollable\">\n <div class=\"viewHeader\">\n <div class=\"viewTitle\">{view.label}</div>\n <div class=\"viewHeaderActions\">\n <div class=\"searchBarContainer\">\n <input type=\"text\" placeholder=\"Rechercher\" class=\"searchBar\" onChange={(e) => setQuery(e.target.value)} />\n <div class=\"searchBarIcon\">\n <i class=\"fa fa-search\"></i>\n </div>\n </div>\n <BulkActionsButton\n viewIndex={viewIndex}\n selectedRecordIds={selectedRecordIds}\n refreshData={refreshData}\n />\n <AddFilterButton\n view={view}\n refreshData={refreshData}\n onAddFilter={(filter) => setCurrentFilters([...currentFilters, filter])}\n />\n <DownloadButton\n view={view}\n viewIndex={viewIndex}\n subviewIndex={subviewIndex}\n currentFilters={currentFilters}\n orderBy={orderBy}\n isDesc={isDesc}\n query={query}\n />\n {view.canCreate ? (\n <Link to={`/createRecord/${viewIndex}`}>\n <div class=\"plusButton\"><i class=\"fa fa-plus\"></i></div>\n </Link>\n ) : null}\n </div>\n </div>\n {currentFilters.length > 0 ? (\n <div class=\"filtersContainer\">\n {currentFilters.map((filter, index) => (\n <div class='filterItem' key={index}>\n <div class='filterItemLabel'>{filter.label}</div>\n <div class=\"filterRemove\" onClick={() => {\n setCurrentFilters(currentFilters.filter(x => x.query !== filter.query))\n }}><i class='fa fa-times'></i></div>\n </div>\n ))}\n </div>\n ) : null}\n <table class=\"table\">\n <thead>\n <tr>\n {config.hideMultiselect ? null : <th></th>}\n {filteredColumns.map((column, index) => {\n const sortName = column.dataType === \"foreign\" || column.dataType === \"datalist\" ? column.formattedValue : column.sortName || column.name\n return (\n <th\n class={sortName ? \"sortable\" : \"\"}\n key={index}\n onClick={() => {\n if (sortName) {\n setOrderBy(sortName)\n setIsDesc(orderBy === sortName ? !isDesc : false)\n }\n }}\n >\n {column.label}\n {sortName ? (\n <div class='columnSortIcon'>\n <i class={`fas fa-sort${isDesc === true && sortName === orderBy ? \"-down\" : (isDesc === false && sortName === orderBy ? \"-up\" : \"\")}`}></i>\n </div>\n ) : null}\n </th>\n )\n })}\n\n </tr>\n </thead>\n <tbody>\n {!data ? Array.from({ length: 10 }).map((_, index) => (\n <tr class='record' key={index}>{\n Array.from({\n length: filteredColumns.length + (config.hideMultiselect ? 0 : 1)\n }).map((_, cellIndex) => (\n <td key={cellIndex}> </td>\n ))\n }</tr>\n )) : null}\n {data?.records?.map((record) => {\n const recordId = record[view.primaryId]\n return (\n <tr\n class={`record ${view.notClickable ? \"nonClickableRow\" : \"\"}`}\n onClick={(event) => {\n if (event.target.tagName == \"A\") {\n event.stopPropagation();\n return;\n }\n if (!view.notClickable) {\n history.push(`/record/${viewIndex}/${recordId}`)\n }\n }}\n key={recordId}\n >\n {config.hideMultiselect ? null : <td class='checkboxParent' onClick={(e) => {\n setSelectedRecordIds(selectedRecordIds.includes(recordId) ? selectedRecordIds.filter(x => x !== recordId) : [...selectedRecordIds, recordId])\n e.stopPropagation()\n }}><div class={`checkbox ${selectedRecordIds.includes(recordId) ? \"checked\" : \"\"}`}></div></td>}\n {filteredColumns.map((column, index) => (\n <td key={index}>{getFormattedValue(column, record, true)}</td>\n ))}\n </tr>\n )\n })}\n </tbody>\n\n </table>\n </div>\n <div class=\"tableFooter\">\n <div class=\"tableCounter\">{data?.count || \"-\"} {view.label}</div>\n <div class=\"paginator\">\n <div class=\"paginatorLeft\" onClick={() => setPage(Math.max(1, page - 1))}><i class=\"fas fa-caret-left\"></i></div>\n <div class=\"paginatorNumber\">{page} / {data && data.count ? Math.ceil(data.count / (view.limit || 10)) : \"-\"}</div>\n <div class=\"paginatorRight\" onClick={() => setPage(Math.min(page + 1, Math.ceil(data.count / (view.limit || 10))))}><i class=\"fas fa-caret-right\"></i></div>\n </div>\n </div>\n </div>\n )\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _defineProperty from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty\";import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import axios from\"axios\";import{useEffect,useState}from\"react\";import{useParams}from\"react-router-dom\";import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(_ref){var column=_ref.column,_onChange3=_ref.onChange,initialData=_ref.initialData;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),options=_useState2[0],setOptions=_useState2[1];var _useParams=useParams(),viewIndex=_useParams.viewIndex;useEffect(function(){axios.post(\"/foreignSelectRecords\",{viewIndex:viewIndex,columnId:column.__id__}).then(function(response){var _response$data$;setOptions(response.data);_onChange3(_defineProperty({},column.name,(initialData===null||initialData===void 0?void 0:initialData[column.name])||(column.optional?\"NULL\":(_response$data$=response.data[0])===null||_response$data$===void 0?void 0:_response$data$.value)));});},[]);return options===null?/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-circle-notch fa-spin\",style:{color:\"#536579\"}}):/*#__PURE__*/_jsxs(\"select\",{onChange:function onChange(e){return _onChange3(_defineProperty({},column.name,e.target.value));},defaultValue:initialData===null||initialData===void 0?void 0:initialData[column.name],children:[column.optional?/*#__PURE__*/_jsx(\"option\",{value:\"NULL\",children:\"-\"}):null,options.map(function(option){return/*#__PURE__*/_jsx(\"option\",{value:option.value,children:option.label},option.value);})]});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ForeignSelectInput.js"],"names":["axios","useEffect","useState","useParams","column","onChange","initialData","options","setOptions","viewIndex","post","columnId","__id__","then","response","data","name","optional","value","color","e","target","map","option","label"],"mappings":"0UAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,OAASC,SAAT,CAAoBC,QAApB,KAAoC,OAApC,CACA,OACIC,SADJ,KAEO,kBAFP,C,wFAIA,eAAe,cAAuC,IAApCC,CAAAA,MAAoC,MAApCA,MAAoC,CAA5BC,UAA4B,MAA5BA,QAA4B,CAAlBC,WAAkB,MAAlBA,WAAkB,CAClD,cAA8BJ,QAAQ,CAAC,IAAD,CAAtC,wCAAOK,OAAP,eAAgBC,UAAhB,eACA,eAAsBL,SAAS,EAA/B,CAAQM,SAAR,YAAQA,SAAR,CAEAR,SAAS,CAAC,UAAM,CACZD,KAAK,CAACU,IAAN,CAAW,uBAAX,CAAoC,CAChCD,SAAS,CAATA,SADgC,CAEhCE,QAAQ,CAAEP,MAAM,CAACQ,MAFe,CAApC,EAGGC,IAHH,CAGQ,SAACC,QAAD,CAAc,qBAClBN,UAAU,CAACM,QAAQ,CAACC,IAAV,CAAV,CACAV,UAAQ,oBAAID,MAAM,CAACY,IAAX,CAAkB,CAAAV,WAAW,OAAX,EAAAA,WAAW,SAAX,QAAAA,WAAW,CAAGF,MAAM,CAACY,IAAV,CAAX,IAA+BZ,MAAM,CAACa,QAAP,CAAkB,MAAlB,kBAA2BH,QAAQ,CAACC,IAAT,CAAc,CAAd,CAA3B,0CAA2B,gBAAkBG,KAA5E,CAAlB,EAAR,CACH,CAND,EAOH,CARQ,CAQN,EARM,CAAT,CAUA,MAAOX,CAAAA,OAAO,GAAK,IAAZ,cACH,UAAG,KAAK,CAAC,4BAAT,CAAsC,KAAK,CAAE,CAAEY,KAAK,CAAE,SAAT,CAA7C,EADG,cAGH,gBACI,QAAQ,CAAE,kBAACC,CAAD,QAAOf,CAAAA,UAAQ,oBAAID,MAAM,CAACY,IAAX,CAAkBI,CAAC,CAACC,MAAF,CAASH,KAA3B,EAAf,EADd,CAEI,YAAY,CAAEZ,WAAF,SAAEA,WAAF,iBAAEA,WAAW,CAAGF,MAAM,CAACY,IAAV,CAF7B,WAIKZ,MAAM,CAACa,QAAP,cAAkB,eAAQ,KAAK,CAAC,MAAd,eAAlB,CAAoD,IAJzD,CAKKV,OAAO,CAACe,GAAR,CAAY,SAACC,MAAD,CAAY,CACrB,mBACI,eAAQ,KAAK,CAAEA,MAAM,CAACL,KAAtB,UACKK,MAAM,CAACC,KADZ,EAAkCD,MAAM,CAACL,KAAzC,CADJ,CAKH,CANA,CALL,GAHJ,CAiBH,CA/BD","sourcesContent":["import axios from \"axios\";\nimport { useEffect, useState } from \"react\"\nimport {\n useParams\n} from \"react-router-dom\";\n\nexport default ({ column, onChange, initialData }) => {\n const [options, setOptions] = useState(null)\n const { viewIndex } = useParams();\n\n useEffect(() => {\n axios.post(\"/foreignSelectRecords\", {\n viewIndex,\n columnId: column.__id__\n }).then((response) => {\n setOptions(response.data)\n onChange({ [column.name]: initialData?.[column.name] || (column.optional ? \"NULL\" : response.data[0]?.value) })\n })\n }, [])\n\n return options === null ? (\n <i class='fa fa-circle-notch fa-spin' style={{ color: \"#536579\" }}></i>\n ) : (\n <select\n onChange={(e) => onChange({ [column.name]: e.target.value })}\n defaultValue={initialData?.[column.name]}\n >\n {column.optional ? <option value='NULL'>-</option> : null}\n {options.map((option) => {\n return (\n <option value={option.value} key={option.value}>\n {option.label}\n </option>\n )\n })}\n </select>\n );\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _objectSpread from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2\";import _regeneratorRuntime from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";import _asyncToGenerator from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import _createForOfIteratorHelper from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";import{useContext,useRef,useState}from\"react\";import{useParams,useHistory}from\"react-router-dom\";import axios from\"axios\";import Input from\"../components/Input\";import LabelTooltip from\"../components/LabelTooltip\";import{ConfigContext}from'../contexts/ConfigContext';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(){var config=useContext(ConfigContext);var _useParams=useParams(),viewIndex=_useParams.viewIndex,panelIndex=_useParams.panelIndex,recordId=_useParams.recordId;var history=useHistory();var view=config.views[viewIndex];var panel=panelIndex?view.recordViewPanels[panelIndex]:null;var filteredColumns=panel?panel.createConfig.columns:view.columns.filter(function(column){return column.dataType&&(column.canEditOnCreation===true||column.canEdit!==false)&&!column.hidden;});var initialData={};var _iterator=_createForOfIteratorHelper(filteredColumns),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var column=_step.value;if(column.dataType===\"tinyint\"){initialData[column.name]=column.optional?\"NULL\":\"0\";}else if(column.dataType===\"select\"&&Array.isArray(column.options)){initialData[column.name]=column.options[0];}else if(column.dataType===\"select\"){initialData[column.name]=Object.keys(column.options)[0];}if(column.defaultValue){initialData[column.name]=column.defaultValue;}}}catch(err){_iterator.e(err);}finally{_iterator.f();}var data=useRef(initialData);var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isCreating=_useState2[0],setIsCreating=_useState2[1];var createRecord=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var key,_view$createConfig,response;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:for(key in view.createFilters){data.current[key]=view.createFilters[key];}setIsCreating(true);_context.prev=2;_context.next=5;return axios.post(\"/createRecord\",{viewIndex:viewIndex,panelIndex:panelIndex,recordId:recordId,data:data.current});case 5:response=_context.sent;setIsCreating(false);if(recordId){// Create from panel view\nhistory.push(\"/record/\".concat(viewIndex,\"/\").concat(recordId));}else if(view===null||view===void 0?void 0:(_view$createConfig=view.createConfig)===null||_view$createConfig===void 0?void 0:_view$createConfig.redirectToCreatedItems){history.push(\"/record/\".concat(viewIndex,\"/\").concat(response.data.id));}else{history.push(\"/records/\".concat(viewIndex));}_context.next=14;break;case 10:_context.prev=10;_context.t0=_context[\"catch\"](2);if(_context.t0.response.responseText){window.swal({title:\"Erreur\",text:_context.t0.response.responseText,dangerMode:true});}setIsCreating(false);case 14:case\"end\":return _context.stop();}}},_callee,null,[[2,10]]);}));return function createRecord(){return _ref.apply(this,arguments);};}();return/*#__PURE__*/_jsxs(\"div\",{class:\"view\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"viewHeader\",children:/*#__PURE__*/_jsx(\"div\",{class:\"viewTitle\",children:panel?panel.createConfig.label:\"Cr\\xE9er \".concat(view.aNewSingular)})}),/*#__PURE__*/_jsxs(\"div\",{class:\"paddedView\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"form\",children:filteredColumns.map(function(column,index){return/*#__PURE__*/_jsxs(\"div\",{class:\"formElement\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"formLabel\",children:[column.label,column.labelTooltip?/*#__PURE__*/_jsx(LabelTooltip,{text:column.labelTooltip}):null]}),/*#__PURE__*/_jsx(\"div\",{class:\"formInput\",children:/*#__PURE__*/_jsx(Input,{column:column,onChange:function onChange(newValues){data.current=_objectSpread(_objectSpread({},data.current),newValues);}})})]},index);})}),/*#__PURE__*/_jsx(\"div\",{class:\"button greenButton \".concat(isCreating?\"loading\":\"\"),onClick:createRecord,children:isCreating?\"Sauvegarde en cours...\":\"Créer\"}),/*#__PURE__*/_jsx(\"div\",{class:\"button\",onClick:function onClick(){return history.goBack();},children:\"Annuler\"})]})]});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/pages/CreateRecord.js"],"names":["useContext","useRef","useState","useParams","useHistory","axios","Input","LabelTooltip","ConfigContext","config","viewIndex","panelIndex","recordId","history","view","views","panel","recordViewPanels","filteredColumns","createConfig","columns","filter","column","dataType","canEditOnCreation","canEdit","hidden","initialData","name","optional","Array","isArray","options","Object","keys","defaultValue","data","isCreating","setIsCreating","createRecord","key","createFilters","current","post","response","push","redirectToCreatedItems","id","responseText","window","swal","title","text","dangerMode","label","aNewSingular","map","index","labelTooltip","newValues","goBack"],"mappings":"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","sourcesContent":["import { useContext, useRef, useState } from \"react\";\nimport {\n useParams,\n useHistory\n} from \"react-router-dom\";\nimport axios from \"axios\";\nimport Input from \"../components/Input\"\nimport LabelTooltip from \"../components/LabelTooltip\"\nimport { ConfigContext } from '../contexts/ConfigContext'\n\nexport default () => {\n const config = useContext(ConfigContext)\n const { viewIndex, panelIndex, recordId } = useParams();\n const history = useHistory();\n const view = config.views[viewIndex];\n const panel = panelIndex ? view.recordViewPanels[panelIndex] : null;\n const filteredColumns = panel ? panel.createConfig.columns : view.columns.filter(\n column => column.dataType &&\n (column.canEditOnCreation === true || column.canEdit !== false)\n && !column.hidden\n )\n\n const initialData = {}\n for (const column of filteredColumns) {\n if (column.dataType === \"tinyint\") {\n initialData[column.name] = column.optional ? \"NULL\" : \"0\"\n } else if (column.dataType === \"select\" && Array.isArray(column.options)) {\n initialData[column.name] = column.options[0]\n } else if (column.dataType === \"select\") {\n initialData[column.name] = Object.keys(column.options)[0]\n }\n if (column.defaultValue) {\n initialData[column.name] = column.defaultValue\n }\n }\n const data = useRef(initialData)\n const [isCreating, setIsCreating] = useState(false)\n\n const createRecord = async () => {\n for (const key in view.createFilters) {\n data.current[key] = view.createFilters[key]\n }\n setIsCreating(true)\n try {\n const response = await axios.post(\"/createRecord\", {\n viewIndex,\n panelIndex,\n recordId,\n data: data.current\n })\n setIsCreating(false)\n if (recordId) { // Create from panel view\n history.push(`/record/${viewIndex}/${recordId}`)\n } else if (view?.createConfig?.redirectToCreatedItems) {\n history.push(`/record/${viewIndex}/${response.data.id}`)\n } else {\n history.push(`/records/${viewIndex}`)\n }\n } catch (error) {\n if (error.response.responseText) {\n window.swal({\n title: \"Erreur\",\n text: error.response.responseText,\n dangerMode: true\n })\n }\n setIsCreating(false)\n }\n }\n\n return (\n <div class=\"view\">\n <div class=\"viewHeader\">\n <div class=\"viewTitle\">{panel ? panel.createConfig.label : `Créer ${view.aNewSingular}`}</div>\n </div>\n <div class=\"paddedView\">\n <div class=\"form\">\n {filteredColumns.map((column, index) => {\n return (\n <div class='formElement' key={index}>\n <div class='formLabel'>\n {column.label}\n {column.labelTooltip ? <LabelTooltip text={column.labelTooltip} /> : null}\n </div>\n <div class='formInput'>\n <Input\n column={column}\n onChange={(newValues) => { data.current = { ...data.current, ...newValues } }}\n />\n </div>\n </div>\n )\n })}\n </div>\n <div class={`button greenButton ${isCreating ? \"loading\" : \"\"}`} onClick={createRecord}>{isCreating ? \"Sauvegarde en cours...\" : \"Créer\"}</div>\n <div class=\"button\" onClick={() => history.goBack()}>Annuler</div>\n </div>\n </div>\n )\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{useState,useEffect,useContext}from\"react\";import axios from\"axios\";import{useParams,Link}from\"react-router-dom\";import getFormattedValue from\"../utils/getFormattedValue\";import ActionsButton from\"../components/ActionsButton\";import BackButton from\"../components/BackButton\";import DownloadTablePanelButton from\"../components/DownloadTablePanelButton\";import TablePanel from\"../components/panels/TablePanel\";import GalleryPanel from\"../components/panels/GalleryPanel\";import MapPanel from\"../components/panels/MapPanel\";import{ConfigContext}from'../contexts/ConfigContext';import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(){var _view$columns;var config=useContext(ConfigContext);var _useParams=useParams(),viewIndex=_useParams.viewIndex,recordId=_useParams.recordId;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),record=_useState2[0],setRecord=_useState2[1];var view=config.views[viewIndex];var filteredColumns=(_view$columns=view.columns)===null||_view$columns===void 0?void 0:_view$columns.filter(function(x){return!x.hidden;});useEffect(function(){refreshData();},[viewIndex,recordId]);var refreshData=function refreshData(){axios.get(\"/record\",{params:{viewIndex:viewIndex,recordId:recordId}}).then(function(response){setRecord(response.data);});};return/*#__PURE__*/_jsxs(\"div\",{class:\"view backgroundBlue\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"viewHeader\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"viewTitle\",children:view.label}),/*#__PURE__*/_jsxs(\"div\",{class:\"viewHeaderActions\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"button adjacentButton prevButton\",children:\"\\u25C4\"}),/*#__PURE__*/_jsx(\"div\",{class:\"button adjacentButton nextButton\",children:\"\\u25BA\"}),/*#__PURE__*/_jsx(BackButton,{}),/*#__PURE__*/_jsx(ActionsButton,{viewIndex:viewIndex,record:record,refreshData:refreshData}),view.canEdit!==false?/*#__PURE__*/_jsx(Link,{to:\"/editRecord/\".concat(viewIndex,\"/\").concat(recordId),children:/*#__PURE__*/_jsx(\"div\",{class:\"button greenButton recordAction\",children:\"Modifier\"})}):null]})]}),/*#__PURE__*/_jsx(\"div\",{class:\"paddedView\",children:/*#__PURE__*/_jsxs(\"div\",{class:\"showContainer\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"panel detailsPanel\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"panelTitle\",children:\"D\\xE9tails\"}),record?filteredColumns.map(function(column,index){return/*#__PURE__*/_jsxs(\"div\",{class:\"showRecordField\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"formLabel\",children:column.label}),/*#__PURE__*/_jsx(\"div\",{class:\"formValue\",children:getFormattedValue(column,record,false)||\"-\"})]},index);}):null]}),view.recordViewPanels&&record?/*#__PURE__*/_jsx(\"div\",{class:\"recordViewPanels\",children:view.recordViewPanels.map(function(panel,index){return/*#__PURE__*/_jsxs(\"div\",{class:\"panel\",children:[/*#__PURE__*/_jsxs(\"div\",{class:\"panelHeader\",children:[/*#__PURE__*/_jsx(\"div\",{class:\"viewTitle\",children:panel.label}),/*#__PURE__*/_jsxs(\"div\",{class:\"viewHeaderActions\",children:[panel.folded?/*#__PURE__*/_jsx(\"div\",{class:\"button smallButton unfoldPanel\",children:\"Afficher\"}):null,panel.canCreate?/*#__PURE__*/_jsx(Link,{to:\"/createRecord/\".concat(viewIndex,\"/\").concat(index,\"/\").concat(recordId),children:/*#__PURE__*/_jsx(\"div\",{class:\"plusButton\",children:/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-plus\"})})}):null,panel.canDownload&&panel.type===\"table\"?/*#__PURE__*/_jsx(DownloadTablePanelButton,{record:record,panel:panel}):null]})]}),panel.type===\"table\"?/*#__PURE__*/_jsx(TablePanel,{record:record,panel:panel,view:view}):null,panel.type===\"gallery\"?/*#__PURE__*/_jsx(GalleryPanel,{record:record,panel:panel,view:view}):null,panel.type===\"map\"?/*#__PURE__*/_jsx(MapPanel,{record:record,panel:panel,view:view}):null]},index);})}):null]})})]});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/pages/Record.js"],"names":["useState","useEffect","useContext","axios","useParams","Link","getFormattedValue","ActionsButton","BackButton","DownloadTablePanelButton","TablePanel","GalleryPanel","MapPanel","ConfigContext","config","viewIndex","recordId","record","setRecord","view","views","filteredColumns","columns","filter","x","hidden","refreshData","get","params","then","response","data","label","canEdit","map","column","index","recordViewPanels","panel","folded","canCreate","canDownload","type"],"mappings":"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","sourcesContent":["import { useState, useEffect, useContext } from \"react\"\nimport axios from \"axios\";\nimport {\n useParams,\n Link,\n} from \"react-router-dom\";\nimport getFormattedValue from \"../utils/getFormattedValue\"\nimport ActionsButton from \"../components/ActionsButton\"\nimport BackButton from \"../components/BackButton\"\nimport DownloadTablePanelButton from \"../components/DownloadTablePanelButton\"\nimport TablePanel from \"../components/panels/TablePanel\"\nimport GalleryPanel from \"../components/panels/GalleryPanel\"\nimport MapPanel from \"../components/panels/MapPanel\"\nimport { ConfigContext } from '../contexts/ConfigContext'\n\nexport default () => {\n const config = useContext(ConfigContext)\n const { viewIndex, recordId } = useParams();\n const [record, setRecord] = useState(null);\n\n const view = config.views[viewIndex]\n const filteredColumns = view.columns?.filter(x => !x.hidden)\n\n useEffect(() => {\n refreshData()\n }, [viewIndex, recordId]);\n\n const refreshData = () => {\n axios.get(\"/record\", {\n params: {\n viewIndex,\n recordId\n }\n }).then((response) => {\n setRecord(response.data);\n });\n }\n\n return (\n <div class=\"view backgroundBlue\">\n <div class=\"viewHeader\">\n <div class=\"viewTitle\">{view.label}</div>\n <div class=\"viewHeaderActions\">\n <div class=\"button adjacentButton prevButton\">&#9668;</div>\n <div class=\"button adjacentButton nextButton\">&#9658;</div>\n <BackButton />\n <ActionsButton viewIndex={viewIndex} record={record} refreshData={refreshData} />\n {view.canEdit !== false ? (\n <Link to={`/editRecord/${viewIndex}/${recordId}`}>\n <div class=\"button greenButton recordAction\">Modifier</div>\n </Link>\n ) : null}\n </div>\n </div>\n <div class=\"paddedView\">\n <div class=\"showContainer\">\n <div class='panel detailsPanel'>\n <div class='panelTitle'>Détails</div>\n {record ?\n filteredColumns.map((column, index) => (\n <div class='showRecordField' key={index}>\n <div class='formLabel'>{column.label}</div>\n <div class='formValue'>{getFormattedValue(column, record, false) || \"-\"}</div>\n </div>\n ))\n : null}\n </div>\n {view.recordViewPanels && record ? (\n <div class='recordViewPanels'>\n {view.recordViewPanels.map((panel, index) => (\n <div class='panel' key={index}>\n <div class='panelHeader'>\n <div class='viewTitle'>{panel.label}</div>\n <div class='viewHeaderActions'>\n {panel.folded ? <div class='button smallButton unfoldPanel'>Afficher</div> : null}\n {panel.canCreate ? <Link to={`/createRecord/${viewIndex}/${index}/${recordId}`}><div class='plusButton'><i class='fa fa-plus'></i></div></Link> : null}\n {panel.canDownload && panel.type === \"table\" ? <DownloadTablePanelButton record={record} panel={panel} /> : null}\n </div>\n </div>\n {panel.type === \"table\" ? <TablePanel record={record} panel={panel} view={view} /> : null}\n {panel.type === \"gallery\" ? <GalleryPanel record={record} panel={panel} view={view} /> : null}\n {panel.type === \"map\" ? <MapPanel record={record} panel={panel} view={view} /> : null}\n </div>\n ))}\n </div>\n ) : null}\n </div>\n </div>\n </div>\n )\n}\n"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{useState}from\"react\";import OutsideClickHandler from\"./OutsideClickHandler\";import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(_ref){var view=_ref.view,refreshData=_ref.refreshData,onAddFilter=_ref.onAddFilter;var _useState=useState(false),_useState2=_slicedToArray(_useState,2),filtersOpened=_useState2[0],setFiltersOpened=_useState2[1];var _useState3=useState(null),_useState4=_slicedToArray(_useState3,2),field=_useState4[0],setField=_useState4[1];var _useState5=useState(\"contains\"),_useState6=_slicedToArray(_useState5,2),operator=_useState6[0],setOperator=_useState6[1];var _useState7=useState(null),_useState8=_slicedToArray(_useState7,2),value=_useState8[0],setValue=_useState8[1];var addFilter=function addFilter(){if(field&&value){var column=view.columns.find(function(c){return(c.searchableName||c.name)===field;});var fieldLabel=column===null||column===void 0?void 0:column.label;var searchedField=(column===null||column===void 0?void 0:column.searchableName)||(column===null||column===void 0?void 0:column.name);if(operator===\"contains\"){onAddFilter({label:fieldLabel+\" contient \"+value,query:searchedField+\" LIKE '%\"+value+\"%'\"});}else if(operator===\"notContains\"){onAddFilter({label:fieldLabel+\" ne contient pas \"+value,query:searchedField+\" NOT LIKE '%\"+value+\"%'\"});}else if(operator===\"is\"){onAddFilter({label:fieldLabel+\" est \"+value,query:searchedField+\" = '\"+value+\"'\"});}else if(operator===\"isNot\"){onAddFilter({label:fieldLabel+\" n'est pas \"+value,query:searchedField+\" != '\"+value+\"'\"});}else if(operator===\"startsWith\"){onAddFilter({label:fieldLabel+\" commence par \"+value,query:searchedField+\" LIKE '\"+value+\"%'\"});}else if(operator===\"endsWith\"){onAddFilter({label:fieldLabel+\" finit par \"+value,query:searchedField+\" LIKE '%\"+value+\"'\"});}else if(operator===\"largerThan\"){onAddFilter({label:fieldLabel+\" supérieur à \"+value,query:searchedField+\" >= \"+value});}else if(operator===\"smallerThan\"){onAddFilter({label:fieldLabel+\" inférieur à \"+value,query:searchedField+\" <= \"+value});}setField(null);setValue(null);setFiltersOpened(false);refreshData();}};return/*#__PURE__*/_jsx(OutsideClickHandler,{onOutsideClick:function onOutsideClick(){return setFiltersOpened(false);},children:/*#__PURE__*/_jsxs(\"div\",{class:\"button openFilterPopup\",onClick:function onClick(){return setFiltersOpened(!filtersOpened);},children:[/*#__PURE__*/_jsx(\"i\",{class:\"fas fa-filter\"}),\" Ajouter un filtre\",filtersOpened?/*#__PURE__*/_jsxs(\"div\",{class:\"addFilterPopup\",onClick:function onClick(e){return e.stopPropagation();},children:[/*#__PURE__*/_jsx(\"div\",{class:\"filterLabel\",children:\"Champ\"}),/*#__PURE__*/_jsxs(\"select\",{onChange:function onChange(e){return setField(e.target.value);},children:[/*#__PURE__*/_jsx(\"option\",{value:\"\",children:\"S\\xE9lectionnez un champ\"}),view.columns.filter(function(column){return(column.searchableName||column.name)&&column.dataType!==\"foreign\"&&column.dataType!==\"datalist\";}).map(function(column){var value=column.searchableName||column.name;return/*#__PURE__*/_jsx(\"option\",{value:value,children:column.label},value);})]}),/*#__PURE__*/_jsx(\"div\",{class:\"filterLabel\",children:\"Op\\xE9rateur\"}),/*#__PURE__*/_jsxs(\"select\",{onChange:function onChange(e){return setOperator(e.target.value);},children:[/*#__PURE__*/_jsx(\"option\",{value:\"contains\",children:\"contient\"}),/*#__PURE__*/_jsx(\"option\",{value:\"notContains\",children:\"ne contient pas\"}),/*#__PURE__*/_jsx(\"option\",{value:\"startsWith\",children:\"commence par\"}),/*#__PURE__*/_jsx(\"option\",{value:\"endsWith\",children:\"finit par\"}),/*#__PURE__*/_jsx(\"option\",{value:\"is\",children:\"est\"}),/*#__PURE__*/_jsx(\"option\",{value:\"isNot\",children:\"n'est pas\"}),/*#__PURE__*/_jsx(\"option\",{value:\"largerThan\",children:\"est sup\\xE9rieur \\xE0\"}),/*#__PURE__*/_jsx(\"option\",{value:\"smallerThan\",children:\"est inf\\xE9rieur \\xE0\"})]}),/*#__PURE__*/_jsx(\"div\",{class:\"filterLabel\",children:\"Valeur\"}),/*#__PURE__*/_jsx(\"input\",{onChange:function onChange(e){return setValue(e.target.value);}}),/*#__PURE__*/_jsx(\"div\",{class:\"button greenButton\",onClick:addFilter,children:\"Ajouter\"})]}):null]})});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/components/AddFilterButton.js"],"names":["useState","OutsideClickHandler","view","refreshData","onAddFilter","filtersOpened","setFiltersOpened","field","setField","operator","setOperator","value","setValue","addFilter","column","columns","find","c","searchableName","name","fieldLabel","label","searchedField","query","e","stopPropagation","target","filter","dataType","map"],"mappings":"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","sourcesContent":["import { useState } from \"react\"\nimport OutsideClickHandler from \"./OutsideClickHandler\"\n\nexport default ({ view, refreshData, onAddFilter }) => {\n const [filtersOpened, setFiltersOpened] = useState(false)\n const [field, setField] = useState(null);\n const [operator, setOperator] = useState(\"contains\")\n const [value, setValue] = useState(null)\n\n const addFilter = () => {\n if (field && value) {\n const column = view.columns.find(c => (c.searchableName || c.name) === field)\n const fieldLabel = column?.label\n const searchedField = column?.searchableName || column?.name\n if (operator === \"contains\") {\n onAddFilter({\n label: fieldLabel + \" contient \" + value,\n query: searchedField + \" LIKE '%\" + value + \"%'\"\n })\n } else if (operator === \"notContains\") {\n onAddFilter({\n label: fieldLabel + \" ne contient pas \" + value,\n query: searchedField + \" NOT LIKE '%\" + value + \"%'\"\n })\n } else if (operator === \"is\") {\n onAddFilter({\n label: fieldLabel + \" est \" + value,\n query: searchedField + \" = '\" + value + \"'\"\n })\n } else if (operator === \"isNot\") {\n onAddFilter({\n label: fieldLabel + \" n'est pas \" + value,\n query: searchedField + \" != '\" + value + \"'\"\n })\n } else if (operator === \"startsWith\") {\n onAddFilter({\n label: fieldLabel + \" commence par \" + value,\n query: searchedField + \" LIKE '\" + value + \"%'\"\n })\n } else if (operator === \"endsWith\") {\n onAddFilter({\n label: fieldLabel + \" finit par \" + value,\n query: searchedField + \" LIKE '%\" + value + \"'\"\n })\n } else if (operator === \"largerThan\") {\n onAddFilter({\n label: fieldLabel + \" supérieur à \" + value,\n query: searchedField + \" >= \" + value\n })\n } else if (operator === \"smallerThan\") {\n onAddFilter({\n label: fieldLabel + \" inférieur à \" + value,\n query: searchedField + \" <= \" + value\n })\n }\n setField(null)\n setValue(null)\n setFiltersOpened(false)\n refreshData()\n }\n }\n\n return (\n <OutsideClickHandler onOutsideClick={() => setFiltersOpened(false)}>\n <div class=\"button openFilterPopup\" onClick={() => setFiltersOpened(!filtersOpened)}>\n <i class=\"fas fa-filter\"></i> Ajouter un filtre\n {filtersOpened ? (\n <div class=\"addFilterPopup\" onClick={(e) => e.stopPropagation()}>\n <div class=\"filterLabel\">Champ</div>\n <select onChange={(e) => setField(e.target.value)}>\n <option value=''>Sélectionnez un champ</option>\n {view.columns.filter(column =>\n (column.searchableName || column.name) &&\n column.dataType !== \"foreign\" && column.dataType !== \"datalist\"\n ).map((column) => {\n const value = column.searchableName || column.name\n return (\n <option value={value} key={value}>\n {column.label}\n </option>\n )\n })}\n </select>\n <div class=\"filterLabel\">Opérateur</div>\n <select onChange={(e) => setOperator(e.target.value)}>\n <option value=\"contains\">contient</option>\n <option value=\"notContains\">ne contient pas</option>\n <option value=\"startsWith\">commence par</option>\n <option value=\"endsWith\">finit par</option>\n <option value=\"is\">est</option>\n <option value=\"isNot\">n'est pas</option>\n <option value=\"largerThan\">est supérieur à</option>\n <option value=\"smallerThan\">est inférieur à</option>\n </select>\n <div class=\"filterLabel\">Valeur</div>\n <input onChange={(e) => setValue(e.target.value)} />\n <div class=\"button greenButton\" onClick={addFilter}>Ajouter</div>\n </div>\n ) : null}\n </div>\n </OutsideClickHandler >\n )\n}"]},"metadata":{},"sourceType":"module"}
@@ -1 +0,0 @@
1
- {"ast":null,"code":"import _regeneratorRuntime from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";import _asyncToGenerator from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";import _slicedToArray from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";import{useState,useEffect}from\"react\";import{useHistory,useParams}from\"react-router-dom\";import axios from\"axios\";import{jsx as _jsx}from\"react/jsx-runtime\";import{jsxs as _jsxs}from\"react/jsx-runtime\";export default(function(_ref){var panel=_ref.panel,record=_ref.record,view=_ref.view;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),results=_useState2[0],setResults=_useState2[1];var history=useHistory();var _useParams=useParams(),viewIndex=_useParams.viewIndex;useEffect(function(){refreshData();},[panel.query]);var refreshData=function refreshData(){axios.get(\"/customQuery\",{params:{query:panel.query,primaryValue:record[view.primaryId]}}).then(function(response){setResults(response.data);});};var deleteRow=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(row){var willDelete;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return window.swal({title:\"Êtes-vous sûr ?\",text:\"Une fois la suppression confirmée, il ne sera pas possible de revenir en arrière.\",buttons:[\"Annuler\",\"Oui\"],dangerMode:true});case 2:willDelete=_context.sent;if(!willDelete){_context.next=13;break;}_context.prev=4;_context.next=7;return axios.post(\"/deleteRecordFromPanel\",{viewIndex:viewIndex,panelId:panel.__id__,primaryValue:row[panel.primaryId]});case 7:refreshData();_context.next=13;break;case 10:_context.prev=10;_context.t0=_context[\"catch\"](4);window.swal({title:\"Erreur\",text:\"Suppression impossible\",dangerMode:true});case 13:case\"end\":return _context.stop();}}},_callee,null,[[4,10]]);}));return function deleteRow(_x){return _ref2.apply(this,arguments);};}();var pathField=panel.pathField||\"Path\";return/*#__PURE__*/_jsx(\"div\",{children:(results===null||results===void 0?void 0:results.length)>0?/*#__PURE__*/_jsx(\"div\",{class:\"gallery\",children:results.map(function(result){return/*#__PURE__*/_jsxs(\"div\",{class:\"galleryPicture\",children:[panel.canDelete?/*#__PURE__*/_jsx(\"div\",{class:\"deleteIcon\",onClick:function onClick(e){deleteRow(result);e.stopPropagation();},children:/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-minus\"})}):null,/*#__PURE__*/_jsx(\"a\",{href:panel.baseUrl+result[pathField],target:\"_blank\",children:/*#__PURE__*/_jsx(\"img\",{src:panel.baseUrl+result[pathField],style:{width:\"100%\",height:150,objectFit:panel.objectFit||\"cover\"},onerror:\"this.style.height = 0\"})})]},result[pathField]);})}):(results===null||results===void 0?void 0:results.length)===0?/*#__PURE__*/_jsx(\"div\",{class:\"noData panelTable \".concat(panel.folded?\"folded\":\"\"),children:\"Aucune donn\\xE9e\"}):null});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/components/panels/GalleryPanel.js"],"names":["useState","useEffect","useHistory","useParams","axios","panel","record","view","results","setResults","history","viewIndex","refreshData","query","get","params","primaryValue","primaryId","then","response","data","deleteRow","row","window","swal","title","text","buttons","dangerMode","willDelete","post","panelId","__id__","pathField","length","map","result","canDelete","e","stopPropagation","baseUrl","width","height","objectFit","folded"],"mappings":"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","sourcesContent":["import { useState, useEffect } from \"react\"\nimport {\n useHistory,\n useParams\n} from \"react-router-dom\";\nimport axios from \"axios\";\n\nexport default ({ panel, record, view }) => {\n const [results, setResults] = useState(null);\n const history = useHistory();\n const { viewIndex } = useParams();\n\n useEffect(() => {\n refreshData()\n }, [panel.query])\n\n const refreshData = () => {\n axios.get(\"/customQuery\", {\n params: {\n query: panel.query,\n primaryValue: record[view.primaryId]\n }\n }).then((response) => {\n setResults(response.data)\n })\n }\n const deleteRow = async (row) => {\n const willDelete = await window.swal({\n title: \"Êtes-vous sûr ?\",\n text: \"Une fois la suppression confirmée, il ne sera pas possible de revenir en arrière.\",\n buttons: [\"Annuler\", \"Oui\"],\n dangerMode: true\n })\n if (willDelete) {\n try {\n await axios.post(\"/deleteRecordFromPanel\", {\n viewIndex,\n panelId: panel.__id__,\n primaryValue: row[panel.primaryId]\n })\n refreshData();\n } catch (e) {\n window.swal({\n title: \"Erreur\",\n text: \"Suppression impossible\",\n dangerMode: true\n })\n }\n }\n }\n\n const pathField = panel.pathField || \"Path\"\n\n return (\n <div>\n {results?.length > 0 ? (\n <div class=\"gallery\">\n {results.map((result) => (\n <div class='galleryPicture' key={result[pathField]}>\n {panel.canDelete ? <div class='deleteIcon' onClick={(e) => {deleteRow(result); e.stopPropagation()}}><i class='fa fa-minus'></i></div> : null}\n <a href={panel.baseUrl + result[pathField]} target='_blank'>\n <img\n src={panel.baseUrl + result[pathField]}\n style={{ width: \"100%\", height: 150, objectFit: panel.objectFit || \"cover\" }}\n onerror='this.style.height = 0'\n />\n </a>\n </div>\n ))}\n </div>\n ) : results?.length === 0 ? (\n <div class={`noData panelTable ${panel.folded ? \"folded\" : \"\"}`}>Aucune donnée</div>\n ) : null}\n </div>\n )\n}\n"]},"metadata":{},"sourceType":"module"}