KohaSuomi / Koha-23x

(K23) Versioon 23.11 siirtyminen. Wiki-osiossa on erilaisia ohjeistuksia ja tietoa muutoksista ja uusista ominaisuuksista.
GNU General Public License v3.0
1 stars 0 forks source link

Niteen muokkauksessa nidetaulukon siirtävä JS-rimpsu ei toimi kuten aiemmin #118

Closed AnneliO closed 6 months ago

AnneliO commented 7 months ago

Mikä vikana?

Tritoniassa aikanaan tehty rimpsu, joka siirtää niteen muokkaussivulla nidetaulukon niteen tietojen muokkaamisen alapuolelle ei toimi enää samalla tavalla kuin aiemmin. Nyt sivu avautuu nidettä muokatessa taulukossa muokattavan niteen rivin kohdalle, eli joutuu rullaamaan ylöspäin, että pääsee niteen muokkaukseen. Aiemmin sivu aukeni muokkaussivun yläreunaan. Saakohan tuota enää toimimaan noin? Testikannassa voi testata, miten se nyt toimii.

Sen verran huomasin, että Muokkaus-napista avautuvan sivun osoite on hieman muuttunut aiemmasta:

https://outi-next.koha-suomi.fi/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=2323398&itemnumber=3642483&searchid=scs_1707476127172#edititem

https://outi-test.koha-suomi.fi/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=1905128&itemnumber=2400747#edititem&searchid=scs_1707476196341

/// ALKU ///
/*Siirretään item-listaus sivun loppuun itemin muokkaussivulla (Tritonia, päivitetty 2020)*/
$( document ).ready(function() {
    $( '#cat_additem #cataloguing_additem_itemlist' ).after( $( '#cat_additem #cataloguing_additem_itemlist #itemst_wrapper' ).parents( 'div' ).html() );
    $( '#cat_additem #cataloguing_additem_itemlist #itemst_wrapper' ).parent( 'div' ).hide();
    $( '#cat_additem #cataloguing_additem_itemlist' ).prepend( $( '#cat_additem #cataloguing_additem_itemlist>.row' ) );
});
/// LOPPU ///
atarnus commented 6 months ago

Tuo #edititem ei ole mennyt kohdilleen nykyiselläänkään. Ei taida onnistua enää tuo ankkuriin skrollaaminen, kun se sivu järjestellään uusiksi. Jokin muu asetus ehkä määrittelee sitä, että skrollaako linkistä avautuva uusi sivu ylös vai jääkö se johonkin vanhaan kohtaan. Kun siis testin linkit menee ylös asti, ja jos siitä vaikka painaa enteriä URLissa uudestaan, niin se liikahtaa siihen #edititem-ankkuriin.

Jos tämä on nyt ainoa paikka missä tästä syntyy ongelmia, niin voidaan korjata vaikkapa näin:

$( document ).ready(function() {
  if (window.location.pathname == '/cgi-bin/koha/cataloguing/additem.pl') {
    $( '#cat_additem #cataloguing_additem_itemlist' ).after( $( '#cat_additem #cataloguing_additem_itemlist #itemst_wrapper' ).parents( 'div' ).html() );
    $( '#cat_additem #cataloguing_additem_itemlist #itemst_wrapper' ).parent( 'div' ).hide();
    $( '#cat_additem #cataloguing_additem_itemlist' ).prepend( $( '#cat_additem #cataloguing_additem_itemlist>.row' ) );
    $(window).scrollTop(0);
  }
});

Tuon voisi ohjata skrollaamaan myös ankkuriin, mutta sitten se ei tosiaan skrollaa ihan ylös asti, eikä pelaa esim. kopioi-toiminnon kanssa, jolla on ankkuri #additema

atarnus commented 6 months ago

Näyttäisi siltä, että keskelle sivua jääminen johtuu tuosta #edititem-ankkurista. Selain suunnistaa sen kohdalle ennen kuin elementit järjestetään sivulla uudestaan. Helpoin fiksi tähän nyt on tuo scrollTop. Jos joitain muita elementtejä on samalla tavalla järjestetty uudestaan, niin "ongelma" tulee toistumaan niissä, mutta muuten linkit avautunevat ylös asti skrollautuneina.

atarnus commented 6 months ago

Vähän mysteeriksi edelleen jää, että miksi tämä ei ole käyttäytynyt samalla tavalla nykyversioissa.

Tämä testin linkki voisi selittää sen, koska tuo #edititem ei toimi URLin keskellä, vaan sen pitäisi olla viimeisenä. Mutta tilanne on sama, vaikka menen suunnistelemaan tuonne muokkauksiin ja sieltä löytyy linkkejä, joissa tuo #-ankkuri on lopussa. Edelleen latautuu sivun alkuun, ei siihen ankkurin (uudelle tai vanhalle) paikalle.

https://outi-test.koha-suomi.fi/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=1905128&itemnumber=2400747#edititem&searchid=scs_1707476196341

atarnus commented 6 months ago

Tässä voisi miettiä, että onko tämän sivun uudelleenjärjestäminen edes tarpeen, jos nykyään tuo ankkuriin siirtyminen toimii. Joskin vaikuttaa vähän siltä, että se ei toimi mitenkään optimaalisesti, "skrollaa laiskasti". Kokeilin tähän vähän erilaisia jippoja skrollata ruutua uusiksi latauksen jälkeen, mutta tuo oikeaan kohtaan skrollaaminen toimii hyvinkin epäjohdonmukaisesti (välillä se toimii ihan oikein, ja välillä vaan yksinkertaisesti ei) ja taitaa joku välimuisti siellä vähän sekottaa vielä lisää.

Jos päädytään siihen, että nidetaulukkoa enää tarvi siirtää muokkauslomakkeen alle, niin voidaan yrittää "tehostaa" sivun oikeaan kohtaan siirtymistä esim. document.getElementById("edititem").scrollIntoView();

atarnus commented 6 months ago

Huomasin nyt myös testillä noita rikkinäisiä linkkejä, jossa ankkuri on keskellä urlia tai esim searchid=#edititem. Vaikuttaisi siltä, että nimenomaan tuon searchid:n kanssa on ollut jotain virheitä noissa linkeissä. (Siltikään ihan oikein kirjoitettukaan osoite ei mene ensimmäisellä latauksella ankkurikohtaan vaan vaatii esim. enterin painamisen urlin kohdalla.)

Useita eri keinoja kokeilleena täytyy sanoa, että vaikka nyt noita on fiksattu, niin ei tuo kohdalleen skrollaaminen toimi edelleenkään lähellekään moitteettomasti. Vaikka kuinka komentaa uudestaan menemään oikeaan ankkuriin, niin se edelleen pomppaa vähän sivuun, jos se on niin tehnyt alunperinkin. Kun taas tuo sivun uudelleenjärjestely ja ylälaitaan hyppääminen toimii ihan hyvin. Eli uudistaisin nykyisen rimpsun niin kuin tuossa 2. viestissä.

AnneliO commented 6 months ago

Kiitos! Laitoin viestin nro 2 rimpsun ehdolle JS-wikiin Tiedonhaun vapaaehtoisiin. :)