From 9c7400614878c64a93168d306a2118aaf360f6f5 Mon Sep 17 00:00:00 2001 From: adevopg <133045315+adevopg@users.noreply.github.com> Date: Sun, 1 Dec 2024 20:35:40 +0100 Subject: [PATCH] Implementadas Varias funciones de Pago de Stripe para Opciones Personajes, La Tienda Todavia no esta implementada del todo (EXPERIMENTAL) --- home/__pycache__/admin.cpython-313.pyc | Bin 9117 -> 11287 bytes home/__pycache__/models.cpython-313.pyc | Bin 14091 -> 19798 bytes home/__pycache__/pagos_stripe.cpython-313.pyc | Bin 0 -> 1151 bytes home/__pycache__/urls.cpython-313.pyc | Bin 4549 -> 7528 bytes home/__pycache__/views.cpython-313.pyc | Bin 66679 -> 99555 bytes home/admin.py | 34 +- home/models.py | 85 +- home/pagos_stripe.py | 24 + .../nw-js-handlers/change_faction_response.js | 45 ++ .../nw-js-handlers/change_race_response.js | 73 ++ .../nw-js-handlers/customize_response.js | 52 ++ .../nw-ryu/nw-js-handlers/gold_response.js | 35 + .../nw-js-handlers/level_up_response.js | 47 ++ .../nw-ryu/nw-js-handlers/login_response.js | 2 +- .../nw-ryu/nw-js-handlers/register.js | 2 +- .../nw-ryu/nw-js-handlers/rename_response.js | 75 ++ .../nw-ryu/nw-js-handlers/revive_response.js | 37 + .../nw-js-handlers/security_token_response.js | 2 +- .../nw-ryu/nw-js-handlers/store_response.js | 28 + .../nw-js-handlers/trade_points_response.js | 6 +- .../transfer_character_response.js | 37 + .../nw-ryu/nw-js-handlers/unstuck_response.js | 4 +- home/templates/account/change_faction.html | 9 + .../account/change_faction_cancel.html | 9 + .../account/change_faction_success.html | 9 + home/templates/account/change_race.html | 9 + .../templates/account/change_race_cancel.html | 9 + .../account/change_race_success.html | 9 + .../account/customize_character.html | 9 + home/templates/account/customize_success.html | 9 + home/templates/account/gold_cancel.html | 9 + home/templates/account/gold_character.html | 9 + home/templates/account/gold_success.html | 9 + home/templates/account/level_up.html | 9 + home/templates/account/level_up_cancel.html | 9 + home/templates/account/level_up_success.html | 9 + home/templates/account/rename_cancel.html | 9 + home/templates/account/rename_character.html | 9 + home/templates/account/rename_success.html | 9 + home/templates/account/revive_character.html | 9 + home/templates/account/store_novawow.html | 9 + home/templates/account/transfer_cancel.html | 9 + .../templates/account/transfer_character.html | 9 + home/templates/account/transfer_success.html | 9 + home/templates/partials/change_faction.html | 77 ++ .../partials/change_faction_cancel.html | 0 .../partials/change_faction_success.html | 0 home/templates/partials/change_race.html | 46 ++ .../partials/change_race_cancel.html | 0 .../partials/change_race_success.html | 1 + .../partials/customize_character.html | 51 ++ .../templates/partials/customize_success.html | 44 ++ home/templates/partials/d_points.html | 4 +- home/templates/partials/descargas.html | 2 +- home/templates/partials/gold_cancel.html | 0 home/templates/partials/gold_character.html | 32 + home/templates/partials/gold_success.html | 0 home/templates/partials/head.html | 10 + home/templates/partials/level_up.html | 42 + home/templates/partials/level_up_cancel.html | 0 home/templates/partials/level_up_success.html | 0 home/templates/partials/my-account.html | 2 +- home/templates/partials/recover_account.html | 6 +- home/templates/partials/register.html | 6 +- home/templates/partials/rename_cancel.html | 34 + home/templates/partials/rename_character.html | 43 + home/templates/partials/rename_success.html | 0 home/templates/partials/revive_character.html | 39 + home/templates/partials/store_novawow.html | 32 + home/templates/partials/trade_points.html | 4 +- home/templates/partials/transfer_cancel.html | 0 .../partials/transfer_character.html | 28 + home/templates/partials/transfer_success.html | 0 .../templates/partials/unstuck_character.html | 2 +- home/urls.py | 28 + home/views.py | 738 +++++++++++++++++- novawow/__pycache__/settings.cpython-313.pyc | Bin 4593 -> 4875 bytes novawow/settings.py | 4 + 78 files changed, 2036 insertions(+), 25 deletions(-) create mode 100644 home/__pycache__/pagos_stripe.cpython-313.pyc create mode 100644 home/pagos_stripe.py create mode 100644 home/static/nw-themes/nw-ryu/nw-js-handlers/change_faction_response.js create mode 100644 home/static/nw-themes/nw-ryu/nw-js-handlers/change_race_response.js create mode 100644 home/static/nw-themes/nw-ryu/nw-js-handlers/customize_response.js create mode 100644 home/static/nw-themes/nw-ryu/nw-js-handlers/gold_response.js create mode 100644 home/static/nw-themes/nw-ryu/nw-js-handlers/level_up_response.js create mode 100644 home/static/nw-themes/nw-ryu/nw-js-handlers/rename_response.js create mode 100644 home/static/nw-themes/nw-ryu/nw-js-handlers/revive_response.js create mode 100644 home/static/nw-themes/nw-ryu/nw-js-handlers/store_response.js create mode 100644 home/static/nw-themes/nw-ryu/nw-js-handlers/transfer_character_response.js create mode 100644 home/templates/account/change_faction.html create mode 100644 home/templates/account/change_faction_cancel.html create mode 100644 home/templates/account/change_faction_success.html create mode 100644 home/templates/account/change_race.html create mode 100644 home/templates/account/change_race_cancel.html create mode 100644 home/templates/account/change_race_success.html create mode 100644 home/templates/account/customize_character.html create mode 100644 home/templates/account/customize_success.html create mode 100644 home/templates/account/gold_cancel.html create mode 100644 home/templates/account/gold_character.html create mode 100644 home/templates/account/gold_success.html create mode 100644 home/templates/account/level_up.html create mode 100644 home/templates/account/level_up_cancel.html create mode 100644 home/templates/account/level_up_success.html create mode 100644 home/templates/account/rename_cancel.html create mode 100644 home/templates/account/rename_character.html create mode 100644 home/templates/account/rename_success.html create mode 100644 home/templates/account/revive_character.html create mode 100644 home/templates/account/store_novawow.html create mode 100644 home/templates/account/transfer_cancel.html create mode 100644 home/templates/account/transfer_character.html create mode 100644 home/templates/account/transfer_success.html create mode 100644 home/templates/partials/change_faction.html create mode 100644 home/templates/partials/change_faction_cancel.html create mode 100644 home/templates/partials/change_faction_success.html create mode 100644 home/templates/partials/change_race.html create mode 100644 home/templates/partials/change_race_cancel.html create mode 100644 home/templates/partials/change_race_success.html create mode 100644 home/templates/partials/customize_character.html create mode 100644 home/templates/partials/customize_success.html create mode 100644 home/templates/partials/gold_cancel.html create mode 100644 home/templates/partials/gold_character.html create mode 100644 home/templates/partials/gold_success.html create mode 100644 home/templates/partials/level_up.html create mode 100644 home/templates/partials/level_up_cancel.html create mode 100644 home/templates/partials/level_up_success.html create mode 100644 home/templates/partials/rename_cancel.html create mode 100644 home/templates/partials/rename_character.html create mode 100644 home/templates/partials/rename_success.html create mode 100644 home/templates/partials/revive_character.html create mode 100644 home/templates/partials/store_novawow.html create mode 100644 home/templates/partials/transfer_cancel.html create mode 100644 home/templates/partials/transfer_character.html create mode 100644 home/templates/partials/transfer_success.html diff --git a/home/__pycache__/admin.cpython-313.pyc b/home/__pycache__/admin.cpython-313.pyc index 5df01a29f1fb52d25dc293f142871220adb40ce5..09bac104b42532bdd754451163e6d251f3b8722b 100644 GIT binary patch delta 4810 zcma)9Uu;v?8Nb)D9smEA7~8R9JO5)+AO*sJQb@|b)CpM#bWkb6+}JnHZ5=y0*M`zQ z1eS_Yb(0d#L)k_r_E2p+Y*UBShf14NRqG~A)rj&Cbfrq{ang{og^7nr+rIA{``V@s zfW*(|eBbZ;bI$jjb5A}w`SE$zrqgK?;NRi5#ymJE;p8=J?1BnYzRu~4#&v@w}wES!vxNL-i>P93BR zqTd}I5;2k>kl3_1HH@-=uObTyox&Mwn{dVky4UEW*hXJ6T1}lgv$c+C2d1Nr*`+i6 zbxbEPU3JWEo!L^ybOX~<%XIg!th^xiO*c)ALsnr^pKk50vu*)aYpu1ZUuSyin0{bx zt79f~rnin60A{d;=@i+n(Pq(Q4S}w$MrU;oux!I1kLcOHRQB9uZ3lU@j=zKPV<3;~ z{GDaKKVYlNqyt!33%xS#UCg=*p7bCRhaabO)l#$&|`*G{r7bJe?b2-=y%uZ zPw$5r;XPZ6QzNxAKAtvD4-Fak7m+2m*m_V3w&lh zS;%Gh(0P_fd39DMIHjMMUZsyBRxwD$XlO8NOqjI5cfE~d=9T>4J+S_}qGnpatnLaE zcg^%~=Ak~#kyF%SDx;_iIq8b#Po>nNR8-O_saPb+OsOcVsT7IP)6GXZNEm!DKxdoH z0M~_wE$vI=q>pLnw~<4KTza-Va4V=12F;#@MWm$pLMdM)QIv^f2U^7dCKAo01Agg< zul1N_DUggzlzf)-RtP*mKTZcKfR0rM046bTb^L)lwlvC#1CU9GZ_5wZw)krIP3DQU zp`&&LmI8@ahBd(kQHH?C37oN|4psx4X92vm732PKkx#1zJdFy8+ev& zpr_{0@cmi!&a-%@`Jc?4G7=R_F82ndW^jWAY?z&oJzse{c! z>_zkEgqT1M0wY&LOwent5Itf!y0{-1hX6G1tel>cQVXS-oRXH(aAS~HP{|9`xGAs{ znsK&3=1C6@-9(l$g?#Qxs@x&R&_kn2o<_xKp-B+-Q>V4x#u@{K=@qY^p0zI6@wz3$ z2qW~b);aMQ-EZq!s4n^i!e$(ju_u-oU*;1aNPDxB4HST?fRRnJ;I(odeGUq zhym_45loLQQuEA9>6DUJi=@Q9ENVH)##OPS-3wIZZQx-jy(*npl>;ATzFQW1!`;BD zkQoHLmv}w$INGu(bErj_q(@wbcv0qH?b70T)UXxL;%FY>S(RX(UZ4^S=m-G=sM`SG z6Jzhadh9`K_}29OmhD%^HRsTh;{3O`Io`yvpxTq94>z{o+`){jJ#znRMa9|q(AeP4~WVRh}Y+z z!RDx`$2&NERy~-v7pTWIbcFCWz2WQN9dM2Q)|VGA-;1_9X%b^}TOc9!)8W8L@jAT` zc++zoO+G-lf$$;yC#VASKyXC-5q&SX8y*M03GV3r2`XS>`VQ~j+Q@=nN!X5ZuUgyJ>i||Hl?Or;?iC;hig>FW_Klmwd;DKsTGMX`6 zP>WEcKcYw^U&GG?zpz=MYpP76yP}OEe+4E4;ZyoBx|f&pD|{-@J+Xs_KSRGpg3YO! z7Ya(gsA^3mlGCipyp)wwFodwEhM#ZXr|$Sbd-->KiPAqK{0X5^4u3%f!e{hREN*9C zF`On2(qMdgka$qyVe)t~@14tS~*n>5x%W%029!wpX*h<#0rFw5oA zdZ2GL(5G9r^TaI`rfW@%@fbbpZQEDdw!flN<4>*8y(Y#vb!a_2uo@oFnH^>3y{|jg JL?d?I{{g_@-n{?- delta 3259 zcma)8U2Icj7(SAG(1Hu|@=TLB3S1``I3O*U9z3L~I0a&p?9c7?8;-|6^C zj9o%l)LppwkwD@v@h^+s2;OmnSKgQ?@rIm)#Kdr+35vR8Hxhl{@3e!t7I%_9{m%RQ zz3=n=oU1RrKWzWYX0vec^xWvlJaRACJ-V;;3tc1K0d9;NGsGPu0uk8Q72U>rw09xlX{*0BS1;dYRg<6C4|un+@dlRc^kD+XHZOfLd7P=4WnBkTg{G1 zsGC-~1(};0gug%*_jOtVWwW)aD2?c^k;vK|WHc*%4*(4Isxd zR_qO(@Wy&^%V0PAL54l-IqIMYV<{+qXT94JSvbx1yX*x^O0fymKh8yAS1pTJX z71^bc^CXTN$2)s;ngn<(Tk^Z;Z^j^B+siZ_e(aSo#v=4!{RZAb)Ab+GDN`T)vSEZ5 z=yF4bcT&;1J=g{r)cTa1mZo#XMP6-47V_zAM$Ai-@*+1Hv(SG`J$r}|%?y);l$=wI z>8zYfDWs9Pp3kN-a#2y;qNo(5Vm2vC#UjZjri-#7iX=!+nV++&`Xh2tA}!$Iq*hxr zwGl>SGeQtxG-f0reCa?4BSa9GK@3M|MVQkj95q!yfPrEKnB|sr27_gZ1JDec=#fS* zjXMTQ9<*)+P@QQxIU$Kt(}`R*DJ8RoJn^DZn}nt6Brun%PZ!9fYRzSpqL|7mQ#t9P z>L9X|D&%t)#d1SBG1S`WS~;=>H3%Lm2wg^2$QHU!c+fi)rvJ&EtUn` zhF0AOH7g!KEdu6In(4f^$*S76UK-Mh9f00@=~35v!d5g~=|9;;AGs2x9Uxq+W7A^= zs=}m{6tj7yNT!oTST#y{lGPb$z?kb`bLi!PKFKS#I z#!*c|hER)ubt~HeX1Tj|*V~1+3fINk-aC=_9s6N=+8xx^=n!yqkbdX(CVJ5k`6ACF z#1WoG6ic)YqDC7NMVh;3@BnqtNX`)a`9b zu=YOg_6an8TDMuWb#z~VLnagd@l;7)IN51kuGkhME=MXLcsJyH?6gej+abqhoIVTfRK!sTp zlQ~I&t3fftdq8{oX9zpjXK5r5<4@guAyDG|Sa6IVja5Ghy6J;pYtJm$up?Ksl>;Z` zTuu~YJedQP!UObcu@h*DaFX_gI<%FRpg(nNqVu6x31>|V2wI=3?`#tq;A&D0@`WOi zs+{&5nMWf8j9J;+*7lhLcdfQd2ebnS)k*kO9{PKSg${J|re6a|c?$Ja_dI&4_1Szb zo0pZU`LAFI1dOHN^#JSH5&6L$y)>+4zXD~y$j{Ji;rQ6QXsy*;Js}>ns!fq4lANgA zbZaj;j$Fe)2s8Biuv_czHTr9KV*h0j#&oJKn^N`3f>H!>K1LBwK7qec?G$Hh*P@z6 zx_#AhUI%}IaGCxb*`ejU4#j!t&ggE_0w&Ru6ul7jy@Kl)GJb&`TDdinp}~g;pCNpT zP%ZT$Di9Xv!)Ty^UFrB5+f3U!$8D-Pbw(HrOs^%UQJ@mlD%Ci5y~U zLR)@p4KPMni*RD9Uda|^R=c(eaL1{pKKQ7c&dK}8EqLYOr?l%h?qMD8;`#er;2!5$ n*46R4We$Pf?+P_88I8PUe)?)@p|r%o@S$+Cf8&q59$WA)>lTct diff --git a/home/__pycache__/models.cpython-313.pyc b/home/__pycache__/models.cpython-313.pyc index 5b1bf2b9aced4cc948481253c3182d87f8f04fa4..b482b493e9082023816d7c7c53f463fea7bef0da 100644 GIT binary patch delta 4935 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 literal 0 HcmV?d00001 diff --git a/home/__pycache__/urls.cpython-313.pyc b/home/__pycache__/urls.cpython-313.pyc index a07f2f172519809dce258086b2945c96b239ef26..d48738219fa17d543954bff4a1d2f7916484d622 100644 GIT binary patch literal 7528 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 diff --git a/home/__pycache__/views.cpython-313.pyc b/home/__pycache__/views.cpython-313.pyc index 449bca5e62374184ceef58bad25a86e2cc7268f5..412a328e15e74762f12c15c41a44902ca75d3565 100644 GIT binary patch delta 31728 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' + result.error.message + '').hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }); + } else { + $("#change-faction-response").append(response.message).hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }, + error: function() { + $("#change-faction-response").append('Error inesperado. Por favor, intente más tarde.').hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }); + } + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/change_race_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/change_race_response.js new file mode 100644 index 0000000..d23a799 --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/change_race_response.js @@ -0,0 +1,73 @@ +if (window.history.replaceState) { + window.history.replaceState(null, null, window.location.href); +} + +function doRefresh() { + $("#nw-change-race-form").load(document.URL + " #nw-change-race-form>*", function () { + $.getScript('nw-js-handlers/change_race_response.js'); + }); +} + +$(function () { + $('select').on('change', function () { + var select = $(this); + select.css('color', select.children('option:selected').css('color')); + }); +}); + +$(function () { + $('.change-race-button').on('click', function (e) { + e.preventDefault(); + e.stopPropagation(); + $("#change-race-response").empty(); + + var button = $(this); + var buttonoriginal = button.html(); + var data = $("#nw-change-race-form").serialize(); + + var conf = confirm("¿Estás seguro de cambiar de raza al personaje seleccionado?"); + if (conf === true) { + changeButton(button, 'Procesando pago...'); + + $.ajax({ + type: 'POST', + url: '', // La URL para manejar la solicitud POST + data: data, + dataType: 'json', + success: function (response) { + if (response.success) { + // Verificar si Stripe.js está disponible + if (typeof Stripe === 'undefined') { + console.error("Stripe.js no está cargado."); + $("#change-race-response").append('Error al cargar Stripe. Intente nuevamente más tarde.').hide().slideDown(); + restoreButton(button, buttonoriginal); + return; + } + + // Inicializar Stripe con la clave pública + var stripe = Stripe(response.stripe_public_key); + + // Redirigir al checkout de Stripe + stripe.redirectToCheckout({ + sessionId: response.session_id + }).then(function (result) { + if (result.error) { + $("#change-race-response").append('' + result.error.message + '').hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }); + } else { + $("#change-race-response").append(response.message).hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }, + error: function () { + setTimeout(function () { + alert("Algo ha salido mal. Por favor intente más tarde"); + window.location.reload(); + }, 2000); + } + }); + } + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/customize_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/customize_response.js new file mode 100644 index 0000000..309f606 --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/customize_response.js @@ -0,0 +1,52 @@ +if (window.history.replaceState) { + window.history.replaceState(null, null, window.location.href); +} + +$(function(){ + $('.customize-button').on('click', function(e) { + e.preventDefault(); + $("#customize-response").empty(); + + var button = $(this); + var buttonoriginal = button.html(); + var data = $("#nw-customize-form").serialize(); + + var conf = confirm("¿Estás seguro de personalizar al personaje seleccionado?"); + + if (conf === true) { + button.html("Procesando pago..."); + button.prop("disabled", true); + + $.ajax({ + type: 'POST', + url: '', // Endpoint para manejar el POST + data: data, + dataType: 'json', + success: function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + + stripe.redirectToCheckout({ + sessionId: response.session_id + }).then(function(result) { + if (result.error) { + $("#customize-response").html('' + result.error.message + ''); + button.html(buttonoriginal); + button.prop("disabled", false); + } + }); + } else { + $("#customize-response").html(response.message); + button.html(buttonoriginal); + button.prop("disabled", false); + } + }, + error: function() { + $("#customize-response").html('Algo salió mal. Intenta de nuevo.'); + button.html(buttonoriginal); + button.prop("disabled", false); + } + }); + } + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/gold_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/gold_response.js new file mode 100644 index 0000000..b2597c8 --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/gold_response.js @@ -0,0 +1,35 @@ +$(function(){ + $('.gold-button').on('click', function(e) { + e.preventDefault(); + $("#gold-response").empty(); + + var button = $(this); + var originalText = button.html(); + var data = $("#uw-gold-form").serialize(); + + button.html('Procesando pago...'); + button.prop('disabled', true); + + $.ajax({ + type: 'POST', + url: '', + data: data, + dataType: 'json', + success: function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ sessionId: response.session_id }); + } else { + $("#gold-response").append(response.message).hide().slideDown(); + button.html(originalText); + button.prop('disabled', false); + } + }, + error: function() { + $("#gold-response").append('Error inesperado. Por favor, intente más tarde.').hide().slideDown(); + button.html(originalText); + button.prop('disabled', false); + } + }); + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/level_up_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/level_up_response.js new file mode 100644 index 0000000..ac7e4ae --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/level_up_response.js @@ -0,0 +1,47 @@ +if (window.history.replaceState) { + window.history.replaceState(null, null, window.location.href); +} + +$(function() { + $('.level-up-button').on('click', function(e) { + e.preventDefault(); + $("#levelup-response").empty(); + + var button = $(this); + var buttonoriginal = button.html(); + var data = $("#nw-levelup-form").serialize(); + + var conf = confirm("¿Estás seguro de subir al nivel 80 al personaje seleccionado?"); + + if (conf === true) { + changeButton(button, 'Procesando pago...'); + + $.ajax({ + type: 'POST', + url: '', + data: data, + dataType: 'json', + success: function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ + sessionId: response.session_id + }).then(function(result) { + if (result.error) { + $("#levelup-response").append('' + result.error.message + '').hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }); + } else { + $("#levelup-response").append(response.message).hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }, + error: function() { + $("#levelup-response").append('Error inesperado. Por favor intente más tarde.').hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }); + } + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/login_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/login_response.js index b297c24..8e79be1 100644 --- a/home/static/nw-themes/nw-ryu/nw-js-handlers/login_response.js +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/login_response.js @@ -45,7 +45,7 @@ $(function() { // Serializar datos para el envío const bValue = button.data('id'); let data = { login: bValue }; - data = $("#uw-login-form").serialize() + '&' + $.param(data); + data = $("#nw-login-form").serialize() + '&' + $.param(data); $.ajax({ type: 'POST', diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/register.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/register.js index 741d09e..7a11f63 100644 --- a/home/static/nw-themes/nw-ryu/nw-js-handlers/register.js +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/register.js @@ -1,6 +1,6 @@ $(function() { // Manejar el envío del formulario de creación de cuenta - $('#uw-create-form').on('submit', function(e) { + $('#nw-create-form').on('submit', function(e) { e.preventDefault(); const data = $(this).serialize(); const createResponse = $("#create-response"); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/rename_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/rename_response.js new file mode 100644 index 0000000..baa0fa1 --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/rename_response.js @@ -0,0 +1,75 @@ +if (window.history.replaceState) { + window.history.replaceState(null, null, window.location.href); +} + +$(document).ready(function () { + // Mostrar mensaje de cancelación si está presente en el backend + const cancelMessage = $("#rename-response").data("cancel-message"); + if (cancelMessage) { + $("#rename-response").html(cancelMessage).hide().slideDown(); + } + + // Manejar clics en el botón de renombrar + $('.rename-button').on('click', function (e) { + e.preventDefault(); + $("#rename-response").empty(); + + const button = $(this); + const originalText = button.html(); + const data = $("#nw-rename-form").serialize(); + + // Confirmar antes de proceder con el pago + const conf = confirm("¿Estás seguro de renombrar al personaje seleccionado?"); + if (!conf) return; + + // Cambiar texto del botón mientras procesa + changeButton(button, 'Procesando pago...'); + + $.ajax({ + type: 'POST', + url: '', // URL para manejar el POST + data: data, + dataType: 'json', + success: function (response) { + if (response.success) { + // Verificar que Stripe está cargado + if (typeof Stripe === 'undefined') { + console.error("Stripe.js no está cargado."); + $("#rename-response").append('Error al cargar Stripe. Intente nuevamente más tarde.').hide().slideDown(); + restoreButton(button, originalText); + return; + } + + // Redirigir a Stripe Checkout + const stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ sessionId: response.session_id }).then(function (result) { + if (result.error) { + $("#rename-response").append('' + result.error.message + '').hide().slideDown(); + restoreButton(button, originalText); + } + }); + } else { + // Mostrar mensaje de error del backend + $("#rename-response").append(response.message).hide().slideDown(); + restoreButton(button, originalText); + } + }, + error: function () { + $("#rename-response").append('Error inesperado. Por favor, intente más tarde.').hide().slideDown(); + restoreButton(button, originalText); + } + }); + }); +}); + +// Función para cambiar el texto del botón y desactivarlo +function changeButton(button, text) { + button.html(text); + button.prop("disabled", true); +} + +// Función para restaurar el texto y habilitar el botón +function restoreButton(button, originalText) { + button.html(originalText); + button.prop("disabled", false); +} diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/revive_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/revive_response.js new file mode 100644 index 0000000..48fccbf --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/revive_response.js @@ -0,0 +1,37 @@ +$(document).ready(function() { + $('.revive-button').on('click', function(e) { + e.preventDefault(); + $("#revive-response").empty(); + + var button = $(this); + var originalText = button.html(); + var data = $("#nw-revive-form").serialize(); + + button.html("Reviviendo..."); + button.prop("disabled", true); + + $.ajax({ + type: 'POST', + url: '', + data: data, + dataType: 'json', + success: function(response) { + $("#revive-response").html(response.message).hide().slideDown(); + if (response.success) { + button.html("Revivido"); + setTimeout(function() { + location.reload(); // Refrescar para actualizar el formulario + }, 5000); + } else { + button.html(originalText); + button.prop("disabled", false); + } + }, + error: function(xhr, status, error) { + $("#revive-response").html('Algo salió mal. Intente nuevamente.'); + button.html(originalText); + button.prop("disabled", false); + } + }); + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js index 55a0afb..d3550ac 100644 --- a/home/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js @@ -4,7 +4,7 @@ $(function() { var button = $(this); var originalText = button.html(); - var data = $("#uw-sec-token-form").serialize(); + var data = $("#nw-sec-token-form").serialize(); // Cambiar el texto del botón a "Solicitando token" changeButton(button, 'Solicitando token'); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/store_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/store_response.js new file mode 100644 index 0000000..814d5ac --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/store_response.js @@ -0,0 +1,28 @@ +$(document).ready(function() { + $('.add-to-cart').on('click', function() { + var itemId = $(this).data('item-id'); + $.post('/store/add_to_cart/', {item_id: itemId}, function(response) { + alert(response.message); + location.reload(); + }); + }); + + $('.remove-from-cart').on('click', function() { + var cartId = $(this).data('cart-id'); + $.post('/store/remove_from_cart/', {cart_id: cartId}, function(response) { + alert(response.message); + location.reload(); + }); + }); + + $('#checkout-button').on('click', function() { + $.post('/store/checkout/', {}, function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ sessionId: response.session_id }); + } else { + alert(response.message); + } + }); + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js index e9e9105..ee4bbf6 100644 --- a/home/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js @@ -1,4 +1,4 @@ -if(window.history.replaceState){window.history.replaceState(null,null,window.location.href);};$(function(){$('select').on('change',function(){var select=$(this);select.css('color',select.children('option:selected').css('color'));});});$(function(){$('#trade-sell-a').on('click',function(){$('#trade-sell-div').fadeIn('slow');$('#trade-buy-div').hide();});$('#trade-buy-a').on('click',function(){$('#trade-buy-div').fadeIn('slow');$('#trade-sell-div').hide();});});$(function(){$(".toggle-password").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#password-sell").attr("type",type);});});$(function(){$(".toggle-password").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#password-buy").attr("type",type);});});$(function(){$(".toggle-token").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#security-token-sell").attr("type",type);});});$(function(){$(".toggle-token").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#security-token-buy").attr("type",type);});});$(function(){$('.trade-points-sell-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-sell-response").empty();var button=$(this);var buttonoriginal=button.html();var data={tradepointssell:button.data('id')};data=$("#uw-trade-points-sell-form").serialize()+'&'+$.param(data);changeButton(button,'CREANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-sell-response").append(data.message).hide().slideDown();if(data.success===true){button.html("CÓDIGO CREADO");button.css("color","#d79602");setTimeout(function(){$("#uw-trade-points-sell-form")[0].reset();restoreButton(button,buttonoriginal);grecaptcha.reset(0);},5000);} -else{setTimeout(function(){$("#trade-points-sell-response").slideUp(function(){$("#trade-points-sell-response").empty();restoreButton(button,buttonoriginal);grecaptcha.reset(0);});},5000);}},error:function(){setTimeout(function(){alert("Algo ha salido mal. Por favor intente más tarde");window.location.reload();},2000);}});});});$(function(){$('.trade-points-buy-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-buy-response").empty();$(".trade-points-check-button").prop('disabled',true);var button=$(this);var buttonoriginal=button.html();var data={tradepointsbuy:button.data('id')};data=$("#uw-trade-points-buy-form").serialize()+'&'+$.param(data);changeButton(button,'CANJEANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-buy-response").append(data.message).hide().slideDown();if(data.success===true){button.html("CÓDIGO CANJEADO");button.css("color","#d79602");setTimeout(function(){$("#uw-trade-points-buy-form")[0].reset();$(".trade-points-check-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);},5000);} -else{setTimeout(function(){$("#trade-points-buy-response").slideUp(function(){$("#trade-points-buy-response").empty();$(".trade-points-check-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);});},5000);}},error:function(){setTimeout(function(){alert("Algo ha salido mal. Por favor intente más tarde");window.location.reload();},2000);}});});});$(function(){$('.trade-points-check-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-buy-response").empty();$(".trade-points-buy-button").prop('disabled',true);var button=$(this);var buttonoriginal=button.html();var data={tradepointscheck:button.data('id')};data=$("#uw-trade-points-buy-form").serialize()+'&'+$.param(data);changeButton(button,'CHEQUEANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-buy-response").append(data.message).hide().slideDown();if(data.success===true){button.html("INFO DEL CÓDIGO");button.css("color","#d79602");setTimeout(function(){$(".trade-points-buy-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);},5000);} +if(window.history.replaceState){window.history.replaceState(null,null,window.location.href);};$(function(){$('select').on('change',function(){var select=$(this);select.css('color',select.children('option:selected').css('color'));});});$(function(){$('#trade-sell-a').on('click',function(){$('#trade-sell-div').fadeIn('slow');$('#trade-buy-div').hide();});$('#trade-buy-a').on('click',function(){$('#trade-buy-div').fadeIn('slow');$('#trade-sell-div').hide();});});$(function(){$(".toggle-password").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#password-sell").attr("type",type);});});$(function(){$(".toggle-password").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#password-buy").attr("type",type);});});$(function(){$(".toggle-token").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#security-token-sell").attr("type",type);});});$(function(){$(".toggle-token").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#security-token-buy").attr("type",type);});});$(function(){$('.trade-points-sell-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-sell-response").empty();var button=$(this);var buttonoriginal=button.html();var data={tradepointssell:button.data('id')};data=$("#nw-trade-points-sell-form").serialize()+'&'+$.param(data);changeButton(button,'CREANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-sell-response").append(data.message).hide().slideDown();if(data.success===true){button.html("CÓDIGO CREADO");button.css("color","#d79602");setTimeout(function(){$("#nw-trade-points-sell-form")[0].reset();restoreButton(button,buttonoriginal);grecaptcha.reset(0);},5000);} +else{setTimeout(function(){$("#trade-points-sell-response").slideUp(function(){$("#trade-points-sell-response").empty();restoreButton(button,buttonoriginal);grecaptcha.reset(0);});},5000);}},error:function(){setTimeout(function(){alert("Algo ha salido mal. Por favor intente más tarde");window.location.reload();},2000);}});});});$(function(){$('.trade-points-buy-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-buy-response").empty();$(".trade-points-check-button").prop('disabled',true);var button=$(this);var buttonoriginal=button.html();var data={tradepointsbuy:button.data('id')};data=$("#nw-trade-points-buy-form").serialize()+'&'+$.param(data);changeButton(button,'CANJEANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-buy-response").append(data.message).hide().slideDown();if(data.success===true){button.html("CÓDIGO CANJEADO");button.css("color","#d79602");setTimeout(function(){$("#nw-trade-points-buy-form")[0].reset();$(".trade-points-check-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);},5000);} +else{setTimeout(function(){$("#trade-points-buy-response").slideUp(function(){$("#trade-points-buy-response").empty();$(".trade-points-check-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);});},5000);}},error:function(){setTimeout(function(){alert("Algo ha salido mal. Por favor intente más tarde");window.location.reload();},2000);}});});});$(function(){$('.trade-points-check-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-buy-response").empty();$(".trade-points-buy-button").prop('disabled',true);var button=$(this);var buttonoriginal=button.html();var data={tradepointscheck:button.data('id')};data=$("#nw-trade-points-buy-form").serialize()+'&'+$.param(data);changeButton(button,'CHEQUEANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-buy-response").append(data.message).hide().slideDown();if(data.success===true){button.html("INFO DEL CÓDIGO");button.css("color","#d79602");setTimeout(function(){$(".trade-points-buy-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);},5000);} else{setTimeout(function(){$("#trade-points-buy-response").slideUp(function(){$("#trade-points-buy-response").empty();$(".trade-points-buy-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);});},5000);}},error:function(){setTimeout(function(){alert("Algo ha salido mal. Por favor intente más tarde");window.location.reload();},2000);}});});}); \ No newline at end of file diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/transfer_character_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/transfer_character_response.js new file mode 100644 index 0000000..311d2ec --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/transfer_character_response.js @@ -0,0 +1,37 @@ +$(function(){ + $('.transfer-button').on('click', function(e) { + e.preventDefault(); + $("#transfer-character-response").empty(); + + var button = $(this); + var originalText = button.text(); + var data = $("#uw-transfer-character-form").serialize(); + + button.text("Procesando pago..."); + button.prop("disabled", true); + + $.ajax({ + type: 'POST', + url: '', // URL de transferencia + data: data, + dataType: 'json', + success: function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ + sessionId: response.session_id + }); + } else { + $("#transfer-character-response").append(response.message).hide().slideDown(); + button.text(originalText); + button.prop("disabled", false); + } + }, + error: function() { + $("#transfer-character-response").append('Error inesperado. Intente más tarde.').hide().slideDown(); + button.text(originalText); + button.prop("disabled", false); + } + }); + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/unstuck_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/unstuck_response.js index ab7bb27..8e8cd6d 100644 --- a/home/static/nw-themes/nw-ryu/nw-js-handlers/unstuck_response.js +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/unstuck_response.js @@ -6,7 +6,7 @@ $(function() { var button = $(this); var originalText = button.html(); - var data = $("#uw-unstuck-form").serialize(); + var data = $("#nw-unstuck-form").serialize(); button.html("Desbloqueando..."); button.prop("disabled", true); @@ -22,7 +22,7 @@ $(function() { if (data.success) { button.html("Desbloqueado"); setTimeout(function() { - $("#uw-unstuck-form")[0].reset(); + $("#nw-unstuck-form")[0].reset(); button.html(originalText); button.prop("disabled", false); }, 5000); diff --git a/home/templates/account/change_faction.html b/home/templates/account/change_faction.html new file mode 100644 index 0000000..aea0f0c --- /dev/null +++ b/home/templates/account/change_faction.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_faction.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/change_faction_cancel.html b/home/templates/account/change_faction_cancel.html new file mode 100644 index 0000000..67bc908 --- /dev/null +++ b/home/templates/account/change_faction_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_faction_cancel.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/change_faction_success.html b/home/templates/account/change_faction_success.html new file mode 100644 index 0000000..54b72a2 --- /dev/null +++ b/home/templates/account/change_faction_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_faction_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/change_race.html b/home/templates/account/change_race.html new file mode 100644 index 0000000..105bd6d --- /dev/null +++ b/home/templates/account/change_race.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_race.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/change_race_cancel.html b/home/templates/account/change_race_cancel.html new file mode 100644 index 0000000..a8c733c --- /dev/null +++ b/home/templates/account/change_race_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_race_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/change_race_success.html b/home/templates/account/change_race_success.html new file mode 100644 index 0000000..a8c733c --- /dev/null +++ b/home/templates/account/change_race_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_race_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/customize_character.html b/home/templates/account/customize_character.html new file mode 100644 index 0000000..8f28f6e --- /dev/null +++ b/home/templates/account/customize_character.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/customize_character.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/customize_success.html b/home/templates/account/customize_success.html new file mode 100644 index 0000000..871800a --- /dev/null +++ b/home/templates/account/customize_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/customize_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/gold_cancel.html b/home/templates/account/gold_cancel.html new file mode 100644 index 0000000..fa9adf7 --- /dev/null +++ b/home/templates/account/gold_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/gold_cancel.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/gold_character.html b/home/templates/account/gold_character.html new file mode 100644 index 0000000..729f360 --- /dev/null +++ b/home/templates/account/gold_character.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/gold_character.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/gold_success.html b/home/templates/account/gold_success.html new file mode 100644 index 0000000..5bfc409 --- /dev/null +++ b/home/templates/account/gold_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/gold_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/level_up.html b/home/templates/account/level_up.html new file mode 100644 index 0000000..2361013 --- /dev/null +++ b/home/templates/account/level_up.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/level_up.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/level_up_cancel.html b/home/templates/account/level_up_cancel.html new file mode 100644 index 0000000..0d3de10 --- /dev/null +++ b/home/templates/account/level_up_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/level_up_cancel.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/level_up_success.html b/home/templates/account/level_up_success.html new file mode 100644 index 0000000..0898ee6 --- /dev/null +++ b/home/templates/account/level_up_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/level_up_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/rename_cancel.html b/home/templates/account/rename_cancel.html new file mode 100644 index 0000000..b5c1281 --- /dev/null +++ b/home/templates/account/rename_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/rename_cancel.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/rename_character.html b/home/templates/account/rename_character.html new file mode 100644 index 0000000..94ad7f2 --- /dev/null +++ b/home/templates/account/rename_character.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/rename_character.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/rename_success.html b/home/templates/account/rename_success.html new file mode 100644 index 0000000..4b62dbf --- /dev/null +++ b/home/templates/account/rename_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/rename_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/revive_character.html b/home/templates/account/revive_character.html new file mode 100644 index 0000000..f3a0c0e --- /dev/null +++ b/home/templates/account/revive_character.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/revive_character.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/store_novawow.html b/home/templates/account/store_novawow.html new file mode 100644 index 0000000..e0d6ad6 --- /dev/null +++ b/home/templates/account/store_novawow.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/store_novawow.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/transfer_cancel.html b/home/templates/account/transfer_cancel.html new file mode 100644 index 0000000..c1fb1d6 --- /dev/null +++ b/home/templates/account/transfer_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/transfer_cancel.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/transfer_character.html b/home/templates/account/transfer_character.html new file mode 100644 index 0000000..fb6577e --- /dev/null +++ b/home/templates/account/transfer_character.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/transfer_character.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/transfer_success.html b/home/templates/account/transfer_success.html new file mode 100644 index 0000000..a7c10a1 --- /dev/null +++ b/home/templates/account/transfer_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/transfer_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/partials/change_faction.html b/home/templates/partials/change_faction.html new file mode 100644 index 0000000..e06e5b7 --- /dev/null +++ b/home/templates/partials/change_faction.html @@ -0,0 +1,77 @@ +
+
+
+

