Hi,
As far as I can see, you submit the form to
'/bin/save/FormSMQ/MyCurrentPage' in javascript and *immediately* after the
submit(), you send the redirect to
'FormSMQ/MyCurrentPage?docName=LauchNextProcess'  which adds the object.
IMO, the problem is that you are not making sure that the save operation
triggered by the submit() actually has the time to finish saving and, when
the redirect loads the $doc to add the new object, it loads te $doc that
was in the database before the save operation has the time to change it, so
you end up with the previous version of the $doc to which you just add the
object.
Instead of doing the redirect yourself with window.location, why don`t you
use the 'xredirect' paremeter? You have 2 options, either add it to the URL
in the action of the form (e.g.
'/bin/save/FormSMQ/MyCurrentPage?xredirect=$xwiki.getURL("FormSMQ.CaFonctionneOuPas".....')
or just get the existing hidden input with javascript
(input[name="xredirect"]) and set its value to whatever you want
($xwiki.getURL("FormSMQ.CaFonctionneOuPas".....) before submitting the
form? This way, the save action will redirect you to wherever the xredirect
parameter tells it to and it will do so *after* completing the save
operation in the database.
Hope this helps,
Eduard
On Wed, Oct 7, 2015 at 3:38 PM, Pascal BASTIEN <pbasnews-xwiki(a)yahoo.fr>
wrote:
  Hi,
 I think I found a way to do what i want but I identify some issue
 (probably due to my ugly code)
 - my button SaveAndStuff launch this JS
   $('#inline').attr('action','/bin/save/FormSMQ/MyCurrentPage');
   // I save my CurrentPage
   $('#inline').submit();
   // I reopen my CurrentPage in view mode with param to launch my velocity
 script
    window.location = "
 
https://xxxxxxxxxx/bin/view/FormSMQ/MyCurrentPage?docName=LauchNextProcess&…quot;;
 //Open MyCurrentPage with parameters
 In FormSMQ/MyCurrentPage I have this velocity script:
 #if("$!request.docName"=='LauchNextProcess'')
   ## I add a value in a field (list) of MyClass object of currenpage
   #set($MyListActions=$MonObj.getValue($ListActionsField))
   #set($Discard=$MyListActions.add("$!MonPrefX${docName}"))
   #set ($discard=$MonObj.set($ListActionsField,$!MyListActions))
   ## I save my CurrentPage to save my previous new value
   #set ($discard=$doc.save("Nouvelle action =>
 $!MonPrefX${docName}",false))
   ##Finally I redirect to another page
   #$response.sendRedirect($xwiki.getURL("FormSMQ.CaFonctionneOuPas",
 'edit',
"template=FormSMQ.ACTemplate&parent=FormSMQ.WebHome&title=FormSMQ.CaFonctionneOuPas&TypeFic=FormSMQ.ACClass"))
       ## Stop processing, since we already sent a redirect.
       #stop
 My problem is: when I use "$doc.save", all modifications of my page are
 lost (except the new value added)!
 If I don't use "$doc.save" all page modifications are saved but of course
 my new value is not added :-(
 It is a "bit" confused but if someone understand...
 --------------------------------------------
 En date de : Mar 6.10.15, Pascal BASTIEN <pbasnews-xwiki(a)yahoo.fr> a
 écrit :
  Objet: [xwiki-users] Fw : Re: Fw : Re: How to add a button with
 confirmation to save my page?
  À: "Marius Dumitru Florea" <mariusdumitru.florea(a)xwiki.com>
  Cc: "XWiki Users" <users(a)xwiki.org>
  Date: Mardi 6 octobre 2015, 18h22
  I manage to launch save process of my
  page but I didn't manage to pass parameter in this process
  :-(
  On my page in edit mode, I add a button with this JS code:
  function SaveCurrentPage(MyForm, MyParam) {
    require(['jquery'], function ($) {
$('#inline').attr('action','/bin/save/FormSMQ/SMQ-M2-FAM-Mon+am%C3%A9lioration');
    //$('#inline').attr('method','get');
    $('#inline').submit();
    });
  };
  this code save current page and go in the view mode BUT I
  can NOT pass some parameters to my velocity code and update
  myClass object :-(
  In the other way when I submit to view mode with
$('#inline').attr('action','/bin/view/FormSMQ/SMQ-M2-FAM-Mon+am%C3%A9lioration');
  My current page is NOT saved but I can pass some parameter
  with hidden input (I can catch them with $request.aaaa in
  velocity code)
  --- En date de : Mar 6.10.15, Marius Dumitru Florea <
 mariusdumitru.florea(a)xwiki.com>
  a écrit :
  De: Marius Dumitru Florea
<mariusdumitru.florea(a)xwiki.com>
 Objet: Re: [xwiki-users] Fw : Re: How to add a button 
  with confirmation to save
my page?
  À: "XWiki Users"
<users(a)xwiki.org>
 Date: Mardi 6 octobre 2015, 12h23
 On Tue, Oct 6, 2015 at
 1:01 PM, Pascal BASTIEN <pbasnews-xwiki(a)yahoo.fr>
 wrote:
  First thxs both  but it is not 
 what I want
try to do.
 I want to keep default button "Save, 
 save and contine and Cancel" like
usual.
  With velocity I added a button  to update 
my class object on my page and redirect to another one. 
  My
  button working well in view mode but I want to
use it 
  in
  edit mode, then I must save my page before my
class 
  object
  update and redirection if not all page
modifications 
  will be
  lost.
 My main 
 problem if I rewrite my code in JS is that I can not 
  update
  my class object field attached on my page.
 (It's a shame it 
 doesn't exist an $xwiki.LaunchSaveCurrentPage)
 Can I launch 
 "save page" with javascript? My idea: i launch
 save my page in JS from edit mode to view mode with 
  param
  (do redirect on another page). With this way I
can keep 
  my
  nice existant velocity code.
  Do you 
 know how if I can launch "save
page" in JS
 then?
  I see that a 
 submit in JS go to preview
mode, maybe I must modify 
  the
  action target of #inline before submit?
 The submit button name (e.g.
 name="action_save") is not included by
 default when you submit the form using
 JavaScript (because the form
 may have
 multiple submit buttons, like in your case, and the
 JavaScript code wouldn't know what button
 to indicate in the submit
 form unless you
 explicitly indicate it). You need to add the button
 name to the submit parameters when you make the
 AJAX save request.
 Hope
 this helps,
 Marius
 
  _______________________________________________
  users mailing list
  users(a)xwiki.org
  
http://lists.xwiki.org/mailman/listinfo/users
 _______________________________________________
 users mailing list
 users(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/users