Merge branch 'new-design' into develop

This commit is contained in:
Stefan Bethge 2015-10-04 20:59:08 +02:00
parent f94999b76b
commit 719aa7fd09
66 changed files with 943 additions and 782 deletions

2
.gitignore vendored
View File

@ -12,4 +12,4 @@
target
src/main/resources/
src/test/resources/
*.iml
*.iml

2
NOTICE
View File

@ -1,5 +1,5 @@
Open Bank Project - Transparency / Social Finance Web Application
Copyright (C) 2011, 2012, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,22 +1,23 @@
#this is a sample props file you should edit and rename
#see https://www.assembla.com/wiki/show/liftweb/Properties for all the naming options, or just use "default.props" in this same folder
### OBP-API configuration
### base configuration
#which data connector to use
#connector=mongodb
#connector=rest
#connector=...
connector=mapped
#connector=mongodb
#connector=...
#if connector is mapped, set a database backend
db.driver=org.postgresql.Driver
#you can also use a no config needed h2 database by setting db.driver=org.h2.Driver and not including db.url
#you can use a no config needed h2 database by setting db.driver=org.h2.Driver and not including db.url
#db.driver=org.postgresql.Driver
#db.driver=org.h2.Driver
#be sure to create your database and update the line below!
db.url=jdbc:postgresql://localhost:5432/dbname?user=dbusername&password=thepassword
#our own remotely accessible URL
#this is needed for oauth to work. it's important to access the api over this url, e.g.
# if this is 127.0.0.1 don't use localhost to access it.
# (this needs to be an URL)
@ -25,9 +26,10 @@ hostname=http://127.0.0.1:8080
#this is only useful for running the api locally via RunWebApp
#if you use it, make sure this matches your hostname port!
#if you want to change the port when running via the command line, use "mvn -Djetty.port=8089 jetty:run" instead
dev.port=8089
dev.port=8080
#mail server config: not need in dev mode, but important for production
#sending mail out
#not need in dev mode, but important for production
mail.api.consumer.registered.sender.address=no-reply@example.com
mail.api.consumer.registered.notification.addresses=you@example.com
mail.smtp.host=127.0.0.1
@ -36,15 +38,9 @@ mail.smtp.port=25
#oauth token timeout
token_expiration_weeks=4
#secret key that allows access to api calls to get info about oauth tokens. You should change this
#to your own secret key
BankMockKey=change_me
#secret key that allows access to the "add cash transactions" API. You should change this to your own secret key
cashApplicationKey=change_me
#secret key that allows access to the "add transactions" API. You should change this to your own secret key
importer_secret=change_me
### sandbox
#set this to true if you want to allow users to create sandbox test accounts with a starting balance
allow_sandbox_account_creation=true
@ -55,16 +51,22 @@ allow_sandbox_data_import=true
#secret key that allows access to the "data import" api. You should change this to your own secret key
sandbox_data_import_secret=change_me
### features
### api features
#secret key that allows access to the "add cash transactions" api. You should change this to your own secret key
cashApplicationKey=change_me
#set this to false if you don't want the api payments call to work (starting with v1.2.1)
payments_enabled=true
#transaction requests are replacing simple payments starting from 1.4.0
#(and set a connector per feature. Will be expanded to several other features as well)
transactionRequests_enabled=true
transactionRequests_connector=mapped
### management modules
#rabbitMQ settings (used to communicate with HBCI project)
@ -72,11 +74,32 @@ connection.host=localhost
connection.user=theusername
connection.password=thepassword
#set this to true if you want to have the api to send a message to the hbci project to refresh transactions for an account
messageQueue.updateBankAccountsTransaction=false
#secret key that allows access to the "add transactions" api. You should change this to your own secret key
importer_secret=change_me
#set this to true if you want to have the api send a message to the hbci project to refresh transactions for an account
messageQueue.updateBankAccountsTransaction=true
#the minimum time between updates in hours
messageQueue.updateTransactionsInterval=1
#set this to true if you want to have the api listen for "create account" messages from the hbci project
messageQueue.createBankAccounts=true
#set this to true if you want to allow users to delete accounts
allow_account_deletion=true
#set this to true if you want to allow users to delete accounts (local ones like HBCI connected)
allow_account_deletion=true
#secret key that allows access to api calls to get info about oauth tokens. You should change this
#to your own secret key
BankMockKey=change_me
### web interface configuration
webui_header_theme_color = #53C4EF
webui_header_logo_left_url = /media/images/logo.png
webui_header_logo_right_url =
webui_index_page_about_section_background_image_url = /media/images/about-background.jpg
webui_index_page_about_section_text = <p class="about-text"> \
Welcome to the API Sandbox powered by the Open Bank Project! <br/> \
</p>

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,13 +1,10 @@
package code.bankconnectors
import code.management.ImporterAPI.ImporterTransaction
import code.model.dataAccess.MappedBankAccount
import code.tesobe.CashTransaction
import code.transactionrequests.TransactionRequests
import code.transactionrequests.TransactionRequests.{TransactionRequestChallenge, TransactionRequest, TransactionRequestId, TransactionRequestBody}
import code.util.Helper._
import com.javafx.tools.doclets.formats.html.markup.DocType
import com.tesobe.model.CreateBankAccount
import net.liftweb.common.{Full, Empty, Box}
import code.model._
import net.liftweb.util.Helpers._

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@ -36,12 +36,7 @@ import net.liftweb.util.Mailer.{BCC, To, Subject, From}
import net.liftweb.util._
import net.liftweb.common._
import scala.xml.NodeSeq
import net.liftweb.http.{SessionVar,Templates}
import code.model.User
import net.liftweb.json.JsonDSL._
import net.liftweb.http.SHtml
import net.liftweb.http.S
import com.mongodb.DBObject
import net.liftweb.http.{SHtml, SessionVar, Templates, S}
import net.liftweb.http.js.JsCmds.FocusOnLoad
@ -116,24 +111,25 @@ import net.liftweb.util.Helpers._
override def skipEmailValidation = true
override def loginXhtml = {
import net.liftweb.http.js.JsCmds.Noop
val loginXml = Templates(List("templates-hidden","_login")).map({
"form [action]" #> {S.uri} &
"#loginText * " #> {S.??("log.in")} &
"#emailAddressText * " #> {S.??("email.address")} &
"#passwordText * " #> {S.??("password")} &
"#loginText * " #> {S.?("log.in")} &
"#emailAddressText * " #> {S.?("email.address")} &
"#passwordText * " #> {S.?("password")} &
"#recoverPasswordLink * " #> {
"a [href]" #> {lostPasswordPath.mkString("/", "/", "")} &
"a *" #> {S.??("recover.password")}
"a *" #> {S.?("recover.password")}
} &
"#SignUpLink * " #> {
"a [href]" #> {OBPUser.signUpPath.foldLeft("")(_ + "/" + _)} &
"a *" #> {S.??("sign.up")}
"a *" #> {S.?("sign.up")}
}
})
SHtml.span(loginXml getOrElse NodeSeq.Empty,Noop)
<div>{loginXml getOrElse NodeSeq.Empty}</div>
}
/**
* Overriden to use the hostname set in the props file
*/
@ -161,6 +157,35 @@ import net.liftweb.util.Helpers._
}
}
override def lostPasswordXhtml = {
<div id="authorizeSection">
<div id="userAccess">
<div class="account account-in-content">
{S.?("enter.email")}
<form class="forgotPassword" action={S.uri} method="post">
<div class="field username">
<label>{userNameFieldString}</label> <user:email />
</div>
<div class="field buttons">
<div class="button button-field">
<user:submit />
</div>
</div>
</form>
</div>
</div>
</div>
}
override def lostPassword = {
bind("user", lostPasswordXhtml,
"email" -> SHtml.text("", sendPasswordReset _),
"submit" -> lostPasswordSubmitButton(S.?("submit")))
}
//override def def passwordResetMailBody(user: TheUserType, resetLink: String): Elem = { }
/**
* Overriden to use the hostname set in the props file
*/
@ -186,18 +211,23 @@ import net.liftweb.util.Helpers._
}
override def signupXhtml (user:OBPUser) = {
<form id="signupForm" method="post" action={S.uri}>
<table>
<tr>
<td colspan="2">{ S.?("sign.up") }</td>
</tr>
{localForm(user, false, signupFields)}
<tr>
<td>&nbsp;</td>
<td><user:submit/></td>
</tr>
</table>
</form>
<div id="authorizeSection" class="signupSection">
<div class="signup-error"><span class="lift:Msg?id=signup"/></div>
<div>
<form id="signupForm" method="post" action={S.uri}>
<table>
<tr>
<td colspan="2">{ S.?("sign.up") }</td>
</tr>
{localForm(user, false, signupFields)}
<tr>
<td>&nbsp;</td>
<td><user:submit/></td>
</tr>
</table>
</form>
</div>
</div>
}
//overridden to allow a redirection if login fails
@ -232,6 +262,7 @@ import net.liftweb.util.Helpers._
case _ => {
info("failed: " + failedLoginRedirect.get)
failedLoginRedirect.get.foreach(S.redirectTo(_))
S.error("login", S.?("Invalid Username or Password"))
}
}
}
@ -239,7 +270,7 @@ import net.liftweb.util.Helpers._
bind("user", loginXhtml,
"email" -> (FocusOnLoad(<input type="text" name="username"/>)),
"password" -> (<input type="password" name="password"/>),
"submit" -> loginSubmitButton(S.??("log.in")))
"submit" -> loginSubmitButton(S.?("log.in")))
}
//overridden to allow redirect to loginRedirect after signup. This is mostly to allow
@ -268,7 +299,9 @@ import net.liftweb.util.Helpers._
S.redirectTo(redir)
})
case xs => S.error(xs) ; signupFunc(Full(innerSignup _))
case xs =>
xs.foreach(e => S.error("signup", e.msg))
signupFunc(Full(innerSignup _))
}
}
@ -278,6 +311,4 @@ import net.liftweb.util.Helpers._
innerSignup
}
}

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@ -44,7 +44,7 @@ import code.util.Helper.NOOP_SELECTOR
class ConsumerRegistration extends Loggable {
//TODO: for security reasons this snippet and the template must be re-factored
//to use the lift build in form function(SHtml._) so we can hide to what
//to use the lift built-in form function(SHtml._) so we can hide to what
//the input fields are mapped to in the server side !!
private object nameVar extends RequestVar("")

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@ -28,7 +28,7 @@ Berlin 13359, Germany
Everett Sochowski : everett AT tesobe DOT com
Ayoub Benali: ayoub AT tesobe DOT com
*/
*/
package code.snippet

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -0,0 +1,53 @@
/**
Open Bank Project - API
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Email: contact@tesobe.com
TESOBE / Music Pictures Ltd
Osloerstrasse 16/17
Berlin 13359, Germany
This product includes software developed at
TESOBE (http://www.tesobe.com/)
by
Simon Redfern : simon AT tesobe DOT com
Stefan Bethge : stefan AT tesobe DOT com
Everett Sochowski : everett AT tesobe DOT com
Ayoub Benali: ayoub AT tesobe DOT com
*/
package code.snippet
import net.liftweb.util.Helpers._
import net.liftweb.util.{CssSel, Props}
import scala.xml.NodeSeq
class WebUI {
def headerLogoLeft = {
"img [src]" #> Props.get("webui_header_logo_left_url", "")
}
def headerLogoRight: CssSel = {
"img [src]" #> Props.get("webui_header_logo_right_url", "")
}
def aboutBackground: CssSel = {
"#main-about [style]" #> ("background-image: url(" + Props.get("webui_index_page_about_section_background_image_url", "") + ");")
}
def aboutText: CssSel = {
".about-text *" #> scala.xml.Unparsed(Props.get("webui_index_page_about_section_text", ""))
}
}

View File

@ -1,6 +1,6 @@
<!--
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@ -30,143 +30,117 @@ Berlin 13359, Germany
-->
<div id="main" class="lift:surround?with=default;at=content">
<div class="lift:ConsumerRegistration.registerForm">
<div class="registration">
<h1 class="register-header">Register your application</h1>
<div id="registerAppSection" class="lift:ConsumerRegistration.registerForm">
<div class="registration account-in-content">
<h1 class="register-header">Register your application</h1>
<div id="registration-errors">
<div class="error">
<span class="errorContent"></span>
</div>
</div>
<form class="register" method="post">
<TABLE>
<tbody>
<tr>
<td colspan="2" >
Please register your application to get your OAuth token and secret:
</td>
</tr>
<tr>
<td>
<label for="appType">Application Type</label>
</td>
<td>
<select name="app-type" id="appType">
<option class="app-type-option"></option>
</select>
</td>
</tr>
<tr>
<td>
<label for="appName">Application Name</label>
</td>
<td>
<input type="text" name="app-name" id="appName"></input>
</td>
</tr>
<tr>
<td>
<label for="appUserAuthenticationUrl">User authentication URL</label>
<img src="/media/images/moreInfo.png" title="The user will redirected to that URL during the authentication phase to authenticate. Leave it blank so that the user will see the default login page."
alt="more info" class="moreInfoIcon"/>
</td>
<td>
<input type="text" name="app-user-authentication-url" id="appUserAuthenticationUrl"></input>
</td>
</tr>
<tr>
<td>
<label for="appDev">Developer Email</label>
</td>
<td>
<input type="text" name="app-developer" id="appDev"></input>
</td>
</tr>
<tr>
<td>
<label for="appDesc">App Description</label>
</td>
<td>
<textarea rows="4" name="app-description" id="appDesc"></textarea>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" value="Register" />
</td>
</tr>
</tbody>
</TABLE>
Please complete the information below so we can create your OAuth token and secret key.
<div class="form-column">
<div>
<label for="appType">Application Type</label>
<select name="app-type" id="appType">
<option class="app-type-option"></option>
</select>
</div>
<div>
<label for="appName">Application Name</label>
<input type="text" name="app-name" id="appName">
</div>
<!-- <div>
<label for="appUserAuthenticationUrl">Authentication URL</label>
<input type="text" name="app-user-authentication-url" id="appUserAuthenticationUrl">
<img src="/media/images/moreInfo.png" title="The user will redirected to that URL during the authentication phase to authenticate. Leave it blank so that the user will see the default login page."
alt="more info" class="moreInfoIcon"/>
</div> -->
<div>
<label for="appDev">Developer Email</label>
<input type="text" name="app-developer" id="appDev">
</div>
</div>
<div class="form-column">
<div>
<label for="appDesc">Description of the application</label>
<textarea rows="4" name="app-description" id="appDesc"></textarea>
</div>
<div class="submit">
<input type="submit" value="Send" />
</div>
</div>
</form>
</div>
<div class="success">
<h1 class="success-message"></h1>
<TABLE>
<tbody>
<tr>
<td colspan="2" >
Thank you for registering to use the Open Bank API. Here is your developer information. Please save it in a secure location.
</td>
</tr>
<tr>
<td>
Application Type</label>
</td>
<td>
<span class="app-type">web</span>
</td>
</tr>
<tr>
<td>
Application Name
</td>
<td>
<span class="app-name">ABC</span>
</td>
</tr>
<tr>
<td>
User authentication URL
</td>
<td>
<span class="app-user-authentication-url">ABC</span>
</td>
</tr>
<tr>
<td>
Developer Email
</td>
<td>
<span class="app-developer">abc@example.com</span>
</td>
</tr>
<tr>
<td>
App Description
</td>
<td>
<span class="app-description">ABCDEF</span>
</td>
</tr>
<tr>
<td>
Consumer Key
</td>
<td>
<span class="auth-key">23432432432432</span>
</td>
</tr>
<tr>
<td>
Consumer Secret
</td>
<td>
<span class="secret-key">3334543543543</span>
</td>
</tr>
</tbody>
</TABLE>
</div>
</div>
<div class="success">
<h1 class="success-message"></h1>
<table>
<tbody>
<tr>
<td colspan="2" >
Thank you for registering to use the Open Bank API. Here is your developer information. Please save it in a secure location.
</td>
</tr>
<tr>
<td>
Application Type</label>
</td>
<td>
<span class="app-type">web</span>
</td>
</tr>
<tr>
<td>
Application Name
</td>
<td>
<span class="app-name">ABC</span>
</td>
</tr>
<!-- <tr>
<td>
User authentication URL
</td>
<td>
<span class="app-user-authentication-url">ABC</span>
</td>
</tr>
-->
<tr>
<td>
Developer Email
</td>
<td>
<span class="app-developer">abc@example.com</span>
</td>
</tr>
<tr>
<td>
App Description
</td>
<td>
<span class="app-description">ABCDEF</span>
</td>
</tr>
<tr>
<td>
Consumer Key
</td>
<td>
<span class="auth-key">23432432432432</span>
</td>
</tr>
<tr>
<td>
Consumer Secret
</td>
<td>
<span class="secret-key">3334543543543</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>

View File

@ -1,6 +1,6 @@
<!--
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@ -30,27 +30,28 @@ Berlin 13359, Germany
-->
<div id="main" class="lift:surround?with=default;at=content">
<div id="create-account-explanation">
This form is designed to allow developers to create test accounts. When an account is created,
a view with VIEW_ID "owner" will be created, and access to this view will be granted to the user
(you) who created it. If you wish, you may then populate the account with transactions using the
<a href="https://github.com/OpenBankProject/OBP-API/wiki/REST-API-V1.2.1#payments">v1.2.1 payments API</a>.
If you wish to do this, you will probably want to create some other accounts to send payments to and receive
payments from.
</div>
<div id="create-account-instructions">
Create a new test bank account:
</div>
<div id="create-account-error-message"></div>
<div id="account-created-successfully" style="display:none">
Thank you, account <span id="created-account-id">ACCOUNT_ID</span> has
been created at bank <span id="created-account-bank-id">BANK_ID</span> with
an initial balance of <span id="created-account-initial-balance">INITIAL_BALANCE</span>
<span id="created-account-currency">CURRENCY</span>.
</div>
<div id="create-account-form-container">
<div id="create-sandbox-account" class="">
<div id="create-account-explanation">
This form is designed to allow developers to create test accounts. When an account is created,
a view with VIEW_ID "owner" will be created, and access to this view will be granted to the user
(you) who created it. If you wish, you may then populate the account with transactions using the
<a href="https://github.com/OpenBankProject/OBP-API/wiki/REST-API-V1.2.1#payments">v1.2.1 payments API</a>.
If you wish to do this, you will probably want to create some other accounts to send payments to and receive
payments from.
</div>
<div id="create-account-instructions">
Create a new test bank account:
</div>
<div id="create-account-error-message"></div>
<div id="account-created-successfully" style="display:none">
Thank you, account <span id="created-account-id">ACCOUNT_ID</span> has
been created at bank <span id="created-account-bank-id">BANK_ID</span> with
an initial balance of <span id="created-account-initial-balance">INITIAL_BALANCE</span>
<span id="created-account-currency">CURRENCY</span>.
</div>
<form data-lift="form.ajax">
<div data-lift="CreateTestAccountForm">
<div data-lift="CreateTestAccountForm" class="form-column middle">
<div>
<label for="bank-id">Bank</label>
<select id="create-account-bank-selector" name="bank-id">
@ -69,8 +70,10 @@ Berlin 13359, Germany
<label for="account-id">Desired Initial Balance</label>
<input type="text" name="initial-balance">
</div>
<input type="submit">
<div class="submit">
<input type="submit">
</div>
</div>
</form>
</div>
</div>
</div>

View File

@ -1,6 +1,6 @@
<!--
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@ -29,14 +29,41 @@ Berlin 13359, Germany
Ayoub Benali: ayoub AT tesobe DOT com
-->
<div id="main" class="lift:surround?with=default;at=content">
<p class="text">
Welcome to The Open Bank Project API.
<div id="main" data-lift="surround?with=default;at=content">
<div data-lift="WebUI.aboutBackground">
<div id="main-about" data-lift="WebUI.aboutText">
<div class="about-text">
</div>
</div>
</div>
<div id="main-links">
<a href="/consumer-registration">Register for API keys</a>
<a href="https://github.com/OpenBankProject/OBP-API/wiki/">API documentation</a>
</div>
<div id="main-sandbox">
<h1>Get Started</h1>
The Open Bank Project is an open source API and App store for banks that empowers financial
institutions to securely and rapidly enhance their digital offerings using an ecosystem of 3rd
party applications and services.
<p class="about-text">
To get started please:
<ol>
<li>Register as an API user <a href="/user_mgt/sign_up">here</a></li>
<li>Register one or more developer keys <a href="/consumer-registration">here</a></li>
<li>See the documentation <a href="https://github.com/OpenBankProject/OBP-API/wiki">here</a></li>
</ol>
</p>
Find more information about the project at <a href="https://openbankproject.com/">openbankproject.com</a>.
</p>
<br />
<h1>Questions?</h1>
<p class="about-text">
Please email: contact AT openbankproject DOT com or tweet <a href="https://twitter.com/openbankproject">@OpenBankProject</a>
</p>
</div>
<div id="main-partners">
<!-- <a href="http://www.bnpparibas-pf.com/en/"><img src="/media/images/bnpp/bnpp-personal.png" alt=""></a> -->
<span class="stretch"></span>
</div>
</div>

File diff suppressed because one or more lines are too long

View File

@ -1,23 +1,18 @@
@import url('reset.css');
@media all and (min-width : 300px) and (max-width : 999px) {
#signupForm td input{
width: 150px;
}
}
@media all and (min-width: 1000px) {
#signupForm td input{
width: 200px;
}
}
@import url('bnpp-fonts.css');
body {
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 300;
font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 400;
}
html {
height: 100%
}
a {
color: #1C8B77;
color: #666666;
text-decoration: none;
}
a:hover {
@ -87,8 +82,17 @@ input.submit {
#header {
overflow: auto;
padding: 45px 0 40px;
background: transparent url(../images/header.png) repeat-x 50% 100%;
padding: 0px 0 20px;
}
#header-decoration {
background-color: #53C4EF;
width: 100%;
height: 35px;
}
#lift__noticesContainer__ {
display: none;
}
#accountShortDiscription {
@ -101,56 +105,167 @@ input.submit {
}
#nav {
overflow: auto;
padding: 3px 0 0;
background: transparent url(../images/nav.png) repeat-x 50% 50%;
}
#about_text {
text-align: justify;
width: 500px;
margin-top: 15px;
float: left;
margin-left: 20px;
margin-right: 20px;
padding: 4px 10px 0 10px;
background: #EEEEEE;
height: 40px;
}
#nav ul {
float: left;
height: 40px;
}
#nav ul li {
float: left;
margin: 0 0 0 3px;
margin: 3px 0 0 3px;
height: 100%;
}
#nav ul li:nth-child(1):before {
background-image: url(../images/nav-home-icon.png);
content: " ";
height: 25px;
width: 25px;
display: inline-block;
margin-right: -5px;
float: left;
}
#nav ul li:nth-child(2) a:after,
#nav ul li:nth-child(3) a:after,
#nav ul li:nth-child(4) a:after,
#nav ul li:nth-child(5) a:after,
#nav ul li:nth-child(6) a:after {
position: absolute;
display: block;
width: 2px;
height: 39px;
margin-top: -26px; /* position ::after item vertically */
margin-left: -20px; /* position ::after item horizontally */
content: " ";
background-image: url(../images/nav-separator.png);
}
#nav ul li a {
display: block;
display: inline-block;
padding: 8px 20px 10px;
border-radius: 5px 5px 0 0;
background: transparent url(../images/nav-item.png) repeat-x 50% 50%;
color: #ffffff;
color: darkgray;
text-decoration: none;
font-size: 14px;
text-shadow: 1px 1px 1px #666666;
}
#nav ul li a.selected {
float: left;
background-image: url(../images/nav-selected.png);
color: #333333;
text-shadow: none;
color: #101010;
}
#logo {
#nav .nav-login-state-item {
float: right;
margin-right: 10px;
color: darkgray;
}
#nav .nav-login-state-item .logout {
color: black;
}
#logo-left {
margin: 20px 0 0 120px;
float: left;
overflow: hidden;
width: 279px;
height: 38px;
margin: 0 0 0 10px;
background: transparent url(../images/logo.png) no-repeat 50% 0;
text-indent: -9999em;
cursor: pointer;
display: inline-block;
}
#logo-right {
margin: 20px 120px 0 0;
float: right;
display: inline-block;
}
#main {
color: #333333;
}
#main-about {
padding-top: 70px;
/* background-image: url(../images/bnpp/bnpp-background.jpg); */
min-height: 463px;
}
#main-about p.about-text {
padding: 10px 180px 40px 180px;
font-size: 20px;
line-height: 1.5em;
color: white;
text-align: center;
font-weight: 200;
}
#main-about p.about-text a {
color: lightgray;
}
#main-links {
background-color: #3C3C3C;
text-align: center;
height: 105px;
}
#main-links a {
padding: 5px 25px 5px 25px;
display: inline-block;
text-decoration: none;
color: white;
border: 2px solid gray;
border-radius: 25px;
margin: 30px 20px 0px 20px;
}
#main-sandbox {
background-color: #9A9A9A;
color: #333333;
padding: 25px 50px 100px 100px;
text-align: left;
}
#main-sandbox h1 {
color: white;
font-size: 35px;
margin-bottom: 15px;
margin-left: -5px;
margin-top: 15px;
}
#main-partners {
width: 900px;
padding: 30px 50px 0px 100px;
margin-top: 90px;
margin-left: auto;
margin-right: auto;
text-align: justify;
-ms-text-justify: distribute-all-lines;
text-justify: distribute-all-lines;
}
#main-partners img {
width: 150px;
}
#main-partners a {
vertical-align: top;
display: inline-block;
*display: inline;
/* zoom: 1; */
margin: 0px 30px 75px 0px;
}
.stretch {
width: 100%;
display: inline-block;
font-size: 0;
line-height: 0
}
.account-upper{
@ -191,6 +306,7 @@ input.submit {
.account form.login .buttons {
margin-top: 30px;
height: 2em;
display: flex;
}
.account form.login .field input {
@ -211,7 +327,6 @@ input.submit {
.account form.login .button-field {
height: 2em;
float: left;
}
.account form.login .button .submit {
@ -237,43 +352,52 @@ input.submit {
width: 100%;
background: #ffffff;
border: 1px solid #CCC;
border-radius: 3px;
border-radius: 6px;
padding: 2px;
height: 1.8em;
}
.account-in-content form.login .button .signup {
border: 1px solid gray;
border-radius: 3px;
padding: 10px 20px;
color: gray;
border: 1px solid white;
border-radius: 20px;
padding: 2px 18px;
color: #535456;
font-size: 20px;
cursor: pointer;
text-decoration: none;
display: inline-block;
float: right;
margin: 0;
text-transform: uppercase;
background-color: white;
font-weight: 500;
height: 26px;
}
.account-in-content form.login .button .submit {
background: #C1E7E1;
border: 1px solid #22a890;
border-radius: 3px;
padding: 10px 20px;
color: white;
font-size: 20px;
background: white;
border: gray;
border-radius: 20px;
padding: 7px 20px;
color: #535456;
font-size: 18px;
cursor: pointer;
text-decoration: none;
display: inline-block;
height: initial;
margin: 0;
width: inherit;
text-transform: uppercase;
font-weight: 500;
font-family: inherit;
}
.account-in-content form.login .field .forgot {
float: right;
margin: 1px 8px 0 0;
margin: 1px 6px 0 0;
padding: 2px 0 0;
font-size: 11px;
font-size: 12px;
color: white;
}
.account-upper form.login {
@ -305,32 +429,93 @@ input.submit {
}
.account-in-content form.login .field label {
font-size: 12px;
/* font-size: 12px; */
}
.account-in-content form.login .field input {
font-size: 14px;
}
.account-in-content form.forgotPassword {
padding-top: 20px;
width: 470px;
}
#content {
padding: 20px 0 40px;
font-size: 16px;
line-height: 1.3em;
.account-in-content form.forgotPassword .buttons {
margin-top: 30px;
height: 2em;
display: flex;
}
table {
width: 100%;
margin: 0 0 40px;
width: 90%;
margin: 0 0 20px;
border-collapse: collapse;
clear : both;
clear: both;
color: black;
/* border: none; */
margin-left: auto;
margin-right: auto;
}
table th,
table td {
text-align: left;
}
table tbody tr {
/* background: #459860; */
}
table tbody tr:nth-child(even) {
/* background: #459860; */
}
table td {
padding: 15px 0px 15px 14px;
/* border-top: 2px solid #ffffff; */
line-height: 1em;
font-size: 15px;
/* vertical-align: top; */
/* color: white; */
}
table th {
overflow: auto;
padding: 0 0 10px 8px;
border-bottom: 2px solid #cbcbcb;
}
section#content {
font-size: 20px;
line-height: 1.5em;
text-align: center;
color: white;
}
/* don't add spacing after last table in a transaction list */
#content div div:last-of-type table {
section#content div div:last-of-type table {
margin-bottom: 0px;
}
section#content form {
color: white;
/* width: 85%; */
margin-left: auto;
margin-right: auto;
font-size: 16px;
margin-top: 0px;
}
/* for lift generated forms */
section#content>form>table {
background-color: #53C4EF;
padding: 10px;
color: white;
max-width: 50%;
margin-top: 50px;
}
#verifier {
margin-top: 30px;
font-weight: bold;
@ -338,8 +523,10 @@ table {
text-align: center;
}
#signupForm tr td:first-child {
width: 170px;
#signupForm tr:first-child td {
width: 150px;
font-size: 18px;
color: white;
}
#signupForm td span input{
@ -354,216 +541,110 @@ table {
}
#signupForm td input[type=submit]{
width:85px;
/* width:85px; */
}
table th,
table td {
text-align: left;
.signup-error {
margin-bottom: 10px;
color: red;
}
table tbody tr {
background: #f3f9f8;
#registerAppSection {
background-color: #53C4EF;
padding: 10px;
color: white;
max-width: 85%;
margin-top: 50px;
display: inline-block;
margin-left: auto;
margin-right: auto;
}
table tbody tr:nth-child(even) {
background: #f2f8f1;
#registerAppSection h1 {
text-align: left;
margin-left: 2%;
margin-bottom: 40px;
font-size: 20px;
line-height: 1.5em;
}
table td {
padding: 14px 10px;
border-top: 2px solid #ffffff;
line-height: 1em;
font-size: 13px;
vertical-align: top;
#registerAppSection .success {
/* font-size: 20px !important; */
margin-bottom: 25px;
}
table th {
overflow: auto;
padding: 0 0 10px 8px;
border-bottom: 2px solid #cbcbcb;
div.registration {
padding: 30px 0 50px 0;
/* width: 84%; */
}
table.management th {
padding-left: 0px;
form.register {
/* color: #555555; */
width: 96%;
margin-left: auto;
margin-right: auto;
margin-top: 30px;
}
table.transactions th h5.date {
float: left;
form div.form-column {
float: left;
width: 50%;
display: flex;
flex-direction: column;
margin-top: 20px;
margin-bottom: 20px;
/* color: #555555; */
}
table.transactions th h6.balance {
float: right;
form div.form-column div {
display: inline-flex;
margin-bottom: 16px;
}
table.transactions th .balance .text {
color: #999999;
padding: 0 10px 0 0;
font-size: 0.8em;
form label {
font-size: 16px;
min-width: 144px;
display: inline-flex;
text-align: left;
margin-right: 5px;
}
table.transactions td.icon {
width: 20px;
form input[type=text], form select {
width: 60%;
}
table.transactions td.icon .out,
table.transactions td.icon .in {
overflow: hidden;
width: 14px;
height: 14px;
background-color: transparent;
background-position: 50% 50%;
background-repeat: no-repeat;
text-indent: -9999em;
form input, form select {
border-radius: 5px;
border: solid 1px white;
height: 28px;
/* margin-bottom: 16px; */
color: #535456;
background-color: white;
font-size: 17px;
display: inline-block;
}
table.transactions td.icon .out {
background-image: url(../images/transaction-out.png);
form.register textarea {
width: 80%;
border-radius: 5px;
border: solid 1px white;
height: 100px;
}
table.transactions td.icon .in {
background-image: url(../images/transaction-in.png);
form.register div.submit {
margin-left: auto;
margin-top: 25px;
}
table.transactions td.symbol {
width: 10px;
padding-right: 5px;
text-align: center;
font-weight: bold;
form input[type=submit] {
font-size: 18px;
height: 30px;
border-radius: 20px;
text-transform: uppercase;
text-align: left;
padding: 2px 20px 0px 20px;
}
table.transactions td.amount {
padding-left: 5px;
width: 100px;
}
table.transactions td.name {
width: 160px;
}
table.transactions td.extra {
width: 350px;
}
table.transactions td.comments {
width: 30px;
padding-top: 10px;
text-align: right;
}
table.transactions td.comments .comment {
display: inline-block;
background: transparent url(../images/comment.png) no-repeat 50% 0;
width: 13px;
height: 9px;
padding: 3px 3px 6px 4px;
color: #333333;
text-align: center;
line-height: 1em;
font-size: 9px;
}
table.management th a.sort {
margin: 0 0 0 3px;
}
td a.upload {
display: inline-block;
padding: 5px 5px 6px 30px;
border: 1px dotted #cccccc;
border-radius: 5px;
background: #ffffff url(../images/upload-off.png) no-repeat 5px 5px;
line-height: 22px;
white-space: nowrap;
font-size: 12px;
text-decoration: none;
color: #999999;
}
table.management td a.upload:hover {
background-image: url(../images/upload-on.png);
text-decoration: underline;
color: #666666;
}
table.management td span.upload {
display: inline-block;
padding: 2px;
border: 1px solid #cccccc;
border-radius: 5px;
background: #ffffff;
line-height: 0;
font-size: 0;
}
table.management td span.upload img {
height: 30px;
}
table.management th {
font-size: 14px;
}
table.management th.account {
width: 155px;
}
table.management td.account {
padding-right: 15px;
}
table.management th.public {
width: 120px;
}
table.management td.public {
padding-left: 0;
line-height: 16px;
font-size: 12px;
}
table.management th.private {
width: 120px;
}
table.management td.private {
padding-left: 0;
line-height: 16px;
font-size: 12px;
}
table.management th.website {
width: 150px;
}
table.management td.website {
padding-left: 0;
line-height: 16px;
font-size: 12px;
}
table.management th.information {
width: 200px;
}
table.management td.information {
padding-left: 0;
line-height: 16px;
font-size: 12px;
}
table.management th.image {
width: 120px;
}
table.management td.image {
padding-top: 3px;
padding-bottom: 2px;
padding-left: 0;
text-align: right;
}
div.extra_account_logo {
float: left;
}
@ -588,29 +669,52 @@ span.alias_indicator_private {
padding: 2px;
}
#footer {
background: #f0f0f0;
border-top: 1px dotted #cccccc;
border-radius: 0 0 8px 8px;
padding: 10px 0 13px;
padding: 100px 0px 15px 50px;
font-size: 10px;
color: #B3B3B3;
margin-bottom: 40px;
}
#footer p {
color: #999999;
font-size: 11px;
text-align: center;
line-height: 1.5
}
#authorizeSection{
background-color: #f0f0f0;
border-radius: 12px;
padding: 10px;
color: black;
width: 450px;
max-width: 80%;
margin-left: auto;
margin-right: auto;
#authorizeSection {
background-color: #53C4EF;
padding: 10px;
color: white;
max-width: 85%;
margin-top: 50px;
display: inline-block;
margin-left: auto;
margin-right: auto;
}
#authorizeSection form.login {
padding-top: 20px;
width: 400px;
}
.signupSection {
padding: 30px 0px 30px 0px !important;
width: 60%;
}
.signupSection form input[type=text],
.signupSection form select,
.signupSection form input[type=password] {
width: 80%;
}
.signupSection form tr td {
color: white;
}
#userAccess {
padding: 5px;
/* width: 400px; */
}
.login-error {
@ -618,13 +722,10 @@ span.alias_indicator_private {
color: red;
}
#authorizeSection form.login {
padding-top: 20px;
width: 400px;
}
span.edit_error_class {
color: red;
}
#accountList {
margin-top: 5px;
float : right;
@ -661,38 +762,37 @@ span.edit_error_class {
margin-bottom: 5px;
}
li.comment
{
li.comment {
padding : 14px 10px;
border-top: 2px solid white;
background: #f3f9f8;
line-height: 1em;
font-size: 13px;
}
#comment_list
{
#comment_list {
margin-top: 10px;
}
div#addCommentbloc
{
div#addCommentbloc {
margin-top: 15px;
}
#submitComment
{
#submitComment {
display: block;
}
#lastUpdate
{
#lastUpdate {
margin-top: 5px;
font-size: 13px;
display: block;
}
#account_details
{
#account_details {
margin-bottom: 25px;
}
a#feedBack
{
a#feedBack {
display: block;
position: fixed;
left:0;
@ -702,57 +802,79 @@ a#feedBack
background: url(../images/feedback-button.gif);
cursor: pointer;
}
span#registrationDetails
{
span#registrationDetails {
font-size: 10px;
}
.error
{
.error {
color:red;
}
img.moreInfoIcon
{
margin-left: 5px;
img.moreInfoIcon {
margin-left: 6px;
margin-top: 7px;
width: 18px;
height: 18px;
}
span#submissionMessage
{
span#submissionMessage {
display: block;
}
span#submissionSuccess, span#submissionFailed
{
span#submissionSuccess, span#submissionFailed {
display: block;
padding: 15px 20px;
background: #66ee55;
}
span#submissionFailed
{
span#submissionFailed {
background: #ff3311;
}
span#accountsMsg
{
span#accountsMsg {
font-size: 13px;
}
#registration-errors{
#registration-errors {
color: red;
border: solid 1px red;
margin: 20px;
padding: 15px;
/* border: solid 1px red; */
margin: 0;
/* padding: 15px; */
}
#oauth-done-thanks {
margin: 30px;
color: black;
}
#create-account-form-container {
margin-left: 50px;
margin-top: 30px;
#create-sandbox-account {
background-color: #53C4EF;
padding: 20px;
color: white;
max-width: 85%;
margin-top: 50px;
display: inline-block;
}
#create-account-form-container input {
margin-top: 5px;
#create-sandbox-account form label {
min-width: 190px;
}
#create-sandbox-account form div.submit {
margin-left: auto;
}
#create-sandbox-account form div.form-column.middle {
margin-left: 25%;
}
#create-account-explanation a {
color: lightgray;
}
#create-account-instructions {
margin-top: 30px;
margin-left: 10px;
}
@ -765,7 +887,7 @@ span#accountsMsg
#account-created-successfully {
margin-left: 50px;
margin-top: 10px;
color: green;
color: lightgreen;
}
#admin-logout {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 925 B

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -0,0 +1,2 @@
!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return f({type:O.error,iconClass:g().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=g()),v=e("#"+t.containerId),v.length?v:(n&&(v=c(t)),v)}function i(e,t,n){return f({type:O.info,iconClass:g().iconClasses.info,message:e,optionsOverride:n,title:t})}function o(e){w=e}function s(e,t,n){return f({type:O.success,iconClass:g().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return f({type:O.warning,iconClass:g().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e){var t=g();v||n(t),l(e,t)||u(t)}function d(t){var i=g();return v||n(i),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function u(t){for(var n=v.children(),i=n.length-1;i>=0;i--)l(e(n[i]),t)}function l(t,n){return t&&0===e(":focus",t).length?(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0):!1}function c(t){return v=e("<div/>").attr("id",t.containerId).addClass(t.positionClass).attr("aria-live","polite").attr("role","alert"),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:'<button type="button">&times;</button>',newestOnTop:!0,preventDuplicates:!1,progressBar:!1}}function m(e){w&&w(e)}function f(t){function i(t){return!e(":focus",l).length||t?(clearTimeout(O.intervalId),l[r.hideMethod]({duration:r.hideDuration,easing:r.hideEasing,complete:function(){h(l),r.onHidden&&"hidden"!==b.state&&r.onHidden(),b.state="hidden",b.endTime=new Date,m(b)}})):void 0}function o(){(r.timeOut>0||r.extendedTimeOut>0)&&(u=setTimeout(i,r.extendedTimeOut),O.maxHideTime=parseFloat(r.extendedTimeOut),O.hideEta=(new Date).getTime()+O.maxHideTime)}function s(){clearTimeout(u),O.hideEta=0,l.stop(!0,!0)[r.showMethod]({duration:r.showDuration,easing:r.showEasing})}function a(){var e=(O.hideEta-(new Date).getTime())/O.maxHideTime*100;f.width(e+"%")}var r=g(),d=t.iconClass||r.iconClass;if("undefined"!=typeof t.optionsOverride&&(r=e.extend(r,t.optionsOverride),d=t.optionsOverride.iconClass||d),r.preventDuplicates){if(t.message===C)return;C=t.message}T++,v=n(r,!0);var u=null,l=e("<div/>"),c=e("<div/>"),p=e("<div/>"),f=e("<div/>"),w=e(r.closeHtml),O={intervalId:null,hideEta:null,maxHideTime:null},b={toastId:T,state:"visible",startTime:new Date,options:r,map:t};return t.iconClass&&l.addClass(r.toastClass).addClass(d),t.title&&(c.append(t.title).addClass(r.titleClass),l.append(c)),t.message&&(p.append(t.message).addClass(r.messageClass),l.append(p)),r.closeButton&&(w.addClass("toast-close-button").attr("role","button"),l.prepend(w)),r.progressBar&&(f.addClass("toast-progress"),l.prepend(f)),l.hide(),r.newestOnTop?v.prepend(l):v.append(l),l[r.showMethod]({duration:r.showDuration,easing:r.showEasing,complete:r.onShown}),r.timeOut>0&&(u=setTimeout(i,r.timeOut),O.maxHideTime=parseFloat(r.timeOut),O.hideEta=(new Date).getTime()+O.maxHideTime,r.progressBar&&(O.intervalId=setInterval(a,10))),l.hover(s,o),!r.onclick&&r.tapToDismiss&&l.click(i),r.closeButton&&w&&w.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),i(!0)}),r.onclick&&l.click(function(){r.onclick(),i()}),m(b),r.debug&&console&&console.log(b),l}function g(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),C=void 0))}var v,w,C,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:d,error:t,getContainer:n,info:i,options:{},subscribe:o,success:s,version:"2.1.0",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)});
//# sourceMappingURL=toastr.js.map

