Roll back changelist 180942763

*** Reason for rollback ***

Breaks the FOSS build.

We'll reincorporate this change once Closure Rules is properly updated to accommodate it.

*** Original change description ***

Change all foreach loops in Soy templates to use the for loop syntax

Soy supports 2 kinds of loops:
foreach- for iterating over items in a collection  e.g. {foreach $item in $list}...{/foreach}
for - for indexed iteration  e.g. {for $i in range(0, 10)}...{/for}

The reason Soy has 2 different loops is an accident of history, Soy didn’t use to have a proper grammar for expressions and so the alternate ‘for...range’ syntax was added to make it possible to write indexed loops.  As the gramma...

***

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=180961695
This commit is contained in:
mcilwain 2018-01-05 12:37:30 -08:00 committed by Ben McIlwain
parent d52a701f50
commit ffcfa283f6
24 changed files with 103 additions and 109 deletions

View file

@ -1458,10 +1458,10 @@ def com_google_re2j():
def com_google_template_soy(): def com_google_template_soy():
java_import_external( java_import_external(
name = "com_google_template_soy", name = "com_google_template_soy",
jar_sha256 = "2952b430323a01070d73c7767e34c4030355b9e60c14b5165bebf69b2f6ad927", jar_sha256 = "3c4e61234e9ee9f79411da997e23b201bcf281255469c76d162dac07a67dbb78",
jar_urls = [ jar_urls = [
"http://repo1.maven.org/maven2/com/google/template/soy/2018-01-03/soy-2018-01-03.jar", "http://repo1.maven.org/maven2/com/google/template/soy/2017-06-22/soy-2017-06-22.jar",
"http://central.maven.org/maven2/com/google/template/soy/2018-01-03/soy-2018-01-03.jar", "http://central.maven.org/maven2/com/google/template/soy/2017-06-22/soy-2017-06-22.jar",
], ],
deps = [ deps = [
"@args4j", "@args4j",

View file

@ -48,9 +48,9 @@
{/if} {/if}
<contact:addr> <contact:addr>
{if $street} {if $street}
{for $s in $street} {foreach $s in $street}
<contact:street>{$s}</contact:street> <contact:street>{$s}</contact:street>
{/for} {/foreach}
{/if} {/if}
{if $city} {if $city}
<contact:city>{$city}</contact:city> <contact:city>{$city}</contact:city>

View file

@ -39,15 +39,15 @@
<domain:period unit="y">{$period}</domain:period> <domain:period unit="y">{$period}</domain:period>
{if isNonnull($nameservers) and length($nameservers) > 0} {if isNonnull($nameservers) and length($nameservers) > 0}
<domain:ns> <domain:ns>
{for $nameserver in $nameservers} {foreach $nameserver in $nameservers}
<domain:hostObj>{$nameserver}</domain:hostObj> <domain:hostObj>{$nameserver}</domain:hostObj>
{/for} {/foreach}
</domain:ns> </domain:ns>
{/if} {/if}
<domain:registrant>{$registrant}</domain:registrant> <domain:registrant>{$registrant}</domain:registrant>
{for $type in keys($contacts)} {foreach $type in keys($contacts)}
<domain:contact type="{$type}">{$contacts[$type]}</domain:contact> <domain:contact type="{$type}">{$contacts[$type]}</domain:contact>
{/for} {/foreach}
<domain:authInfo> <domain:authInfo>
<domain:pw>{$authInfo}</domain:pw> <domain:pw>{$authInfo}</domain:pw>
</domain:authInfo> </domain:authInfo>
@ -70,14 +70,14 @@
</allocate:create> </allocate:create>
{if isNonnull($dsRecords) and length($dsRecords) > 0} {if isNonnull($dsRecords) and length($dsRecords) > 0}
<secDNS:create xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1"> <secDNS:create xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
{for $dsRecord in $dsRecords} {foreach $dsRecord in $dsRecords}
<secDNS:dsData> <secDNS:dsData>
<secDNS:keyTag>{$dsRecord['keyTag']}</secDNS:keyTag> <secDNS:keyTag>{$dsRecord['keyTag']}</secDNS:keyTag>
<secDNS:alg>{$dsRecord['algorithm']}</secDNS:alg> <secDNS:alg>{$dsRecord['algorithm']}</secDNS:alg>
<secDNS:digestType>{$dsRecord['digestType']}</secDNS:digestType> <secDNS:digestType>{$dsRecord['digestType']}</secDNS:digestType>
<secDNS:digest>{$dsRecord['digest']}</secDNS:digest> <secDNS:digest>{$dsRecord['digest']}</secDNS:digest>
</secDNS:dsData> </secDNS:dsData>
{/for} {/foreach}
</secDNS:create> </secDNS:create>
{/if} {/if}
</extension> </extension>

View file

@ -24,9 +24,9 @@
<command> <command>
<check> <check>
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> <domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
{for $d in $domainNames} {foreach $d in $domainNames}
<domain:name>{$d}</domain:name> <domain:name>{$d}</domain:name>
{/for} {/foreach}
</domain:check> </domain:check>
</check> </check>
<clTRID>RegistryTool</clTRID> <clTRID>RegistryTool</clTRID>

View file

@ -24,9 +24,9 @@
<command> <command>
<check> <check>
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> <domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
{for $d in $domainNames} {foreach $d in $domainNames}
<domain:name>{$d}</domain:name> <domain:name>{$d}</domain:name>
{/for} {/foreach}
</domain:check> </domain:check>
</check> </check>
<extension> <extension>

View file

@ -24,20 +24,20 @@
<command> <command>
<check> <check>
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> <domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
{for $d in $domainNames} {foreach $d in $domainNames}
<domain:name>{$d}</domain:name> <domain:name>{$d}</domain:name>
{/for} {/foreach}
</domain:check> </domain:check>
</check> </check>
<extension> <extension>
<fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.6"> <fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.6">
{for $d in $domainNames} {foreach $d in $domainNames}
<fee:domain> <fee:domain>
<fee:name>{$d}</fee:name> <fee:name>{$d}</fee:name>
<fee:command>create</fee:command> <fee:command>create</fee:command>
<fee:period unit="y">1</fee:period> <fee:period unit="y">1</fee:period>
</fee:domain> </fee:domain>
{/for} {/foreach}
</fee:check> </fee:check>
</extension> </extension>
<clTRID>RegistryTool</clTRID> <clTRID>RegistryTool</clTRID>

View file

@ -36,18 +36,18 @@
{/if} {/if}
{if length($nameservers) > 0} {if length($nameservers) > 0}
<domain:ns> <domain:ns>
{for $s in $nameservers} {foreach $s in $nameservers}
<domain:hostObj>{$s}</domain:hostObj> <domain:hostObj>{$s}</domain:hostObj>
{/for} {/foreach}
</domain:ns> </domain:ns>
{/if} {/if}
<domain:registrant>{$registrant}</domain:registrant> <domain:registrant>{$registrant}</domain:registrant>
{for $admin in $admins} {foreach $admin in $admins}
<domain:contact type="admin">{$admin}</domain:contact> <domain:contact type="admin">{$admin}</domain:contact>
{/for} {/foreach}
{for $tech in $techs} {foreach $tech in $techs}
<domain:contact type="tech">{$tech}</domain:contact> <domain:contact type="tech">{$tech}</domain:contact>
{/for} {/foreach}
<domain:authInfo> <domain:authInfo>
<domain:pw>{$password}</domain:pw> <domain:pw>{$password}</domain:pw>
</domain:authInfo> </domain:authInfo>

View file

@ -42,40 +42,40 @@
<domain:add> <domain:add>
{if length($addNameservers) > 0} {if length($addNameservers) > 0}
<domain:ns> <domain:ns>
{for $s in $addNameservers} {foreach $s in $addNameservers}
<domain:hostObj>{$s}</domain:hostObj> <domain:hostObj>{$s}</domain:hostObj>
{/for} {/foreach}
</domain:ns> </domain:ns>
{/if} {/if}
{for $admin in $addAdmins} {foreach $admin in $addAdmins}
<domain:contact type="admin">{$admin}</domain:contact> <domain:contact type="admin">{$admin}</domain:contact>
{/for} {/foreach}
{for $tech in $addTechs} {foreach $tech in $addTechs}
<domain:contact type="tech">{$tech}</domain:contact> <domain:contact type="tech">{$tech}</domain:contact>
{/for} {/foreach}
{for $status in $addStatuses} {foreach $status in $addStatuses}
<domain:status s="{$status}"/> <domain:status s="{$status}"/>
{/for} {/foreach}
</domain:add> </domain:add>
{/if} {/if}
{if $remove} {if $remove}
<domain:rem> <domain:rem>
{if length($removeNameservers) > 0} {if length($removeNameservers) > 0}
<domain:ns> <domain:ns>
{for $s in $removeNameservers} {foreach $s in $removeNameservers}
<domain:hostObj>{$s}</domain:hostObj> <domain:hostObj>{$s}</domain:hostObj>
{/for} {/foreach}
</domain:ns> </domain:ns>
{/if} {/if}
{for $admin in $removeAdmins} {foreach $admin in $removeAdmins}
<domain:contact type="admin">{$admin}</domain:contact> <domain:contact type="admin">{$admin}</domain:contact>
{/for} {/foreach}
{for $tech in $removeTechs} {foreach $tech in $removeTechs}
<domain:contact type="tech">{$tech}</domain:contact> <domain:contact type="tech">{$tech}</domain:contact>
{/for} {/foreach}
{for $status in $removeStatuses} {foreach $status in $removeStatuses}
<domain:status s="{$status}"/> <domain:status s="{$status}"/>
{/for} {/foreach}
</domain:rem> </domain:rem>
{/if} {/if}
{if $change} {if $change}

View file

@ -28,14 +28,14 @@
<host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0"> <host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0">
<host:name>{$hostname}</host:name> <host:name>{$hostname}</host:name>
{if $ipv4addresses} {if $ipv4addresses}
{for $ipv4 in $ipv4addresses} {foreach $ipv4 in $ipv4addresses}
<host:addr ip="v4">{$ipv4}</host:addr> <host:addr ip="v4">{$ipv4}</host:addr>
{/for} {/foreach}
{/if} {/if}
{if $ipv6addresses} {if $ipv6addresses}
{for $ipv6 in $ipv6addresses} {foreach $ipv6 in $ipv6addresses}
<host:addr ip="v6">{$ipv6}</host:addr> <host:addr ip="v6">{$ipv6}</host:addr>
{/for} {/foreach}
{/if} {/if}
</host:create> </host:create>
</create> </create>

View file

@ -28,11 +28,11 @@
<host:update <host:update
xmlns:host="urn:ietf:params:xml:ns:host-1.0"> xmlns:host="urn:ietf:params:xml:ns:host-1.0">
<host:name>{$name}</host:name> <host:name>{$name}</host:name>
{for $ip in $ipAddresses} {foreach $ip in $ipAddresses}
<host:rem> <host:rem>
<host:addr ip="{$ip['type']}">{$ip['address']}</host:addr> <host:addr ip="{$ip['type']}">{$ip['address']}</host:addr>
</host:rem> </host:rem>
{/for} {/foreach}
</host:update> </host:update>
</update> </update>
<extension> <extension>

View file

@ -34,26 +34,26 @@
<domain:add> <domain:add>
{if length($hostsToAdd) > 0} {if length($hostsToAdd) > 0}
<domain:ns> <domain:ns>
{for $ha in $hostsToAdd} {foreach $ha in $hostsToAdd}
<domain:hostObj>{$ha}</domain:hostObj> <domain:hostObj>{$ha}</domain:hostObj>
{/for} {/foreach}
</domain:ns> </domain:ns>
{/if} {/if}
{for $la in $locksToApply} {foreach $la in $locksToApply}
<domain:status s="{$la}" /> <domain:status s="{$la}" />
{/for} {/foreach}
</domain:add> </domain:add>
<domain:rem> <domain:rem>
{if length($hostsToRemove) > 0} {if length($hostsToRemove) > 0}
<domain:ns> <domain:ns>
{for $hr in $hostsToRemove} {foreach $hr in $hostsToRemove}
<domain:hostObj>{$hr}</domain:hostObj> <domain:hostObj>{$hr}</domain:hostObj>
{/for} {/foreach}
</domain:ns> </domain:ns>
{/if} {/if}
{for $lr in $locksToRemove} {foreach $lr in $locksToRemove}
<domain:status s="{$lr}" /> <domain:status s="{$lr}" />
{/for} {/foreach}
</domain:rem> </domain:rem>
</domain:update> </domain:update>
</update> </update>
@ -64,14 +64,14 @@
</secDNS:rem> </secDNS:rem>
{if length($newDsData) > 0} {if length($newDsData) > 0}
<secDNS:add> <secDNS:add>
{for $ds in $newDsData} {foreach $ds in $newDsData}
<secDNS:dsData> <secDNS:dsData>
<secDNS:keyTag>{$ds.keyTag}</secDNS:keyTag> <secDNS:keyTag>{$ds.keyTag}</secDNS:keyTag>
<secDNS:alg>{$ds.alg}</secDNS:alg> <secDNS:alg>{$ds.alg}</secDNS:alg>
<secDNS:digestType>{$ds.digestType}</secDNS:digestType> <secDNS:digestType>{$ds.digestType}</secDNS:digestType>
<secDNS:digest>{$ds.digest}</secDNS:digest> <secDNS:digest>{$ds.digest}</secDNS:digest>
</secDNS:dsData> </secDNS:dsData>
{/for} {/foreach}
</secDNS:add> </secDNS:add>
{/if} {/if}
</secDNS:update> </secDNS:update>

View file

@ -31,14 +31,14 @@
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"> xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>{$domainName}</domain:name> <domain:name>{$domainName}</domain:name>
<domain:add> <domain:add>
{for $a in $locksToApply} {foreach $a in $locksToApply}
<domain:status s="{$a}" lang="en"></domain:status> <domain:status s="{$a}" lang="en"></domain:status>
{/for} {/foreach}
</domain:add> </domain:add>
<domain:rem> <domain:rem>
{for $r in $locksToRemove} {foreach $r in $locksToRemove}
<domain:status s="{$r}" lang="en"></domain:status> <domain:status s="{$r}" lang="en"></domain:status>
{/for} {/foreach}
</domain:rem> </domain:rem>
</domain:update> </domain:update>
</update> </update>

View file

@ -10,9 +10,6 @@ closure_js_template_library(
name = "soy", name = "soy",
srcs = glob(["*.soy"]), srcs = glob(["*.soy"]),
globals = "//java/google/registry/ui:globals.txt", globals = "//java/google/registry/ui:globals.txt",
# TODO: remove this when upgrading rules closure. This is only necessary because
# our version of soy is newer than what rules closure expects
should_generate_js_doc = False,
) )
closure_java_template_library( closure_java_template_library(

View file

@ -244,11 +244,11 @@
name="{$name}" name="{$name}"
class="{css('kd-button')} {css('reg-select')}" class="{css('kd-button')} {css('reg-select')}"
{if $readonly}disabled{/if}> {if $readonly}disabled{/if}>
{for $option in $options} {foreach $option in $options}
<option value="{$option}" {if $selected == $option}selected{/if}> <option value="{$option}" {if $selected == $option}selected{/if}>
{$option} {$option}
</option> </option>
{/for} {/foreach}
</select> </select>
</td> </td>
</tr> </tr>
@ -263,12 +263,12 @@
{template .inputRadioWithValue} {template .inputRadioWithValue}
<tr> <tr>
<td colspan="2"> <td colspan="2">
{for $value in $values} {foreach $value in $values}
<input type="radio" <input type="radio"
name="{$name}" name="{$name}"
value="{$value}" value="{$value}"
{if $checkedValue == $value}checked{/if}> {if $checkedValue == $value}checked{/if}>
{/for} {/foreach}
</td> </td>
</tr> </tr>
{/template} {/template}
@ -309,13 +309,13 @@
</span> </span>
<span class="{css('kd-disclosureindicator')}"></span> <span class="{css('kd-disclosureindicator')}"></span>
<ul class="{css('kd-menulist')}"> <ul class="{css('kd-menulist')}">
{for $item in $items} {foreach $item in $items}
<li class="{css('kd-menulistitem')} <li class="{css('kd-menulistitem')}
{if $item == $selected} {if $item == $selected}
{sp}{css('selected')} {sp}{css('selected')}
{/if}"> {/if}">
{$item} {$item}
{/for} {/foreach}
</ul> </ul>
</div> </div>
{/template} {/template}

View file

@ -11,9 +11,6 @@ closure_js_template_library(
srcs = glob(["*.soy"]), srcs = glob(["*.soy"]),
data = ["//java/google/registry/ui/css:registrar_raw"], data = ["//java/google/registry/ui/css:registrar_raw"],
globals = "//java/google/registry/ui:globals.txt", globals = "//java/google/registry/ui:globals.txt",
# TODO: remove this when upgrading rules closure. This is only necessary because
# our version of soy is newer than what rules closure expects
should_generate_js_doc = False,
deps = ["//java/google/registry/ui/soy"], deps = ["//java/google/registry/ui/soy"],
) )

View file

@ -89,13 +89,13 @@
<td colspan="2"> <td colspan="2">
<div id="contact-postalInfo"> <div id="contact-postalInfo">
{if isNonnull($item['contact:postalInfo'])} {if isNonnull($item['contact:postalInfo'])}
{for $pi in $item['contact:postalInfo']} {foreach $pi in $item['contact:postalInfo']}
{call .postalInfo data="all"} {call .postalInfo data="all"}
{param localized: index($pi) == 1 /} {param localized: index($pi) == 1 /}
{param item: $pi/} {param item: $pi/}
{param namePrefix: 'contact:postalInfo[' + index($pi) + '].contact:' /} {param namePrefix: 'contact:postalInfo[' + index($pi) + '].contact:' /}
{/call} {/call}
{/for} {/foreach}
{else} {else}
{call .postalInfo data="all"} {call .postalInfo data="all"}
{param namePrefix: 'contact:postalInfo[0].contact:' /} {param namePrefix: 'contact:postalInfo[0].contact:' /}

View file

@ -28,7 +28,7 @@
<create> <create>
<contact:create xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> <contact:create xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
<contact:id>{$item['contact:id']}</contact:id> <contact:id>{$item['contact:id']}</contact:id>
{for $pi in $item['contact:postalInfo']} {foreach $pi in $item['contact:postalInfo']}
<contact:postalInfo type="{if index($pi) == 0}int{else}loc{/if}"> <contact:postalInfo type="{if index($pi) == 0}int{else}loc{/if}">
<contact:name>{$pi['contact:name']}</contact:name> <contact:name>{$pi['contact:name']}</contact:name>
<contact:org>{$pi['contact:org']}</contact:org> <contact:org>{$pi['contact:org']}</contact:org>
@ -41,7 +41,7 @@
<contact:cc>{$addr['contact:cc']}</contact:cc> <contact:cc>{$addr['contact:cc']}</contact:cc>
</contact:addr> </contact:addr>
</contact:postalInfo> </contact:postalInfo>
{/for} {/foreach}
<contact:voice>{$item['contact:voice']}</contact:voice> <contact:voice>{$item['contact:voice']}</contact:voice>
<contact:fax>{$item['contact:fax']}</contact:fax> <contact:fax>{$item['contact:fax']}</contact:fax>
<contact:email>{$item['contact:email']}</contact:email> <contact:email>{$item['contact:email']}</contact:email>
@ -70,7 +70,7 @@
<contact:update xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> <contact:update xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
<contact:id>{$item['contact:id']}</contact:id> <contact:id>{$item['contact:id']}</contact:id>
<contact:chg> <contact:chg>
{for $pi in $item['contact:postalInfo']} {foreach $pi in $item['contact:postalInfo']}
<contact:postalInfo type="{if index($pi) == 0}int{else}loc{/if}"> <contact:postalInfo type="{if index($pi) == 0}int{else}loc{/if}">
<contact:name>{$pi['contact:name']}</contact:name> <contact:name>{$pi['contact:name']}</contact:name>
<contact:org>{$pi['contact:org']}</contact:org> <contact:org>{$pi['contact:org']}</contact:org>
@ -83,7 +83,7 @@
<contact:cc>{$addr['contact:cc']}</contact:cc> <contact:cc>{$addr['contact:cc']}</contact:cc>
</contact:addr> </contact:addr>
</contact:postalInfo> </contact:postalInfo>
{/for} {/foreach}
<contact:voice>{$item['contact:voice']}</contact:voice> <contact:voice>{$item['contact:voice']}</contact:voice>
<contact:fax>{$item['contact:fax']}</contact:fax> <contact:fax>{$item['contact:fax']}</contact:fax>
<contact:email>{$item['contact:email']}</contact:email> <contact:email>{$item['contact:email']}</contact:email>

View file

@ -30,7 +30,7 @@
<div class="{css('set')}"> <div class="{css('set')}">
<h1>Contact settings</h1> <h1>Contact settings</h1>
<table> <table>
{for $type in $possibleTypesLookup} {foreach $type in $possibleTypesLookup}
{if isNonnull($contactsByType[$type[0]])} {if isNonnull($contactsByType[$type[0]])}
<tr class="{css('kd-settings-pane-section')}"> <tr class="{css('kd-settings-pane-section')}">
<td> <td>
@ -40,7 +40,7 @@
</td> </td>
<td id="{$type[0]}-contacts" <td id="{$type[0]}-contacts"
class="{css('info')} {css('summary')} {css('domain-registrar-contacts')}"> class="{css('info')} {css('summary')} {css('domain-registrar-contacts')}">
{for $c in $contactsByType[$type[0]]} {foreach $c in $contactsByType[$type[0]]}
{call .contactInfoCompact} {call .contactInfoCompact}
{param namePrefix: 'contacts[' + index($c) + '].' /} {param namePrefix: 'contacts[' + index($c) + '].' /}
{param name: $c['name'] /} {param name: $c['name'] /}
@ -53,10 +53,10 @@
{param faxNumber: $c['faxNumber'] /} {param faxNumber: $c['faxNumber'] /}
{/call} {/call}
{if (index($c) + 1) % 3 == 0}<br>{/if} {if (index($c) + 1) % 3 == 0}<br>{/if}
{/for} {/foreach}
</td> </td>
{/if} {/if}
{/for} {/foreach}
</table> </table>
</div> </div>
{/template} {/template}
@ -185,11 +185,11 @@
<label class="{css('setting-label')}">Contact type</label> <label class="{css('setting-label')}">Contact type</label>
<td class="{css('setting')}"> <td class="{css('setting')}">
<div class="{css('setting-item-list')}"> <div class="{css('setting-item-list')}">
{for $type in $possibleTypesLookup} {foreach $type in $possibleTypesLookup}
{if $actualTypesLookup[$type[0]]} {if $actualTypesLookup[$type[0]]}
<div>{$type[1]} contact</div> <div>{$type[1]} contact</div>
{/if} {/if}
{/for} {/foreach}
</div> </div>
</td> </td>
<tr><td colspan="2"><hr></tr> <tr><td colspan="2"><hr></tr>
@ -301,7 +301,7 @@
{@param namePrefix: string} {@param namePrefix: string}
{@param actualTypesLookup: map<string, bool>} {@param actualTypesLookup: map<string, bool>}
{@param possibleTypesLookup: list<list<string>>} {@param possibleTypesLookup: list<list<string>>}
{for $type in $possibleTypesLookup} {foreach $type in $possibleTypesLookup}
{let $name: $namePrefix + 'type.' + $type[0] /} {let $name: $namePrefix + 'type.' + $type[0] /}
{let $checked: $actualTypesLookup[$type[0]] /} {let $checked: $actualTypesLookup[$type[0]] /}
<div class="{css('checkbox-with-label')}"> <div class="{css('checkbox-with-label')}">
@ -314,7 +314,7 @@
<span class="{css('description')}">{$type[2]}</span> <span class="{css('description')}">{$type[2]}</span>
</label> </label>
</div> </div>
{/for} {/foreach}
{/template} {/template}

View file

@ -113,7 +113,7 @@
</th> </th>
</tr> </tr>
{if isNonnull($item['domain:ns'] and isNonnull($item['domain:ns']['domain:hostObj']))} {if isNonnull($item['domain:ns'] and isNonnull($item['domain:ns']['domain:hostObj']))}
{for $hostObj in $item['domain:ns']['domain:hostObj']} {foreach $hostObj in $item['domain:ns']['domain:hostObj']}
{let $hostIdx: index($hostObj) /} {let $hostIdx: index($hostObj) /}
{call registry.soy.forms.inputFieldRowWithValue data="all"} {call registry.soy.forms.inputFieldRowWithValue data="all"}
{param label: 'Host ' + $hostIdx /} {param label: 'Host ' + $hostIdx /}
@ -121,7 +121,7 @@
{param value: $hostObj /} {param value: $hostObj /}
{param clazz kind="text"}{css('domain-hostObj')}{/param} {param clazz kind="text"}{css('domain-hostObj')}{/param}
{/call} {/call}
{/for} {/foreach}
{/if} {/if}
<tr id="domain-hosts-footer"></tr> <tr id="domain-hosts-footer"></tr>
@ -165,7 +165,7 @@
{template .showContact_ visibility="private"} {template .showContact_ visibility="private"}
{@param contacts: list<map<string, ?>>} /** List of EPP domain:contacts. */ {@param contacts: list<map<string, ?>>} /** List of EPP domain:contacts. */
{@param type: string} /** Type of contact (e.g. admin, tech) */ {@param type: string} /** Type of contact (e.g. admin, tech) */
{for $contact in $contacts} {foreach $contact in $contacts}
{if $type == $contact['@type']} {if $type == $contact['@type']}
{call registry.soy.forms.inputFieldRowWithValue data="all"} {call registry.soy.forms.inputFieldRowWithValue data="all"}
{param label: $contact['@type'] + ' contact' /} {param label: $contact['@type'] + ' contact' /}
@ -177,7 +177,7 @@
type="hidden" type="hidden"
value="{$contact['@type']}"> value="{$contact['@type']}">
{/if} {/if}
{/for} {/foreach}
{/template} {/template}

View file

@ -32,18 +32,18 @@
{/if} {/if}
{if isNonnull($item['domain:ns'])} {if isNonnull($item['domain:ns'])}
<domain:ns> <domain:ns>
{for $hostObj in $item['domain:ns']['domain:hostObj']} {foreach $hostObj in $item['domain:ns']['domain:hostObj']}
<domain:hostObj>{$hostObj.value}</domain:hostObj> <domain:hostObj>{$hostObj.value}</domain:hostObj>
{/for} {/foreach}
</domain:ns> </domain:ns>
{/if} {/if}
{if isNonnull($item['domain:registrant'])} {if isNonnull($item['domain:registrant'])}
<domain:registrant>{$item['domain:registrant']}</domain:registrant> <domain:registrant>{$item['domain:registrant']}</domain:registrant>
{/if} {/if}
{if isNonnull($item['domain:contact'])} {if isNonnull($item['domain:contact'])}
{for $contact in $item['domain:contact']} {foreach $contact in $item['domain:contact']}
<domain:contact type="{$contact['@type']}">{$contact.value}</domain:contact> <domain:contact type="{$contact['@type']}">{$contact.value}</domain:contact>
{/for} {/foreach}
{/if} {/if}
<domain:authInfo> <domain:authInfo>
<domain:pw>{$item['domain:authInfo']['domain:pw']}</domain:pw> <domain:pw>{$item['domain:authInfo']['domain:pw']}</domain:pw>
@ -128,15 +128,15 @@
<{$tagName}> <{$tagName}>
{if isNonnull($hosts)} {if isNonnull($hosts)}
<domain:ns> <domain:ns>
{for $host in $hosts} {foreach $host in $hosts}
<domain:hostObj>{$host.value}</domain:hostObj> <domain:hostObj>{$host.value}</domain:hostObj>
{/for} {/foreach}
</domain:ns> </domain:ns>
{/if} {/if}
{if isNonnull($contacts)} {if isNonnull($contacts)}
{for $contact in $contacts} {foreach $contact in $contacts}
<domain:contact type="{$contact['@type']}">{$contact.value}</domain:contact> <domain:contact type="{$contact['@type']}">{$contact.value}</domain:contact>
{/for} {/foreach}
{/if} {/if}
</{$tagName}> </{$tagName}>
{/template} {/template}

View file

@ -59,7 +59,7 @@
</th> </th>
</tr> </tr>
{if isNonnull($item['host:addr'])} {if isNonnull($item['host:addr'])}
{for $addr in $item['host:addr']} {foreach $addr in $item['host:addr']}
{if not $readonly} {if not $readonly}
<input type="hidden" <input type="hidden"
name="host:oldAddr[{index($addr)}].value" name="host:oldAddr[{index($addr)}].value"
@ -70,7 +70,7 @@
{param name: 'host:addr[' + index($addr) + '].value' /} {param name: 'host:addr[' + index($addr) + '].value' /}
{param value: $item['host:addr'][index($addr)] /} {param value: $item['host:addr'][index($addr)] /}
{/call} {/call}
{/for} {/foreach}
{/if} {/if}
<tr id="domain-host-addrs-footer"></tr> <tr id="domain-host-addrs-footer"></tr>
</table> </table>

View file

@ -27,10 +27,10 @@
<host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0"> <host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0">
<host:name>{$item['host:name']}</host:name> <host:name>{$item['host:name']}</host:name>
{if isNonnull($item['host:addr'])} {if isNonnull($item['host:addr'])}
{for $addr in $item['host:addr']} {foreach $addr in $item['host:addr']}
{let $type: strContains($addr['value'], ':') ? 'v6' : 'v4' /} {let $type: strContains($addr['value'], ':') ? 'v6' : 'v4' /}
<host:addr ip="{$type}">{$addr['value']}</host:addr> <host:addr ip="{$type}">{$addr['value']}</host:addr>
{/for} {/foreach}
{/if} {/if}
</host:create> </host:create>
</create> </create>
@ -101,10 +101,10 @@
{let $tagName: $isAdd ? 'host:add' : 'host:rem' /} {let $tagName: $isAdd ? 'host:add' : 'host:rem' /}
{if length($addrs) > 0} {if length($addrs) > 0}
<{$tagName}> <{$tagName}>
{for $addr in $addrs} {foreach $addr in $addrs}
{let $type: strContains($addr, ':') ? 'v6' : 'v4' /} {let $type: strContains($addr, ':') ? 'v6' : 'v4' /}
<host:addr ip="{$type}">{$addr}</host:addr> <host:addr ip="{$type}">{$addr}</host:addr>
{/for} {/foreach}
</{$tagName}> </{$tagName}>
{/if} {/if}
{/template} {/template}

View file

@ -47,12 +47,12 @@
<td class="{css('setting')}"> <td class="{css('setting')}">
<div class="{css('info')} {css('summary')}"> <div class="{css('info')} {css('summary')}">
<div id="ips"> <div id="ips">
{for $ip in $ipAddressWhitelist} {foreach $ip in $ipAddressWhitelist}
{call .ip} {call .ip}
{param name: 'ipAddressWhitelist[' + index($ip) + ']' /} {param name: 'ipAddressWhitelist[' + index($ip) + ']' /}
{param ip: $ip /} {param ip: $ip /}
{/call} {/call}
{/for} {/foreach}
</div> </div>
<div class="{css('hidden')}"> <div class="{css('hidden')}">
<input id="newIp" value="" placeholder="Enter IP address..."/> <input id="newIp" value="" placeholder="Enter IP address..."/>

View file

@ -149,13 +149,13 @@
{@param? state: string} {@param? state: string}
{@param? zip: string} {@param? zip: string}
{@param countryCode: string} {@param countryCode: string}
{for $line in $street} {foreach $line in $street}
<input type="hidden" <input type="hidden"
name="{$id}.street[{index($line)}]" name="{$id}.street[{index($line)}]"
id="{$id}.street[{index($line)}]" id="{$id}.street[{index($line)}]"
value="{$street[index($line)]}"> value="{$street[index($line)]}">
<div class="{css('contact-address-street')}">{$street[index($line)]}</div> <div class="{css('contact-address-street')}">{$street[index($line)]}</div>
{/for} {/foreach}
<input type="hidden" name="{$id}.city" id="{$id}.city" value="{$city}"> <input type="hidden" name="{$id}.city" id="{$id}.city" value="{$city}">
<input type="hidden" name="{$id}.state" id="{$id}.state" value="{$state}"> <input type="hidden" name="{$id}.state" id="{$id}.state" value="{$state}">
<input type="hidden" name="{$id}.zip" id="{$id}.zip" value="{$zip}"> <input type="hidden" name="{$id}.zip" id="{$id}.zip" value="{$zip}">