@fto-consult/expo-ui 6.70.4 → 6.71.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fto-consult/expo-ui",
3
- "version": "6.70.4",
3
+ "version": "6.71.0",
4
4
  "description": "Bibliothèque de composants UI Expo,react-native",
5
5
  "main": "main",
6
6
  "scripts": {
@@ -3131,8 +3131,8 @@ export default class CommonDatagridComponent extends AppComponent {
3131
3131
  return this.doFilter(arg);
3132
3132
  }
3133
3133
  ///si les filtres devront être convertis au format SQL
3134
- willConvertFiltersToSQL(){
3135
- return !!defaultVal(this.props.convertFiltersToSQL);;
3134
+ canConvertFiltersToSQL(){
3135
+ return !!(this.props.convertFiltersToSQL);;
3136
3136
  }
3137
3137
  /*** retourne la liste des colonnes sur lesquelles on peut effectuer un filtre*/
3138
3138
  getFilterableColumnsNames(){
@@ -3243,7 +3243,7 @@ export default class CommonDatagridComponent extends AppComponent {
3243
3243
  return resolve(sData);
3244
3244
  }
3245
3245
  if(this.beforeFetchData({fetchOptions,force,context:this,renderProgressBar}) === false) return resolve(sData);
3246
- if(this.willConvertFiltersToSQL()){
3246
+ if(this.canConvertFiltersToSQL()){
3247
3247
  fetchOptions.selector = convertToSQL(fetchOptions.selector);
3248
3248
  }
3249
3249
  if(typeof this.props.beforeFetchData =='function' && this.props.beforeFetchData({...rest,renderProgressBar,context:this,force,fetchOptions,options:fetchOptions}) === false){
@@ -241,6 +241,7 @@ export default class TableDataScreenComponent extends FormDataScreen{
241
241
  clone,
242
242
  isArchivable,clonable,isPrintable,print,data:customData,getRowKey,
243
243
  save2newAction,
244
+ save2cloneAction,
244
245
  saveAction,
245
246
  save2closeAction,
246
247
  cloneAction,
@@ -317,15 +318,17 @@ export default class TableDataScreenComponent extends FormDataScreen{
317
318
  isUpdated,
318
319
  fields,
319
320
  });
321
+ const cCloneAction = this.isClonable() && this.canCreateNew() && clonable !== false ? cloneAction : false;
320
322
  const rActionsArg = this.currentRenderingProps = {
321
323
  ...rest,
322
324
  ...formProps,
323
325
  context,
326
+ cloneAction : cCloneAction,
324
327
  save2newAction : this.canCreateNew() && save2newAction !== false ? true : false,
328
+ save2cloneAction : cloneAction && save2cloneAction !== false ? true : false,
325
329
  isMobile : isMobOrTab,
326
330
  saveAction,
327
331
  save2closeAction,
328
- cloneAction : this.isClonable() && clonable !== false ? cloneAction : false,
329
332
  tableName,
330
333
  sessionName,
331
334
  table,
@@ -719,16 +722,17 @@ export default class TableDataScreenComponent extends FormDataScreen{
719
722
  }
720
723
  if(action == 'save2new'){
721
724
  this.reset();
722
- closePreloader();
723
725
  } else if(action === 'save'){
724
726
  this.reset({data:savedData});
725
- closePreloader();
727
+ } else if(action === 'save2clone'){
728
+ this.clone(savedData);
729
+ return;
726
730
  } else if(willCloseAfterSave) {
727
731
  close();
728
732
  } else {
729
733
  notify('Données modifiée avec succès!!','success');
730
- closePreloader();
731
734
  }
735
+ closePreloader();
732
736
  }).catch((e)=>{
733
737
  console.log('error on saving table data ',e);
734
738
  closePreloader();
@@ -70,7 +70,7 @@ export const renderTabsContent = ({tabs,context,data,sessionName,isMobile,props,
70
70
  }
71
71
  export const readablePerms = ["read","print"];
72
72
  export const defaultArchivedPermsFilter = ({perm})=>!readablePerms.includes(perm) && !readablePerms.includes(perm.toLowerCase());
73
- export function renderActions({context,isUpdate,newElementLabel,readablePerms:cReadablePerms,makePhoneCallProps,hasManyData,onPressCopyToClipboard,archived,archivedPermsFilter,canMakePhoneCall,onPressToMakePhoneCall,saveAction,save2newAction,save2closeAction,cloneAction,readOnly,printable,archivable,data,table,perm,tableName,saveButton,datas,rows,currentData,currentDataIndex,onPressToSave,onPressToCreateNew,onPressToPrint,onPressToPrevious,onPressToNext,onPressToArchive,...rest}){
73
+ export function renderActions({context,isUpdate,newElementLabel,readablePerms:cReadablePerms,makePhoneCallProps,hasManyData,onPressCopyToClipboard,archived,archivedPermsFilter,canMakePhoneCall,onPressToMakePhoneCall,saveAction,save2newAction,save2cloneAction,save2closeAction,cloneAction,readOnly,printable,archivable,data,table,perm,tableName,saveButton,datas,rows,currentData,currentDataIndex,onPressToSave,onPressToCreateNew,onPressToPrint,onPressToPrevious,onPressToNext,onPressToArchive,...rest}){
74
74
  let textSave = defaultStr(saveButton)
75
75
  table = defaultStr(tableName,table);
76
76
  datas = defaultArray(datas,rows);
@@ -133,7 +133,17 @@ export function renderActions({context,isUpdate,newElementLabel,readablePerms:c
133
133
  icon : 'content-save-edit',
134
134
  flat : true,
135
135
  onPress : createCallback({context:self,action:'save2new',callback:onPressToSave})
136
+ } : null
137
+ ,save2clone = (save2cloneAction !== false && cloneAction !== false && !readOnly && save && permsObj.canCreate)?{
138
+ text : textSave+'& Dupliquer',
139
+ title : textSave+'& Dupliquer',
140
+ isAction : true,
141
+ shortcut : "save2clone",
142
+ icon : 'content-save-move',
143
+ flat : true,
144
+ onPress : createCallback({context:self,action:'save2clone',callback:onPressToSave})
136
145
  } : null;
146
+
137
147
  return {
138
148
  print : (isUpdate && permsObj.canPrint)?{
139
149
  text : 'Imprimer',
@@ -155,6 +165,7 @@ export function renderActions({context,isUpdate,newElementLabel,readablePerms:c
155
165
  } : null,
156
166
  save2close,
157
167
  save2new,
168
+ save2clone,
158
169
  save,
159
170
  previous : (hasManyData && datas.length > 0 && currentDataIndex > 0)?{
160
171
  icon : 'chevron-left',