View File

@ -1,6 +1,6 @@
<!--
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,103 +1,20 @@
<!--
Open Bank Project
<div id="main" class="lift:surround?with=default;at=content">
<!-- Valid Token -->
<div class="lift:OAuthAuthorisation.tokenCheck" id="authorizeSection">
<div id="userAccess">
<div class="account account-in-content">
<div class="login-error">Incorrect username or password</div>
Copyright 2011,2012 TESOBE / Music Pictures Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Open Bank Project (http://www.openbankproject.com)
Copyright 2011,2012 TESOBE / Music Pictures Ltd
This product includes software developed at
TESOBE (http://www.tesobe.com/)
by
Simon Redfern : simon AT tesobe DOT com
Everett Sochowski: everett AT tesobe DOT com
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
<title class="lift:Menu.title">Open Bank Project: %*%</title>
<link href="/media/css/website.css?20120412" rel="stylesheet" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="/media/js/website.js" type="text/javascript"></script>
</head>
<body>
<div class="grid-container">
<div id="wrapper">
<div id="header">
<h1 id="logo" onclick="javascript:window.location='/';">Open Bank Project</h1>
</div>
<div id="content" >
<!-- Valid Token -->
<div class="lift:OAuthAuthorisation.tokenCheck" id="authorizeSection">
<div id="userAccess">
<div class="account account-in-content">
<div class="login-error">Incorrect username or password</div>
The application <span id="applicationName"> web app </span> is
asking for access to your account data.
<!-- LOGGED OUT -->
<form class="login" action="." method="post">
<div class="group">
<div class="explain">
<span>Please login with your
username or e-mail address.</span>
</div>
<div class="field username">
<input class="username" type="email" placeholder="Username" name="username" tabindex=1 />
</div>
<div class="field password">
<input class="password" type="password" placeholder="Password" name="password" tabindex=2 />
</div>
<div class="field password" style="height: 1em; margin: 0">
<a href="#" class="forgot" tabindex=3>Forgot your password?</a>
</div>
<div class="field buttons">
<div class="button button-field">
<input class="submit" type="submit" value="Login" tabindex=4 />
</div>
<div class="button button-field" style="float: right">
<a href="#" class="signup" tabindex=5>Register</a>
</div>
</div>
</div>
</form>
</div>
</div>
<div id="verifierBloc">
<div>Please come back to the application where you come from and enter the following code: </div>
<div id="verifier">123123213</div>
</div>
<div id="errorMessage">Error message</div>
</div>
</div>
<div id="footer">
<p>
<a href="http://openbankproject.com">Open Bank Project</a> is &copy;2011-2012 <a href="http://tesobe.com">TESOBE</a> and distributed under the Apache 2.0 License.</p>
<br/>
<p>
<a href="https://github.com/OpenBankProject">Sources on Github</a> |
<a href="http://www.facebook.com/pages/Open-Bank-Project/118851468190327">Facebook Page</a> |
<a href="http://twitter.com/#!/OpenBankProject">Follow us on Twitter</a> |
<a href="http://eviscape.com/profile/openbankproject/">Eviscape Profile</a> |
<!-- <a href="http://polarizeit.tesobe.com/polarize/the-open-bank-project---an-open-source-a-82602778985">Polarize it!</a> | -->
<a href="/api/accounts/tesobe/anonymous">JSON API</a></p>
</div>
The application <span id="applicationName"> web app </span> is
asking for access to your account data.
<!-- LOGGED OUT -->
<div class="lift:embed?what=_login_form"></div>
</div>
</div>
<div id="verifierBloc">
<div>Please go back to the application where you come from and enter the following code: </div>
<div id="verifier">123123213</div>
</div>
<div id="errorMessage">Error message</div>
</div>
</body>
</html>
</div>

View File

@ -1,30 +1,10 @@
<div>
<form method="post" action="#">
<table>
<tr>
<td colspan="2" id="loginText">login</td>
</tr>
<tr>
<td id="emailAddressText">e-mail address </td>
<td><user:email /></td>
</tr>
<tr>
<td id="passwordText"> password </td>
<td><user:password /></td>
</tr>
<tr>
<td id="SignUpLink" >
<a href="#">link text</a>
</td>
<td id="recoverPasswordLink" >
<a href="#">link text</a>
</td>
</tr>
<tr>
<td colspan="2">
<user:submit />
</td>
</tr>
</table>
</form>
</div>
<div id="authorizeSection">
<div id="userAccess">
<div class="account account-in-content">
<div class="login-error"><span class="lift:Msg?id=login&errorClass=error"/></div>
<!-- LOGGED OUT -->
Please login with your username or e-mail address.
<div class="lift:embed?what=_login_form"></div>
</div>
</div>
</div>

View File

@ -0,0 +1,19 @@
<form class="login" action="/user_mgt/login" method="post">
<div class="field username">
<input class="username" type="email" placeholder="Username" name="username" tabindex=1 autofocus />
</div>
<div class="field password">
<input class="password" type="password" placeholder="Password" name="password" tabindex=2 />
</div>
<div id="recoverPasswordLink" class="field password" style="height: 1em;">
<a href="/user_mgt/lost_password" class="forgot" tabindex=3>Forgot your password?</a>
</div>
<div class="field buttons">
<div class="button button-field">
<input class="submit" type="submit" value="Login" tabindex=4 />
</div>
<div id="SignUpLink" class="button button-field" style="margin-left: auto;">
<a href="/user_mgt/sign_up" class="signup" tabindex=5>Register</a>
</div>
</div>
</form>

View File

@ -1,6 +1,6 @@
<!--
Open Bank Project - API
Copyright (C) 2011, 2015, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@ -30,83 +30,95 @@ Berlin 13359, Germany
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
<title class="lift:Menu.title">Open Bank Project: %*%</title>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<title class="lift:Menu.title">Open Bank Project: %*%</title>
<link href="/media/css/website.css?20150517" rel="stylesheet" type="text/css" />
<script id="jquery" src="/classpath/jquery.js" type="text/javascript"></script>
<script src="/media/js/website.js" type="text/javascript"></script>
</head>
<body>
<div id="wrapper">
<header id="header">
<a href="/"><h1 id="logo">Open Bank Project</h1></a>
<div class="account account-upper">
<div id="admin-logout"class="lift:Login.adminLogout">
Currently logged in as admin <span id="admin-username">NAME</span>. <a id="admin-logout-clickme" href="#">Logout</a>
</div>
<!-- LOGGED OUT -->
<div class="lift:Login.loggedOut">
<form class="login" action="." method="post">
<div class="field username">
<label>Username</label>
<input class="username" type="text" name="username" tabindex=1/>
</div>
<div class="field password">
<label>Password</label>
<a href="#" class="forgot" tabindex=5>Forgotten?</a>
<a href="#" class="signup" tabindex=4>Sign up</a>
<input class="password" type="password" name="password" tabindex=2 />
</div>
<div class="button submit">
<input class="submit" type="submit" value="Login" tabindex=3/>
</div>
</form>
<link href="/media/css/website.css" rel="stylesheet" type="text/css" />
<script id="jquery" src="/classpath/jquery.js" type="text/javascript"></script>
<script src="/media/js/website.js" type="text/javascript"></script>
<script src="/media/js/toastr.min.js"></script>
<link href="/media/css/toastr.min.css" rel="stylesheet"/>
</head>
<body>
<div id="background">
<div id="wrapper">
<header id="header">
<div id="header-decoration"></div>
<div id="logo-left" class="lift:WebUI.headerLogoLeft">
<a href="/"><img src="" alt=""></a>
</div>
<!-- LOGGED IN -->
<div class="lift:Login.loggedIn">
<div class="profile-info">
Logged in as <span class="username">username@domain.com</span>
<a href="" class="logout">Logout</a>
</div>
<div id="logo-right" class="lift:WebUI.headerLogoRight">
<a href="/"><img src="" alt=""></a>
</div>
</div>
</header>
<nav id="nav">
<ul>
<li class="lift:Nav.item?name=Home navitem">
<a class="navlink" href="#">Link name. Has class "selected" if it's the current page.</a>
</li>
<li class="lift:Nav.item?name=Consumer%20Registration navitem">
<a class="navlink" href="#">Link name. Has class "selected" if it's the current page.</a>
</li>
<li class="lift:Nav.item?name=Metrics navitem">
<a class="navlink" href="#">Link name. Has class "selected" if it's the current page.</a>
</li>
<li class="lift:Nav.item?name=Connect navitem">
<a class="navlink" href="#">Link name. Has class "selected" if it's the current page.</a>
</li>
<li class="lift:Nav.item?name=Sandbox%20Account%20Creation&showEvenIfRestricted=true navitem">
<a class="navlink" href="#">Link name. Has class "selected" if it's the current page.</a>
</li>
</ul>
</nav>
<section id="content">
<lift:bind name="content" />
The main content gets bound here
</section>
<footer id="footer">
<p><a href="http://openbankproject.com">Open Bank Project</a> is &copy;2011-2015 <a href="http://tesobe.com">TESOBE</a> and distributed under the AGPL 3.</p>
<br/>
<p>
<a href="http://twitter.com/#!/OpenBankProject">Follow us on Twitter</a> |
<a href="https://github.com/OpenBankProject/OBP-API/">Source Code on Github</a> |
<a href="https://github.com/OpenBankProject/OBP-API/wiki">API Documentation</a>
</p>
</footer>
<div id="messages-container" class="lift:Msgs"></div>
<script>
$(function() {
toastr.options.timeOut = 3000;
if(notice = $("#lift__noticesContainer___error").text()) {
toastr.error(notice)
}
else if(notice = $("#lift__noticesContainer__").text()) {
toastr.success(notice)
}
})
</script>
</lift:Msgs>
</header>
<nav id="nav">
<ul>
<li class="lift:Nav.item?name=Home navitem">
<a class="navlink" href="#">Link name. Has class "selected" if it's the current page.</a>
</li>
<li class="lift:Nav.item?name=Consumer%20Registration navitem">
<a class="navlink" href="#">Link name. Has class "selected" if it's the current page.</a>
</li>
<li class="lift:Nav.item?name=Metrics navitem">
<a class="navlink" href="#">Link name. Has class "selected" if it's the current page.</a>
</li>
<li class="lift:Nav.item?name=Connect navitem">
<a class="navlink" href="#">Link name. Has class "selected" if it's the current page.</a>
</li>
<li class="lift:Nav.item?name=Sandbox%20Account%20Creation&showEvenIfRestricted=true navitem">
<a class="navlink" href="#">Link name. Has class "selected" if it's the current page.</a>
</li>
<!-- login state -->
<li class="lift:Nav.item?name=Login navitem nav-login-state-item">
<!-- LOGGED OUT -->
<div class="lift:Login.loggedOut">
<a href="#" class="navlink login">Login</a>
</div>
</li>
<li class="navitem nav-login-state-item">
<!-- LOGGED IN -->
<div id="admin-logout" class="lift:Login.adminLogout">
admin <span id="admin-username">NAME</span>. <a id="admin-logout-clickme" href="#">Logout</a>
</div>
<div class="lift:Login.loggedIn">
<div class="profile-info">
<span class="username">username@domain.com</span>&nbsp;<a href="" class="logout">Logout</a>
</div>
</div>
</li>
</ul>
</nav>
<section id="content">
<lift:bind name="content"/>
The main content gets bound here
</section>
<footer id="footer">
<div>
<a href="http://openbankproject.com">Open Bank Project</a> is &copy;2011-2015 <a href="http://tesobe.com">TESOBE</a> and distributed under the AGPL and commercial licenses.</p>
<br/>
</div>
<div>
<a href="http://twitter.com/#!/OpenBankProject">Follow us on Twitter</a> |
<a href="https://github.com/OpenBankProject">Sources on Github</a>
</div>
</footer>
</div>
<!-- <a id="feedBack" href="http://polarize.it/polarize/openbankprojectdemoa_78828874370"></a> -->
</div>
</body>
</html>
</body>
</html>

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - Transparency / Social Finance Web Application
Copyright (C) 2011, 2015, TESOBE / Music Pictures Ltd
Open Bank Project - API
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2014, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by

View File

@ -261,7 +261,7 @@ class TransactionRequestsTest extends ServerSetupWithTestData with DefaultUsers
challenge.size should not equal(0)
//3. TODO: answer challenge and check if transaction is being created
}
/*

View File

@ -1,6 +1,6 @@
/**
Open Bank Project - API
Copyright (C) 2011, 2013, TESOBE / Music Pictures Ltd
Copyright (C) 2011-2015, TESOBE / Music Pictures Ltd
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by