Merge branch 'master' into dev
This commit is contained in:
commit
576563bf97
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"@microsoft/generator-sharepoint": {
|
||||
"version": "1.2.0",
|
||||
"version": "1.4.1",
|
||||
"libraryName": "react-form-webpart",
|
||||
"libraryId": "373a20ef-dfc6-456a-95ec-171de3c94581",
|
||||
"environment": "spo"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,9 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"externals": {},
|
||||
"externals": {
|
||||
"moment": "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.0/moment-with-locales.min.js"
|
||||
},
|
||||
"localizedResources": {
|
||||
"ListFormWebPartStrings": "lib/webparts/listForm/loc/{locale}.js",
|
||||
"ListFormStrings": "lib/webparts/listForm/components/loc/{locale}.js",
|
||||
|
|
|
@ -4,7 +4,13 @@
|
|||
"name": "react-form-webpart-client-side-solution",
|
||||
"id": "373a20ef-dfc6-456a-95ec-171de3c94581",
|
||||
"version": "1.0.0.0",
|
||||
"skipFeatureDeployment": true
|
||||
"title": "List form",
|
||||
"supportedLocales": [
|
||||
"en-US",
|
||||
"fr-FR"
|
||||
],
|
||||
"skipFeatureDeployment": true,
|
||||
"includeClientSideAssets": true
|
||||
},
|
||||
"paths": {
|
||||
"zippedPackage": "solution/react-form-webpart.sppkg"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -11,27 +11,27 @@
|
|||
"test": "gulp test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@microsoft/sp-core-library": "~1.3.4",
|
||||
"@microsoft/sp-office-ui-fabric-core": "^1.3.4",
|
||||
"@microsoft/sp-webpart-base": "~1.3.4",
|
||||
"@microsoft/sp-core-library": "~1.4.1",
|
||||
"@microsoft/sp-office-ui-fabric-core": "~1.4.1",
|
||||
"@microsoft/sp-webpart-base": "~1.4.1",
|
||||
"@types/react": "15.0.38",
|
||||
"@types/react-addons-shallow-compare": "0.14.17",
|
||||
"@types/react-addons-test-utils": "0.14.15",
|
||||
"@types/react-addons-update": "0.14.14",
|
||||
"@types/react-dnd": "^2.0.34",
|
||||
"@types/react-dnd": "~2.0.34",
|
||||
"@types/react-dom": "0.14.18",
|
||||
"@types/webpack-env": ">=1.12.1 <1.14.0",
|
||||
"moment": "^2.19.1",
|
||||
"moment": "~2.22.0",
|
||||
"react": "15.4.2",
|
||||
"react-dnd": "^2.5.4",
|
||||
"react-dnd-html5-backend": "^2.5.4",
|
||||
"react-dnd": "~2.5.4",
|
||||
"react-dnd-html5-backend": "~2.5.4",
|
||||
"react-dom": "15.4.2",
|
||||
"spfx-uifabric-themes": "^0.1.3"
|
||||
"spfx-uifabric-themes": "~0.1.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@microsoft/sp-build-web": "~1.3.4",
|
||||
"@microsoft/sp-module-interfaces": "~1.3.4",
|
||||
"@microsoft/sp-webpart-workbench": "~1.3.4",
|
||||
"@microsoft/sp-build-web": "~1.4.1",
|
||||
"@microsoft/sp-module-interfaces": "~1.4.1",
|
||||
"@microsoft/sp-webpart-workbench": "~1.4.1",
|
||||
"gulp": "~3.9.1",
|
||||
"@types/chai": ">=3.4.34 <3.6.0",
|
||||
"@types/mocha": ">=2.2.33 <2.6.0",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@import '~office-ui-fabric-core/dist/sass/References';
|
||||
@import '~office-ui-fabric-react/dist/sass/References';
|
||||
@import './node_modules/spfx-uifabric-themes/office.theme.vars';
|
||||
|
||||
/* themed tokens */
|
||||
|
@ -69,7 +69,7 @@ $ms-color-infoText: "[theme:infoText, default: #333333]";
|
|||
$ms-color-infoBackground: "[theme:infoBackground, default: #f4f4f4]";
|
||||
$ms-color-orangeLighter: "[theme:orangeLighter, default: #ea4300]";
|
||||
|
||||
/** Semantic Color Variables - taken from
|
||||
/** Semantic Color Variables - taken from
|
||||
* https://github.com/OfficeDev/office-ui-fabric-react/blob/master/packages/office-ui-fabric-react/src/common/_semanticColorVariables.scss
|
||||
*/
|
||||
$focusedBorderColor: $ms-color-neutralSecondary;
|
||||
|
@ -163,4 +163,4 @@ $listTextColor: $ms-color-neutralPrimary;
|
|||
|
||||
$listItemHoverColor: $ms-color-neutralLighter;
|
||||
$listItemSelectedColor: $ms-color-neutralQuaternary;
|
||||
$listItemSelectedHoverColor: $ms-color-neutralQuaternaryAlt;
|
||||
$listItemSelectedHoverColor: $ms-color-neutralQuaternaryAlt;
|
|
@ -15,9 +15,17 @@
|
|||
|
||||
"preconfiguredEntries": [{
|
||||
"groupId": "48e2d130-7eb7-4ee9-aa23-5ddbdfd175b1",
|
||||
"group": { "default": "Under Development" },
|
||||
"title": { "default": "List Form" },
|
||||
"description": { "default": "Shows a form for the selected list" },
|
||||
"group": {
|
||||
"default": "Under Development"
|
||||
},
|
||||
"title": {
|
||||
"default": "List Form",
|
||||
"fr-fr": "Formulaire de liste"
|
||||
},
|
||||
"description": {
|
||||
"default": "Shows a form for the selected list",
|
||||
"fr-fr": "Affiche un formulaire pour la liste sélectionnée"
|
||||
},
|
||||
"officeFabricIconFontName": "PreviewLink",
|
||||
"properties": {
|
||||
"title": "List Form",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
// import
|
||||
@import '../../../common/theming';
|
||||
@import '../../../common/theming.module';
|
||||
|
||||
.draggableComponent {
|
||||
/*border: '1px dashed gray',
|
||||
|
@ -14,7 +14,7 @@
|
|||
.draggableComponent:hover{
|
||||
background-color: $ms-color-neutralLighter;
|
||||
outline: 1px solid;
|
||||
outline-color: $ms-color-neutralLight;
|
||||
outline-color: $ms-color-neutralLight;
|
||||
}
|
||||
|
||||
.draggableComponent.isDragging {
|
||||
|
@ -63,4 +63,4 @@
|
|||
|
||||
.draggableComponent:hover .toolbar {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import { css } from 'office-ui-fabric-react/lib/Utilities';
|
|||
|
||||
import styles from './DraggableComponent.module.scss';
|
||||
|
||||
import * as strings from 'ListFormStrings';
|
||||
|
||||
const dragSource = {
|
||||
beginDrag(props: IDraggableComponentProps) {
|
||||
|
@ -70,8 +71,8 @@ export default class DraggableComponent extends React.Component<IDraggableCompon
|
|||
<div className={css('ard-draggableComponent', styles.draggableComponent, isDragging ? styles.isDragging : null)}>
|
||||
{children}
|
||||
<div className={css(styles.toolbar)}>
|
||||
<button type="button" className={css('ard-draggableComponent', styles.button)} title="Move field" ><i className="ms-Icon ms-Icon--Move"></i></button>
|
||||
<button type="button" className={css('ard-draggableComponent', styles.button)} title="Remove field" onClick={() => this.props.removeField(this.props.index)}><i className="ms-Icon ms-Icon--Delete"></i></button>
|
||||
<button type="button" className={css('ard-draggableComponent', styles.button)} title={strings.MoveField} ><i className="ms-Icon ms-Icon--Move"></i></button>
|
||||
<button type="button" className={css('ard-draggableComponent', styles.button)} title={strings.RemoveField} onClick={() => this.props.removeField(this.props.index)}><i className="ms-Icon ms-Icon--Delete"></i></button>
|
||||
</div>
|
||||
</div>,
|
||||
));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@import '../../../common/theming';
|
||||
@import '../../../common/theming.module';
|
||||
|
||||
.listForm {
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.addFieldToolbox {
|
||||
background: 0 0;
|
||||
border: none;
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/** form field styles */
|
||||
|
||||
@import '../../../../common/theming';
|
||||
@import '../../../../common/theming.module';
|
||||
|
||||
.formField {
|
||||
|
||||
|
||||
padding: 8px 3px;
|
||||
position: relative;
|
||||
|
||||
.label {
|
||||
width: 100%;
|
||||
font-family: "Segoe UI Semibold WestEuropean","Segoe UI Semibold","Segoe UI",Tahoma,Arial,sans-serif;
|
||||
font-size: 14px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
|
||||
.label:global(.is-required) {
|
||||
&::after {
|
||||
content: ' *';
|
||||
|
@ -31,7 +31,7 @@
|
|||
font-size: 14px;
|
||||
font-family: "Segoe UI Regular WestEuropean","Segoe UI",Tahoma,Arial,sans-serif;
|
||||
font-weight: 400;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@import '../../../../common/theming';
|
||||
@import '../../../../common/theming.module';
|
||||
|
||||
.dropDownFormField{
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
|||
}
|
||||
|
||||
.dateFormField{
|
||||
|
||||
|
||||
:global(.ms-TextField-fieldGroup){
|
||||
border: 0;
|
||||
border-bottom: 1px solid;
|
||||
|
@ -29,4 +29,4 @@
|
|||
top: 2px;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
define([], function() {
|
||||
return {
|
||||
UnsupportedFieldType: "Unsupported field type",
|
||||
InvalidNumberValue: "The value should be a number, actual is",
|
||||
ToggleOnAriaLabel: "This toggle is checked. Press to uncheck.",
|
||||
ToggleOffAriaLabel: "This toggle is unchecked. Press to check.",
|
||||
ToggleOnText: "Yes",
|
||||
ToggleOffText: "No",
|
||||
TextFormFieldPlaceholder: "Enter text here",
|
||||
DateFormFieldPlaceholder: "Enter a date",
|
||||
NumberFormFieldPlaceholder: "Enter value here",
|
||||
LookupEmptyOptionText: "(None)",
|
||||
UnsupportedFieldType: 'Unsupported field type',
|
||||
InvalidNumberValue: 'The value should be a number, actual is',
|
||||
ToggleOnAriaLabel: 'This toggle is checked. Press to uncheck.',
|
||||
ToggleOffAriaLabel: 'This toggle is unchecked. Press to check.',
|
||||
ToggleOnText: 'Yes',
|
||||
ToggleOffText: 'No',
|
||||
TextFormFieldPlaceholder: 'Enter text here',
|
||||
DateFormFieldPlaceholder: 'Enter a date',
|
||||
NumberFormFieldPlaceholder: 'Enter value here',
|
||||
LookupEmptyOptionText: '(None)',
|
||||
|
||||
// IDatePickerStrings
|
||||
months: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],
|
||||
|
@ -23,6 +23,6 @@ define([], function() {
|
|||
nextYearAriaLabel: 'Go to next year',
|
||||
isRequiredErrorMessage: 'This date is required.',
|
||||
invalidInputErrorMessage: 'Invalid date format.'
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
28
samples/react-list-form/src/webparts/listForm/components/formFields/loc/fr-fr.js
vendored
Normal file
28
samples/react-list-form/src/webparts/listForm/components/formFields/loc/fr-fr.js
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
define([], function() {
|
||||
return {
|
||||
UnsupportedFieldType: 'Type de champ non pris en charge',
|
||||
InvalidNumberValue: 'La valeur doit être un nombre, la valeur actuel est',
|
||||
ToggleOnAriaLabel: 'Cette checkbox est cochée. Appuyez pour décocher.',
|
||||
ToggleOffAriaLabel: 'Cette checkbox n\'est pas cochée. Appuyez pour vérifier.',
|
||||
ToggleOnText: 'Oui',
|
||||
ToggleOffText: 'Non',
|
||||
TextFormFieldPlaceholder: 'Entrez le texte ici',
|
||||
DateFormFieldPlaceholder: 'Entrez une date',
|
||||
NumberFormFieldPlaceholder: 'Entrez la valeur ici',
|
||||
LookupEmptyOptionText: '(Aucun)',
|
||||
|
||||
// IDatePickerStrings
|
||||
months: [ 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre' ],
|
||||
shortMonths: [ 'Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jui', 'Jul', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc' ],
|
||||
days: [ 'Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi' ],
|
||||
shortDays: [ 'D', 'L', 'M', 'M', 'J', 'V', 'S' ],
|
||||
goToToday: 'Aller à aujourd\'hui',
|
||||
prevMonthAriaLabel: 'Aller au mois précédent',
|
||||
nextMonthAriaLabel: 'Aller au mois suivant',
|
||||
prevYearAriaLabel: 'Aller à l\'année précédente',
|
||||
nextYearAriaLabel: 'Aller à l\'année prochaine',
|
||||
isRequiredErrorMessage: 'Cette date est requise.',
|
||||
invalidInputErrorMessage: 'Format de date incorrect.'
|
||||
|
||||
}
|
||||
});
|
|
@ -1,15 +1,17 @@
|
|||
define([], function() {
|
||||
return {
|
||||
"SaveButtonText": "Save",
|
||||
"CancelButtonText": "Cancel",
|
||||
"AddNewFieldAction": "Add a new field to form",
|
||||
"LoadingFormIndicator": "Loading the form...",
|
||||
"ErrorLoadingSchema": "Error loading schema for list ",
|
||||
"ConfigureListMessage": "Please configure a list in the web part's editor first.",
|
||||
"RequiredValueMessage": "Please enter a value!",
|
||||
"ErrorLoadingData": "Error loading data for item with ID ",
|
||||
"ItemSavedSuccessfully": "Item saved successfully.",
|
||||
"FieldsErrorOnSaving": 'The item could not be saved. Please check detailed error messages on the fields below.',
|
||||
"ErrorOnSavingListItem": "Error on loading lists: ",
|
||||
'SaveButtonText': 'Save',
|
||||
'CancelButtonText': 'Cancel',
|
||||
'AddNewFieldAction': 'Add a new field to form',
|
||||
'LoadingFormIndicator': 'Loading the form...',
|
||||
'ErrorLoadingSchema': 'Error loading schema for list ',
|
||||
'ConfigureListMessage': 'Please configure a list in the web part\'s editor first.',
|
||||
'RequiredValueMessage': 'Please enter a value!',
|
||||
'ErrorLoadingData': 'Error loading data for item with ID ',
|
||||
'ItemSavedSuccessfully': 'Item saved successfully.',
|
||||
'FieldsErrorOnSaving': 'The item could not be saved. Please check detailed error messages on the fields below.',
|
||||
'ErrorOnSavingListItem': 'Error on loading lists: ',
|
||||
'MoveField' : "Move field",
|
||||
'RemoveField' : "Remove field"
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
define([], function() {
|
||||
return {
|
||||
'SaveButtonText': 'Sauvegarder',
|
||||
'CancelButtonText': 'Annuler',
|
||||
'AddNewFieldAction': 'Ajouter un nouveau champ au formulaire',
|
||||
'LoadingFormIndicator': 'Chargement du formulaire ...',
|
||||
'ErrorLoadingSchema': 'Erreur lors du chargement du schéma pour la liste ',
|
||||
'ConfigureListMessage': 'Veuillez d\'abord configurer une liste dans l\'éditeur du WebPart.',
|
||||
'RequiredValueMessage': 'Veuillez entrer une valeur !',
|
||||
'ErrorLoadingData': 'Erreur lors du chargement des données pour l\'élément avec un ID ',
|
||||
'ItemSavedSuccessfully': 'Item enregistré avec succès.',
|
||||
'FieldsErrorOnSaving': 'L\'item n\'a pas pu être enregistré. Veuillez vérifier les messages d\'erreur détaillés dans les champs ci-dessous.',
|
||||
'ErrorOnSavingListItem': 'Erreur de chargement des listes : ',
|
||||
'MoveField' : "Déplacer le champ",
|
||||
'RemoveField' : "Supprimer le champ"
|
||||
}
|
||||
});
|
|
@ -5,15 +5,16 @@ declare interface IListFormStrings {
|
|||
LoadingFormIndicator: string;
|
||||
ErrorLoadingSchema: string;
|
||||
ConfigureListMessage: string;
|
||||
RequiredValueMessage: string;s
|
||||
RequiredValueMessage: string;
|
||||
ErrorLoadingData: string;
|
||||
ItemSavedSuccessfully: string;
|
||||
FieldsErrorOnSaving: string;
|
||||
ErrorOnSavingListItem: string;
|
||||
MoveField :string;
|
||||
RemoveField : string;
|
||||
}
|
||||
|
||||
|
||||
declare module 'ListFormStrings' {
|
||||
const strings: IListFormStrings;
|
||||
export = strings;
|
||||
}
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
define([], function() {
|
||||
return {
|
||||
"PropertyPaneDescription": "Configure the list form here. Once the list is configured fields can be moved, inserted and removed in the webpart's content itself.",
|
||||
"BasicGroupName": "Settings",
|
||||
"TitleFieldLabel": "Title",
|
||||
"DescriptionFieldLabel": "Description",
|
||||
"ListFieldLabel": "List",
|
||||
"FormTypeFieldLabel": "Form Type",
|
||||
"ItemIdFieldLabel": "Item ID",
|
||||
"ItemIdFieldDescription" : "Enter either a number for the ID or the query string parameter name to use for the ID.",
|
||||
"ShowUnsupportedFieldsLabel": "Show unsupported fields",
|
||||
"RedirectUrlFieldLabel": "URL to redirect after saving (optional)",
|
||||
"RedirectUrlFieldDescription": "Can contain [ID] as a placeholder to be replaced by ID of updated or created item. Example: /list/Test/DispForm.aspx?ID=[ID]",
|
||||
"LocalWorkbenchUnsupported": "Running this web part in your local workbench is not supported. Please run it inside your SharePoint site.",
|
||||
"MissingListConfiguration": "Please configure a SharePoint list in the web part's properties.",
|
||||
"ConfigureWebpartButtonText": "Configure Web Part",
|
||||
"ErrorOnLoadingLists": "Error on loading lists: ",
|
||||
'PropertyPaneDescription': 'Configure the list form here. Once the list is configured fields can be moved, inserted and removed in the webpart\'s content itself.',
|
||||
'BasicGroupName': 'Settings',
|
||||
'TitleFieldLabel': 'Title',
|
||||
'DescriptionFieldLabel': 'Description',
|
||||
'ListFieldLabel': 'List',
|
||||
'FormTypeFieldLabel': 'Form Type',
|
||||
'ItemIdFieldLabel': 'Item ID',
|
||||
'ItemIdFieldDescription' : 'Enter either a number for the ID or the query string parameter name to use for the ID.',
|
||||
'ShowUnsupportedFieldsLabel': 'Show unsupported fields',
|
||||
'RedirectUrlFieldLabel': 'URL to redirect after saving (optional)',
|
||||
'RedirectUrlFieldDescription': 'Can contain [ID] as a placeholder to be replaced by ID of updated or created item. Example: /list/Test/DispForm.aspx?ID=[ID]',
|
||||
'LocalWorkbenchUnsupported': 'Running this web part in your local workbench is not supported. Please run it inside your SharePoint site.',
|
||||
'MissingListConfiguration': 'Please configure a SharePoint list in the web part\'s properties.',
|
||||
'ConfigureWebpartButtonText': 'Configure Web Part',
|
||||
'ErrorOnLoadingLists': 'Error on loading lists: ',
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
define([], function() {
|
||||
return {
|
||||
'PropertyPaneDescription': 'Configurez le formulaire de la liste ici. Une fois la liste configurée, les champs peuvent être déplacés, insérés et supprimés dans le contenu du webpart.',
|
||||
'BasicGroupName': 'Paramètres',
|
||||
'TitleFieldLabel': 'Titre',
|
||||
'DescriptionFieldLabel': 'Description',
|
||||
'ListFieldLabel': 'Liste',
|
||||
'FormTypeFieldLabel': 'Type de formulaire',
|
||||
'ItemIdFieldLabel': 'ID de l\'item',
|
||||
'ItemIdFieldDescription' : 'Entrez un nombre pour l\'ID ou le nom du paramètre de chaîne de requête à utiliser pour l\'ID.',
|
||||
'ShowUnsupportedFieldsLabel': 'Afficher les champs non pris en charge',
|
||||
'RedirectUrlFieldLabel': 'URL de redirection après l\'enregistrement (facultatif)',
|
||||
'RedirectUrlFieldDescription': 'Peut contenir [ID] comme placeholder remplacable par l\'ID de l\'élément mis à jour ou créé. Exemple: /list/Test/DispForm.aspx?ID=[ID]',
|
||||
'LocalWorkbenchUnsupported': 'L\'exécution du WebPart dans votre Workbench local n\'est pas prise en charge. Veuillez l\'exécuter dans votre site SharePoint.',
|
||||
'MissingListConfiguration': 'Veuillez configurer une liste SharePoint dans les propriétés du WebPart.',
|
||||
'ConfigureWebpartButtonText': 'Configurer le WebPart',
|
||||
'ErrorOnLoadingLists': 'Erreur de chargement des listes : ',
|
||||
}
|
||||
});
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
|
@ -7,10 +8,19 @@
|
|||
"declaration": true,
|
||||
"sourceMap": true,
|
||||
"experimentalDecorators": true,
|
||||
"skipLibCheck": true,
|
||||
"typeRoots": [
|
||||
"./node_modules/@types",
|
||||
"./node_modules/@microsoft"
|
||||
],
|
||||
"types": [
|
||||
"es6-promise",
|
||||
"es6-collections",
|
||||
"webpack-env"
|
||||
],
|
||||
"lib": [
|
||||
"es5",
|
||||
"dom",
|
||||
"es2015.collection"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue