TIM-JYU / TIM

TIM (The Interactive Material) is an open-source cloud-based platform for creating interactive learning documents.
https://tim.education/view/about/en-US
MIT License
14 stars 4 forks source link

Editorin tabit #1261

Open dezhidki opened 5 years ago

dezhidki commented 5 years ago

In GitLab by @Smibu on Nov 16, 2018, 15:12

Tabien speksi

TODO: Kirjoita tähän.

Puuttuvat ominaisuudet

Keskustelu siirretty toisesta kortista:

Refaktoroin nuo pareditorin tabit seuraavaksi.

VL: Mahtuisikohan siihen sellainen, että nyt omia templateja voi tehdä vain Plugins alle ja olisi kiva että niitä voisi lisätä mihin vaan ja myös erityisesti luoda uusiakin Tabeja dokun asetuksista.

Esim. Tituksen tapauksessa että tulisi oma TDK-tabi, jonne templatet menevät.

Sitäkin voisi joskus miettiä että miten voisi itse tehdä omia henkilökohtaisia tabja (joku editortabs-dokumentti?).


ML: Joo, se siinä onkin taka-ajatuksena, että editorin laajentaminen olisi helpompaa.


VL: Mites esim saisi Uload-välilehden alle lisättyä dynaamisesti niitä tabeja joita nyt on lisätty Plugins/TDK tabin alle. Tai siis tuon TDK-tabin saisi ilmoitettu Upload-tabin alle. Koska käytännössä kun lisätään liitteitä, pitää ottaa Liite Plugin/TDK ja sitten mennä Upload ja valita tiedostoa ja sitten taas seuraavaa liitettä varten mennä takaisin Plugins/TDK. ELi tuossa tulee turhaan tabien välistä hyppelyä. Toki tuohon tabien dynaamiseen lisäämiseen voisi vielä lisätä että uudelle toiminnolla voi antaa Shrotcutin, jolloin on osan tuosta voisi hoitaa shortcutilla.


ML: Isoin työ on speksata, millä tavalla plugin ilmoittaa, että minkä tabin alle tavarat menevät.

Rajapinta on nyt tuonnäköinen:

interface IPluginMenuItemObject {
    data: string;
    expl?: string;
    text?: string;
    file?: string;
}

type PluginMenuItem = IPluginMenuItemObject | string;

interface IPluginTabOldFormat {
    text: string[];
    templates: PluginMenuItem[][];
}

interface IPluginTabNewFormat {
    templates: {[name: string]: PluginMenuItem | PluginMenuItem[]};
}

Mun ensiajatus on, että tuossa IPluginTabNewFormatissa templates voisi myös olla muotoa

templates: {[tab: string]: {[name: string]: PluginMenuItem | PluginMenuItem[]}}

eli jotain

templates:
  upload:
    TDK:
     - ...

mutta tuo menee ikävän sekavaksi, kun täytyy tutkia, että kumpaa muotoa se on.

Olisiko niin, että plugin palauttaisi (nykyisen templates lisäksi) editor_tabs, joka olisi aina tuota

editor_tabs: {[tab: string]: {[name: string]: PluginMenuItem | PluginMenuItem[]}}

muotoa? Ja minusta tuossa voisi pakottaa olemaan aina taulukko, eli

editor_tabs: {[tab: string]: {[name: string]: PluginMenuItem[]}}

VL: Siis tuossahan tarkoitin sellaisia, joissa dokumentissa lisätään tabeja/painikkeita editoriin. Toki ne pluginien ilmoittamat omat on toinen puoli asiaa.

Ja molemiin voisi kuulu se että voi antaa shortcutteja.


ML: Juu, tarkoitin periaatteessa molempia.


VL: Siis onko tuosta jotakin mitä voi käyttää?


ML: Ei vielä. Mutta otan tämän päivän hommaksi tuon, että pluginissa/dokun asetuksissa voi olla

editor_tabs: {[tab: string]: {[name: string]: PluginMenuItem[]}}

vanhan templates rinnalla. Eli esim.

editor_tabs:
  upload:
    Jokumenu:
         - text: "teksti..."
           data: mdsisältö
         - text: "teksti2..."
           data: mdsisältö2

ML: Nyt on tuolla editor_tabs:

https://timdevs5.it.jyu.fi/view/users/mikkalle/tabit


ML: Ai niin, kokonaan uusia tabeja ei voi vielä lisätä, mutta se menee helposti.


VL: OK, tuo olisi hyvä esim TDK-kannalta.

Tosin sen uploadin takia TDK makrot on melkein pakko kasata sille upload tabille jollei sitten ole "makroa", jolla jonki olemassa olevan toiminnon voi siirtää/kopioida eri tabille.

Tai sitten renameta TABin, josta en tiedä onko sekään hyvä jos muualla kirjoittaa nii sitten ei tuttua upload löydykkään mistään...


ML: Jep, nyt toimii myös uusien tabien lisäys. Laitoin myös tuotantoon.


dezhidki commented 5 years ago

In GitLab by @vesal on Nov 16, 2018, 15:30

editor_tabs:
  upload:
    Jokumenu:
         - text: "teksti..."
           data: mdsisältö
         - text: "teksti2..."
           data: mdsisältö2

Saako pikanäppäimiä tehtyä jollakin syntaksilla. Esim uploadille joku shift-ctrl-U ja omille jollakin tavalla?

dezhidki commented 5 years ago

In GitLab by @Smibu on Nov 16, 2018, 15:58

Ei saa. Pitää speksata. Vaikuttaisi että nykymuodossa ei ole "tilaa" ominaisuuksille (kuten pikanäppäimet), joten tuo menee varmaankin uusiksi. Tätä editor_tabsia ei siksi välttämättä kannata mainostaa vielä ohjeissa.

dezhidki commented 5 years ago

In GitLab by @vesal on Nov 16, 2018, 16:05

Siis minkä takia ei voisi olla:

editor_tabs:
  upload:
    Jokumenu:
         - text: "teksti..."
           shortcut: "Ctrl-J"
           data: mdsisältö

ja sitten jos jonkun olemassa olevan haluaa shortcutata, niin antaa pelkän nimen ja shorcutin ilman dataa. Tosin itse uploadhan ei ole menu, joten en tiedä mikä teksti siihen tulisi ja sitten jos käännökset joskus tulevat, niin miten ilmoitetaan ja millä kielellä se vaihdettava.

dezhidki commented 5 years ago

In GitLab by @Smibu on Nov 16, 2018, 16:57

Joo tuo rakenne toimisi, mutta tarkoitin, että jos itse tabin aktivoimiselle haluaisi antaa shortcutin (noin kommentin aluksi ymmärsin), niin nythän kaikki esim. uploadin alla olevat tulkitaan menujen nimiksi. Mutta senkin voisi kai kiertää sopimalla, että shortcut ei voi olla koskaan menun nimi. Mutta silti siitä saattaisi tulla sekavan näköinen.

Mutta jos itse tabeille ei tarvitse shortcutteja, niin sitten ei ole ongelmaa.

dezhidki commented 5 years ago

In GitLab by @Smibu on Nov 16, 2018, 17:03

Edellistä kommenttia editoitu; se oli hieman epätarkka.

dezhidki commented 5 years ago

In GitLab by @vesal on Nov 16, 2018, 17:07

editor_tabs:
  upload:
    shortcut: "Ctrl-U"
    Jokumenu:
         - text: "teksti..."
           shortcut: "Ctrl-J"
           data: mdsisältö

Tarvii vaan muutama sana varata tuosta jotka eivät sitten voi olla menujen nimiä. Mutta eikös tuon muutenkin pitäisi olla jotenkin taulukoksi ilmaistu sekä editor_tabs että sen alla oleva menut:

editor_tabs:
  - upload:
      shortcut: "Ctrl-U"
      menus:
      -  text: Jokumenu
         shortcut: "Ctrl-J"
         menus:
          - text: "teksti..."
            shortcut: "Ctrl-T"
            data: mdsisältö
dezhidki commented 5 years ago

In GitLab by @Smibu on Nov 16, 2018, 17:17

Mutta eikös tuon muutenkin pitäisi olla jotenkin taulukoksi ilmaistu sekä editor_tabs että sen alla oleva menut:

Joo, tuo rakenne on monipuolisempi ja helpommin laajennettava. Täytyy maanantaina päivittää.

dezhidki commented 5 years ago

In GitLab by @vesal on Nov 16, 2018, 17:27

varmaan tuo alkukin pitäisi olla:

editor_tabs:
  - text: upload:
    shortcut: "Ctrl-U"
    menus:

ja varmaan data pitäisi voida sanoa millä tasolla tahansa? Ja estääkö mikään tekemästä tuosta rekursiivista, eli sitten menut voivat sisältää menua ääerttömän syvälle? 1 taso ladotaan tabeihin, 2 tabille alle vaakamenuihin ja loput pystymenuihin. Eli periaattessa kaikki ovat muuten identtisiä. Jos data puuttuu, tulee alimenu. (vai saisiko data jopa olla, jolloin käytös tosin on arvaamatonta jos menua painamalla tapahtuu ja vielä aukeaa alimenu). Sittent uota voisi täydentää jossakin vaihessa niin, että datan kaverina voi olla joitakin valmiita metodikutsuja. function: ...

dezhidki commented 5 years ago

In GitLab by @Smibu on Nov 19, 2018, 14:25

Nyt formaatti on muotoa:

editor_templates:
    editor_tabs:
     - text: upload
       items:
        - text: TDK
          items:
           - tdk1
           - tdk2
           - tdk3
     - text: Oma tabi
       items:
        - text: Jokumenu
          items:
           - eka
           - toka
           - data: mdtä
             text: Nappi
        - text: Toka menu
          items:
           - koo
           - nee
           - data: mdtä2
             text: Vii

eli noihin saa lisättyä myöhemmin shortcutin ja muitakin tarvittaessa.

Ja estääkö mikään tekemästä tuosta rekursiivista, eli sitten menut voivat sisältää menua ääerttömän syvälle?

Nykyinen menukomponentti ei tue sisäkkäisiä menuja. Muuten kai voisi olla tehtävissä. En tiedä, olisiko sellainen kuitenkaan hirveän käytettävä?

dezhidki commented 5 years ago

In GitLab by @Smibu on Sep 10, 2019, 10:26

Ruksi lisätty:

toimintoja suoraan perustasolle, siis esim. jonkin tabin alle painike, josta ei avaudu menua, vaan tapahtuu suoraan jotakin