@galadrim/galadmin 0.0.99 → 0.0.102

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 (26) hide show
  1. package/dist/api.js +2 -1
  2. package/dist/api.js.map +1 -1
  3. package/dist/tsconfig.tsbuildinfo +1 -1
  4. package/dist/types/config.d.ts +4 -1
  5. package/package.json +1 -1
  6. package/src/api.ts +2 -1
  7. package/src/front/build/asset-manifest.json +3 -3
  8. package/src/front/build/index.html +1 -1
  9. package/src/front/build/static/js/main.208e4279.chunk.js +2 -0
  10. package/src/front/build/static/js/main.208e4279.chunk.js.map +1 -0
  11. package/src/front/node_modules/.cache/.eslintcache +1 -1
  12. package/src/front/node_modules/.cache/babel-loader/03c67319271811f515a98fdb4fe24ca5.json +1 -0
  13. package/src/front/node_modules/.cache/babel-loader/35765a1a683877bd7229c164062f715e.json +1 -0
  14. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/73/20/d21263345025f4d600f8b87512c818d921843b36036535ffdc6ef8343dea41fdef3bf91b514a5e61cfadc10da34ea622af9340ca8012baabb14499cfcab3 +1 -0
  15. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/{e0/21/7b9aebdb76223b9dc9a75973a1875624a3c299d5550b5f96e529fe3a1285 → 42/f3/3fab82c161dc6cf40a480ce2a9f31dc8b1448f514acdd0be58f5ac6ddee7} +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/e8/a0/0d48cce4b946fe50c4b6bf34f7e1a52058d2d785e0ff7d6f841b115a2f4a +1 -1
  18. package/src/front/src/components/inputs/FileInput.js +6 -1
  19. package/src/front/src/pages/EditRecord.js +2 -1
  20. package/src/types/config.ts +5 -0
  21. package/src/front/build/static/js/main.e751e5f0.chunk.js +0 -2
  22. package/src/front/build/static/js/main.e751e5f0.chunk.js.map +0 -1
  23. package/src/front/node_modules/.cache/babel-loader/4cb8ae341cd54e71be6f01b1937af699.json +0 -1
  24. package/src/front/node_modules/.cache/babel-loader/5e5471f6262188d58fadddab6f6e34f7.json +0 -1
  25. package/src/front/node_modules/.cache/babel-loader/cf78707d766b911325fb45bc04f388e2.json +0 -1
  26. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/45/f1/762c5338097c49ba0bf02686f262417f03018a50eb7bc1d417c9867a5430ddaddf5e10ed6b30eb26d21695b7de4344ce8e2466cff9b8afb89115ccb94d87 +0 -1
