Page MenuHomeIn-Portal Phabricator

modern-store
No OneTemporary

File Metadata

Created
Thu, May 8, 11:52 AM

modern-store

Index: branches/1.0.x/checkout.tpl
===================================================================
--- branches/1.0.x/checkout.tpl (revision 14821)
+++ branches/1.0.x/checkout.tpl (revision 14822)
@@ -1,367 +1,391 @@
<!--##
<NAME>One Step Checkout</NAME>
<DESC></DESC>
<SECTION>Pages||Checkout</SECTION>
##-->
<inp2:m_DefineElement name="page_title">One Step Checkout</inp2:m_DefineElement>
<!--## MAIN CONTENT ##-->
<inp2:m_DefineElement name="content">
<ul class="steps">
<li class="step1"><a href="<inp2:m_Link template='cart'/>"><i></i>Shopping Cart</a></li>
<li class="step2 active"><a href="#"><i></i>One-step Checkout</a></li>
<li class="step3"><span><i></i>Receipt</span></li>
</ul>
<div class="clear"></div>
<div class="cart-detail">
<h1>One-Step Checkout</h1>
<form method="post" action="<inp2:m_FormAction/>" id="checkout-form" class="form checkout-form">
<script type="text/javascript">
FormManager.resetFields('ord');
</script>
<inp2:ord_ShowDefaultAddress type="billing"/>
<inp2:ord_ShowDefaultAddress type="shipping"/>
<div class="halfcol">
<fieldset class="firstline">
<inp2:m_ifnot check="m_LoggedIn">
<div class="login-alt">
Continue as Guest or
<div class="login">
<a href="" id="login-alt">Log In</a>
</div>
</div>
</inp2:m_ifnot>
<inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingEmail" title="lu_fld_YourEmail"/>
</fieldset>
<fieldset>
<div class="fieldset">
Billing Address
</div>
<inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingTo" title="lu_fld_FullName"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingCompany" title="lu_fld_Company"/>
<inp2:m_RenderElement name="inp_edit_address" prefix="ord" field="BillingAddress1" field2="BillingAddress2" title="lu_fld_Address"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingCity" title="lu_fld_City"/>
- <inp2:m_RenderElement name="inp_edit_options" prefix="ord" field="BillingCountry" title="lu_fld_Country" has_empty="1" empty_label="lu_opt_SelectCountry"/>
+ <inp2:m_RenderElement name="inp_edit_country" prefix="ord" field="BillingCountry" state_field="BillingState" title="lu_fld_Country" has_empty="1" empty_label="lu_opt_SelectCountry"/>
<!-- TODO: preload states by country -->
<inp2:m_RenderElement name="inp_edit_options" prefix="ord" field="BillingState" title="lu_fld_State" has_empty="1" row_class="alt1"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingZip" title="lu_fld_Zip" row_class="alt2"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="BillingPhone" title="lu_fld_Phone"/>
</fieldset>
<fieldset class="creditcard">
<div class="fieldset">
Payment Information
</div>
<div class="creditcards">
- <span><img src="<inp2:m_TemplatesBase/>img/creditcards.jpg" width="245" height="39" alt="" /></span>
- <span class="paypal"><img src="<inp2:m_TemplatesBase/>img/paypal.jpg" width="98" height="45" alt="" /></span>
+ <inp2:m_if check='ord_UsingCreditCard'>
+ <span><img src="<inp2:m_TemplatesBase/>img/creditcards.jpg" width="245" height="39" alt="" /></span>
+ </inp2:m_if>
+
+ <inp2:m_if check="pt.gw-paypal_Field" name="PaymentTypeId" gateway="PayPal">
+ <span<inp2:m_if check='ord_UsingCreditCard'> class="paypal"</inp2:m_if>>
+ <a href="#" id="paypal" payment_type="<inp2:pt.gw-paypal_Field name='PaymentTypeId' gateway='PayPal'/>">
+ <img src="<inp2:m_TemplatesBase/>img/paypal.jpg" width="98" height="45" alt="" />
+ </a>
+ </span>
+
+ <script type="text/javascript">
+ $(document).ready(
+ function () {
+ $('#paypal').click(
+ function ($e) {
+ FormManager.getField('ord', 'PaymentType').value = $(this).attr('payment_type');
+ FormManager.submitForm('ord');
+
+ return false;
+ }
+ );
+ }
+ );
+ </script>
+ </inp2:m_if>
</div>
- <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="PaymentAccount" title="lu_fld_CreditCardNumber"/>
+ <inp2:m_if check='ord_UsingCreditCard'>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="PaymentAccount" title="lu_fld_CreditCardNumber"/>
- <inp2:m_RenderElement design="form_row" prefix="ord" field="PaymentCCExpDate" title="lu_fld_ExpirationDate" row_class="alt1 expdate" field_type="cc_expiration">
- <select class="field" name="<inp2:ord_InputName field='PaymentCCExpMonth'/>" id="<inp2:ord_InputName field='PaymentCCExpMonth'/>">
- <inp2:ord_PredefinedOptions field="PaymentCCExpMonth" render_as="inp_option_item" selected="selected"/>
- </select> /
- <select class="field" name="<inp2:ord_InputName field='PaymentCCExpYear'/>" id="<inp2:ord_InputName field='PaymentCCExpYear'/>">
- <option value=''></option>
- <inp2:ord_PrintYearOptions field="PaymentCCExpYear" render_as="inp_option_item" selected="selected"/>
- </select>
- </inp2:m_RenderElement>
-
- <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="PaymentCVV2" title="lu_fld_SecurityCode" row_class="alt2"/>
+ <inp2:m_RenderElement design="form_row" prefix="ord" field="PaymentCCExpDate" title="lu_fld_ExpirationDate" row_class="alt1 expdate" field_type="cc_expiration">
+ <select class="field" name="<inp2:ord_InputName field='PaymentCCExpMonth'/>" id="<inp2:ord_InputName field='PaymentCCExpMonth'/>">
+ <inp2:ord_PredefinedOptions field="PaymentCCExpMonth" render_as="inp_option_item" selected="selected"/>
+ </select> /
+ <select class="field" name="<inp2:ord_InputName field='PaymentCCExpYear'/>" id="<inp2:ord_InputName field='PaymentCCExpYear'/>">
+ <option value=''></option>
+ <inp2:ord_PrintYearOptions field="PaymentCCExpYear" render_as="inp_option_item" selected="selected"/>
+ </select>
+ </inp2:m_RenderElement>
+
+ <inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="PaymentCVV2" title="lu_fld_SecurityCode" row_class="alt2"/>
+ <input type="hidden" name="check_credit_card" id="check_credit_card" value="true"/>
+ </inp2:m_if>
</fieldset>
</div>
<div class="halfcol halfcol-last">
<inp2:m_ifnot check="m_LoggedIn">
<div class="badge-optional"></div>
<fieldset class="firstline" id="create-account-password">
<p>
<label><input type="checkbox" id="create_account" name="create_account" value="1"<inp2:m_if check="m_Get" name="create_account"> checked</inp2:m_if>/> Create account for easy purchases and order tracking</label>
</p>
<inp2:m_RenderElement name="inp_edit_password" prefix="ord" field="UserPassword" title="lu_fld_Password" verify_title="lu_fld_VerifyPassword"/>
</fieldset>
</inp2:m_ifnot>
<fieldset>
<div class="fieldset">
<label>
<input type="checkbox" id="same_as_billing" name="same_as_billing" value="1"<inp2:m_if check="ord_AddressesTheSame"> checked</inp2:m_if>/> Ship To Address is the same as Billing
</label>
</div>
<div id="shipping-address"<inp2:m_if check="ord_AddressesTheSame"> style="display: none;"</inp2:m_if>>
<inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="ShippingTo" title="lu_fld_FullName"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="ShippingCompany" title="lu_fld_Company"/>
<inp2:m_RenderElement name="inp_edit_address" prefix="ord" field="ShippingAddress1" field2="ShippingAddress2" title="lu_fld_Address"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="ShippingCity" title="lu_fld_City"/>
- <inp2:m_RenderElement name="inp_edit_options" prefix="ord" field="ShippingCountry" title="lu_fld_Country" has_empty="1" empty_label="lu_opt_SelectCountry"/>
+ <inp2:m_RenderElement name="inp_edit_country" prefix="ord" field="ShippingCountry" state_field="ShippingState" title="lu_fld_Country" has_empty="1" empty_label="lu_opt_SelectCountry"/>
<!-- TODO: preload states by country -->
<inp2:m_RenderElement name="inp_edit_options" prefix="ord" field="ShippingState" title="lu_fld_State" has_empty="1" row_class="alt1"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="ord" field="ShippingZip" title="lu_fld_Zip" row_class="alt2"/>
</div>
<p id="shipping-type-container">
<inp2:m_include template="elements/ajax/shipping_type"/>
</p>
<div class="safe-shop" id="shipping-address-placeholder"<inp2:m_ifnot check="ord_AddressesTheSame"> style="display: none;"</inp2:m_ifnot>>
<p class="title">100% Safe & Secure Shopping</p>
<ul class="list">
<li>All Transactions are Encrypted</li>
<li>Your Information is Protected</li>
<li>No Hidden Charges</li>
<li>Satisfaction Guaranteed</li>
</ul>
</div>
</fieldset>
<fieldset>
<div class="fieldset">
Your Order Summary (<inp2:orditems_TotalRecords/> Items)
<a href="#" class="link">View Order Details</a>
</div>
<dl class="total">
- <dt>Subtotal</dt>
- <dd>$1,759.99</dd>
- <dt class="discount">Discount:</dt>
- <dd class="price2">- $10.00</dd>
- <dt>Shipping</dt>
- <dd class="price3">$100.00</dd>
- <dt>Tax</dt>
- <dd class="price3">$100.00</dd>
- <dt>Order Total</dt>
- <dd class="price4">$1,959.99</dd>
+ <inp2:m_include template="elements/ajax/order_totals"/>
</dl>
<div class="clear"></div>
<div class="terms">
<label><input type="checkbox" id="terms" name="terms" value="yes" checked="true" />&nbsp;I Agree to Terms and Conditions</label>
</div>
<p class="buttons">
<a href="#" class="place-button"><span>Place Order</span></a>
</p>
</fieldset>
</div>
<div class="clear"></div>
<inp2:m_RenderElement name="inp_edit_hidden" prefix="ord" field="PaymentType" db="db"/>
-
<input type="hidden" name="check_billing_address" id="check_billing_address" value="true"/>
<input type="hidden" name="check_shipping_address" id="check_shipping_address" value="true"/>
- <input type="hidden" name="check_credit_card" id="check_credit_card" value="true"/>
</form>
+
+ <inp2:m_include template="elements/ajax/payment_form"/>
</div>
<script type="text/javascript">
function CheckoutManager() {}
CheckoutManager.sameAsBilling = <inp2:m_if check="ord_AddressesTheSame">true<inp2:m_else/>false</inp2:m_if>;
CheckoutManager.addressFields = ['To', 'Company', 'Address1', 'Address2', 'City', 'Country', 'State', 'Zip'];
CheckoutManager.initAddressFields = function () {
var $me = this;
$(this.addressFields).each(
function () {
var $field = this.toString();
$( FormManager.getField('ord', 'Billing' + $field) ).change(
function ($e) {
if ( $me.sameAsBilling ) {
$( FormManager.getField('ord', 'Shipping' + $field) ).val( $(this).val() ).change();
}
}
);
$( FormManager.getField('ord', 'Shipping' + $field) ).change(
function ($e) {
if ( !$me.isAddressValid('Shipping') ) {
$('select', '#shipping-type-container').empty().append('<option value="">Please enter address</option>');
return ;
}
$me.updateOrder(
'elements/ajax/shipping_type',
function ($data) {
$('#shipping-type-container').html($data);
}
);
}
);
}
);
}
CheckoutManager.isAddressValid = function ($type) {
var $status = true;
$(this.addressFields).each(
function () {
var $field = this.toString(),
$input = $( FormManager.getField('ord', $type + $field) );
if ( $field == 'Address2' || ($input.is('select') && $('option', $input).length <= 2 ) ) {
// 2nd address line or empty state dropdown
return true;
}
if ( $input.val() == '' ) {
$status = false;
return false;
}
}
);
return $status;
}
- CheckoutManager.updateOrder = function ($return_template, $callback) {
+ CheckoutManager.updateOrder = function ($return_template, $callback, $remove_fields) {
var $me = this,
- $params = $('#checkout-form').serializeArray(),
+ $params = $('#checkout-form').serializeArray();
+
+ if ( $remove_fields === undefined ) {
$remove_fields = ['check_billing_address', 'check_shipping_address', 'check_credit_card'];
+ }
for (var $i in $params) {
if ( in_array($params[$i].name, $remove_fields) ) {
delete $params[$i];
}
}
$.post(
FormManager.getURL('ord', $return_template, 'OnUpdate'),
$params,
function ($data) {
var $redirect = TB.parseRedirect($data);
if ( $redirect !== false ) {
window.location.href = $redirect;
return ;
}
$callback.apply($me, [$data]);
}
)
}
CheckoutManager.copyAddress = function () {
$(this.addressFields).each(
function () {
var $field = this.toString();
$( FormManager.getField('ord', 'Shipping' + $field) ).val( $( FormManager.getField('ord', 'Billing' + $field) ).val() );
}
);
$( FormManager.getField('ord', 'ShippingAddress1') ).change();
}
CheckoutManager.init = function () {
var $me = this;
this.sameAsBilling = $('#same_as_billing').is(':checked');
$('#same_as_billing').click(
function ($e) {
$me.sameAsBilling = $(this).is(':checked');
if ($me.sameAsBilling) {
$me.copyAddress();
}
$('#shipping-address').toggle(!$me.sameAsBilling);
$('#shipping-address-placeholder').toggle($me.sameAsBilling);
}
);
$('#create_account').click(
function ($e) {
$('.password-block').toggle( $(this).is(':checked') );
}
);
$('#login-alt').click(
function ($e) {
var $login_link = $('#login');
if ( !$login_link.parents('.login:first').hasClass('plashka-sel') ) {
$login_link.click();
}
return false;
}
);
$('body').bind(
'OnAfterLogin',
function ($e, $params) {
// 1. remove login button
$('.login-alt').remove();
// 2. remove user password controls
$('#create-account-password, .badge-optional').remove();
FormManager.unregisterField('ord', 'UserPassword');
FormManager.unregisterField('ord', 'VerifyUserPassword');
// 3. put user e-mail into the form
FormManager.setFieldStatus('ord', 'BillingEmail');
FormManager.getField('ord', 'BillingEmail').value = $params['user_email'];
}
)
this.initAddressFields();
}
$(document).ready(
function () {
FormManager.registerForm(
{
prefix: 'ord',
- save_event: 'OnCombinedPlaceOrder',
+ save_event: 'OnUpdateAjax',
id: '<inp2:ord_Field name="OrderId"/>',
- form_id: 'checkout-form'
- }
- );
+ form_id: 'checkout-form',
+ before_close: function ($data, $add_params) {
+ // when all form data is valid
- $('.place-button').click(
- function ($e) {
- FormManager.submitForm('ord');
-
- return false;
+ CheckoutManager.updateOrder(
+ 'elements/ajax/payment_form',
+ function ($data) {
+ $('#payment-form').replaceWith($data);
+ $('#payment-form').submit();
+ }
+ );
+ }
}
);
- $('#checkout-form').submit(
+ $('.place-button').click(
function ($e) {
FormManager.submitForm('ord');
return false;
}
);
CheckoutManager.init();
}
);
$('.password-block').toggle( $('#create_account').is(':checked') );
</script>
</inp2:m_DefineElement>
<!--## /MAIN CONTENT ##-->
<!--## DESIGN TEMPLATE ##-->
<inp2:m_Set check_credit_card="true"/>
<inp2:m_include template="designs/default_design.des" pass_params="1"/>
<!--## /DESIGN TEMPLATE ##-->
\ No newline at end of file
Index: branches/1.0.x/inc/js/jquery.scripts.js
===================================================================
--- branches/1.0.x/inc/js/jquery.scripts.js (revision 14821)
+++ branches/1.0.x/inc/js/jquery.scripts.js (revision 14822)
@@ -1,188 +1,195 @@
/* === General usage functions === */
function jq($selector) {
return $selector.replace(/(\[|\]|\.)/g, '\\$1');
}
function in_array(needle, haystack)
{
return array_search(needle, haystack) != -1;
}
function array_search(needle, haystack)
{
for (var i=0; i<haystack.length; i++)
{
if (haystack[i] == needle) return i;
}
return -1;
}
Array.prototype.diff = function(a) {
return this.filter(
function (i) {
return a.indexOf(i) == -1;
}
);
};
+function get_control($mask, $field, $append, $prepend) {
+ $append = $append !== undefined ? '_' + $append : '';
+ $prepend = $prepend !== undefined ? $prepend + '_' : '';
+
+ return document.getElementById( $prepend + $mask.replace('#FIELD_NAME#', $field) + $append );
+}
+
function update_checkbox_options($cb_mask, $hidden_id, $form_id)
{
var $tmp = '',
$kf = document.getElementById($form_id !== undefined ? $form_id : $form_name);
for (var i = 0; i < $kf.elements.length; i++) {
if ( $kf.elements[i].id.match($cb_mask) ) {
if ($kf.elements[i].checked) {
$tmp += '|'+$kf.elements[i].value;
}
}
}
if ($tmp.length > 0) {
$tmp += '|';
}
document.getElementById($hidden_id).value = $tmp.replace(/,$/, '');
}
/* === DBlocks class === */
function DBlocks() {
var $me = this;
this.selectors = ['#lang', '#currency', '#login', /*'#login-alt',*/ '#profile'];
$(document).ready(
function () {
$me.init();
}
);
}
DBlocks.prototype.init = function () {
var $manager = this;
$( this.selectors.join(', ') ).unbind('click').click(
function($e, $now) {
var $me = $(this),
$parent = $me.parent();
if ( $parent.is('.plashka-sel') ) {
$parent.removeClass('plashka-sel');
if ( $now === undefined || $now === false ) {
$('#' + $me.attr('id') + '-sel').fadeOut();
}
else {
$('#' + $me.attr('id') + '-sel').hide();
}
}
else {
$manager.hideOthers($me);
$parent.addClass('plashka-sel');
$('#' + $me.attr('id') + '-sel').fadeIn();
}
return false;
}
);
$('.icon-close').click(
function() {
$('#login').parent().removeClass('plashka-sel'); // ,#login-alt
$('#login-sel').fadeOut(); // , #login-alt-sel
return false;
}
);
}
DBlocks.prototype.hideOthers = function ($current) {
$( this.selectors.join(', ') ).not($current).each(
function () {
var $me = $(this),
$parent = $me.parent();
if ( $parent.is('.plashka-sel') ) {
$me.trigger('click', [true]);
}
}
);
}
/* === RatingManager class === */
function RatingManager ($url) {
this.Url = $url;
}
RatingManager.prototype.makeVote = function ($vote, $prefix, $id, $size) {
var $url = this.Url.replace('#PREFIX#', $prefix).replace('#VOTE#', $vote).replace('#ID#', $id).replace('#SIZE#', $size);
$.get(
$url,
function ($response) {
if ($response.substring(0, 5) == '@err:') {
alert( $response.substring(5) );
return ;
}
document.getElementById('page_rating_' + $id).innerHTML = $response;
}
)
}
$(document).ready(function()
{
$('#change-password').click(
function($e) {
$('#password-show').hide();
$('#password-block').fadeIn();
return false;
}
);
$('.addtocart, .button-addtocart').click(
function () {
var $me = $(this),
$qty = $me.attr('qty_id') !== undefined ? parseInt($('#' + $me.attr('qty_id')).val()) : 1;
if ( $me.hasClass('addedtocart') ) {
// disabled button
return false;
}
if ( isNaN($qty) ) {
$qty = 1;
}
var $bubble = $('.basketStatus'),
$timer_id = $bubble.data('hide_timer');
clearTimeout($timer_id);
$.get(
$me.attr('href') + '&qty=' + $qty,
function ($bubble_content) {
$('.basketContent', $bubble).html( $bubble_content.replace(/#QTY#/g, $qty) );
$bubble
.stop(true, true)
.fadeIn(
'slow',
function () {
var $timer = setTimeout(function(){ $bubble.fadeOut('slow'); }, 2000);
$bubble.data('hide_timer', $timer);
}
);
if ( $me.hasClass('addtocart') ) {
$me.removeClass('addtocart').addClass('addedtocart').html('Added to Cart');
}
}
);
return false;
}
);
});
\ No newline at end of file
Index: branches/1.0.x/elements/ajax/order_totals.tpl
===================================================================
--- branches/1.0.x/elements/ajax/order_totals.tpl (nonexistent)
+++ branches/1.0.x/elements/ajax/order_totals.tpl (revision 14822)
@@ -0,0 +1,35 @@
+<inp2:m_DefineElement name="sub_total">
+ <dt>Subtotal</dt>
+ <dd><inp2:ord_Field name="AmountWithoutVAT" currency="selected"/></dd>
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="shipping_total">
+ <!--##<dt>Shipping</dt>
+ <dd class="price3"><inp2:ord_Field name="ShippingCost" currency="selected"/></dd>
+
+ <dt>Insurance Fee</dt>
+ <dd class="price3"><inp2:ord_Field name="InsuranceFee" currency="selected"/></dd>##-->
+
+ <dt>Shipping</dt>
+ <dd class="price3"><inp2:ord_Field name="ShippingSubTotal" currency="selected"/></dd>
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="processing_total">
+ <dt>Processing Fee</dt>
+ <dd class="price3"><inp2:ord_Field name="ProcessingFee" currency="selected"/></dd>
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="vat_total">
+ <dt>Tax <inp2:ord_Field name="VATPercent"/>%</dt>
+ <dd class="price3"><inp2:ord_Field name="VAT" currency="selected"/></dd>
+</inp2:m_DefineElement>
+
+<inp2:m_DefineElement name="discount_total">
+ <dt class="discount">Discount:</dt>
+ <dd class="price2">- <inp2:ord_Field name="DiscountTotal" currency="selected" /></dd>
+</inp2:m_DefineElement>
+
+<inp2:ord_PrintTotals sub_total_render_as="sub_total" discount_render_as="discount_total" shipping_render_as="shipping_total" processing_render_as="processing_total" vat_render_as="vat_total"/>
+
+<dt>Order Total</dt>
+<dd class="price4"><inp2:ord_Field name="TotalAmount" currency="selected"/></dd>
\ No newline at end of file
Index: branches/1.0.x/elements/ajax/shipping_type.tpl
===================================================================
--- branches/1.0.x/elements/ajax/shipping_type.tpl (revision 14821)
+++ branches/1.0.x/elements/ajax/shipping_type.tpl (revision 14822)
@@ -1,24 +1,42 @@
<inp2:m_DefineElement name="no_shipments">
<div class="field-error"><inp2:m_Recall name="usps_errors"/></div>
<inp2:m_Phrase label="lu_comm_ErrorNoShippingTypes"/><!-- (<a href="mailto:<inp2:conf_ConfigValue name="Comm_Contacts_Email"/>"><inp2:conf_ConfigValue name="Comm_Contacts_Email"/></a>).-->
</inp2:m_DefineElement>
<inp2:m_DefineElement name="order_shipping_type">
- <option <inp2:m_param name="selected"/> value="<inp2:m_param name='ShippingId'/>"><inp2:m_param name="ShippingName"/> (<inp2:m_if check="m_param" name="ShippingFree" value="1"><inp2:m_Phrase label="lu_comm_FreeShipping" /><inp2:m_else/><inp2:m_param name="TotalCost"/></inp2:m_if>)</option>
+ <option <inp2:m_param name="selected"/> value="<inp2:m_param name='ShippingId'/>"> <inp2:m_param name="ShippingName"/> (<inp2:m_if check="m_param" name="ShippingFree" value="1"><inp2:m_Phrase label="lu_comm_FreeShipping" /><inp2:m_else/><inp2:m_param name="TotalCost"/></inp2:m_if>)</option>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="order_shipment">
<select class="field" name="<inp2:m_param name='field_name'/>">
+ <option value="">Please select</option>
<inp2:ord_PrintShippingTypes render_as="order_shipping_type" currency="selected"/>
</select>
</inp2:m_DefineElement>
<label for="ship">How would you like the items shipped? <span class="star">*</span></label>
<inp2:m_if check="ord_AddressValid" type="shipping">
<inp2:ord_PrintShippings render_as="order_shipment" currency="selected" no_shipments_render_as="no_shipments"/>
<inp2:m_else/>
<select class="field" name="<inp2:ord_InputName name='ShippingTypeId'/>[1]">
<option value="">Please enter address</option>
</select>
</inp2:m_if>
+
+<script type="text/javascript">
+ $(document).ready(
+ function () {
+ $('select', '#shipping-type-container').change(
+ function ($e) {
+ CheckoutManager.updateOrder(
+ 'elements/ajax/order_totals',
+ function ($data) {
+ $('.total').html($data);
+ }
+ );
+ }
+ );
+ }
+ );
+</script>
\ No newline at end of file
Index: branches/1.0.x/elements/ajax/register.tpl
===================================================================
--- branches/1.0.x/elements/ajax/register.tpl (revision 14821)
+++ branches/1.0.x/elements/ajax/register.tpl (revision 14822)
@@ -1,82 +1,81 @@
<!--<link rel="stylesheet" type="text/css" href="<inp2:m_Compress files='inc/profile.css'/>" charset="<inp2:lang.current_Field name='Charset'/>"/>-->
<script type="text/javascript">
FormManager.resetFields('u.register');
</script>
<inp2:m_Include template="elements/forms.elm" strip_nl="2"/>
<inp2:u.register_FormName name="registration"/>
<div class="profile registerpage">
<div class="profile-title">
<h1>Registration</h1>
<p class="req">Required fields are marked by <span class="star">*</span></p>
<div class="clear"></div>
</div>
<form method="post" action="<inp2:m_FormAction/>" id="register_form" class="form profile-form">
<div class="halfcol">
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="FirstName"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="LastName"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="Company"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="Email"/>
<inp2:m_RenderElement name="inp_edit_radio" prefix="u.register" field="SubscribeToMailing"/>
<inp2:m_RenderElement name="inp_edit_password" prefix="u.register" field="Password"/>
</div>
<div class="halfcol halfcol-last">
<inp2:m_RenderElement name="inp_edit_address" prefix="u.register" field="Street" field2="Street2" title="lu_fld_Address"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="City"/>
- <inp2:m_RenderElement name="inp_edit_options" prefix="u.register" field="Country" has_empty="1" empty_label="lu_opt_SelectCountry"/>
+ <inp2:m_RenderElement name="inp_edit_country" prefix="u.register" field="Country" state_field="State" has_empty="1" empty_label="lu_opt_SelectCountry"/>
- <!-- TODO: preload states by country -->
<inp2:m_RenderElement name="inp_edit_options" prefix="u.register" field="State" has_empty="1"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="Zip" row_class="alt2"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="u.register" field="Phone"/>
</div>
<div class="clear"></div>
<div class="terms">
<label><input type="checkbox" id="terms" name="terms" value="yes" checked="true" />&nbsp;I Agree to Terms and Conditions</label>
</div>
<inp2:m_RenderElement design="inp_edit_buttons">
<input type="submit" value="Register" class="green-button" disabled/>&nbsp;&nbsp;&nbsp;
<input type="reset" value="Cancel" class="grey-button" />
</inp2:m_RenderElement>
<input type="hidden" name="forms[u.register]" value="<inp2:u.register_FormName/>"/>
</form>
</div>
<script type="text/javascript">
$(document).ready(
function () {
FormManager.registerForm(
{
prefix: 'u.register',
save_event: 'OnRegisterAjax',
id: '<inp2:u.register_Field name="PortalUserId"/>',
form_id: 'register_form'
}
);
$('#register_form').submit(
function ($e) {
FormManager.submitForm('u.register');
return false;
}
);
$('input[type=reset]', '#register_form').click(
function ($e) {
FormManager.closeForm('u.register');
return false;
}
);
}
);
</script>
Index: branches/1.0.x/elements/ajax/payment_form.tpl
===================================================================
--- branches/1.0.x/elements/ajax/payment_form.tpl (nonexistent)
+++ branches/1.0.x/elements/ajax/payment_form.tpl (revision 14822)
@@ -0,0 +1,7 @@
+<form id="payment-form" method="post" action="<inp2:ord_GetFormAction/>">
+ <inp2:ord_GetFormHiddenFields return_template="receipt" cancel_template="checkout"/>
+
+ <!--##<inp2:m_if check="ord_NeedsPlaceButton">
+ <input type="submit" value="<inp2:m_Phrase label='lu_order_CompleteOrder'/>"/>
+ </inp2:m_if>##-->
+</form>
\ No newline at end of file
Index: branches/1.0.x/elements/forms.elm.tpl
===================================================================
--- branches/1.0.x/elements/forms.elm.tpl (revision 14821)
+++ branches/1.0.x/elements/forms.elm.tpl (revision 14822)
@@ -1,412 +1,453 @@
<inp2:m_Set tab_index="1"/>
<inp2:m_DefineElement name="subsection">
<tr class="subsection">
<td colspan="2">
<h2><inp2:m_Phrase label="$title"/></h2>
</td>
</tr>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_buttons" style="">
<p class="buttons" style="<inp2:m_Param name='style'/>">
<inp2:m_Param name="content"/>
</p>
<div class="clear"></div>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="form_row_full" is_last="0">
<tr class="field-row<inp2:m_if check='m_Param' name='is_last'>-last</inp2:m_if>">
<td colspan="2">
<inp2:m_Param name="content"/>
</td>
</tr>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_field_separator" no_editing="1" is_last="0">
<inp2:m_if check="m_ParamEquals" name="is_last" value="0">
<!--<hr/>-->
</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="form_row" row_class='' prefix="" field="" error_field_suffix="" title="lu_fld_{$field}" hint_label="" is_last="0" field_type="" error_position="top" show_length="1">
<inp2:m_inc param="tab_index" by="1"/>
<p class="<inp2:m_Param name='row_class'/><inp2:m_if check='{$prefix}_HasError' field='{$field}{$error_field_suffix}'> error</inp2:m_if>">
<label class="field-title" for="<inp2:{$prefix}_InputName field='{$field}{$error_field_suffix}'/>">
<inp2:m_Phrase label="$title"/><inp2:m_if check="{$prefix}_IsRequired" field="{$field}{$error_field_suffix}"> <span class="star">*</span></inp2:m_if>
<inp2:m_if check="m_Param" name="error_position" equals_to="top">
<inp2:m_RenderElement name="error_msg_container" pass_params="1"/>
</inp2:m_if>
</label>
<span class="field-content" id="<inp2:{$prefix}_InputName field='$field'/>_field_cell">
<inp2:m_Param name="content" pass_params="1"/>
</span>
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
&nbsp;&nbsp;<a href="#"><img src="<inp2:m_TemplatesBase/>img/icon-help.png" width="16" height="16" class="help-icon" title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>" alt=""/></a>
</inp2:m_if>
<script type="text/javascript">
FormManager.registerField('<inp2:m_Param name="prefix"/>', '<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="formatter" equals_to="kMultiLanguage">l<inp2:m_Get name="m_lang"/>_</inp2:m_if><inp2:m_Param name="field"/>', undefined, '<inp2:m_Param name="field_type"/>');
</script>
</p>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="error_msg_container" style="" error_field_suffix="">
<em class="red" id="<inp2:{$prefix}_InputName field='$field'/>_status_cell" style="<inp2:m_Param name='style'/>">
<inp2:{$prefix}_Error field="{$field}{$error_field_suffix}"/>
</em>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_label" as_label="" title="lu_fld_{$field}" currency="" show_length="0" field_type="label" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<inp2:{$prefix}_Field field="$field" as_label="$as_label" currency="$currency"/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_box" style="" title="lu_fld_{$field}" field_type="text" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="text"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:{$prefix}_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
value="<inp2:{$prefix}_Field field='$field'/>"
tabindex="<inp2:m_get param='tab_index'/>"
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="max_len">
maxlength="<inp2:$prefix_FieldOption field='$field' option='max_len'/>"
</inp2:m_if>
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_rating" style="" title="lu_fld_{$field}" field_type="text" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<img src="<inp2:m_TemplatesBase/>img/star-small.jpg" width="18" height="18" alt="" /><img src="<inp2:m_TemplatesBase/>img/star-small.jpg" width="18" height="18" alt="" /><img src="<inp2:m_TemplatesBase/>img/star-small.jpg" width="18" height="18" alt="" /><img src="<inp2:m_TemplatesBase/>img/star-small.jpg" width="18" height="18" alt="" /><img src="<inp2:m_TemplatesBase/>img/star-small.jpg" width="18" height="18" alt="" />
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_address" style="" title="lu_fld_{$field}" field_type="text" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="text"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:{$prefix}_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
value="<inp2:{$prefix}_Field field='$field'/>"
tabindex="<inp2:m_get param='tab_index'/>"
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="max_len">
maxlength="<inp2:$prefix_FieldOption field='$field' option='max_len'/>"
</inp2:m_if>
style="<inp2:m_param name='style'/>"
/><br/>
<input
type="text"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:{$prefix}_InputName field='$field2'/>"
id="<inp2:{$prefix}_InputName field='$field2'/>"
value="<inp2:{$prefix}_Field field='$field2'/>"
tabindex="<inp2:m_get param='tab_index'/>"
<inp2:m_if check="{$prefix}_FieldOption" field="$field2" option="max_len">
maxlength="<inp2:$prefix_FieldOption field='$field2' option='max_len'/>"
</inp2:m_if>
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_password_single" style="" title="lu_fld_{$field}" field_type="text" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="password"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:{$prefix}_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
value="<inp2:{$prefix}_Field field='$field'/>"
tabindex="<inp2:m_get param='tab_index'/>"
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="max_len">
maxlength="<inp2:$prefix_FieldOption field='$field' option='max_len'/>"
</inp2:m_if>
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_password" title="lu_fld_{$field}" verify_title="lu_fld_Verify{$field}" style="" field_type="text" no_editing="1">
<inp2:m_ifnot check="m_Get" name="password_js_included">
<script src="<inp2:m_Compress files='inc/js/passwordStrengthMeter.js'/>" type="text/javascript"></script>
<inp2:m_Set password_js_included="1"/>
</inp2:m_ifnot>
<div id="password-block" class="password-block">
<inp2:m_RenderElement design="form_row" row_class="pasfield1" error_position="none" pass_params="1">
<input
type="password"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:$prefix_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
value="<inp2:{$prefix}_Field name='{$field}_plain'/>"
tabindex="<inp2:m_get param='tab_index'/>"
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
<inp2:m_RenderElement design="form_row" row_class="pasfield2" field="Verify{$field}" title="$verify_title" error_position="none" pass_params="1">
<input
type="password"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:$prefix_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
value="<inp2:{$prefix}_Field name='{$field}_plain'/>"
tabindex="<inp2:m_get param='tab_index'/>"
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
<div class="clear"></div>
<div class="password-strength" id="<inp2:{$prefix}_InputName field='$field'/>_strength">Enter your password</div>
<inp2:m_RenderElement name="error_msg_container" style="padding: 0px; display: block;" pass_params="1"/>
<inp2:m_RenderElement name="error_msg_container" field="Verify{$field}" style="padding: 0px; display: block;" pass_params="1"/>
<script type="text/javascript">
new PasswordStrengthMeter(
{
inputSelector: '#' + jq('<inp2:{$prefix}_InputName field="$field"/>'),
phrases: {
'short': '<inp2:m_Phrase name="lu_PasswordStrengthShort" js_escape="1"/>',
'bad': '<inp2:m_Phrase name="lu_PasswordStrengthBad" js_escape="1"/>',
'good': '<inp2:m_Phrase name="lu_PasswordStrengthGood" js_escape="1"/>',
'strong': '<inp2:m_Phrase name="lu_PasswordStrengthStrong" js_escape="1"/>'
}
}
);
</script>
</div>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_upload" title="lu_fld_{$field}" style="" field_type="upload" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="file"
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
name="<inp2:{$prefix}_InputName field='$field'/>"
tabindex="<inp2:m_get param='tab_index'/>"
style="<inp2:m_param name='style'/>"
/>
<inp2:m_if check="{$prefix}_FieldEquals" name="$field" value="" inverse="inverse">
(<inp2:{$prefix}_Field field="$field"/>)
</inp2:m_if>
<input type="hidden" name="<inp2:{$prefix}_InputName field="$field"/>[upload]" value="<inp2:{$prefix}_Field field="$field"/>" />
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_hidden" db="">
<input type="hidden" name="<inp2:{$prefix}_InputName field="$field"/>" id="<inp2:{$prefix}_InputName field="$field"/>" value="<inp2:{$prefix}_Field field="$field" db="$db"/>" />
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_date" title="lu_fld_{$field}" style="" no_editing="1" field_type="date" error_field_suffix="_date">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="text"
class="field"
title="<inp2:{$prefix}_Format field='{$field}_date' input_format='1' human='true'/>"
name="<inp2:{$prefix}_InputName field="{$field}_date"/>"
id="<inp2:{$prefix}_InputName field="{$field}_date"/>"
value="<inp2:{$prefix}_Field field="{$field}_date" format="_regional_InputDateFormat"/>"
tabindex="<inp2:m_get param="tab_index"/>"
size="<inp2:{$prefix}_Format field="{$field}_date" input_format="1" edit_size="edit_size"/>"
style="<inp2:m_param name="style"/>"
datepickerIcon="<inp2:m_TemplatesBase module="In-Portal"/>img/calendar_icon.gif"
/>
<input type="hidden" name="<inp2:{$prefix}_InputName field="{$field}_time"/>" id="<inp2:{$prefix}_InputName field="{$field}_time" input_format="1"/>" value="" />
<script type="text/javascript">
$( '#' + jq('<inp2:{$prefix}_InputName field="{$field}_date"/>') ).datepicker(
{
inline: true,
dateFormat: get_jq_date_format('<inp2:$prefix_Format name="{$field}_date" input_format="1"/>'),
showOn: 'button',
buttonImage: '<inp2:m_TemplatesBase/>img/calendar_btn.gif',
buttonImageOnly: true,
onSelect: function(dateText, inst) {
if ( dateText != '' ) {
$(this).focus();
}
}
}
);
</script>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_time" title="lu_fld_{$field}" style="" no_editing="1" field_type="time" error_field_suffix="_time">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="text"
class="field"
title="<inp2:{$prefix}_Format field='{$field}_time' input_format='1' human='true'/>"
name="<inp2:{$prefix}_InputName field='{$field}_time'/>"
id="<inp2:{$prefix}_InputName field='{$field}_time'/>"
value="<inp2:{$prefix}_Field field='{$field}_time' format='_regional_InputTimeFormat'/>"
tabindex="<inp2:m_get param='tab_index'/>"
size="<inp2:{$prefix}_Format field='{$field}_time' input_format='1' edit_size='edit_size'/>"
style="<inp2:m_param name='style'/>">
<input type="hidden" name="<inp2:{$prefix}_InputName field="{$field}_date"/>" id="<inp2:{$prefix}_InputName field="{$field}_date" input_format="1"/>" value="" />
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_date_time" title="lu_fld_{$field}" style="" field_type="date_time" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input
type="text"
class="field"
title="<inp2:{$prefix}_Format field='{$field}_date' input_format='1' human='true'/>"
name="<inp2:{$prefix}_InputName field="{$field}_date"/>"
id="<inp2:{$prefix}_InputName field="{$field}_date"/>"
value="<inp2:{$prefix}_Field field="{$field}_date"
format="_regional_InputDateFormat"/>"
tabindex="<inp2:m_get param="tab_index"/>"
size="<inp2:{$prefix}_Format field="{$field}_date" input_format="1" edit_size="edit_size"/>"
style="<inp2:m_param name="style"/>"
datepickerIcon="<inp2:m_ProjectBase/>core/admin_templates/img/calendar_icon.gif"
/>
<script type="text/javascript">
initCalendar("<inp2:{$prefix}_InputName field="{$field}_date"/>", "<inp2:{$prefix}_Format field="{$field}_date" input_format="1"/>");
</script>
&nbsp;
<input
type="text"
class="field"
title="<inp2:{$prefix}_Format field='{$field}_time' input_format='1' human='true'/>"
name="<inp2:{$prefix}_InputName field='{$field}_time'/>"
id="<inp2:{$prefix}_InputName field='{$field}_time'/>"
value="<inp2:{$prefix}_Field field='{$field}_time' format='_regional_InputTimeFormat'/>"
tabindex="<inp2:m_get param='tab_index'/>"
size="<inp2:{$prefix}_Format field='{$field}_time' input_format='1' edit_size='edit_size'/>"
style="<inp2:m_param name='style'/>"
/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_textarea" title="lu_fld_{$field}" style="width: 100%;" cols="" rows="" format="" error_position="top" field_type="textarea" hint_label="" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<textarea
class="field"
<inp2:m_if check="{$prefix}_FieldHintLabel" title_label="$title" direct_label="$hint_label">
title="<inp2:$prefix_FieldHintLabel title_label='$title' direct_label='$hint_label' html_escape='1'/>"
</inp2:m_if/>
tabindex="<inp2:m_get param="tab_index"/>"
name="<inp2:{$prefix}_InputName field='$field'/>"
id="<inp2:{$prefix}_InputName field='$field'/>"
cols="<inp2:m_param name='cols'/>"
rows="<inp2:m_param name='rows'/>"
style="<inp2:m_param name='style'/>"
><inp2:{$prefix}_Field field="$field" format="$format"/></textarea>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_option_item">
<option value="<inp2:m_param name="key"/>"<inp2:m_param name="selected"/>><inp2:m_param name="option"/></option>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_option_phrase">
<option value="<inp2:m_param name="key"/>"<inp2:m_param name="selected"/>><inp2:m_phrase label="$option"/></option>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_options" title="lu_fld_{$field}" style="" has_empty="0" empty_value="" empty_label="" field_type="select" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<select class="field" tabindex="<inp2:m_get param="tab_index"/>" name="<inp2:{$prefix}_InputName field="$field"/>" id="<inp2:{$prefix}_InputName field="$field"/>" style="<inp2:m_param name="style"/>">
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="use_phrases">
<inp2:{$prefix}_PredefinedOptions field="$field" block="inp_option_phrase" selected="selected" has_empty="$has_empty" empty_value="$empty_value" empty_label="$empty_label"/>
<inp2:m_else/>
<inp2:{$prefix}_PredefinedOptions field="$field" block="inp_option_item" selected="selected" has_empty="$has_empty" empty_value="$empty_value" empty_label="$empty_label"/>
</inp2:m_if>
</select>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
+<inp2:m_DefineElement name="inp_edit_country" title="lu_fld_{$field}" state_field="" style="" has_empty="0" empty_value="" empty_label="" field_type="select" no_editing="1">
+ <inp2:m_RenderElement design="form_row" pass_params="1">
+ <select class="field" tabindex="<inp2:m_get param="tab_index"/>" state_field="<inp2:m_Param name='state_field'/>" name="<inp2:{$prefix}_InputName field="$field"/>" id="<inp2:{$prefix}_InputName field="$field"/>" style="<inp2:m_param name="style"/>">
+ <inp2:{$prefix}_PredefinedOptions field="$field" block="inp_option_item" selected="selected" has_empty="$has_empty" empty_value="$empty_value" empty_label="$empty_label"/>
+ </select>
+
+ <script type="text/javascript">
+ $(document).ready(
+ function () {
+ var $field_mask = '<inp2:$prefix_InputName field="#FIELD_NAME#" js_escape="1"/>';
+
+ $( get_control($field_mask, '<inp2:m_Param name="field"/>') ).change(
+ function ($e) {
+ var $me = $(this),
+ $state_dropdown = $( get_control($field_mask, $me.attr('state_field')) ),
+ $url = '<inp2:m_Link country-state_event="OnGetStatesJSON" country_iso="#ISO#" pass="m,country-state" no_amp="1" js_escape="1"/>';
+
+ $.getJSON(
+ $url.replace('#ISO#', $me.val()),
+ function ($states) {
+ var $selected = $state_dropdown.val();
+
+ $state_dropdown.empty().append('<option value=""></option>');
+
+ if ( !$.isArray($states) ) {
+ for (var $state_iso in $states) {
+ $state_dropdown.append('<option value="' + $state_iso + '">' + $states[$state_iso] + '</option>');
+ }
+ }
+
+ $state_dropdown.val($selected);
+ }
+ );
+ }
+ );
+ }
+ );
+ </script>
+ </inp2:m_RenderElement>
+</inp2:m_DefineElement>
+
<inp2:m_DefineElement name="inp_radio_item" style="" onclick="" has_br="0">
<input type="radio" tabindex="<inp2:m_get param="tab_index"/>" style="<inp2:m_param name="style"/>" <inp2:m_param name="checked"/> name="<inp2:{$prefix}_InputName field="$field"/>" id="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>" value="<inp2:m_param name="key"/>"><label for="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>">&nbsp;<inp2:m_param name="option"/></label><inp2:m_if check="m_Param" name="has_br"><br/><inp2:m_else/>&nbsp;&nbsp;</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_radio_phrase" style="" onclick="" has_br="0">
<input type="radio" tabindex="<inp2:m_get param="tab_index"/>" style="<inp2:m_param name="style"/>" <inp2:m_param name="checked"/> name="<inp2:{$prefix}_InputName field="$field"/>" id="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>" value="<inp2:m_param name="key"/>"><label for="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>">&nbsp;<inp2:m_phrase label="$option"/></label><inp2:m_if check="m_Param" name="has_br"><br/><inp2:m_else/>&nbsp;&nbsp;</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_radio" title="lu_fld_{$field}" style="" pass_tabindex="" onclick="" onchange="" field_type="radio" has_br="0" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="use_phrases">
<inp2:{$prefix}_PredefinedOptions field="$field" block="inp_radio_phrase" selected="checked" has_br="$has_br"/>
<inp2:m_else />
<inp2:{$prefix}_PredefinedOptions field="$field" block="inp_radio_item" selected="checked" has_br="$has_br"/>
</inp2:m_if>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_captcha" style="" field="Captcha" title="lu_fld_Captcha" no_editing="1" field_type="captcha" is_last="0">
<inp2:m_RenderElement design="form_row" pass_params="1">
<img src="<inp2:m_Link template="platform/inc/captcha_image.elm" var="{$prefix}_captcha_code" w="150" h="30"/>" alt="<inp2:m_Phrase name="$title" no_editing="1"/>"/><br />
<br />
<input type="text" class="input-text" name="<inp2:{$prefix}_InputName field="Captcha"/>" id="<inp2:{$prefix}_InputName field="Captcha"/>" value="<inp2:{$prefix}_Field field="Captcha"/>" tabindex="<inp2:m_get param="tab_index"/>" style="<inp2:m_Param name="style"/>"/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_checkbox" title="lu_fld_{$field}" style="" field_type="checkbox" no_editing="1">
<inp2:m_RenderElement design="form_row" pass_params="1">
<input type="hidden" id="<inp2:{$prefix}_InputName field="$field"/>" name="<inp2:{$prefix}_InputName field="$field"/>" value="<inp2:{$prefix}_Field field="$field" db="db"/>" />
<input tabindex="<inp2:m_get param="tab_index"/>" type="checkbox" id="_cb_<inp2:{$prefix}_InputName field="$field"/>" name="_cb_<inp2:{$prefix}_InputName field="$field"/>" <inp2:{$prefix}_Field field="$field" checked="checked" db="db"/> style="<inp2:m_param name="style"/>" onchange="update_checkbox(this, document.getElementById('<inp2:{$prefix}_InputName field="$field"/>'));">
</inp2:m_RenderElement>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_checkbox_item">
&nbsp;<input type="checkbox" <inp2:m_param name='checked'/> id="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>" value="<inp2:m_param name='key'/>" onclick="update_checkbox_options(/^<inp2:{$prefix}_InputName field='$field' as_preg='1'/>_([0-9A-Za-z-]+)/, '<inp2:{$prefix}_InputName field='$field'/>');"><label for="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>"><inp2:m_param name="option"/></label><inp2:m_if check="m_Param" name="has_br"><br/><inp2:m_else/>&nbsp;&nbsp;</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_checkbox_phrase">
&nbsp;<input type="checkbox" <inp2:m_param name='checked'/> id="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>" value="<inp2:m_param name='key'/>" onclick="update_checkbox_options(/^<inp2:{$prefix}_InputName field='$field' as_preg='1'/>_([0-9A-Za-z-]+)/, '<inp2:{$prefix}_InputName field='$field'/>');"><label for="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>"><inp2:m_phrase label="$option"/></label><inp2:m_if check="m_Param" name="has_br"><br/><inp2:m_else/>&nbsp;&nbsp;</inp2:m_if>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="inp_edit_checkboxes" title="lu_fld_{$field}" no_empty="" pass_tabindex="" field_type="checkboxes" show_length="0" has_br="0">
<inp2:m_RenderElement design="form_row" pass_params="1">
<inp2:m_if check="{$prefix}_FieldOption" field="$field" option="use_phrases">
<inp2:{$prefix}_PredefinedOptions field="$field" no_empty="$no_empty" tabindex="$pass_tabindex" block="inp_checkbox_phrase" selected="checked" has_br="$has_br"/>
<inp2:m_else/>
<inp2:{$prefix}_PredefinedOptions field="$field" no_empty="$no_empty" tabindex="$pass_tabindex" block="inp_checkbox_item" selected="checked" has_br="$has_br"/>
</inp2:m_if>
<inp2:m_RenderElement prefix="$prefix" name="inp_edit_hidden" field="$field" db="db"/>
</inp2:m_RenderElement>
</inp2:m_DefineElement>
\ No newline at end of file

Event Timeline