From 595fb43c9ec583cb7671afda9d13fceadc95275f Mon Sep 17 00:00:00 2001
From: Jaime Perez Crespo <jaime.perez@uninett.no>
Date: Fri, 6 Nov 2015 11:21:19 +0100
Subject: [PATCH] Reformat and enhance IdP selection pages.

---
 modules/saml/www/disco.php       |   2 +-
 templates/selectidp-dropdown.php |  93 +++++++++----------
 templates/selectidp-links.php    | 147 +++++++++++++++----------------
 3 files changed, 111 insertions(+), 131 deletions(-)

diff --git a/modules/saml/www/disco.php b/modules/saml/www/disco.php
index 77c779979..1f3bac085 100644
--- a/modules/saml/www/disco.php
+++ b/modules/saml/www/disco.php
@@ -1,7 +1,7 @@
 <?php
 
 /**
- * Builtin IdP discovery service.
+ * Built-in IdP discovery service.
  */
 
 $discoHandler = new SimpleSAML_XHTML_IdPDisco(array('saml20-idp-remote', 'shib13-idp-remote'), 'saml');
diff --git a/templates/selectidp-dropdown.php b/templates/selectidp-dropdown.php
index e967353c2..1bb13def6 100644
--- a/templates/selectidp-dropdown.php
+++ b/templates/selectidp-dropdown.php
@@ -1,63 +1,50 @@
 <?php
 
