Issue 2350 completed. /widgets/login_info/skins/bootstrap.login created.

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11159 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ChanMyeong 2012-09-04 10:10:02 +00:00
parent 2b09f7cd26
commit c8a7c40de1
7 changed files with 140 additions and 0 deletions

View file

@ -0,0 +1,20 @@
@charset "utf-8";
.account{position:relative;text-align:right;z-index:99}
.account #acField{width:248px;position:absolute;right:0;padding:15px;text-align:left;display:none}
.account .idpwWrap{zoom:1;margin:0 0 10px 0}
.account .idpwWrap:after{content:"";clear:both;display:block}
.account .idpw{margin:0 14px 0 0}
.account .idpw>input{display:block;width:100%}
.account .keep{float:left;white-space:nowrap}
.account .keep *{vertical-align:middle}
.account .keep label{display:inline;font-size:11px;color:#666}
.account .warning{display:none;font-size:11px;line-height:1.4;color:#666;clear:both}
.account input[type=submit]{float:right}
.account .help{list-style:none;margin:0;padding:0;font-size:11px}
.account .help li{display:inline}
.account .help li:before{content:"|";color:#ddd;margin:0 4px 0 0}
.account .help li:first-child:before{content:normal}
.account .info{margin:0;padding:0;list-style:none}
.account .info>li{display:inline}
.account .info>li:before{content:"|"; color:#ddd;margin:0 4px 0 0}
.account .info>li:first-child:before{content:normal}

View file

@ -0,0 +1,49 @@
/* After Login */
function completeLogin(ret_obj, response_tags, params, fo_obj) {
var url = current_url.setQuery('act','');
location.href = url;
}
jQuery(function($){
// Login
// placeholder
var $account = $('.account');
$account
.unwrap().unwrap()
.find('.idpw>input').each(function(){
var idpw_placeholder = $(this).attr('title');
$(this).attr('placeholder', idpw_placeholder);
});
// Toggle
var $acTog = $account.find('>a[href="#acField"]:eq(0)');
$acTog.click(function(){
$(this).next('#acField').slideToggle(200, function(){
var $user_id = $(this).find('input[name="user_id"]:eq(0)');
if($user_id.is(':visible')){
$user_id.focus();
} else {
$acTog.focus();
}
});
return false;
});
// Close
$account
.find('>#acField')
.append('<button type="button" class="x_close">&times;</button>')
.find('>.x_close').click(function(){
$(this).closest('#acField').slideUp(200, function(){
$acTog.focus();
});
return false;
});
// Warning
var $acWarning = $account.find('.warning');
$('#keep_signed').change(function(){
if($(this).is(':checked')){
$acWarning.slideDown(200);
} else {
$acWarning.slideUp(200);
}
});
});

View file

@ -0,0 +1,11 @@
<filter name="widget_login" module="member" act="procMemberLogin">
<form>
<node target="user_id" required="true" filter="user_id" />
<node target="password" required="true" />
</form>
<parameter />
<response callback_func="completeLogin">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,31 @@
<load target="bootstrap.login.css" />
<load target="login.xml" />
<load target="bootstrap.login.js" />
<form id="fo_login_widget" action="{getUrl('','act','procMemberLogin')}" method="post" ruleset="@login" class="account">
<a href="#acField" class="x_btn x_btn-link">{$lang->cmd_login}</a>
<fieldset class="x_well" id="acField">
<input type="hidden" name="act" value="procMemberLogin" />
<input type="hidden" name="success_return_url" value="{htmlspecialchars(getRequestUriByServerEnviroment())}" />
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<div class="idpwWrap">
<div class="idpw">
<input name="user_id" type="text" required autocomplete="off" title="{$lang->user_id}" cond="$member_config->identifier != 'email_address'" />
<input name="user_id" type="email" required autocomplete="off" title="{$lang->email_address}" cond="$member_config->identifier == 'email_address'" />
<input name="password" type="password" required autocomplete="off" title="{$lang->password}" />
<p class="keep">
<input type="checkbox" name="keep_signed" id="keep_signed" value="Y" />
<label for="keep_signed">{$lang->keep_signed}</label>
</p>
</div>
<input type="submit" class="x_btn x_btn-primary" value="{$lang->cmd_login}" />
</div>
<p class="warning">{$lang->about_keep_warning}</p>
<ul class="help">
<li><a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li>
<li><a href="{getUrl('act','dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a></li>
<li><a href="{getUrl('act','dispMemberResendAuthMail')}">{$lang->cmd_resend_auth_mail}</a></li>
</ul>
</fieldset>
</form>

View file

@ -0,0 +1,9 @@
<load target="bootstrap.login.css" />
<load target="logout.xml" />
<div class="account">
<ul class="info">
<li><a href="{getUrl('act','dispMemberInfo')}" title="{$lang->last_login}: {zDate($logged_info->last_login, "Y-m-d")}">{$logged_info->nick_name}</a></li>
<li><a href="{getUrl('act','dispMemberLogout')}">{$lang->cmd_logout}</a></li>
<li cond="$logged_info->is_admin=='Y' && !$site_module_info->site_srl"><a href="{getUrl('','module','admin')}">{$lang->cmd_management}</a></li>
</ul>
</div>

View file

@ -0,0 +1,7 @@
<filter name="widget_logout" module="member" act="procMemberLogout">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">Bootstrap.Login</title>
<title xml:lang="en">Bootstrap.Login</title>
<description xml:lang="ko">부트스트랩 응용 로그인 위젯.</description>
<description xml:lang="en">Bootstrap application login widget.</description>
<version>1.0</version>
<date>2012-09-01</date>
<author email_address="developer@xpressengine.com" link="http://xpressengine.com/">
<name xml:lang="ko">NHN</name>
<name xml:lang="en">NHN</name>
</author>
</skin>