editArea

Mots-clés : 

Ce sujet a 7 réponses, 2 participants et a été mis à jour par Olivier Olivier, il y a 3 mois et 1 semaine.

  • Auteur
    Messages
  • #4415

    Julien
    Participant

    Bonjour,

    J’ai inséré l’éditeur editArea en ajoutant le code suivant dans main.phtml :

    !read js/edit_area.phtml code1 python

    Je souhaiterai mettre la fenêtre en mode readonly.

    Après lecture de la doc la commande suivante fonctionne si elle est liée à un bouton.

    <span onclick="readonly();" class="wims_button wims_warning" style="cursor:pointer;">readonly</span>
    function readonly(){{editAreaLoader.execCommand('$(slib_id)', 'set_editable', !editAreaLoader.execCommand('$(slib_id)', 'is_editable'));}

    Par contre je souhaiterai mettre cette fenêtre en mode readonly dès le chargement de la page. La commande précédente ne fonctionne plus. J’ai vu qu’en mettant l’id à wims_show l’initialisation est correcte mais je préférerais garder la main avec uniquement du js.
    La fonction qui lance l’éditeur est la suivante :

    editAreaLoader.init({
    			id: "code1"	
    			,start_highlight: true
    			,allow_toggle: true
    			,language: "fr"
    			,syntax: "python"
    			,min_width: 150
    			,min_height:4
    			,is_editable:true
    			,toolbar: "search, go_to_line, fullscreen, |, undo, redo, |, select_font, |, syntax_selection, |, highlight, reset_highlight, |, help"
    			,syntax_selection_allow: "wimsoef,wimsdata,wims,css,html,js,gp,octave,flydraw,wimsdoc,python"
    			,show_line_colors: true
    		});	

    Un petit coup de pouce est le bienvenue.

    • Ce sujet a été modifié le il y a 3 mois et 2 semaines par  Julien.
  • #4417
    Olivier
    Olivier
    Admin bbPress

    Bonjour Julien,
    Peux-tu mettre un lien vers l’aide dont tu parles stp ?

    J’imagine qu’il y a autre chose dans ton main.phtml que simplement « js/edit_area.phtml » ?

    Olivier Bado - Université Nice Sophia Antipolis

  • #4418

    Julien
    Participant

    Hello Olivier,

    Le lien vers l’aide de editarea : https://www.cdolivet.com/editarea/

    Dans mon fichier main.phtml, il n’y a que cette commande et je fais l’exercice en oef. Par contre j’utilise une slib qui contient la ligne suivante dans le slib_out :

    function play(){editAreaLoader.execCommand('$(slib_id)', 'set_editable', !editAreaLoader.execCommand('$(slib_id)', 'is_editable'));\

    Il est peut-être plus simple que je te communique les source de la page html…

    voili voilou

    • Cette réponse a été modifiée le il y a 3 mois et 1 semaine par  Julien.
  • #4420
    Olivier
    Olivier
    Admin bbPress

    Bonjour Julien,
    En fait c’est très simple : la personne qui a intégré edit_area dans wims y avait déja pensé. il suffit de mettre « wims_show » dans l’id de ta zone de texte.

    exemple en « readonly » :

    <textarea id="wims_show_code1" class="nowrap">
    print "Hello World"
    </textarea>
    !read js/edit_area.phtml wims_show_code1 python

    Olivier Bado - Université Nice Sophia Antipolis

  • #4421

    Julien
    Participant

    Bonjour Olivier,

    Effectivement cela fonctionne mais j’avais déjà évoqué cette méthode lors de mon premier post.
    En faite je construis une librairie et j’aimerai bien modifier l’affichage de la zone de texte à posteriori.
    \text{A=slib(coding/python1 code1,,readonly)}

    Le mot readonly injecte la commande : editAreaLoader.execCommand(‘$(slib_id)’, ‘set_editable’, !editAreaLoader.execCommand(‘$(slib_id)’, ‘is_editable’));

    mais sans grand succès

    J’ai aussi essayé en chargeant 2 fois edit_area.phtml dans main.phtml :
    !read js/edit_area.phtml wims_show python
    !read js/edit_area.phtml code1 python

    et en modifiant l’id mais les propriétés de textarea prennent les valeurs de l’id « wims_show » même si l’id est « code1 »

    En faites premier arrivé premier servi.

    Voili voilou

  • #4423
    Olivier
    Olivier
    Admin bbPress

    J’avoue que je ne comprend pas bien le souci.

    Je vois 2 cas :

    Cas 1 : La zone de texte est en readonly dès le chargement de la page
    ==> On lui donne alors un id « wims_show_code1 »

    Cas 2 : La zone de texte est en écriture dès le chargement de la page
    ==> On lui donne alors un id « code1 »

    Et dans les 2 cas, si pendant l’execution on souhaite changer le mode « readonly  » via javascript, on appelle la fonction dédiée (même que ci-dessus) :
    function readonly(){{editAreaLoader.execCommand('$(slib_id)', 'set_editable', !editAreaLoader.execCommand('$(slib_id)', 'is_editable'));}

    Olivier Bado - Université Nice Sophia Antipolis

  • #4424

    Julien
    Participant

    Hello Olivier,

    Si tu fais un exercice à étape, tu vas devoir te repalucher les étapes en modtool pour contrôler la commande en modifiant la variable $code1 dans !read js/edit_area.phtml $code1 python parallèlement à l’oef ce qui n’est pas forcément très pratique. Il me semblait plus simple de lancer une fonction js qui modifie à postériori les valeurs de editAreaLoader.init.

    Merci pour le coup de pouce.

    • Cette réponse a été modifiée le il y a 3 mois et 1 semaine par  Julien.
    • Cette réponse a été modifiée le il y a 3 mois et 1 semaine par  Julien.
    • Cette réponse a été modifiée le il y a 3 mois et 1 semaine par  Julien.
  • #4428
    Olivier
    Olivier
    Admin bbPress

    Si tu veux m’envoyer un exemple concret de ce que ca donnerait je veux bien essayer de mieux comprendre ce qui manque.

    Olivier Bado - Université Nice Sophia Antipolis

Vous devez être connecté pour répondre à ce sujet.