@galadrim/galadmin 0.1.0 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.d.ts +1 -1
- package/dist/api.js +8 -3
- package/dist/api.js.map +1 -1
- package/dist/index.js +20 -5
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +20 -10
- package/package.json +2 -1
- package/src/api.ts +44 -39
- package/src/front/build/asset-manifest.json +3 -3
- package/src/front/build/index.html +1 -1
- package/src/front/build/static/js/{main.97032afc.chunk.js → main.8f781ead.chunk.js} +2 -2
- package/src/front/build/static/js/main.8f781ead.chunk.js.map +1 -0
- package/src/front/node_modules/.cache/.eslintcache +1 -1
- package/src/front/node_modules/.cache/babel-loader/c79f8df4d3d0abc42e0d2b1eb71c3d00.json +1 -0
- package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/bd/f2/61c53645f95ac3ad1ace732e4a011e3590dd4c257cc9f0a88cef527de898b2c806512e065a25527232f30ac5cd37a6f14c0678a061cad3a0ed839cd34618 +1 -0
- package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/87/08/421190bfe6e50816e059da6c33526c9943732ef856ebd2752d0cbfb4a852 +1 -1
- package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/{bd/2e/c0a1ad64209160064d75ec63da2f28595240a522454af4912eabdaa87a22 → bc/60/45a8cd3b5ff1c55a654323e4532eaa0218e186e53786ef1acf429ff046a5} +1 -1
- package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/e8/a0/0d48cce4b946fe50c4b6bf34f7e1a52058d2d785e0ff7d6f841b115a2f4a +1 -1
- package/src/front/src/pages/Records.js +4 -1
- package/src/index.ts +22 -5
- package/src/types/config.ts +18 -6
- package/src/front/build/static/js/main.97032afc.chunk.js.map +0 -1
- package/src/front/node_modules/.cache/babel-loader/0efcfdeffb416b7804b4ded49c450554.json +0 -1
- package/src/front/node_modules/.cache/babel-loader/8770286edcdad4a24352a179974a19aa.json +0 -1
- package/src/front/node_modules/.cache/babel-loader/f1fcce5f9118a35208fbef0291ff4904.json +0 -1
- package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/14/cb/75504a72d022b9da619c3829eccf15e646a680fc522ed049439f8d0b1dbd746f45f77c6ae0555458092a9a8ae108cc098e471c39e2a80dd049733d0ea47a +0 -1
- package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/1c/61/ccc24bdf12bcc26dc768641b81ab7967ea661f41233fad4be4f21a813295bbbb24dc85efbbb8d7d19e670adb44191cb199700f40d1ac40fc6823f9aabf0e +0 -1
- package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/fa/ed/2d346c575f6e315d6b704a6faaf44ec0ebb7e6c63107383d7feafda6dc97 +0 -2
|
@@ -0,0 +1 @@
|
|
|
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\";var _viewIndex=null;var _page=1;var _currentFilters=[];var _orderBy=null;var _isDesc=null;var _query=\"\";export default(function(){var _view$columns,_data$records;var _useParams=useParams(),viewIndex=_useParams.viewIndex,subviewIndex=_useParams.subviewIndex;var history=useHistory();var _useState=useState(_page),_useState2=_slicedToArray(_useState,2),page=_useState2[0],setPage=_useState2[1];var _useState3=useState(_currentFilters),_useState4=_slicedToArray(_useState3,2),currentFilters=_useState4[0],setCurrentFilters=_useState4[1];var _useState5=useState(_orderBy),_useState6=_slicedToArray(_useState5,2),orderBy=_useState6[0],setOrderBy=_useState6[1];var _useState7=useState(_isDesc),_useState8=_slicedToArray(_useState7,2),isDesc=_useState8[0],setIsDesc=_useState8[1];var _useState9=useState(_query),_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(){if(viewIndex!==_viewIndex){setPage(1);setQuery(null);setOrderBy(null);setIsDesc(null);setQuery(\"\");if(selectedRecordIds.length>0){setSelectedRecordIds([]);}if(currentFilters.length>0){setCurrentFilters([]);}}},[viewIndex]);useEffect(function(){refreshData();_viewIndex=viewIndex;_page=page;_query=query;_currentFilters=currentFilters;_orderBy=orderBy;_isDesc=isDesc;},[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){var _response$data,_response$data$record;if(((_response$data=response.data)===null||_response$data===void 0?void 0:(_response$data$record=_response$data.records)===null||_response$data$record===void 0?void 0:_response$data$record.length)===0&&page>1){setPage(1);}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\",value:query,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){if(view.clickToEdit){history.push(\"/editRecord/\".concat(viewIndex,\"/\").concat(recordId));}else{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","_page","_currentFilters","_orderBy","_isDesc","_query","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","records","label","e","target","value","canCreate","index","hideMultiselect","column","sortName","dataType","formattedValue","name","Array","from","_","cellIndex","record","recordId","primaryId","notClickable","event","tagName","stopPropagation","clickToEdit","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\nlet _viewIndex = null;\nlet _page = 1;\nlet _currentFilters = [];\nlet _orderBy = null;\nlet _isDesc = null;\nlet _query = \"\";\n\nexport default () => {\n const { viewIndex, subviewIndex } = useParams();\n const history = useHistory();\n const [page, setPage] = useState(_page)\n const [currentFilters, setCurrentFilters] = useState(_currentFilters)\n const [orderBy, setOrderBy] = useState(_orderBy);\n const [isDesc, setIsDesc] = useState(_isDesc);\n const [query, setQuery] = useState(_query);\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 if (viewIndex !== _viewIndex) {\n setPage(1)\n setQuery(null)\n setOrderBy(null)\n setIsDesc(null)\n setQuery(\"\")\n if (selectedRecordIds.length > 0) {\n setSelectedRecordIds([])\n }\n if (currentFilters.length > 0) {\n setCurrentFilters([])\n }\n }\n }, [viewIndex])\n\n\n useEffect(() => {\n refreshData()\n _viewIndex = viewIndex;\n _page = page;\n _query = query;\n _currentFilters = currentFilters;\n _orderBy = orderBy;\n _isDesc = isDesc;\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 if (response.data?.records?.length === 0 && page > 1) {\n setPage(1)\n }\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\" value={query} 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 if (view.clickToEdit) {\n history.push(`/editRecord/${viewIndex}/${recordId}`)\n } else {\n history.push(`/record/${viewIndex}/${recordId}`)\n }\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}\n"]},"metadata":{},"sourceType":"module"}
|