-if(!array_key_exists('header', $this->data)) {
-	$this->data['header'] = 'selectidp';
+if (!array_key_exists('header', $this->data)) {
+    $this->data['header'] = 'selectidp';
 }
 $this->data['header'] = $this->t($this->data['header']);
-
 $this->data['autofocus'] = 'dropdownlist';
-
 $this->includeAtTemplateBase('includes/header.php');
 
-foreach ($this->data['idplist'] AS $idpentry) {
-	if (!empty($idpentry['name'])) {
-		$this->includeInlineTranslation('idpname_' . $idpentry['entityid'], $idpentry['name']);
-	} elseif (!empty($idpentry['OrganizationDisplayName'])) {
-		$this->includeInlineTranslation('idpname_' . $idpentry['entityid'], $idpentry['OrganizationDisplayName']);
-	}
-	if (!empty($idpentry['description']))
-		$this->includeInlineTranslation('idpdesc_' . $idpentry['entityid'], $idpentry['description']);
+foreach ($this->data['idplist'] as $idpentry) {
+    if (!empty($idpentry['name'])) {
+        $this->includeInlineTranslation('idpname_'.$idpentry['entityid'], $idpentry['name']);
+    } elseif (!empty($idpentry['OrganizationDisplayName'])) {
+        $this->includeInlineTranslation('idpname_'.$idpentry['entityid'], $idpentry['OrganizationDisplayName']);
+    }
+    if (!empty($idpentry['description'])) {
+        $this->includeInlineTranslation('idpdesc_'.$idpentry['entityid'], $idpentry['description']);
+    }
 }
-
-
 ?>
-
-		<h2><?php echo $this->data['header']; ?></h2>
-		
-		<p><?php echo $this->t('selectidp_full'); ?></p>
-
-		<form method="get" action="<?php echo $this->data['urlpattern']; ?>">
-		<input type="hidden" name="entityID" value="<?php echo htmlspecialchars($this->data['entityID']); ?>" />
-		<input type="hidden" name="return" value="<?php echo htmlspecialchars($this->data['return']); ?>" />
-		<input type="hidden" name="returnIDParam" value="<?php echo htmlspecialchars($this->data['returnIDParam']); ?>" />
-		<select id="dropdownlist" name="idpentityid">
-		<?php
-
-		usort($this->data['idplist'], function($idpentry1, $idpentry2) {
-			return strcmp($this->t('idpname_' . $idpentry1['entityid']),
-			              $this->t('idpname_' . $idpentry2['entityid']));
-
-		});
-			
-		foreach ($this->data['idplist'] AS $idpentry) {
-
-			echo '<option value="'.htmlspecialchars($idpentry['entityid']).'"';
-			if (isset($this->data['preferredidp']) && 
-				$idpentry['entityid'] == $this->data['preferredidp']) 
-				echo ' selected="selected"';
-				
-			echo '>'.htmlspecialchars($this->t('idpname_' . $idpentry['entityid'])).'</option>';
-		
-		}
-		?>
-		</select>
-		<input type="submit" value="<?php echo $this->t('select'); ?>"/>
-		<?php
-		if($this->data['rememberenabled']) {
-			echo('<br/><input type="checkbox" name="remember" value="1" />' . $this->t('remember'));
-		}
-		?>
-		</form>
-
-		
+    <h2><?php echo $this->data['header']; ?></h2>
+    <p><?php echo $this->t('selectidp_full'); ?></p>
+    <form method="get" action="<?php echo $this->data['urlpattern']; ?>">
+        <input type="hidden" name="entityID" value="<?php echo htmlspecialchars($this->data['entityID']); ?>"/>
+        <input type="hidden" name="return" value="<?php echo htmlspecialchars($this->data['return']); ?>"/>
+        <input type="hidden" name="returnIDParam"
+               value="<?php echo htmlspecialchars($this->data['returnIDParam']); ?>"/>
+        <select id="dropdownlist" name="idpentityid">
+            <?php
+            usort($this->data['idplist'], function ($idpentry1, $idpentry2) {
+                return strcmp($this->t('idpname_'.$idpentry1['entityid']), $this->t('idpname_'.$idpentry2['entityid']));
+            });
+
+            foreach ($this->data['idplist'] as $idpentry) {
+                echo '<option value="'.htmlspecialchars($idpentry['entityid']).'"';
+                if (isset($this->data['preferredidp']) && $idpentry['entityid'] == $this->data['preferredidp']) {
+                    echo ' selected="selected"';
+                }
+                echo '>'.htmlspecialchars($this->t('idpname_'.$idpentry['entityid'])).'</option>';
+            }
+            ?>
+        </select>
+        <button class="btn" type="submit"><?php echo $this->t('select'); ?></button>
+        <?php
+        if ($this->data['rememberenabled']) {
+            echo('<br/><input type="checkbox" name="remember" value="1" />'.$this->t('remember'));
+        }
+        ?>
+    </form>
 <?php $this->includeAtTemplateBase('includes/footer.php');
diff --git a/templates/selectidp-links.php b/templates/selectidp-links.php
index 54d6696f0..64a3f26e5 100644
--- a/templates/selectidp-links.php
+++ b/templates/selectidp-links.php
@@ -1,86 +1,79 @@
 <?php
 
-if(!array_key_exists('header', $this->data)) {
-	$this->data['header'] = 'selectidp';
+if (!array_key_exists('header', $this->data)) {
+    $this->data['header'] = 'selectidp';
 }
 $this->data['header'] = $this->t($this->data['header']);
-
 $this->data['autofocus'] = 'preferredidp';
-
 $this->includeAtTemplateBase('includes/header.php');
-
-foreach ($this->data['idplist'] AS $idpentry) {
-	if (isset($idpentry['name'])) {
-		$this->includeInlineTranslation('idpname_' . $idpentry['entityid'], $idpentry['name']);
-	} elseif (isset($idpentry['OrganizationDisplayName'])) {
-		$this->includeInlineTranslation('idpname_' . $idpentry['entityid'], $idpentry['OrganizationDisplayName']);
-	}
-	if (isset($idpentry['description']))
-		$this->includeInlineTranslation('idpdesc_' . $idpentry['entityid'], $idpentry['description']);
+foreach ($this->data['idplist'] as $idpentry) {
+    if (isset($idpentry['name'])) {
+        $this->includeInlineTranslation('idpname_'.$idpentry['entityid'], $idpentry['name']);
+    } elseif (isset($idpentry['OrganizationDisplayName'])) {
+        $this->includeInlineTranslation('idpname_'.$idpentry['entityid'], $idpentry['OrganizationDisplayName']);
+    }
+    if (isset($idpentry['description'])) {
+        $this->includeInlineTranslation('idpdesc_'.$idpentry['entityid'], $idpentry['description']);
+    }
 }
-
-
 ?>
-
-
-		<h2><?php echo $this->data['header']; ?></h2>
-
-		<form method="get" action="<?php echo $this->data['urlpattern']; ?>">
-		<input type="hidden" name="entityID" value="<?php echo htmlspecialchars($this->data['entityID']); ?>" />
-		<input type="hidden" name="return" value="<?php echo htmlspecialchars($this->data['return']); ?>" />
-		<input type="hidden" name="returnIDParam" value="<?php echo htmlspecialchars($this->data['returnIDParam']); ?>" />
-		
-		<p><?php
-		echo $this->t('selectidp_full');
-		if($this->data['rememberenabled']) {
-			echo('<br /><input type="checkbox" name="remember" value="1" title="'.$this->t('remember').'" />' . $this->t('remember'));
-		}
-		?></p>
-
-		<?php
-
-		
-		if (!empty($this->data['preferredidp']) && array_key_exists($this->data['preferredidp'], $this->data['idplist'])) {
-			$idpentry = $this->data['idplist'][$this->data['preferredidp']];
-			echo '<div class="preferredidp">';
-			echo '	<img src="/' . $this->data['baseurlpath'] .'resources/icons/experience/gtk-about.64x64.png" class="float-r" alt="'.$this->t('icon_prefered_idp').'" />';
-
-			if(array_key_exists('icon', $idpentry) && $idpentry['icon'] !== NULL) {
-				$iconUrl = \SimpleSAML\Utils\HTTP::resolveURL($idpentry['icon']);
-				echo '<img class="float-l" style="margin: 1em; padding: 3px; border: 1px solid #999" src="' . htmlspecialchars($iconUrl) . '" />';
-			}
-			echo "\n" . '	<h3 style="margin-top: 8px">' . htmlspecialchars($this->t('idpname_' . $idpentry['entityid'])) . '</h3>';
-
-			if (!empty($idpentry['description'])) {
-				echo '	<p>' . htmlspecialchars($this->t('idpdesc_' . $idpentry['entityid'])) . '<br />';
-			}
-			echo('<input id="preferredidp" type="submit" name="idp_' .
-				htmlspecialchars($idpentry['entityid']) . '" value="' .
-				$this->t('select') . '" /></p>');
-			echo '</div>';
-		}
-		
-		
-		foreach ($this->data['idplist'] AS $idpentry) {
-			if ($idpentry['entityid'] != $this->data['preferredidp']) {
-
-				if(array_key_exists('icon', $idpentry) && $idpentry['icon'] !== NULL) {
-					$iconUrl = \SimpleSAML\Utils\HTTP::resolveURL($idpentry['icon']);
-					echo '<img class="float-l" style="clear: both; margin: 1em; padding: 3px; border: 1px solid #999" src="' . htmlspecialchars($iconUrl) . '" />';
-				}
-				echo "\n" . '	<h3 style="margin-top: 8px">' . htmlspecialchars($this->t('idpname_' . $idpentry['entityid'])) . '</h3>';
-
-				if (!empty($idpentry['description'])) {
-
-					echo '	<p>' . htmlspecialchars($this->t('idpdesc_' . $idpentry['entityid'])) . '<br />';
-				}
-				echo('<input type="submit" name="idp_' .
-					htmlspecialchars($idpentry['entityid']) . '" value="' .
-					$this->t('select') . '" /></p>');
-			}
-		}
-		
-		?>
-		</form>
-		
+    <h2><?php echo $this->data['header']; ?></h2>
+    <form method="get" action="<?php echo $this->data['urlpattern']; ?>">
+        <input type="hidden" name="entityID" value="<?php echo htmlspecialchars($this->data['entityID']); ?>"/>
+        <input type="hidden" name="return" value="<?php echo htmlspecialchars($this->data['return']); ?>"/>
+        <input type="hidden" name="returnIDParam"
+               value="<?php echo htmlspecialchars($this->data['returnIDParam']); ?>"/>
+        <p><?php
+            echo $this->t('selectidp_full');
+            if ($this->data['rememberenabled']) {
+                echo '<br /><input type="checkbox" name="remember" value="1" title="'.$this->t('remember').'" />'.
+                    $this->t('remember');
+            }
+            ?></p>
+<?php
+        if (!empty($this->data['preferredidp']) &&
+            array_key_exists($this->data['preferredidp'], $this->data['idplist'])
+        ) {
+            $idpentry = $this->data['idplist'][$this->data['preferredidp']];
+            echo '<div class="preferredidp">';
+            echo '	<img src="/'.$this->data['baseurlpath'].
+                 'resources/icons/experience/gtk-about.64x64.png" class="float-r" alt="'.
+                $this->t('icon_prefered_idp').'" />';
+
+            if (array_key_exists('icon', $idpentry) && $idpentry['icon'] !== null) {
+                $iconUrl = \SimpleSAML\Utils\HTTP::resolveURL($idpentry['icon']);
+                echo '<img class="float-l" style="margin: 1em; padding: 3px; border: 1px solid #999" src="'.
+                    htmlspecialchars($iconUrl).'" />';
+            }
+            echo "\n".'	<h3 style="margin-top: 8px">'.
+                htmlspecialchars($this->t('idpname_'.$idpentry['entityid'])).'</h3>';
+
+            if (!empty($idpentry['description'])) {
+                echo '	<p>'.htmlspecialchars($this->t('idpdesc_'.$idpentry['entityid'])).'<br />';
+            }
+            echo('<button id="preferredidp" type="submit" class="btn" name="idp_'.
+                htmlspecialchars($idpentry['entityid']).'">'.
+                $this->t('select').'</button>"</p>');
+            echo '</div>';
+        }
+
+        foreach ($this->data['idplist'] as $idpentry) {
+            if ($idpentry['entityid'] != $this->data['preferredidp']) {
+                if (array_key_exists('icon', $idpentry) && $idpentry['icon'] !== null) {
+                    $iconUrl = \SimpleSAML\Utils\HTTP::resolveURL($idpentry['icon']);
+                    echo '<img class="float-l" style="clear: both; margin: 1em; padding: 3px; border: 1px solid #999"'.
+                         ' src="'.htmlspecialchars($iconUrl).'" />';
+                }
+                echo "\n".'	<h3 style="margin-top: 8px">'.htmlspecialchars($this->t('idpname_'.$idpentry['entityid']));
+                echo '</h3>';
+
+                if (!empty($idpentry['description'])) {
+                    echo '	<p>'.htmlspecialchars($this->t('idpdesc_'.$idpentry['entityid'])).'<br />';
+                }
+                echo '<button type="submit" class="btn" name="idp_'.htmlspecialchars($idpentry['entityid']).'">'.
+                    $this->t('select').'</button></p>';
+            }
+        }
+?>
+    </form>
 <?php $this->includeAtTemplateBase('includes/footer.php');
-- 
GitLab