Cambiar facción del personaje

+
+ +
+
+

La herramienta Cambiar facción del personaje te permite cambiar de la Alianza a la Horda y viceversa.

+

Si también deseas cambiar el nombre del personaje, debes usar la herramienta Renombrar personaje.

+
+

Al hacer un cambio de Facción:

+

- Los items, hechizos, títulos, reputaciones, monturas y logros se cambiarán a la nueva facción

+

- Las misiones activas en el Registro de misiones serán abandonadas

+

- Los teams de arena seán borrados

+

- Los amigos en la Lista de amigos se borrarán

+
+

Restricciones del personaje:

+

- No debe tener subastas activas

+

- No debe tener correos en el buzón

+

- No debe capitán de un team de arenas

+

- No debe ser miembro de una hermandad

+

- No debe tener demasiado oro

+
+ + + + + + + + + + + + + + + + + + + + + +
NivelMax. Oro
10-30300
31-501000
51-705000
71-8020000
+
+

Al usar el botón CAMBIAR FACCIÓN del personaje que hayas escogido, se enviará una petición de cambio de facción de dicho personaje.

+

Cuando ingreses a la lista de personajes de tu cuenta, verás un ícono a la izquierda de tu personaje escogido.

+

Al darle click a dicho ícono ingresarás al menú de edición de personaje que te permitirá pasar a la facción contraria.

