From 4af220d09e70b63195da2cb90f7556461cf29157 Mon Sep 17 00:00:00 2001
From: Morris Jobke <morris.jobke@gmail.com>
Date: Mon, 7 Oct 2013 17:38:27 +0200
Subject: [PATCH] Fix password screen for public shares
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

 * Works in IE8, 9, 10, Firefox 24 and Chromium 30
 * Credits to Julian Müller @Julian1998
---
 apps/files_sharing/css/authenticate.css       |  26 +++++++
 apps/files_sharing/public.php                 |   2 +
 apps/files_sharing/templates/authenticate.php |   7 +-
 core/css/styles.css                           |   1 +
 core/img/actions/confirm.png                  | Bin 0 -> 190 bytes
 core/img/actions/confirm.svg                  |  65 ++++++++++++++++++
 6 files changed, 99 insertions(+), 2 deletions(-)
 create mode 100644 apps/files_sharing/css/authenticate.css
 create mode 100644 core/img/actions/confirm.png
 create mode 100644 core/img/actions/confirm.svg

diff --git a/apps/files_sharing/css/authenticate.css b/apps/files_sharing/css/authenticate.css
new file mode 100644
index 0000000000..cebe906dd5
--- /dev/null
+++ b/apps/files_sharing/css/authenticate.css
@@ -0,0 +1,26 @@
+#body-login form label.infield {
+	width: 190px;
+	padding: 10px;
+	left: 8px;
+	top: 8px;
+}
+
+#password {
+	width: 190px !important;
+	padding: 10px;
+	margin:	6px;
+}
+
+input[type="submit"]{
+	width: 45px;
+	height: 45px;
+	margin:	6px;
+	background-image: url('%webroot%/core/img/actions/confirm.svg');
+	background-repeat: no-repeat;
+	background-position: center;
+}
+
+#body-login input[type="submit"] {
+	position: absolute;
+	top: 0px;
+}
diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index eff38dcc0f..8bdbc8524e 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -77,6 +77,7 @@ if (isset($path)) {
 				$hasher = new PasswordHash(8, $forcePortable);
 				if (!($hasher->CheckPassword($password.OC_Config::getValue('passwordsalt', ''),
 											 $linkItem['share_with']))) {
+					OCP\Util::addStyle('files_sharing', 'authenticate');
 					$tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest');
 					$tmpl->assign('URL', $url);
 					$tmpl->assign('wrongpw', true);
@@ -101,6 +102,7 @@ if (isset($path)) {
 				|| \OC::$session->get('public_link_authenticated') !== $linkItem['id']
 			) {
 				// Prompt for password
+				OCP\Util::addStyle('files_sharing', 'authenticate');
 				$tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest');
 				$tmpl->assign('URL', $url);
 				$tmpl->printPage();
diff --git a/apps/files_sharing/templates/authenticate.php b/apps/files_sharing/templates/authenticate.php
index 2c89b5df3f..6b98e6c9f3 100644
--- a/apps/files_sharing/templates/authenticate.php
+++ b/apps/files_sharing/templates/authenticate.php
@@ -1,12 +1,15 @@
 <form action="<?php p($_['URL']); ?>" method="post">
 	<fieldset>
+		<?php if (!isset($_['wrongpw'])): ?>
+			<div class="warning-info"><?php p($l->t('This share is password-protected')); ?></div>
+		<?php endif; ?>
 		<?php if (isset($_['wrongpw'])): ?>
-		<div class="warning"><?php p($l->t('The password is wrong. Try again.')); ?></div>
+			<div class="warning"><?php p($l->t('The password is wrong. Try again.')); ?></div>
 		<?php endif; ?>
 		<p class="infield">
 			<label for="password" class="infield"><?php p($l->t('Password')); ?></label>
 			<input type="password" name="password" id="password" placeholder="" value="" autofocus />
-			<input type="submit" value="<?php p($l->t('Submit')); ?>" />
+			<input type="submit" value="" class="svg" />
 		</p>
 	</fieldset>
 </form>
diff --git a/core/css/styles.css b/core/css/styles.css
index 6406bcd7e6..a1ecd12398 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -237,6 +237,7 @@ input[type="submit"].enabled {
 #body-login p.info,
 #body-login form fieldset legend,
 #body-login #datadirContent label,
+#body-login form fieldset .warning-info,
 #body-login form input[type="checkbox"]+label {
 	text-align: center;
 	color: #ccc;
diff --git a/core/img/actions/confirm.png b/core/img/actions/confirm.png
new file mode 100644
index 0000000000000000000000000000000000000000..ccde88fb1e2185a58924ca8d5fc660db58f6ec0f
GIT binary patch
literal 190
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b
zKpodXn9)gNb_Gz7y~NYkmHjRU8yBD9)}@kqKp}5W7sn8b)5!@7m^F^8pY&;Abe8}E
zNeKzQ39p;}2i$R3$ymYr)1OIi`4xsWdO!WwDf)=G=pS#WT-Z1%<Bi0ImMadPX;}+0
b!&n(+H269<i08Qhjb-q3^>bP0l+XkKcFH)h

literal 0
HcmV?d00001

diff --git a/core/img/actions/confirm.svg b/core/img/actions/confirm.svg
new file mode 100644
index 0000000000..bb3f9db2eb
--- /dev/null
+++ b/core/img/actions/confirm.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg3875"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="confirm.svg"
+   inkscape:export-filename="confirm.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3877" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="3.1681699"
+     inkscape:cx="89.389296"
+     inkscape:cy="-6.0573678"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1366"
+     inkscape:window-height="744"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata3880">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <path
+       style="fill:#000000;fill-opacity:1;stroke:none"
+       d="m 1,1047.3622 0,-6 7,0 0,-4 7,7 -7,7 0,-4 z"
+       id="path3086"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccc" />
+  </g>
+</svg>
-- 
GitLab