package Ġkotlinx . html . bootstrap Ċ Ċ import Ġk ara . JsonObject Ċ import Ġk ara . Request Ċ import Ġk ara . json Value Ċ import Ġk ara . link Ċ import Ġkotlinx . html . A Ċ import Ġkotlinx . html . Html Body Tag Ċ import Ġkotlinx . html . a Ċ import Ġkotlinx . html . onClick Ċ import Ġkotlinx . reflection . Serialization Ċ Ċ private Ġval Ġempty : ĠJsonObject . ()-> Unit Ġ= Ġ{} Ċ fun ĠRequest . jQuery Post ( done : ĠString ? Ġ= Ġnull , Ġfail : ĠString ? Ġ= Ġnull , Ġalways : ĠString ? Ġ= Ġnull , Ġparams Builder : JsonObject . ()-> Unit Ġ= Ġempty ): ĠString Ġ= Ġbuild String Ġ{ ĊĠĠĠ Ġval Ġparts Ġ= Ġrequest Parts () ĊĠĠĠ Ġappend (" jQuery . post (' ") ĊĠĠĠ Ġappend ( parts . first ) ĊĠĠĠ Ġappend ("' ") ĊĊĠĠĠ Ġval Ġparams Ġ= ĠJsonObject () ĊĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġparts . second ) Ġ{ ĊĠĠĠĠĠĠĠ Ġparams . json Value ( key , ĠSerialization . serialize ( value ) !! ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġparams . params Builder () ĊĊĠĠĠ Ġif Ġ(! params . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġappend (",") ĊĠĠĠĠĠĠĠ Ġparams . build ( this ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġappend (" )") ĊĊĠĠĠ Ġif Ġ( done Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġappend (". done ( function ( data ) Ġ{ Ġ$ done Ġ}) ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( fail Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġappend (". fail ( function ( data ) Ġ{ Ġ$ fail Ġ}) ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( always Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġappend (". always ( function ( data ) Ġ{ Ġ$ always Ġ}) ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġappend (' ; ') Ċ } Ċ Ċ fun ĠHtml Body Tag . post ( link : ĠRequest , Ġdone : ĠString ? Ġ= Ġnull , Ġfail : ĠString ? Ġ= Ġnull , Ġalways : ĠString ? Ġ= Ġnull , Ġparams Builder : JsonObject . ()-> Unit Ġ= Ġempty , Ġcontent : ĠA . ()-> Unit ) Ġ{ ĊĠĠĠ Ġa Ġ{ ĊĠĠĠĠĠĠĠ Ġhref =" javascript : void ( 0 ); ". link () ĊĊĠĠĠĠĠĠĠ Ġval Ġbefore Ġ= Ġ" if Ġ($( this ). hasClass (' spinner ')) Ġreturn Ġfalse ; Ġ$( this ). addClass (' spinner '); " ĊĠĠĠĠĠĠĠ Ġval Ġafter Ġ= Ġ"$( this ). removeClass (' spinner '); " Ġ+ Ġ( always Ġ?: Ġ"") ĊĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġbefore Ġ+ Ġlink . jQuery Post ( done Ġ?: Ġ" location . reload ()", fail , Ġafter , Ġparams Builder ) ĊĊĠĠĠĠĠĠĠ Ġcontent () ĊĠĠĠ Ġ} Ċ } Ċ