Ignore:
Timestamp:
Jun 17, 2024, 5:25:43 PM (5 months ago)
Author:
alloc
Message:

1.1.0.1 Release for V 1.0

Location:
TFP-WebServer/bin/Mods/Xample_MarkersMod
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TFP-WebServer/bin/Mods/Xample_MarkersMod/ModInfo.xml

    r485 r487  
    55        <Description value="Allows placing custom markers on the web map" />
    66        <Author value="Catalysm and Alloc" />
    7         <Version value="22.0.1.0" />
     7        <Version value="1.1.0.0" />
    88        <Website value="" />
    99</xml>
  • TFP-WebServer/bin/Mods/Xample_MarkersMod/WebMod/bundle.js

    r485 r487  
    1515  LayersControl,
    1616  Marker,
     17  Tooltip,
    1718  HideBasedOnAuth,
    1819  L
     
    4546              lng: y
    4647            }
    47           });
     48          }, /*#__PURE__*/React.createElement(Tooltip, null, marker.name));
    4849        });
    4950        setMarkers(markerComponents);
     
    8283    formState: {
    8384      errors
    84     }
     85    },
     86    setValue
    8587  } = useForm();
    8688  const {
     
    9193    mutate: createMarker
    9294  } = useMutation('createMarker', data => HTTP.post('/api/markers', {
     95    name: data.name,
    9396    x: parseInt(data.x, 10),
    9497    y: parseInt(data.y, 10)
     
    104107    mutate: updateMarker
    105108  } = useMutation('updateMarker', data => HTTP.put(`/api/markers/${data.id}`, {
     109    name: data.name,
    106110    x: parseInt(data.x, 10),
    107111    y: parseInt(data.y, 10),
     
    114118    method: 'PUT'
    115119  });
     120  const canDeleteRows = checkPermission({
     121    module: 'webapi.Markers',
     122    method: 'DELETE'
     123  });
    116124  const columnDef = [{
    117125    field: 'id',
    118126    filter: 'agTextColumnFilter',
    119     checkboxSelection: true,
    120     width: 300,
    121     flex: 0
     127    flex: 1
     128  }, {
     129    field: 'name',
     130    filter: 'agTextColumnFilter',
     131    flex: 1
    122132  }, {
    123133    field: 'x',
    124134    filter: 'agNumberColumnFilter',
    125     editable: canEditRows,
    126     cellEditorPopup: true,
    127     width: 50,
    128     flex: 0
     135    flex: 0.25,
     136    sort: 'asc'
    129137  }, {
    130138    field: 'y',
    131139    filter: 'agNumberColumnFilter',
    132     editable: canEditRows,
    133     cellEditorPopup: true,
    134     width: 50,
    135     flex: 0
     140    flex: 0.25,
     141    sort: 'asc'
    136142  }, {
    137143    field: 'icon',
    138144    filter: 'agTextColumnFilter',
    139     editable: canEditRows,
    140     cellEditorPopup: true,
    141145    flex: 1
    142146  }];
    143   const CreateMarker = () => {
     147  const Form = /*#__PURE__*/React.createElement(TfpForm, {
     148    id: "markers-form",
     149    error: errors
     150  }, /*#__PURE__*/React.createElement(FormElements.StyledFormItem, null, /*#__PURE__*/React.createElement(FormElements.FormLabel, {
     151    htmlFor: "input-id"
     152  }, "ID"), /*#__PURE__*/React.createElement(FormElements.FormInput, _extends({
     153    key: "id",
     154    id: "input-id"
     155  }, register('id'), {
     156    disabled: true
     157  }))), /*#__PURE__*/React.createElement(FormElements.StyledFormItem, null, /*#__PURE__*/React.createElement(FormElements.FormLabel, {
     158    htmlFor: "input-name"
     159  }, "Name"), /*#__PURE__*/React.createElement(FormElements.FormInput, _extends({
     160    key: "name",
     161    id: "input-name"
     162  }, register('name')))), /*#__PURE__*/React.createElement(FormElements.StyledFormItem, null, /*#__PURE__*/React.createElement(FormElements.FormLabel, {
     163    htmlFor: "input-x"
     164  }, "X"), /*#__PURE__*/React.createElement(FormElements.FormInput, _extends({
     165    key: "x",
     166    id: "input-x"
     167  }, register('x', {
     168    required: true
     169  })))), /*#__PURE__*/React.createElement(FormElements.StyledFormItem, null, /*#__PURE__*/React.createElement(FormElements.FormLabel, {
     170    htmlFor: "input-y"
     171  }, "Y"), /*#__PURE__*/React.createElement(FormElements.FormInput, _extends({
     172    key: "y",
     173    id: "input-y"
     174  }, register('y', {
     175    required: true
     176  })))));
     177  async function handleCreate(data) {
    144178    if (!checkPermission({
    145179      module: 'webapi.Markers',
    146180      method: 'POST'
    147181    })) {
    148       return null;
    149     }
    150     return /*#__PURE__*/React.createElement(TfpForm, {
    151       id: "markers-form",
    152       handleSubmit: handleSubmit(createMarker),
    153       error: errors
    154     }, /*#__PURE__*/React.createElement(FormElements.StyledFormItem, null, /*#__PURE__*/React.createElement(FormElements.FormLabel, {
    155       htmlFor: "input-x"
    156     }, "X"), /*#__PURE__*/React.createElement(FormElements.FormInput, _extends({
    157       key: "x",
    158       id: "input-x"
    159     }, register('x', {
    160       required: true
    161     })))), /*#__PURE__*/React.createElement(FormElements.StyledFormItem, null, /*#__PURE__*/React.createElement(FormElements.FormLabel, {
    162       htmlFor: "input-y"
    163     }, "Y"), /*#__PURE__*/React.createElement(FormElements.FormInput, _extends({
    164       key: "y",
    165       id: "input-y"
    166     }, register('y', {
    167       required: true
    168     })))));
    169   };
    170   async function cellEdited({
    171     data,
    172     newValue,
    173     column
    174   }) {
     182      return;
     183    }
     184    createMarker(data);
     185  }
     186  async function handleEdit(data) {
    175187    if (!checkPermission({
    176188      module: 'webapi.Markers',
     
    179191      return;
    180192    }
    181     const changedField = column.colId;
    182     updateMarker({
    183       ...data,
    184       [changedField]: newValue
    185     });
     193    updateMarker(data);
    186194  }
    187195  async function cellDeleted(row) {
     
    194202    deleteMarker(row.id);
    195203  }
     204  const setDefaultValues = data => {
     205    setValue('id', data.id);
     206    setValue('name', data.name);
     207    setValue('x', data.x);
     208    setValue('y', data.y);
     209  };
    196210  return /*#__PURE__*/React.createElement("div", {
    197211    style: {
     
    199213      height: '80vh'
    200214    }
    201   }, /*#__PURE__*/React.createElement(CreateMarker, null), /*#__PURE__*/React.createElement(EditableTable, {
     215  }, /*#__PURE__*/React.createElement(EditableTable, {
    202216    columnDef: columnDef,
    203217    rowData: data,
    204218    reloadFn: refetch,
    205     editRowFn: cellEdited,
    206219    deleteRowFn: cellDeleted,
    207     height: '90%'
     220    canDeleteRows: canDeleteRows,
     221    height: '90%',
     222    editRowFn: handleSubmit(handleEdit),
     223    editForm: Form,
     224    setDefaultValues: setDefaultValues,
     225    canEditRows: canEditRows,
     226    canCreateRows: canEditRows,
     227    createRowFn: handleSubmit(handleCreate)
    208228  }));
    209229}
Note: See TracChangeset for help on using the changeset viewer.