+
+
+ NOTA +
+

Por favor, asegúrate de haber escogido al personaje correcto ya que esta acción no es reversible una vez realizada.

+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/home/templates/partials/change_faction_cancel.html b/home/templates/partials/change_faction_cancel.html new file mode 100644 index 0000000..e69de29 diff --git a/home/templates/partials/change_faction_success.html b/home/templates/partials/change_faction_success.html new file mode 100644 index 0000000..e69de29 diff --git a/home/templates/partials/change_race.html b/home/templates/partials/change_race.html new file mode 100644 index 0000000..b052373 --- /dev/null +++ b/home/templates/partials/change_race.html @@ -0,0 +1,46 @@ +
+
+
+

Cambiar raza del personaje

+
+ +
+
+

La herramienta Cambiar raza del personaje te permite cambiar la raza del personaje entre otras de la misma facción.

+

Si también deseas cambiar el nombre del personaje, debes usar la herramienta Renombrar personaje.

+
+

Al usar el botón CAMBIAR RAZA del personaje que hayas escogido, se enviará una petición de cambio de raza de dicho personaje.

+

Cuando ingreses a la lista de personajes de tu cuenta, verás un ícono a la izquierda de tu personaje escogido.

+

Al darle click a dicho ícono ingresarás al menú de edición de personaje que te permitirá escoger entre las razas de la misma facción.

