Skip to content

Commit

Permalink
Add ability to customize dropdowncolumns columns in the list view, #339
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewtelnov committed May 14, 2018
1 parent cb12ccc commit 1149c48
Show file tree
Hide file tree
Showing 16 changed files with 205 additions and 77 deletions.
10 changes: 10 additions & 0 deletions src/editorLocalization.ts
Expand Up @@ -16,6 +16,16 @@ export var editorLocalization = {
}
return obj;
},
hasString: function(strName: string, locale: string = null) {
var loc = this.getLocale(locale);
var path = strName.split(".");
var obj = loc;
for (var i = 0; i < path.length; i++) {
obj = obj[path[i]];
if (!obj) return false;
}
return true;
},
getPropertyName: function(strName: string, locale: string = null) {
var obj = this.getProperty(strName, locale);
if (obj["name"]) return obj["name"];
Expand Down
5 changes: 4 additions & 1 deletion src/localization/english.ts
Expand Up @@ -69,6 +69,10 @@ export var enStrings = {
saving: "Saving",
saved: "Saved"
},
//Property names in table headers
pel: {
isRequired: "Required?"
},
//Property Editors
pe: {
apply: "Apply",
Expand Down Expand Up @@ -107,7 +111,6 @@ export var enStrings = {
propertyIsEmpty: "Please enter a value",
value: "Value",
text: "Text",
required: "Required?",
columnEdit: "Edit column: {0}",
itemEdit: "Edit item: {0}",

Expand Down
60 changes: 38 additions & 22 deletions src/localization/french.ts
Expand Up @@ -62,6 +62,10 @@ var frenchTranslation = {
saving: "Sauvegarde en cours",
saved: "Sauvegardé"
},
//Property names in table headers
pel: {
isRequired: "Obligatoire ?"
},
//Property Editors
pe: {
apply: "Appliquer",
Expand All @@ -83,18 +87,21 @@ var frenchTranslation = {
conditionSelectQuestion: "Sélectionner une question...",
conditionButtonAdd: "Ajouter",
conditionButtonReplace: "Remplacer",
conditionHelp: "Veuillez entrer une expression booléenne. Elle doit retourner Vrai(true) pour garder la question/page visible. Par exemple: {question1} = \"valeur1\" or ({question2} = 3 and {question3} < 5)",
expressionHelp: "Veuillez entrer une expression. Vous pouvez utiliser des accolades pour accéder aux valeurs des questions '{question1} + {question2}', '({prix}*{quantite}) * (100 - {remise})'",
aceEditorHelp: "Appuyer sur Ctrl + espace pour obtenir une aide pour la saisie d'expression",
conditionHelp:
'Veuillez entrer une expression booléenne. Elle doit retourner Vrai(true) pour garder la question/page visible. Par exemple: {question1} = "valeur1" or ({question2} = 3 and {question3} < 5)',
expressionHelp:
"Veuillez entrer une expression. Vous pouvez utiliser des accolades pour accéder aux valeurs des questions '{question1} + {question2}', '({prix}*{quantite}) * (100 - {remise})'",
aceEditorHelp:
"Appuyer sur Ctrl + espace pour obtenir une aide pour la saisie d'expression",
aceEditorRowTitle: "Ligne courante",
aceEditorPanelTitle: "Panneau courant",
showMore: "Pour plus d'informations, veuillez vous référer à la documentation",
showMore:
"Pour plus d'informations, veuillez vous référer à la documentation",
assistantTitle: "Questions disponibles :",
cellsEmptyRowsColumns: "Il faut au minimum une ligne ou une colonne",
propertyIsEmpty: "Veuillez entrer une valeur pour la propriété",
value: "Valeur",
text: "Texte",
required: "Obligatoire ?",
columnEdit: "Éditer la colonne: {0}",
itemEdit: "Éditer l'item: {0}",
url: "URL",
Expand All @@ -114,13 +121,14 @@ var frenchTranslation = {
rows: "Nombre de lignes",
placeHolder: "Placeholder (indice dans le champ)",
showPreview: "L'aperçu d'image est-il affiché ?",
storeDataAsText: "Stocker le contenu du fichier dans le résultat JSON sous forme de texte",
storeDataAsText:
"Stocker le contenu du fichier dans le résultat JSON sous forme de texte",
maxSize: "Taille maximum du fichier en octets",
imageHeight: "Hauteur de l'image",
imageWidth: "Largeur de l'image",
rowCount: "Nombre de lignes",
addRowText: "Texte bouton \"Ajouter une ligne\"",
removeRowText: "Texte bouton \"Supprimer une ligne\"",
addRowText: 'Texte bouton "Ajouter une ligne"',
removeRowText: 'Texte bouton "Supprimer une ligne"',
minRateDescription: "Description note minimum",
maxRateDescription: "Description note maximum",
inputType: "Type de champ",
Expand All @@ -135,28 +143,35 @@ var frenchTranslation = {
locale: "Langue par défaut",
mode: "Mode (édition/lecture seule)",
clearInvisibleValues: "Effacer les valeurs invisibles",
cookieName: "Nom du cookie (pour empêcher de compléter 2 fois le questionnaire localement)",
cookieName:
"Nom du cookie (pour empêcher de compléter 2 fois le questionnaire localement)",
sendResultOnPageNext: "Envoyer les résultats au changement de page",
storeOthersAsComment: "Sauvegarder la valeur \"Autres\" dans un champ séparé",
storeOthersAsComment: 'Sauvegarder la valeur "Autres" dans un champ séparé',
showPageTitles: "Afficher les titres de pages",
showPageNumbers: "Afficher les numéros de pages",
pagePrevText: "Texte bouton page précédente",
pageNextText: "Texte bouton page suivante",
completeText: "Texte bouton terminer",
startSurveyText: "Texte bouton commencer",
showNavigationButtons: "Afficher les boutons de navigation (navigation par défaut)",
showPrevButton: "Afficher le bouton précédent (l'utilisateur pourra retourner sur la page précédente)",
firstPageIsStarted: "La première page du questionnaire est une page de démarrage.",
showCompletedPage: "Afficher la page \"terminé\" à la fin (completedHtml)",
goNextPageAutomatic: "Aller à la page suivante automatiquement pour toutes les questions",
showNavigationButtons:
"Afficher les boutons de navigation (navigation par défaut)",
showPrevButton:
"Afficher le bouton précédent (l'utilisateur pourra retourner sur la page précédente)",
firstPageIsStarted:
"La première page du questionnaire est une page de démarrage.",
showCompletedPage: 'Afficher la page "terminé" à la fin (completedHtml)',
goNextPageAutomatic:
"Aller à la page suivante automatiquement pour toutes les questions",
showProgressBar: "Afficher la barre de progression",
questionTitleLocation: "Emplacement du titre de la question",
requiredText: "La question requiert un/des symbole(s)",
questionStartIndex: "Index de départ de la question (1, 2 ou 'A', 'a')",
showQuestionNumbers: "Afficher les numéros de questions",
questionTitleTemplate: "Gabarit du titre de question, par défaut : '{no}. {require} {title}'",
questionTitleTemplate:
"Gabarit du titre de question, par défaut : '{no}. {require} {title}'",
questionErrorLocation: "Emplacement de l'erreur",
focusFirstQuestionAutomatic: "Focus sur la première question au changement de page",
focusFirstQuestionAutomatic:
"Focus sur la première question au changement de page",
questionsOrder: "Ordre des éléments sur la page",
maxTimeToFinish: "Temps maximum pour terminer le questionnaire",
maxTimeToFinishPage: "Temps maximum pour terminer une page",
Expand Down Expand Up @@ -190,7 +205,7 @@ var frenchTranslation = {
triggers: "Déclencheurs",
templateTitle: "Titre de gabarit"
},
editProperty: "Éditer la propriété \"{0}\"",
editProperty: 'Éditer la propriété "{0}"',
items: "[ Éléments: {0} ]",
enterNewValue: "Veuillez saisir la valeur.",
noquestions: "Il n'y a aucune question dans le questionnaire.",
Expand All @@ -203,7 +218,8 @@ var frenchTranslation = {
triggerRunIf: "Exécuter si",
triggerSetToName: "Changer la valeur de: ",
triggerSetValue: "à: ",
triggerIsVariable: "Ne placez pas la variable dans le résultat du questionnaire.",
triggerIsVariable:
"Ne placez pas la variable dans le résultat du questionnaire."
},
//Property values
pv: {
Expand Down Expand Up @@ -312,7 +328,7 @@ var frenchTranslation = {
name: "Nom",
title: {
name: "Titre",
title: "Laissez vide, si même texte que le \"Nom\""
title: 'Laissez vide, si même texte que le "Nom"'
},
navigationButtonsVisibility: "Visibilité des boutons de navigation",
questionsOrder: "Ordre des questions",
Expand Down Expand Up @@ -342,7 +358,7 @@ var frenchTranslation = {
choicesOrder: "Ordre des choix",
choicesByUrl: "Choix par API",
otherText: "Autre texte",
otherErrorText: "Texte d'erreur champ \"Autre\"",
otherErrorText: 'Texte d\'erreur champ "Autre"',
storeOthersAsComment: "Sauvegarder choix autre comme commentaire",
label: "Intitulé",
showTitle: "Afficher le titre",
Expand Down Expand Up @@ -439,6 +455,6 @@ var frenchTranslation = {
isAllRowRequired: "Toutes les lignes sont-elle obligatoires ?",
locale: "Langue"
}
}
};

editorLocalization.locales["fr"] = frenchTranslation;
5 changes: 4 additions & 1 deletion src/localization/german.ts
Expand Up @@ -52,6 +52,10 @@ var germanTranslation = {
correctJSON: "Bitte JSON korrigieren.",
surveyResults: "Umfrageergebnis: "
},
//Property names in table headers
pel: {
isRequired: "Erforderlich?"
},
//Property Editors
pe: {
apply: "Anwenden",
Expand All @@ -73,7 +77,6 @@ var germanTranslation = {
propertyIsEmpty: "Bitte geben Sie einen Wert ein",
value: "Wert",
text: "Text",
required: "Erforderlich?",
columnEdit: "Spalte bearbeiten: {0}",
itemEdit: "Element bearbeiten: {0}",

Expand Down
35 changes: 23 additions & 12 deletions src/localization/italian.ts
Expand Up @@ -28,7 +28,6 @@ var italianTranslation = {
rating: "Valutazione",
text: "Testo semplice",
expression: "Espressione"

},
// strings for editor
ed: {
Expand Down Expand Up @@ -61,6 +60,10 @@ var italianTranslation = {
saving: "Salvataggio",
saved: "Salvato"
},
//Property names in table headers
pel: {
isRequired: "Richiesto"
},
// strings for property editors
pe: {
apply: "Applica",
Expand All @@ -80,10 +83,12 @@ var italianTranslation = {
conditionSelectQuestion: "Seleziona domanda...",
conditionButtonAdd: "Aggiungi",
conditionButtonReplace: "Sostituisci",
conditionHelp: "Per favore, inserire una espressione booleana. Dovrebbe restituire true per mantenere la domanda/pagina visibile. Ad esempio: {domanda1} = 'valore1' or ({domanda2} * {domanda4} > 20 and {domanda3} < 5)",
conditionHelp:
"Per favore, inserire una espressione booleana. Dovrebbe restituire true per mantenere la domanda/pagina visibile. Ad esempio: {domanda1} = 'valore1' or ({domanda2} * {domanda4} > 20 and {domanda3} < 5)",
expressionHelp:
"Per favore inserire una espressione. Puoi usare parentesi graffe per ottenere l'accesso ai valori delle domande: '{domanda1} + {domanda2}', '({prezzo}*{qta}) * (100 - {sconto})'",
aceEditorHelp: "Premi ctrl+space per ottenere un suggerimento sul completamento dell'espressione",
"Per favore inserire una espressione. Puoi usare parentesi graffe per ottenere l'accesso ai valori delle domande: '{domanda1} + {domanda2}', '({prezzo}*{qta}) * (100 - {sconto})'",
aceEditorHelp:
"Premi ctrl+space per ottenere un suggerimento sul completamento dell'espressione",
aceEditorRowTitle: "Riga corrente",
aceEditorPanelTitle: "Pannello Corrente",
showMore: "Per favore, per maggiori dettagli guardare la documentazione",
Expand All @@ -92,7 +97,6 @@ var italianTranslation = {
propertyIsEmpty: "Per favore, inserire un valore per la propietà",
value: "Valore",
text: "Testo",
required: "Richiesto",
columnEdit: "Modifica colonna: {0}",
itemEdit: "Modifica elemento: {0}",
url: "URL",
Expand Down Expand Up @@ -132,19 +136,25 @@ var italianTranslation = {
locale: "Lingua Default",
mode: "Modalità (modifica/sola lettura)",
clearInvisibleValues: "Pulischi valori non visibili",
cookieName: "Nome cookie (per disabilitare esegui il questionario due volte in locale)",
sendResultOnPageNext: "Invia i risultati del sondaggio alla pagina successiva",
cookieName:
"Nome cookie (per disabilitare esegui il questionario due volte in locale)",
sendResultOnPageNext:
"Invia i risultati del sondaggio alla pagina successiva",
storeOthersAsComment: "Memorizza il valore 'altri' in campi separati",
showPageTitles: "Visualizza titoli pagina",
showPageNumbers: "Visualizza numeri pagina",
pagePrevText: "Testo bottone pagina precedente",
pageNextText: "Testo bottone pagina successiva",
completeText: "Testo bottone Completato",
startSurveyText: "Testo bottone Inizia",
showNavigationButtons: "Visualizza bottoni di navigazione (navigazione di default)",
showPrevButton: "Visualizza bottone precedente(l'utente può tornare alla pagina precedente)",
firstPageIsStarted: "La prima pagina nel questionario è la pagina iniziale.",
showCompletedPage: "Visualizza la pagina completata alla fine del questionario (completedHtml)",
showNavigationButtons:
"Visualizza bottoni di navigazione (navigazione di default)",
showPrevButton:
"Visualizza bottone precedente(l'utente può tornare alla pagina precedente)",
firstPageIsStarted:
"La prima pagina nel questionario è la pagina iniziale.",
showCompletedPage:
"Visualizza la pagina completata alla fine del questionario (completedHtml)",
goNextPageAutomatic:
"Rispondendo a tutte le domande, vai alla pagina successiva in automatico.",
showProgressBar: "Visualizza barra di avanzamento",
Expand All @@ -155,7 +165,8 @@ var italianTranslation = {
questionTitleTemplate:
"Template titolo della domanda, il default è: '{no}. {require} {title}'",
questionErrorLocation: "Posizione notifica errore sulla domanda",
focusFirstQuestionAutomatic: "Sul cambio pagina, posiziona il cursore sulla prima domanda",
focusFirstQuestionAutomatic:
"Sul cambio pagina, posiziona il cursore sulla prima domanda",
questionsOrder: "Ordine di elementi sulla pagina",
maxTimeToFinish: "Tempo massimo per terminare il sondaggio",
maxTimeToFinishPage: "Tempo massimo per terminare una pagina del sondaggio",
Expand Down
5 changes: 4 additions & 1 deletion src/localization/persian.ts
Expand Up @@ -61,6 +61,10 @@ var persianStrings = {
saving: "در حال ذخیره سازی",
saved: "ذخیره شد"
},
//Property names in table headers
pel: {
isRequired: "اجباری؟"
},
//Property Editors
pe: {
apply: "اعمال",
Expand Down Expand Up @@ -90,7 +94,6 @@ var persianStrings = {
propertyIsEmpty: "لطفا یک مقدار وارد کنید",
value: "مقدار",
text: "متن",
required: "اجباری؟",
columnEdit: "ویرایش ستون: {0}",
itemEdit: "ویرایش آیتم: {0}",

Expand Down
5 changes: 4 additions & 1 deletion src/localization/polish.ts
Expand Up @@ -61,6 +61,10 @@ var polishStrings = {
saving: "Trwa zapis",
saved: "Zapisano"
},
//Property names in table headers
pel: {
isRequired: "Wymagane?"
},
//Property Editors
pe: {
apply: "Zastosuj",
Expand Down Expand Up @@ -89,7 +93,6 @@ var polishStrings = {
propertyIsEmpty: "Podaj wartość",
value: "Wartość",
text: "Etykieta",
required: "Wymagane?",
columnEdit: "Edit column: {0}",
itemEdit: "Edit item: {0}",

Expand Down
5 changes: 4 additions & 1 deletion src/localization/portuguese.ts
Expand Up @@ -48,6 +48,10 @@ var portugueseTranslation = {
correctJSON: "Por favor corrija o JSON.",
surveyResults: "Resultado da pesquisa: "
},
//Property names in table headers
pel: {
isRequired: "Obrigatório?"
},
//Property Editors
pe: {
apply: "Aplicar",
Expand All @@ -69,7 +73,6 @@ var portugueseTranslation = {
propertyIsEmpty: "Por favor informe um valor na propriedade",
value: "Valor",
text: "Texto",
required: "Obrigatório?",
columnEdit: "Editar coluna: {0}",
itemEdit: "Editar item: {0}",

Expand Down
5 changes: 4 additions & 1 deletion src/localization/simplified-chinese.ts
Expand Up @@ -61,6 +61,10 @@ var simplifiedChineseTranslation = {
saving: "保存中...",
saved: "已保存"
},
//Property names in table headers
pel: {
isRequired: "是否为必填项?"
},
// strings for property editors
pe: {
apply: "应用",
Expand All @@ -84,7 +88,6 @@ var simplifiedChineseTranslation = {
propertyIsEmpty: "请为该属性设定一个值",
value: "值",
text: "显示文本",
required: "是否为必填项?",
columnEdit: "编辑列: {0}",
itemEdit: "编辑选项: {0}",
hasOther: "可添加其他答案?",
Expand Down
5 changes: 4 additions & 1 deletion src/localization/spanish.ts
Expand Up @@ -62,6 +62,10 @@ var spanishTranslation = {
saving: "Salvando",
saved: "Salvado"
},
//Property names in table headers
pel: {
isRequired: "Requerido?"
},
//Property Editors
pe: {
apply: "Aplicar",
Expand Down Expand Up @@ -95,7 +99,6 @@ var spanishTranslation = {
propertyIsEmpty: "Por favor proporcione un valor",
value: "Valor",
text: "Texto",
required: "Requerido?",
columnEdit: "Editar columna: {0}",
itemEdit: "Editar artículo: {0}",
url: "URL",
Expand Down
3 changes: 0 additions & 3 deletions src/propertyEditors/propertyItemsEditor.ts
Expand Up @@ -61,9 +61,6 @@ export class SurveyPropertyItemsEditor extends SurveyPropertyModalEditor {
super.setup();
this.updateValue();
}
public beforeShow() {
super.beforeShow();
}
protected getItemsFromValue(value: any = null): Array<any> {
var items = [];
if (!value) value = this.editingValue;
Expand Down

0 comments on commit 1149c48

Please sign in to comment.