@@ -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 _objectSpread from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2\";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 checkRequiredColumns from\"../utils/checkRequiredColumns\";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:if(checkRequiredColumns(filteredColumns,_objectSpread(_objectSpread({},record),dataToUpdate.current))){_context.next=2;break;}return _context.abrupt(\"return\");case 2:setIsUpdating(true);_context.prev=3;_context.next=6;return axios.post(\"/updateRecord\",{viewIndex:viewIndex,primaryValue:recordId,data:dataToUpdate.current});case 6:setIsUpdating(false);history.push(\"/record/\".concat(viewIndex,\"/\").concat(recordId));_context.next=14;break;case 10:_context.prev=10;_context.t0=_context[\"catch\"](3);if(_context.t0.response.responseText){window.swal({title:\"Erreur\",text:_context.t0.response.responseText,dangerMode:true});}setIsUpdating(false);case 14:case\"end\":return _context.stop();}}},_callee,null,[[3,10]]);}));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.required?\"*\":\"\",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","checkRequiredColumns","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","required","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'\nimport checkRequiredColumns from \"../utils/checkRequiredColumns\";\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 if (!checkRequiredColumns(filteredColumns, {...record, ...dataToUpdate.current})) return;\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} {column.required ? \"*\" : \"\"}\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 _regeneratorRuntime from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";import _defineProperty from\"/home/runner/work/galadmin/galadmin/src/front/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty\";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{useRef,useState}from\"react\";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 column=_ref.column,onChange=_ref.onChange,initialData=_ref.initialData;var form=useRef(null);var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isLoading=_useState2[0],setIsLoading=_useState2[1];var _useState3=useState(initialData===null||initialData===void 0?void 0:initialData[column.name]),_useState4=_slicedToArray(_useState3,2),path=_useState4[0],setPath=_useState4[1];var onInputChange=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var f,response,fileData;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:f=new FormData(form.current);setIsLoading(true);_context.next=4;return axios({method:\"post\",url:\"/uploadFile?subdirectory=\".concat(column.subdirectory,\"&publicPath=\").concat(column.publicPath,\"&s3Config=\").concat(encodeURI(JSON.stringify(column.s3Config))),data:f,headers:{\"Content-Type\":\"multipart/form-data\"}});case 4:response=_context.sent;fileData=_defineProperty({},column.name,response.data.path);if(column.aspectRatioField){fileData[column.aspectRatioField]=response.data.aspectRatio;}if(column.originalNameField){fileData[column.originalNameField]=response.data.originalFilename;}onChange(fileData);setIsLoading(false);setPath(response.data.path);// var showAsPicture = $(this).data(\"showAsPicture\") === 1\n//var baseUrl = $(\".fileInputContent[data-input-id='\" + inputId + \"']\").data(\"baseUrl\")\n//$(\".fileInputContent[data-input-id='\" + inputId + \"']\").removeClass(\"clickToSelectFile\").html(showAsPicture ? \"<div><img src='https://res.cloudinary.com/forest2/image/fetch/w_600,h_300,c_fit/\" + baseUrl + data.path + \"' /><div class='deleteFile'><i class='fal fa-trash-alt'></i></div></div>\" : \"<div class='nonImageFileOutput'><span>Fichier téléchargé</span><div class='deleteFile'><i class='fal fa-trash-alt'></i></div></div>\"\ncase 11:case\"end\":return _context.stop();}}},_callee);}));return function onInputChange(){return _ref2.apply(this,arguments);};}();var deleteFile=function deleteFile(e){setPath(null);var fileData=_defineProperty({},column.name,null);if(column.aspectRatioField){fileData[column.aspectRatioField]=null;}if(column.originalNameField){fileData[column.originalNameField]=null;}onChange(fileData);e.preventDefault();};var id=Math.random().toString();return/*#__PURE__*/_jsx(\"div\",{class:\"fileInputContainer\",children:/*#__PURE__*/_jsxs(\"label\",{htmlFor:id,children:[/*#__PURE__*/_jsx(\"form\",{ref:form,children:/*#__PURE__*/_jsx(\"input\",{type:\"file\",id:id,style:{display:\"none\"},name:\"file\",onChange:onInputChange})}),/*#__PURE__*/_jsxs(\"div\",{class:\"fileInputContent \".concat(!path?\"clickToSelectFile\":\"\"),children:[isLoading?/*#__PURE__*/_jsx(\"i\",{class:\"fa fa-circle-notch fa-spin\"}):null,!isLoading&&!path?/*#__PURE__*/_jsx(\"div\",{children:\"Cliquez pour s\\xE9lectionner un fichier\"}):null,!isLoading&&path?/*#__PURE__*/_jsxs(\"div\",{class:\"nonImageFileOutput\",children:[/*#__PURE__*/_jsx(\"span\",{children:\"Fichier t\\xE9l\\xE9charg\\xE9\"}),/*#__PURE__*/_jsx(\"div\",{class:\"deleteFile\",onClick:deleteFile,children:/*#__PURE__*/_jsx(\"i\",{class:\"fal fa-trash-alt\"})})]}):null]})]})});});","map":{"version":3,"sources":["/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/FileInput.js"],"names":["useRef","useState","axios","column","onChange","initialData","form","isLoading","setIsLoading","name","path","setPath","onInputChange","f","FormData","current","method","url","subdirectory","publicPath","encodeURI","JSON","stringify","s3Config","data","headers","response","fileData","aspectRatioField","aspectRatio","originalNameField","originalFilename","deleteFile","e","preventDefault","id","Math","random","toString","display"],"mappings":"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","sourcesContent":["import { useRef, useState } from \"react\";\nimport axios from \"axios\";\n\nexport default ({ column, onChange, initialData }) => {\n const form = useRef(null);\n const [isLoading, setIsLoading] = useState(false)\n const [path, setPath] = useState(initialData?.[column.name])\n\n const onInputChange = async () => {\n const f = new FormData(form.current);\n setIsLoading(true);\n\n const response = await axios({\n method: \"post\",\n url: `/uploadFile?subdirectory=${column.subdirectory}&publicPath=${column.publicPath}&s3Config=${encodeURI(JSON.stringify(column.s3Config))}`,\n data: f,\n headers: { \"Content-Type\": \"multipart/form-data\" }\n })\n const fileData = {\n [column.name]: response.data.path\n }\n if (column.aspectRatioField) {\n fileData[column.aspectRatioField] = response.data.aspectRatio\n }\n if (column.originalNameField) {\n fileData[column.originalNameField] = response.data.originalFilename\n }\n onChange(fileData)\n setIsLoading(false)\n setPath(response.data.path)\n // var showAsPicture = $(this).data(\"showAsPicture\") === 1\n //var baseUrl = $(\".fileInputContent[data-input-id='\" + inputId + \"']\").data(\"baseUrl\")\n //$(\".fileInputContent[data-input-id='\" + inputId + \"']\").removeClass(\"clickToSelectFile\").html(showAsPicture ? \"<div><img src='https://res.cloudinary.com/forest2/image/fetch/w_600,h_300,c_fit/\" + baseUrl + data.path + \"' /><div class='deleteFile'><i class='fal fa-trash-alt'></i></div></div>\" : \"<div class='nonImageFileOutput'><span>Fichier téléchargé</span><div class='deleteFile'><i class='fal fa-trash-alt'></i></div></div>\"\n }\n\n const deleteFile = (e) => {\n setPath(null);\n const fileData = {\n [column.name]: null\n }\n if (column.aspectRatioField) {\n fileData[column.aspectRatioField] = null\n }\n if (column.originalNameField) {\n fileData[column.originalNameField] = null\n }\n onChange(fileData)\n e.preventDefault()\n }\n\n var id = Math.random().toString()\n return (\n <div class='fileInputContainer'>\n <label htmlFor={id}>\n <form ref={form}>\n <input type='file' id={id} style={{ display: \"none\" }} name='file' onChange={onInputChange} />\n </form>\n <div class={`fileInputContent ${!path ? \"clickToSelectFile\" : \"\"}`}>\n {isLoading ?\n <i class='fa fa-circle-notch fa-spin'></i>\n : null\n }\n {!isLoading && !path ?\n <div>Cliquez pour sélectionner un fichier</div>\n : null}\n {!isLoading && path ? (\n <div class='nonImageFileOutput'>\n <span>Fichier téléchargé</span>\n <div class='deleteFile' onClick={deleteFile}><i class='fal fa-trash-alt'></i></div>\n </div>\n ) : null}\n </div>\n </label>\n </div>\n )\n}\n"]},"metadata":{},"sourceType":"module"}