[vlc-devel] [PATCH 08/10][RFC][WIP] cloudstorage: access: custom-made html pages to the http server responses (personalized for VLC)
Diogo Silva
dbtdsilva at gmail.com
Thu Aug 17 03:08:16 CEST 2017
---
modules/access/cloudstorage/access.cpp | 16 ++++++++++
share/Makefile.am | 13 +++++++-
share/cloudstorage/amazons3_login.html | 52 ++++++++++++++++++++++++++++++++
share/cloudstorage/amazons3_success.html | 31 +++++++++++++++++++
share/cloudstorage/default_error.html | 32 ++++++++++++++++++++
share/cloudstorage/default_success.html | 33 ++++++++++++++++++++
share/cloudstorage/mega_login.html | 47 +++++++++++++++++++++++++++++
share/cloudstorage/mega_success.html | 31 +++++++++++++++++++
share/cloudstorage/owncloud_login.html | 51 +++++++++++++++++++++++++++++++
share/cloudstorage/owncloud_success.html | 31 +++++++++++++++++++
10 files changed, 336 insertions(+), 1 deletion(-)
create mode 100644 share/cloudstorage/amazons3_login.html
create mode 100644 share/cloudstorage/amazons3_success.html
create mode 100644 share/cloudstorage/default_error.html
create mode 100644 share/cloudstorage/default_success.html
create mode 100644 share/cloudstorage/mega_login.html
create mode 100644 share/cloudstorage/mega_success.html
create mode 100644 share/cloudstorage/owncloud_login.html
create mode 100644 share/cloudstorage/owncloud_success.html
diff --git a/modules/access/cloudstorage/access.cpp b/modules/access/cloudstorage/access.cpp
index e8a48af47d..e2c37963fe 100644
--- a/modules/access/cloudstorage/access.cpp
+++ b/modules/access/cloudstorage/access.cpp
@@ -151,6 +151,22 @@ static int InitProvider( stream_t * p_access )
hints["redirect_uri"] = "http://localhost:" + redirect_port + "/auth";
hints["file_url"] = "http://localhost:" + redirect_port + "/files";
+ // Load custom-made pages
+ std::string parent = "cloudstorage";
+ parent.append( DIR_SEP );
+ if ( strcmp( p_sys->url.psz_host, "amazons3" ) == 0 ||
+ strcmp( p_sys->url.psz_host, "mega" ) == 0 ||
+ strcmp( p_sys->url.psz_host, "owncloud" ) == 0 )
+ {
+ hints["login_page"] = ReadFile(
+ parent + p_sys->url.psz_host + "_login.html");
+ hints["success_page"] = ReadFile(
+ parent + p_sys->url.psz_host + "_success.html");
+ }
+ else
+ hints["success_page"] = ReadFile( parent + "default_success.html" );
+ hints["error_page"] = ReadFile( parent + "default_error.html" );
+
// Initialize the provider
p_sys->provider = cloudstorage::ICloudStorage::
create()->provider( p_sys->url.psz_host );
diff --git a/share/Makefile.am b/share/Makefile.am
index 5d763a01d2..d0c3c3a6ef 100644
--- a/share/Makefile.am
+++ b/share/Makefile.am
@@ -54,7 +54,8 @@ EXTRA_DIST += \
$(DIST_skins2) \
$(DIST_icons) \
$(DIST_http_lua) \
- $(DIST_solid)
+ $(DIST_solid) \
+ $(DIST_cloudstorage)
nobase_vlcdata_DATA =
if BUILD_SKINS
@@ -302,3 +303,13 @@ DIST_solid = \
solid/vlc-opencda.desktop \
solid/vlc-opendvd.desktop \
solid/vlc-openvcd.desktop
+
+DIST_cloudstorage = \
+ cloudstorage/amazons3_login.html \
+ cloudstorage/amazons3_success.html \
+ cloudstorage/default_error.html \
+ cloudstorage/default_success.html \
+ cloudstorage/mega_login.html \
+ cloudstorage/mega_success.html \
+ cloudstorage/owncloud_login.html \
+ cloudstorage/owncloud_success.html
\ No newline at end of file
diff --git a/share/cloudstorage/amazons3_login.html b/share/cloudstorage/amazons3_login.html
new file mode 100644
index 0000000000..c8f5c9a354
--- /dev/null
+++ b/share/cloudstorage/amazons3_login.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+ <meta name="Author" content="VideoLAN" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>VLC Local Authentication Server</title>
+ <script src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script>
+ <script async="async" src="//images.videolan.org/js/bootstrap.min.js" type="text/javascript"></script>
+ <script src='https://cdnjs.cloudflare.com/ajax/libs/js-url/2.5.0/url.min.js'></script>
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/bootstrap.min.css" />
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/style.min.css" />
+</head>
+<body class="new-design">
+ <div id='bodyInner' class='blue' style='padding:0'>
+ <nav id="nav" class="navbar navbar-default navbar-static-top">
+ <div class="container">
+ <div class="navbar-header"><a class="navbar-brand" href="//www.videolan.org/"><img src='//images.videolan.org/images/logoBlue.png' alt='VideoLAN association' /></a>
+ <a class="navbar-brand" style="padding: 15px 15px">VLC Local Server</a><button type="button" class="navbar-toggle collapsed"
+ data-toggle="collapse" data-target="#main-navbar" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div>
+ </div>
+ </nav>
+ <div class="container center-block">
+ <script>
+ function submitData() {
+ var code = encodeURIComponent($('#inputAccessKey').val() + '@' + $('#inputRegion').val() + '##' + $('#inputSecretKey').val());
+ window.location.href = location.pathname.split("/").slice(0,-1).join("/") + "?code=" + code + "&state=" + url('?').state;
+ return false;
+ };
+ </script>
+ <h2 class="text-center">Amazon S3 Login</h2>
+ <h5>VLC requires access to your Amazon S3 account in order to display the content of your cloud storage.<br/>Amazon
+ S3 requires generating an access and a secret token in order to be used in external applications. To generate those
+ tokens, go to "My security credentials", then "Access Keys" and create them.</h5><br/>
+ <form class="form-horizontal" onsubmit="return submitData()">
+ <div class="form-group"><label for="inputRegion" class="col-sm-2 control-label">Region</label>
+ <div class="col-sm-10"><select id="inputRegion" class="form-control"><option value="ap-northeast-1">Asia Pacific (Tokyo)</option><option value="ap-northeast-2">Asia Pacific (Seoul)</option><option value="ap-south-1">Asia Pacific (Mumbai)</option><option value="ap-southeast-1">Asia Pacific (Singapore)</option><option value="ap-southeast-2">Asia Pacific (Sydney)</option><option value="ca-central-1">Canada (Central)</option><option value="eu-central-1">EU (Frankfurt)</option><option value="eu-west-1">EU (Ireland)</option><option value="eu-west-2">EU (London)</option><option value="sa-east-1">South America (São Paulo)</option><option value="us-east-1">US East (N. Virginia)</option><option value="us-east-2">US East (Ohio)</option><option value="us-west-1">US West (N. California)</option><option value="us-west-2">US West (Oregon)</option></select></div>
+ </div>
+ <div class="form-group"><label for="inputAccessKey" class="col-sm-2 control-label">Access Key</label>
+ <div class="col-sm-10"><input type="text" class="form-control" id="inputAccessKey" placeholder="Access Key ID"></div>
+ </div>
+ <div class="form-group"><label for="inputSecretKey" class="col-sm-2 control-label">Secret Key</label>
+ <div class="col-sm-10"><input type="password" class="form-control" id="inputSecretKey" placeholder="Secret Access Key"></div>
+ </div>
+ <div class="form-group">
+ <div class="col-sm-offset-2 col-sm-10"><button type="submit" id="submit" class="btn btn-default">Sign in</button></div>
+ </form><br/><br/>
+ <h5>This page is running locally and is hosted by your machine. The inserted data is going to be safely sent to <a href="https://aws.amazon.com/s3/">Amazon S3</a> servers.</h5>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/share/cloudstorage/amazons3_success.html b/share/cloudstorage/amazons3_success.html
new file mode 100644
index 0000000000..68aa239970
--- /dev/null
+++ b/share/cloudstorage/amazons3_success.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+ <meta name="Author" content="VideoLAN" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>VLC Local Authentication Server</title>
+ <script src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script>
+ <script async="async" src="//images.videolan.org/js/bootstrap.min.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/bootstrap.min.css" />
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/style.min.css" />
+</head>
+<body class="new-design">
+ <div id='bodyInner' class='blue' style='padding:0'>
+ <nav id="nav" class="navbar navbar-default navbar-static-top">
+ <div class="container">
+ <div class="navbar-header"><a class="navbar-brand" href="//www.videolan.org/"><img src='//images.videolan.org/images/logoBlue.png' alt='VideoLAN association' /></a>
+ <a class="navbar-brand" style="padding: 15px 15px">VLC Local Server</a><button type="button" class="navbar-toggle collapsed"
+ data-toggle="collapse" data-target="#main-navbar" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div>
+ </div>
+ </nav>
+ <div class="container center-block">
+ <h2 class="text-center">Your login has been sent to <a href="https://aws.amazon.com/s3/">Amazon S3</a> server successfully</h2>
+ <script>
+ $.ajax({ "data": { "accepted": "true" } });
+ history.replaceState({}, null, location.pathname + '/success');
+ </script>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/share/cloudstorage/default_error.html b/share/cloudstorage/default_error.html
new file mode 100644
index 0000000000..2849b4eb21
--- /dev/null
+++ b/share/cloudstorage/default_error.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+ <meta name="Author" content="VideoLAN" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>VLC Local Authentication Server</title>
+ <script src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script>
+ <script async="async" src="//images.videolan.org/js/bootstrap.min.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/bootstrap.min.css" />
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/style.min.css" />
+</head>
+
+<body class="new-design">
+ <div id='bodyInner' class='blue' style='padding:0'>
+ <nav id="nav" class="navbar navbar-default navbar-static-top">
+ <div class="container">
+ <div class="navbar-header"><a class="navbar-brand" href="//www.videolan.org/"><img src='//images.videolan.org/images/logoBlue.png' alt='VideoLAN association' /></a>
+ <a class="navbar-brand" style="padding: 15px 15px">VLC Local Server</a><button type="button" class="navbar-toggle collapsed"
+ data-toggle="collapse" data-target="#main-navbar" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div>
+ </div>
+ </nav>
+ <div class="container center-block">
+ <h1 class="text-center">An error occurred</h1>
+ <script>
+ $.ajax({ "data": { "accepted": "false" } });
+ history.replaceState({}, null, location.pathname + '/error');
+ </script>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/share/cloudstorage/default_success.html b/share/cloudstorage/default_success.html
new file mode 100644
index 0000000000..086a995c7e
--- /dev/null
+++ b/share/cloudstorage/default_success.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+ <meta name="Author" content="VideoLAN" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>VLC Local Authentication Server</title>
+ <script src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script>
+ <script async="async" src="//images.videolan.org/js/bootstrap.min.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/bootstrap.min.css" />
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/style.min.css" />
+</head>
+
+<body class="new-design">
+ <div id='bodyInner' class='blue' style='padding:0'>
+ <nav id="nav" class="navbar navbar-default navbar-static-top">
+ <div class="container">
+ <div class="navbar-header"><a class="navbar-brand" href="//www.videolan.org/"><img src='//images.videolan.org/images/logoBlue.png' alt='VideoLAN association' /></a>
+ <a class="navbar-brand" style="padding: 15px 15px">VLC Local Server</a><button type="button" class="navbar-toggle collapsed"
+ data-toggle="collapse" data-target="#main-navbar" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div>
+ </div>
+ </nav>
+ <div class="container center-block">
+ <h1 class="text-center">Successfully authenticated</h1>
+ <h4 class="text-center">You may now return to your VLC window. <br/>You will be able to find the new logged in provider under the Cloud Storage item on the sidebar.</h5>
+ <script>
+ $.ajax({ "data": { "accepted": "true" } });
+ history.replaceState({}, null, location.pathname + '/success');
+ </script>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/share/cloudstorage/mega_login.html b/share/cloudstorage/mega_login.html
new file mode 100644
index 0000000000..ca76ac6668
--- /dev/null
+++ b/share/cloudstorage/mega_login.html
@@ -0,0 +1,47 @@
+<html>
+<head>
+ <meta name="Author" content="VideoLAN" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>VLC Local Authentication Server</title>
+ <script src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script>
+ <script async="async" src="//images.videolan.org/js/bootstrap.min.js" type="text/javascript"></script>
+ <script src='https://cdnjs.cloudflare.com/ajax/libs/js-url/2.5.0/url.min.js'></script>
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/bootstrap.min.css" />
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/style.min.css" />
+</head>
+<body class="new-design">
+ <div id='bodyInner' class='blue' style='padding:0'>
+ <nav id="nav" class="navbar navbar-default navbar-static-top">
+ <div class="container">
+ <div class="navbar-header"><a class="navbar-brand" href="//www.videolan.org/"><img src='//images.videolan.org/images/logoBlue.png' alt='VideoLAN association' /></a>
+ <a class="navbar-brand" style="padding: 15px 15px">VLC Local Server</a><button type="button" class="navbar-toggle collapsed"
+ data-toggle="collapse" data-target="#main-navbar" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div>
+ </div>
+ </nav>
+ <div class="container center-block">
+ <script>
+ function submitData() {
+ var code = encodeURIComponent($('#inputEmail').val() + '##' + $('#inputPassword').val());
+ window.location.href = location.pathname.split("/").slice(0,-1).join("/") + "?code=" + code + "&state=" + url('?').state;
+ return false;
+ };
+ </script>
+ <h2 class="text-center">Mega.Nz Login</h2>
+ <h5>VLC requires access to your Mega.Nz account in order to display the content of your cloud storage. This
+ page is running locally and is hosted by your machine. The inserted data is going to be safely sent to <a href="mega.nz">Mega.Nz</a> servers.</h5><br/>
+ <form class="form-horizontal" onsubmit="return submitData()">
+ <div class="form-group"><label for="inputEmail" class="col-sm-2 control-label">Email</label>
+ <div class="col-sm-10"><input type="email" class="form-control" id="inputEmail" placeholder="Email"></div>
+ </div>
+ <div class="form-group"><label for="inputPassword" class="col-sm-2 control-label">Password</label>
+ <div class="col-sm-10"><input type="password" class="form-control" id="inputPassword" placeholder="Password"></div>
+ </div>
+ <div class="form-group">
+ <div class="col-sm-offset-2 col-sm-10"><button type="submit" id="submit" class="btn btn-default">Sign in</button></div>
+ </form>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/share/cloudstorage/mega_success.html b/share/cloudstorage/mega_success.html
new file mode 100644
index 0000000000..265a593ba9
--- /dev/null
+++ b/share/cloudstorage/mega_success.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+ <meta name="Author" content="VideoLAN" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>VLC Local Authentication Server</title>
+ <script src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script>
+ <script async="async" src="//images.videolan.org/js/bootstrap.min.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/bootstrap.min.css" />
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/style.min.css" />
+</head>
+<body class="new-design">
+ <div id='bodyInner' class='blue' style='padding:0'>
+ <nav id="nav" class="navbar navbar-default navbar-static-top">
+ <div class="container">
+ <div class="navbar-header"><a class="navbar-brand" href="//www.videolan.org/"><img src='//images.videolan.org/images/logoBlue.png' alt='VideoLAN association' /></a>
+ <a class="navbar-brand" style="padding: 15px 15px">VLC Local Server</a><button type="button" class="navbar-toggle collapsed"
+ data-toggle="collapse" data-target="#main-navbar" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div>
+ </div>
+ </nav>
+ <div class="container center-block">
+ <h2 class="text-center">Your login has been sent to <a href="mega.nz">Mega.Nz</a> successfully</h2>
+ <script>
+ $.ajax({ "data": { "accepted": "true" } });
+ history.replaceState({}, null, location.pathname + '/success');
+ </script>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/share/cloudstorage/owncloud_login.html b/share/cloudstorage/owncloud_login.html
new file mode 100644
index 0000000000..6b97192787
--- /dev/null
+++ b/share/cloudstorage/owncloud_login.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+ <meta name="Author" content="VideoLAN" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>VLC Local Authentication Server</title>
+ <script src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script>
+ <script async="async" src="//images.videolan.org/js/bootstrap.min.js" type="text/javascript"></script>
+ <script src='https://cdnjs.cloudflare.com/ajax/libs/js-url/2.5.0/url.min.js'></script>
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/bootstrap.min.css" />
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/style.min.css" />
+</head>
+<body class="new-design">
+ <div id='bodyInner' class='blue' style='padding:0'>
+ <nav id="nav" class="navbar navbar-default navbar-static-top">
+ <div class="container">
+ <div class="navbar-header"><a class="navbar-brand" href="//www.videolan.org/"><img src='//images.videolan.org/images/logoBlue.png' alt='VideoLAN association' /></a>
+ <a class="navbar-brand" style="padding: 15px 15px">VLC Local Server</a><button type="button" class="navbar-toggle collapsed"
+ data-toggle="collapse" data-target="#main-navbar" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div>
+ </div>
+ </nav>
+ <div class="container center-block">
+ <script>
+ function submitData() {
+ var code = encodeURIComponent($('#inputUsername').val() +
+ '@' + $('#inputHost').val() + '##' + $('#inputPassword').val());
+ window.location.href = location.pathname.split("/").slice(0,-1).join("/") + "?code=" + code + "&state=" + url('?').state;
+ return false;
+ };
+ </script>
+ <h2 class="text-center">OwnCloud Login</h2>
+ <h5>VLC requires access to your OwnCloud account in order to display the content of your cloud storage. This
+ page is running locally and is hosted by your machine. The inserted data is going to be safely sent to <a href="https://owncloud.org/">OwnCloud</a> host.</h5><br/>
+ <form class="form-horizontal" onsubmit="return submitData()">
+ <div class="form-group"><label for="inputUsername" class="col-sm-2 control-label">Username</label>
+ <div class="col-sm-10"><input type="text" class="form-control" id="inputUsername" placeholder="Username"></div>
+ </div>
+ <div class="form-group"><label for="inputHost" class="col-sm-2 control-label">Host</label>
+ <div class="col-sm-10"><input type="text" class="form-control" id="inputHost" placeholder="Host"></div>
+ </div>
+ <div class="form-group"><label for="inputPassword" class="col-sm-2 control-label">Password</label>
+ <div class="col-sm-10"><input type="password" class="form-control" id="inputPassword" placeholder="Password"></div>
+ </div>
+ <div class="form-group">
+ <div class="col-sm-offset-2 col-sm-10"><button type="submit" id="submit" class="btn btn-default">Sign in</button></div>
+ </form>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/share/cloudstorage/owncloud_success.html b/share/cloudstorage/owncloud_success.html
new file mode 100644
index 0000000000..13a00dd3cc
--- /dev/null
+++ b/share/cloudstorage/owncloud_success.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+ <meta name="Author" content="VideoLAN" />
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>VLC Local Authentication Server</title>
+ <script src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js' type='text/javascript'></script>
+ <script async="async" src="//images.videolan.org/js/bootstrap.min.js" type="text/javascript"></script>
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/bootstrap.min.css" />
+ <link rel="stylesheet" type="text/css" href="//images.videolan.org/style/style.min.css" />
+</head>
+<body class="new-design">
+ <div id='bodyInner' class='blue' style='padding:0'>
+ <nav id="nav" class="navbar navbar-default navbar-static-top">
+ <div class="container">
+ <div class="navbar-header"><a class="navbar-brand" href="//www.videolan.org/"><img src='//images.videolan.org/images/logoBlue.png' alt='VideoLAN association' /></a>
+ <a class="navbar-brand" style="padding: 15px 15px">VLC Local Server</a><button type="button" class="navbar-toggle collapsed"
+ data-toggle="collapse" data-target="#main-navbar" aria-expanded="false"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button></div>
+ </div>
+ </nav>
+ <div class="container center-block">
+ <h2 class="text-center">Your login has been sent to <a href="https://owncloud.org/">OwnCloud</a> host successfully</h2>
+ <script>
+ $.ajax({ "data": { "accepted": "true" } });
+ history.replaceState({}, null, location.pathname + '/success');
+ </script>
+ </div>
+ </div>
+</body>
+</html>
--
2.14.1
More information about the vlc-devel
mailing list