+
+
+ NOTA +
+

Por favor, asegúrate de haber escogido al personaje correcto ya que esta acción no es reversible una vez realizada.

+
+
+
+
+
+

Escoge el personaje que quieres desbloquear

+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/home/templates/partials/change_race_cancel.html b/home/templates/partials/change_race_cancel.html new file mode 100644 index 0000000..e69de29 diff --git a/home/templates/partials/change_race_success.html b/home/templates/partials/change_race_success.html new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/home/templates/partials/change_race_success.html @@ -0,0 +1 @@ + diff --git a/home/templates/partials/customize_character.html b/home/templates/partials/customize_character.html new file mode 100644 index 0000000..d15bcd8 --- /dev/null +++ b/home/templates/partials/customize_character.html @@ -0,0 +1,51 @@ +
+
+
+

Personalizar personaje

+
+ +
+
+

La herramienta Personalizar personaje te permite cambiar los siguientes aspectos un personaje:

+

- Color de la piel

+

- Rostro

+

- Pelo

+

- Sexo

+

- Características correspondientes a cada raza como cuernos, pendientes, marcas, vello facial

+

Si también deseas cambiar el nombre del personaje, debes usar la herramienta Renombrar personaje.

+
+

Al usar el botón PERSONALIZAR del personaje que hayas escogido, se enviará una petición de personalización de dicho personaje.

+

Cuando ingreses a la lista de personajes de tu cuenta, verás un ícono a la izquierda de tu personaje escogido.

+

Al darle click a dicho ícono ingresarás al menú de edición de personaje que te permitirá escoger diferentes características.

+
+
+ NOTA +
+

Por favor, asegúrate de haber escogido al personaje correcto ya que esta acción no es reversible una vez realizada.

+
+
+
+
+
+

Escoge el personaje que quieres desbloquear

+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/home/templates/partials/customize_success.html b/home/templates/partials/customize_success.html new file mode 100644 index 0000000..e550bd4 --- /dev/null +++ b/home/templates/partials/customize_success.html @@ -0,0 +1,44 @@ +
+
+
+

Personalizar personaje

+
+ +
+
+

La herramienta Personalizar personaje te permite cambiar los siguientes aspectos un personaje:

+

- Color de la piel

+

- Rostro

+

- Pelo

+

- Sexo

+

- Características correspondientes a cada raza como cuernos, pendientes, marcas, vello facial

+

Si también deseas cambiar el nombre del personaje, debes usar la herramienta Renombrar personaje.

+
+

Al usar el botón PERSONALIZAR del personaje que hayas escogido, se enviará una petición de personalización de dicho personaje.

+

Cuando ingreses a la lista de personajes de tu cuenta, verás un ícono a la izquierda de tu personaje escogido.

+

Al darle click a dicho ícono ingresarás al menú de edición de personaje que te permitirá escoger diferentes características.

+
+
+ NOTA +
+

Por favor, asegúrate de haber escogido al personaje correcto ya que esta acción no es reversible una vez realizada.

+
+
+
+

Selecciona el personaje que deseas personalizar:

+
+ + +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/home/templates/partials/d_points.html b/home/templates/partials/d_points.html index e002ece..823b635 100644 --- a/home/templates/partials/d_points.html +++ b/home/templates/partials/d_points.html @@ -190,7 +190,7 @@ - +