Commit b9b2d102 authored by Liang Ding's avatar Liang Ding

��ȡ���շ��� 0.4.6��Merge remote-tracking branch 'origin/0.4.6'

Conflicts:
	core/src/main/java/org/b3log/solo/service/TagQueryService.java
	core/src/main/java/org/b3log/solo/util/Articles.java
	core/src/test/java/org/b3log/solo/repository/impl/UserRepositoryImplTestCase.java
	war/src/main/webapp/CHANGE_LOGS.html
	war/src/main/webapp/css/default-admin.css
	war/src/main/webapp/css/default-base.css
	war/src/main/webapp/css/default-init.css
	war/src/main/webapp/js/admin/admin.js
	war/src/main/webapp/js/admin/editorKindEditor.js
	war/src/main/webapp/js/admin/editorTinyMCE.js
	war/src/main/webapp/js/admin/pageList.js
	war/src/main/webapp/js/admin/preference.js
	war/src/main/webapp/js/admin/tablePaginate.js
	war/src/main/webapp/js/lib/jquery/jquery.bowknot.min.js
parents 8b5d0f46 b632302e
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
* 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.
*/
package org.b3log.solo.processor;
import org.b3log.latke.Latkes;
import org.b3log.latke.annotation.RequestProcessing;
import org.b3log.latke.annotation.RequestProcessor;
import org.b3log.latke.servlet.HTTPRequestContext;
import org.b3log.latke.servlet.HTTPRequestMethod;
import org.b3log.latke.servlet.renderer.JSONRenderer;
import org.b3log.solo.SoloServletListener;
import org.b3log.solo.model.Statistic;
import org.b3log.solo.repository.StatisticRepository;
import org.b3log.solo.repository.impl.StatisticRepositoryImpl;
import org.b3log.solo.service.PreferenceQueryService;
import org.b3log.solo.service.TagQueryService;
import org.b3log.solo.util.Articles;
import org.json.JSONObject;
/**
* Blog processor.
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @version 1.0.0.0, Jun 28, 2012
* @since 0.4.6
*/
@RequestProcessor
public final class BlogProcessor {
/**
* Article utilities.
*/
private Articles articleUtils = Articles.getInstance();
/**
* Tag query service.
*/
private TagQueryService tagQueryService = TagQueryService.getInstance();
/**
* Preference query service.
*/
private PreferenceQueryService preferenceQueryService = PreferenceQueryService.getInstance();
/**
* Statistic repository.
*/
private StatisticRepository statisticRepository = StatisticRepositoryImpl.getInstance();
/**
* Gets blog information.
*
* <ul>
* <li>Time of the recent updated article</li>
* <li>Article count</li>
* <li>Comment count</li>
* <li>Tag count</li>
* <li>Serve path</li>
* <li>Static serve path</li>
* <li>Solo version</li>
* <li>Runtime environment (GAE/LOCAL)</li>
* <li>Locale</li>
* </ul>
*
* @param context the specified context
* @throws Exception exception
*/
@RequestProcessing(value = "/blog/info", method = HTTPRequestMethod.GET)
public void getRecentArticleTime(final HTTPRequestContext context) throws Exception {
final JSONRenderer renderer = new JSONRenderer();
context.setRenderer(renderer);
final JSONObject jsonObject = new JSONObject();
renderer.setJSONObject(jsonObject);
jsonObject.put("recentArticleTime", articleUtils.getRecentArticleTime());
final JSONObject statistic = statisticRepository.get(Statistic.STATISTIC);
jsonObject.put("articleCount", statistic.getLong(Statistic.STATISTIC_PUBLISHED_ARTICLE_COUNT));
jsonObject.put("commentCount", statistic.getLong(Statistic.STATISTIC_PUBLISHED_BLOG_COMMENT_COUNT));
jsonObject.put("tagCount", tagQueryService.getTagCount());
jsonObject.put("servePath", Latkes.getServePath());
jsonObject.put("staticServePath", Latkes.getStaticServePath());
jsonObject.put("version", SoloServletListener.VERSION);
jsonObject.put("runtimeEnv", Latkes.getRuntimeEnv());
jsonObject.put("locale", Latkes.getLocale());
}
}
......@@ -33,7 +33,11 @@ import org.json.JSONObject;
* Tag query service.
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
<<<<<<< HEAD
* @version 1.0.0.2, Nov 11, 2011
=======
* @version 1.0.0.3, Jun 28, 2012
>>>>>>> origin/0.4.6
* @since 0.4.0
*/
public final class TagQueryService {
......@@ -41,8 +45,12 @@ public final class TagQueryService {
/**
* Logger.
*/
<<<<<<< HEAD
private static final Logger LOGGER =
Logger.getLogger(TagQueryService.class.getName());
=======
private static final Logger LOGGER = Logger.getLogger(TagQueryService.class.getName());
>>>>>>> origin/0.4.6
/**
* Tag repository.
*/
......@@ -65,8 +73,12 @@ public final class TagQueryService {
* </pre>, returns {@code null} if not found
* @throws ServiceException service exception
*/
<<<<<<< HEAD
public JSONObject getTagByTitle(final String tagTitle)
throws ServiceException {
=======
public JSONObject getTagByTitle(final String tagTitle) throws ServiceException {
>>>>>>> origin/0.4.6
try {
final JSONObject ret = new JSONObject();
......@@ -88,6 +100,25 @@ public final class TagQueryService {
}
/**
<<<<<<< HEAD
=======
* Gets the count of tags.
*
* @return count of tags
* @throws ServiceException service exception
*/
public long getTagCount() throws ServiceException {
try {
return tagRepository.count();
} catch (final RepositoryException e) {
LOGGER.log(Level.SEVERE, "Gets tags failed", e);
throw new ServiceException(e);
}
}
/**
>>>>>>> origin/0.4.6
* Gets all tags.
*
* @return for example,
......
<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -28,10 +31,14 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.b3log.solo.model.Article;
import org.b3log.latke.Keys;
<<<<<<< HEAD
import org.b3log.latke.repository.FilterOperator;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.SortDirection;
=======
import org.b3log.latke.repository.*;
>>>>>>> origin/0.4.6
import org.b3log.latke.service.ServiceException;
import org.b3log.latke.user.UserService;
import org.b3log.latke.user.UserServiceFactory;
......@@ -136,6 +143,7 @@ public final class Articles {
}
/**
<<<<<<< HEAD
* Gets the specified article's author.
*
* <p>
......@@ -436,6 +444,26 @@ public final class Articles {
}
return true;
=======
* Gets time of the recent updated article.
*
* @return time of the recent updated article, returns {@code 0} if not found
* @throws ServiceException service exception
*/
public long getRecentArticleTime() throws ServiceException {
try {
final List<JSONObject> recentArticles = articleRepository.getRecentArticles(1);
if (recentArticles.isEmpty()) {
return 0;
}
final JSONObject recentArticle = recentArticles.get(0);
return ((Date) recentArticle.get(Article.ARTICLE_UPDATE_DATE)).getTime();
} catch (final Exception e) {
LOGGER.log(Level.SEVERE, e.getMessage(), e);
throw new ServiceException("Gets recent article time failed");
}
>>>>>>> origin/0.4.6
}
/**
......@@ -608,4 +636,7 @@ public final class Articles {
}
}
}
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
<<<<<<< HEAD
<<<<<<< HEAD
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -102,6 +103,8 @@ public final class UserRepositoryImplTestCase extends AbstractTestCase {
}
}
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -204,4 +207,7 @@ public final class UserRepositoryImplTestCase extends AbstractTestCase {
Assert.assertEquals(found.getString(User.USER_PASSWORD), "pass1");
}
}
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
<<<<<<< HEAD
<<<<<<< HEAD
<!DOCTYPE html>
<html>
<head>
......@@ -337,6 +338,8 @@
</body>
</html>
=======
=======
>>>>>>> origin/0.4.6
<!DOCTYPE html>
<html>
<head>
......@@ -684,4 +687,7 @@
</ul>
</body>
</html>
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
<<<<<<< HEAD
<<<<<<< HEAD
/**
* admin style
*
......@@ -655,6 +656,8 @@ button#submitArticle {
z-index: 1;
}
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -1330,4 +1333,7 @@ button#submitArticle {
position: absolute;
z-index: 1;
}
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
<<<<<<< HEAD
<<<<<<< HEAD
/**
* base style
*
......@@ -502,6 +503,8 @@ button:hover,.button:hover {
cursor: pointer;
}
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -1020,5 +1023,8 @@ button:hover,.button:hover {
#captcha, #captchaReply {
cursor: pointer;
}
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
/* end comment */
\ No newline at end of file
<<<<<<< HEAD
<<<<<<< HEAD
/**
* 403, 500, article-pwd, init, login and kill-browser page style.
*
......@@ -226,6 +227,8 @@ input:focus {
margin-top: 18px;
}
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -476,5 +479,8 @@ input:focus {
font-weight: bold;
margin-top: 18px;
}
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
/* end init and login */
\ No newline at end of file
<<<<<<< HEAD
<<<<<<< HEAD
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -254,6 +255,8 @@ $.extend(Admin.prototype, {
}
});
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -508,5 +511,8 @@ $.extend(Admin.prototype, {
this.setCurByHash();
}
});
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
var admin = new Admin();
\ No newline at end of file
<<<<<<< HEAD
<<<<<<< HEAD
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -96,6 +97,8 @@ admin.editors.KindEditor = {
}
}
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -194,5 +197,8 @@ admin.editors.KindEditor = {
$("#" + id).val(content);
}
}
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
};
\ No newline at end of file
<<<<<<< HEAD
<<<<<<< HEAD
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -123,6 +124,8 @@ admin.editors.tinyMCE = {
}
}
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -248,5 +251,8 @@ admin.editors.tinyMCE = {
$("#" + id).val(content);
}
}
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
};
\ No newline at end of file
<<<<<<< HEAD
<<<<<<< HEAD
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -435,6 +436,8 @@ admin.register["page-list"] = {
"init": admin.pageList.init,
"refresh": admin.pageList.getList
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -870,5 +873,8 @@ admin.register["page-list"] = {
"obj": admin.pageList,
"init": admin.pageList.init,
"refresh": admin.pageList.getList
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
}
\ No newline at end of file
<<<<<<< HEAD
<<<<<<< HEAD
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -222,6 +223,8 @@ admin.register["preference"] = {
$("#loadMsg").text("");
}
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -491,5 +494,8 @@ admin.register["preference"] = {
"refresh": function () {
$("#loadMsg").text("");
}
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
}
\ No newline at end of file
<<<<<<< HEAD
<<<<<<< HEAD
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -112,6 +113,8 @@ $.extend(TablePaginate.prototype, {
this.currentPage = currentPage;
}
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (c) 2009, 2010, 2011, 2012, B3log Team
*
......@@ -225,5 +228,8 @@ $.extend(TablePaginate.prototype, {
});
this.currentPage = currentPage;
}
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
});
\ No newline at end of file
<<<<<<< HEAD
<<<<<<< HEAD
/*
* Copyright (C) 2010,2011, Liyuan Li
*
......@@ -21,6 +22,8 @@
(function($){var j=new Date().getTime();var k='completed';var l=function(){this._defaults={"styleClass":{"panelClass":"completed-panel","inputClass":"completed-input","ckClass":"completed-ck"},"separator":","},this._settingsDataFormat={}};$.extend(l.prototype,{_attach:function(a,b){if(!a.id){this.uuid++;a.id='dp'+this.uuid}var c=this._newInst($(a));c.settings=$.extend({"buttonText":"\u9009\u62e9"},b||{});$.data(a,k,c);this._init(a)},_newInst:function(a){var b=a[0].id.replace(/([^A-Za-z0-9_])/g,'\\\\$1');return{"id":b}},_getInst:function(a){try{return $.data(a,k)}catch(err){throw'Missing instance data for this completed';}},_destroyCompleted:function(){},_init:function(b){var c=this._getInst(b);var d=c.id,settings=c.settings;this._buildHTML(d,settings);$(document).click(function(a){if(a.target.id!==d){$("#"+d+"SelectedPanel").hide()}});this._buildCheckboxPanel(d,settings.data)},_buildHTML:function(b,c){var d=c.height+"px",classStyle=this._getDefaults($.completed._defaults,c,"styleClass");var e=$("#"+b);var f="<button onclick=\"$('#"+b+"CheckboxPanel').toggle()\">"+c.buttonText+"</button><div id='"+b+"SelectedPanel' class='"+classStyle.panelClass+"' style='height:"+d+";'></div><div class='none "+classStyle.ckClass+"' id='"+b+"CheckboxPanel'><div>";c.data.sort();e.after(f).bind("keyup",{settings:c},this._keyupAction).bind("keydown",function(a){c.chinese=a.keyCode}).addClass(classStyle.inputClass).width(e.width()-78);var g=$("#"+b+"SelectedPanel");c.tipNum=0;g.width(e.width()+2)},_keyupAction:function(a){var b=a.data.settings,currentWordObj=$.completed._getCurrentWord(this,b);if(currentWordObj.currentWord===""||a.keyCode===27||a.keyCode===16||a.keyCode===16){$("#"+this.id+"SelectedPanel").hide();b.tipNum=0;return}var c=$.completed._getMatchData(b.data,this.value,currentWordObj.currentWord);if(a.keyCode===38){if(b.tipNum>0){b.tipNum--}else{b.tipNum=c.length-1}}if(a.keyCode===40){if(b.tipNum<c.length-1){b.tipNum++}else{b.tipNum=0}}$.completed._buildSelectedPanel(this.id,c,b,currentWordObj.currentWord);if(a.keyCode===13&&c[b.tipNum]&&b.chinese!==229){var d=this.value;this.value=d.substring(0,currentWordObj.startPos)+c[b.tipNum]+d.substring(currentWordObj.endPos,d.length);$("#"+this.id+"SelectedPanel").hide();b.chinese=undefined}if(a.keyCode!==38&&a.keyCode!==40){b.tipNum=0}},_getCurrentWord:function(a,b){var c=$(a).val(),tag=true,endPos=0,startPos=0,separator=$.completed._defaults.separator;if(c===""){return{currentWord:"",startPos:startPos,endPos:endPos}}if(document.selection){try{var d=document.selection.createRange();var f=a.createTextRange();f.collapse(true);f.select();var g=document.selection.createRange();g.setEndPoint("EndToEnd",d);b.curPos=g.text.length;d.select()}catch(e){delete e}}else{b.curPos=a.selectionStart}var h=b.curPos;for(var i=0;i<c.length;i++){if(c.charAt(i)===separator){if(i>=h&&tag){endPos=i;tag=false}}}if(tag===true){tag=false;endPos=c.length}for(var j=endPos;j>-1;j--){if(c.charAt(j)===separator){if(j<h&&!tag){startPos=j+1;tag=true}}}return{currentWord:c.substring(startPos,endPos),startPos:startPos,endPos:endPos}},_getMatchData:function(a,b,c){var d=b.split($.completed._defaults.separator);var e=[];for(var i=0;i<a.length;i++){if(typeof a[i]==="number"){a[i]=a[i].toString()}if(a[i].toLowerCase().indexOf(c.toLowerCase())>-1){var f=true;for(var k=0;k<d.length;k++){if(a[i]===d[k].toString()&&a[i].toLowerCase()!==c.toLowerCase()){f=false}}if(f){e.push(a[i])}}}return e},_mousemoveSelectPanel:function(a,i,b){$(a).parent().find("a").removeClass("selected");a.className='selected';var c=$.completed._getInst(document.getElementById(b));c.settings.tipNum=i},_buildSelectedPanel:function(e,f,g,h){var j=$("#"+e+"SelectedPanel");if(f.length===0){j.html("").hide();return}if(g.tipNum>=f.length){g.tipNum=0}var k="";for(var i=0;i<f.length;i++){var l="",highlightHTML=f[i].replace(h,"<b>"+h+"</b>");if(g.tipNum===i){l="class='selected'"}k+="<a href='javascript:void(0);' onmousemove=\"$.completed._mousemoveSelectPanel(this, "+i+", '"+e+"');\" "+l+">"+highlightHTML+"</a>"}j.html(k).show();var m=$("#"+e+"SelectedPanel a.selected");if(m.position().top+j.scrollTop()>50-m.height()){j.scrollTop(m.position().top+j.scrollTop()+m.height()-50)}if(m.position().top<0){j.scrollTop(j.scrollTop-m.height())}$("#"+e+"SelectedPanel a").click(function(){var a=document.getElementById(e);var b=$.completed._getCurrentWord(document.getElementById(e),g);var c=$.completed._getMatchData(g.data,a.value,b.currentWord);var d=a.value;a.value=d.substring(0,b.startPos)+c[g.tipNum]+d.substring(b.endPos,d.length);g.tipNum=0;$(a).focus()})},_buildCheckboxPanel:function(c,d){var e="",$input=$("#"+c);for(var i=0;i<d.length;i++){e+="<span>"+d[i]+"</span>"}$("#"+c+"CheckboxPanel").html(e+"<div class='clear'></div>");$("#"+c+"CheckboxPanel"+" span").click(function(){var a=$input.val(),currentVal=this.innerHTML;if(this.className==="selected"){this.className="";var b=a.substr(a.indexOf(currentVal)+currentVal.length,1);if(currentVal===a||b!==","){$input.val(a.replace(currentVal,""))}else{$input.val(a.replace(currentVal+",",""))}}else{this.className="selected";if(a.replace(/\s/g,"")===""||a.substr(a.length-1,1)===","){$input.val(a+currentVal)}else{$input.val(a+","+currentVal)}}});this._matchChecked(c);$input.blur(function(){$.completed._matchChecked(c)})},_matchChecked:function(a){var b=$("#"+a).val().split(",");$("#"+a+"CheckboxPanel span").removeClass().each(function(){for(var i=0;i<b.length;i++){if(this.innerHTML===b[i]){this.className="selected"}}})},_getDefaults:function(a,b,c){if(c==="styleClass"){if(b.theme==="default"||b.theme===undefined){return a.styleClass}b.styleClass={};for(var d in a[c]){b.styleClass[d]=b.theme+"-"+a.styleClass[d]}}else if(c==="height"||c==="width"){if(b[c]===null||b[c]===undefined){return"auto"}else{return b[c]+"px"}}else{if(b[c]===null||b[c]===undefined){return a[c]}}return b[c]}});$.fn.completed=function(a){var b=Array.prototype.slice.call(arguments);return this.each(function(){typeof a=='string'?$.completed['_'+a+'Completed'].apply($.completed,[this].concat(b)):$.completed._attach(this,a)})};$.completed=new l();window['DP_jQuery_'+j]=$})(jQuery);
(function($){$.fn.extend({tip:{version:"0.0.0.3",author:"lly219@gmail.com"}});var f=new Date().getTime();var g='tip';var h=function(){this._defaults={"styleClass":{"panel":"tip-panel"}},this._settingsDataFormat={}};$.extend(h.prototype,{_attach:function(a,b){if(!a.id){this.uuid++;a.id='dp'+this.uuid}var c=this._newInst($(a));c.settings=$.extend({},b||{});$.data(a,g,c);this._init(a)},_newInst:function(a){var b=a[0].id.replace(/([^A-Za-z0-9_])/g,'\\\\$1');return{id:b}},_getInst:function(a){try{return $.data(a,g)}catch(err){throw'Missing instance data for this tip.';}},_destroyTip:function(a){$.removeData(a,g);$("#"+a.id+"Panel").remove()},_init:function(a){var b=this._getInst(a);var c=b.id,settings=b.settings;var d='',styleClass=settings.className?settings.className:this._getDefaults($.tip._defaults,settings,"styleClass").panel;d="<div id='"+c+"Panel' class='"+styleClass+"'>"+settings.content+"</div>";$(settings.appendId?"#"+settings.appendId:"body").append(d);$(a).hover(function(){$.tip._parsePosition(settings,a);$("#"+c+"Panel").fadeIn("normal")},function(){$("#"+c+"Panel").fadeOut("normal")})},_optionTip:function(a,b,c){var d=$.tip._getInst(a[0]);var e=d.settings;if(c){e[b]=c;$("#"+a[0].id+"Panel").html(c)}return e[b]},_parsePosition:function(a,b){var c="",$targetPanel=$("#"+b.id+"Panel");if(a.left===undefined&&a.right===undefined&&a.bottom===undefined&&a.top===undefined&&a.position===undefined){a.position="bottom"}if(a.position){var d=$(b);switch(a.position){case"top":c="left: "+parseInt(d.position().left)+"px; top: "+parseInt(d.position().top-$targetPanel.height()-6-parseInt(d.css("padding-top"))-parseInt($targetPanel.css("padding-top")))+"px;";break;case"bottom":c="left: "+parseInt(d.position().left)+"px; top: "+parseInt(d.position().top+d.height())+"px;";break;default:alert("Has no type!");break}$targetPanel.attr("style",c);return}if(a.left!==undefined){c+="left:"+a.left+"px;"}if(a.top!==undefined){c+="top:"+a.top+"px;"}if(a.bottom!==undefined){c+="bottom:"+a.bottom+"px;"}if(a.right!==undefined){c+="right:"+a.right+"px;"}$targetPanel.attr("style",c)},_getDefaults:function(a,b,c){if(c==="styleClass"){if(b.theme==="default"||b.theme===undefined){return a.styleClass}b.styleClass={};for(var d in a[c]){b.styleClass[d]=b.theme+"-"+a.styleClass[d]}}else if(c==="height"||c==="width"){if(b[c]===null||b[c]===undefined){return"auto"}else{return b[c]+"px"}}else{if(b[c]===null||b[c]===undefined){return a[c]}}return b[c]}});$.fn.tip=function(a){var b=Array.prototype.slice.call(arguments);if(a==="option"){b.shift();return $.tip['_'+a+'Tip'].apply($.tip,[this].concat(b))}return this.each(function(){typeof a=='string'?$.tip['_'+a+'Tip'].apply($.tip,[this].concat(b)):$.tip._attach(this,a)})};$.tip=new h();window['DP_jQuery_'+f]=$})(jQuery);
=======
=======
>>>>>>> origin/0.4.6
/*
* Copyright (C) 2010,2011, Liyuan Li
*
......@@ -42,5 +45,8 @@
(function($){$.fn.extend({dialog:{version:"0.0.1.7",author:"lly219@gmail.com"}});var dpuuid=new Date().getTime();var PROP_NAME='dialog';var Dialog=function(){this._defaults={"styleClass":{"background":"dialog-background","panel":"dialog-panel","main":"dialog-main","footer":"dialog-footer","headerMiddle":"dialog-header-middle","headerBg":"dialog-header-bg","closeIcon":"dialog-close-icon","closeIconHover":"dialog-close-icon-hover","title":"dialog-title"}}};$.extend(Dialog.prototype,{_attach:function(target,settings){if(!target.id){this.uuid++;target.id='dp'+this.uuid}var inst=this._newInst($(target));inst.settings=$.extend({},settings||{});$.data(target,PROP_NAME,inst);this._init(target)},_newInst:function(target){var id=target[0].id.replace(/([^A-Za-z0-9_])/g,'\\\\$1');return{id:id}},_getInst:function(target){try{return $.data(target,PROP_NAME)}catch(err){throw'Missing instance data for this dialog';}},_destroyDialog:function(target){var inst=$.dialog._getInst(target);var id=inst.id;$.removeData(target,PROP_NAME);$(target).prependTo("#"+id+"Wrap").unwrap();$(target).removeAttr("style");var styleClass=this._getDefaults($.dialog._defaults,inst.settings,"styleClass");$("."+styleClass.background).remove();$("#"+id+"Dialog").remove()},_init:function(target){var inst=this._getInst(target);var id=inst.id,settings=inst.settings;var windowH=$(window).height(),windowW=$(window).width();var styleClass=this._getDefaults($.dialog._defaults,settings,"styleClass"),dialogH=settings.height?settings.height:parseInt(windowH*0.6),dialogW=settings.width?settings.width:parseInt(windowW*0.6);settings.title=settings.title?settings.title:"";settings.okText=settings.okText?settings.okText:"Ok";settings.cancelText=settings.cancelText?settings.cancelText:"Cancel";var footerHTML="",headerHTML="<div class='"+styleClass.headerBg+"'><div class='"+styleClass.title+"'>"+settings.title+"</div><a href='javascript:void(0);' class='"+styleClass.closeIcon+"'></a></div>";if(!settings.hideFooter){footerHTML="<a href='javascript:void(0);'>"+settings.okText+"</a><a href='javascript:void(0);'>"+settings.cancelText+"</a>"}var dialogHTML="<div id='"+id+"Dialog' class='"+styleClass.panel+"' style='width: "+(dialogW+26)+"px;' onselectstart='return false;'>"+headerHTML+"<div class='"+styleClass.main+"'><div style='overflow: auto; height: "+dialogH+"px;'></div><div class='"+styleClass.footer+"'>"+footerHTML+"</div></div>";var bgHTML="";if(settings.modal&&$("."+styleClass.background).length===0){var bgHeight=windowH<document.documentElement.scrollHeight?document.documentElement.scrollHeight:windowH;bgHTML="<div style='height:"+bgHeight+"px;' class='"+styleClass.background+"'></div>"}$("#"+id).wrap("<div id='"+id+"Wrap'></div>");var cloneObj=$(target).clone(true);$(target).remove();$('body').append(bgHTML+dialogHTML);$($("#"+id+"Dialog ."+styleClass.main+" div").get(0)).append(cloneObj);$(cloneObj).show();var top="",left="",$dialog=$("#"+id+"Dialog");if(settings.position){top=settings.position.top;left=settings.position.left}else{top=parseInt((windowH-dialogH)/2);left=parseInt((windowW-dialogW)/2)}$dialog.css({"top":top+"px","left":left+"px"});$("#"+id+"Dialog ."+styleClass.closeIcon).bind("click",function(){$.dialog._close(id,settings)});var $buttons=$("#"+id+"Dialog ."+styleClass.footer+" a");$($buttons.get(1)).bind("click",function(){$.dialog._close(id,settings)});$($buttons.get(0)).bind("click",function(){if(settings.ok===undefined||settings.ok()){$.dialog._close(id,settings)}});this._bindMove(id,styleClass.headerBg,dialogH,dialogW);$(window).keyup(function(event){if(event.keyCode===27){$.dialog._close(id,settings)}})},_bindMove:function(id,className){$("#"+id+"Dialog ."+className).mousedown(function(event){var _document=document;if(!event){event=window.event}var dialog=document.getElementById(id+"Dialog");var x=event.clientX-parseInt(dialog.style.left),y=event.clientY-parseInt(dialog.style.top);_document.ondragstart="return false;";_document.onselectstart="return false;";_document.onselect="document.selection.empty();";if(this.setCapture){this.setCapture()}else if(window.captureEvents){window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP)}_document.onmousemove=function(event){if(!event){event=window.event}var positionX=event.clientX-x,positionY=event.clientY-y;if(positionX<0){positionX=0}if(positionX>$(window).width()-$(dialog).width()){positionX=$(window).width()-$(dialog).width()}if(positionY<0){positionY=0}if(positionY>$(window).height()-$(dialog).height()){positionY=$(window).height()-$(dialog).height()}dialog.style.left=positionX+"px";dialog.style.top=positionY+"px"};_document.onmouseup=function(){if(this.releaseCapture){this.releaseCapture()}else if(window.captureEvents){window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP)}_document.onmousemove=null;_document.onmouseup=null;_document.ondragstart=null;_document.onselectstart=null;_document.onselect=null}})},_close:function(id,settings){if($("#"+id+"Dialog").css("display")==="none"){return}if(settings.close===undefined||settings.close()){$("#"+id+"Dialog").hide();if(settings.modal){var styleClass=this._getDefaults($.dialog._defaults,settings,"styleClass");$("."+styleClass.background).hide()}}},_closeDialog:function(target){var inst=this._getInst(target);var id=inst.id,settings=inst.settings;$.dialog._close(id,settings)},_openDialog:function(target){var inst=this._getInst(target);var id=inst.id,settings=inst.settings;$("#"+id+"Dialog").show();if(settings.modal){var styleClass=this._getDefaults($.dialog._defaults,settings,"styleClass");$("."+styleClass.background).show()}},_updateDialog:function(target,data){var inst=this._getInst(target);var id=inst.id,settings=inst.settings;var styleClass=this._getDefaults($.dialog._defaults,settings,"styleClass");$.extend(settings,data);var $dialog=$("#"+id+"Dialog");if(data.position){$dialog.css({"top":data.position.top,"left":data.position.left})}if(data.width){$dialog.width(data.width+26);$dialog.find("."+styleClass.main+" div")[0].style.width=data.width+"px";$dialog.find("."+styleClass.headerBg).width(data.width+18)}if(data.height){$dialog.find("."+styleClass.main+" div")[0].style.height=data.height+"px"}if(data.title){$dialog.find("."+styleClass.title).html(data.title)}if(data.modal!==undefined){if(data.modal){$("."+styleClass.background).show()}else{$("."+styleClass.background).hide()}}if(data.hideFooter!==undefined){if(data.hideFooter){$dialog.find("."+styleClass.footer).hide()}else{$dialog.find("."+styleClass.footer).show()}}},_getDefaults:function(defaults,settings,key){if(key==="styleClass"){if(settings.theme==="default"||settings.theme===undefined){return defaults.styleClass}settings.styleClass={};for(var styleName in defaults[key]){settings.styleClass[styleName]=settings.theme+"-"+defaults.styleClass[styleName]}}else if(key==="height"||key==="width"){if(settings[key]===null||settings[key]===undefined){return"auto"}else{return settings[key]+"px"}}else{if(settings[key]===null||settings[key]===undefined){return defaults[key]}}return settings[key]}});$.fn.dialog=function(options){var otherArgs=Array.prototype.slice.call(arguments);if(typeof options==='string'){otherArgs.shift();return $.dialog['_'+options+'Dialog'].apply($.dialog,[this[0]].concat(otherArgs))}return this.each(function(){$.dialog._attach(this,options)})};$.dialog=new Dialog();window['DP_jQuery_'+dpuuid]=$})(jQuery);
(function($){var j=new Date().getTime();var k='completed';var l=function(){this._defaults={"styleClass":{"panelClass":"completed-panel","inputClass":"completed-input","ckClass":"completed-ck"},"separator":","},this._settingsDataFormat={}};$.extend(l.prototype,{_attach:function(a,b){if(!a.id){this.uuid++;a.id='dp'+this.uuid}var c=this._newInst($(a));c.settings=$.extend({"buttonText":"\u9009\u62e9"},b||{});$.data(a,k,c);this._init(a)},_newInst:function(a){var b=a[0].id.replace(/([^A-Za-z0-9_])/g,'\\\\$1');return{"id":b}},_getInst:function(a){try{return $.data(a,k)}catch(err){throw'Missing instance data for this completed';}},_destroyCompleted:function(){},_init:function(b){var c=this._getInst(b);var d=c.id,settings=c.settings;this._buildHTML(d,settings);$(document).click(function(a){if(a.target.id!==d){$("#"+d+"SelectedPanel").hide()}});this._buildCheckboxPanel(d,settings.data)},_buildHTML:function(b,c){var d=c.height+"px",classStyle=this._getDefaults($.completed._defaults,c,"styleClass");var e=$("#"+b);var f="<button onclick=\"$('#"+b+"CheckboxPanel').toggle()\">"+c.buttonText+"</button><div id='"+b+"SelectedPanel' class='"+classStyle.panelClass+"' style='height:"+d+";'></div><div class='none "+classStyle.ckClass+"' id='"+b+"CheckboxPanel'><div>";c.data.sort();e.after(f).bind("keyup",{settings:c},this._keyupAction).bind("keydown",function(a){c.chinese=a.keyCode}).addClass(classStyle.inputClass).width(e.width()-78);var g=$("#"+b+"SelectedPanel");c.tipNum=0;g.width(e.width()+2)},_keyupAction:function(a){var b=a.data.settings,currentWordObj=$.completed._getCurrentWord(this,b);if(currentWordObj.currentWord===""||a.keyCode===27||a.keyCode===16||a.keyCode===16){$("#"+this.id+"SelectedPanel").hide();b.tipNum=0;return}var c=$.completed._getMatchData(b.data,this.value,currentWordObj.currentWord);if(a.keyCode===38){if(b.tipNum>0){b.tipNum--}else{b.tipNum=c.length-1}}if(a.keyCode===40){if(b.tipNum<c.length-1){b.tipNum++}else{b.tipNum=0}}$.completed._buildSelectedPanel(this.id,c,b,currentWordObj.currentWord);if(a.keyCode===13&&c[b.tipNum]&&b.chinese!==229){var d=this.value;this.value=d.substring(0,currentWordObj.startPos)+c[b.tipNum]+d.substring(currentWordObj.endPos,d.length);$("#"+this.id+"SelectedPanel").hide();b.chinese=undefined}if(a.keyCode!==38&&a.keyCode!==40){b.tipNum=0}},_getCurrentWord:function(a,b){var c=$(a).val(),tag=true,endPos=0,startPos=0,separator=$.completed._defaults.separator;if(c===""){return{currentWord:"",startPos:startPos,endPos:endPos}}if(document.selection){try{var d=document.selection.createRange();var f=a.createTextRange();f.collapse(true);f.select();var g=document.selection.createRange();g.setEndPoint("EndToEnd",d);b.curPos=g.text.length;d.select()}catch(e){delete e}}else{b.curPos=a.selectionStart}var h=b.curPos;for(var i=0;i<c.length;i++){if(c.charAt(i)===separator){if(i>=h&&tag){endPos=i;tag=false}}}if(tag===true){tag=false;endPos=c.length}for(var j=endPos;j>-1;j--){if(c.charAt(j)===separator){if(j<h&&!tag){startPos=j+1;tag=true}}}return{currentWord:c.substring(startPos,endPos),startPos:startPos,endPos:endPos}},_getMatchData:function(a,b,c){var d=b.split($.completed._defaults.separator);var e=[];for(var i=0;i<a.length;i++){if(typeof a[i]==="number"){a[i]=a[i].toString()}if(a[i].toLowerCase().indexOf(c.toLowerCase())>-1){var f=true;for(var k=0;k<d.length;k++){if(a[i]===d[k].toString()&&a[i].toLowerCase()!==c.toLowerCase()){f=false}}if(f){e.push(a[i])}}}return e},_mousemoveSelectPanel:function(a,i,b){$(a).parent().find("a").removeClass("selected");a.className='selected';var c=$.completed._getInst(document.getElementById(b));c.settings.tipNum=i},_buildSelectedPanel:function(e,f,g,h){var j=$("#"+e+"SelectedPanel");if(f.length===0){j.html("").hide();return}if(g.tipNum>=f.length){g.tipNum=0}var k="";for(var i=0;i<f.length;i++){var l="",highlightHTML=f[i].replace(h,"<b>"+h+"</b>");if(g.tipNum===i){l="class='selected'"}k+="<a href='javascript:void(0);' onmousemove=\"$.completed._mousemoveSelectPanel(this, "+i+", '"+e+"');\" "+l+">"+highlightHTML+"</a>"}j.html(k).show();var m=$("#"+e+"SelectedPanel a.selected");if(m.position().top+j.scrollTop()>50-m.height()){j.scrollTop(m.position().top+j.scrollTop()+m.height()-50)}if(m.position().top<0){j.scrollTop(j.scrollTop-m.height())}$("#"+e+"SelectedPanel a").click(function(){var a=document.getElementById(e);var b=$.completed._getCurrentWord(document.getElementById(e),g);var c=$.completed._getMatchData(g.data,a.value,b.currentWord);var d=a.value;a.value=d.substring(0,b.startPos)+c[g.tipNum]+d.substring(b.endPos,d.length);g.tipNum=0;$(a).focus()})},_buildCheckboxPanel:function(c,d){var e="",$input=$("#"+c);for(var i=0;i<d.length;i++){e+="<span>"+d[i]+"</span>"}$("#"+c+"CheckboxPanel").html(e+"<div class='clear'></div>");$("#"+c+"CheckboxPanel"+" span").click(function(){var a=$input.val(),currentVal=this.innerHTML;if(this.className==="selected"){this.className="";var b=a.substr(a.indexOf(currentVal)+currentVal.length,1);if(currentVal===a||b!==","){$input.val(a.replace(currentVal,""))}else{$input.val(a.replace(currentVal+",",""))}}else{this.className="selected";if(a.replace(/\s/g,"")===""||a.substr(a.length-1,1)===","){$input.val(a+currentVal)}else{$input.val(a+","+currentVal)}}});this._matchChecked(c);$input.blur(function(){$.completed._matchChecked(c)})},_matchChecked:function(a){var b=$("#"+a).val().split(",");$("#"+a+"CheckboxPanel span").removeClass().each(function(){for(var i=0;i<b.length;i++){if(this.innerHTML===b[i]){this.className="selected"}}})},_getDefaults:function(a,b,c){if(c==="styleClass"){if(b.theme==="default"||b.theme===undefined){return a.styleClass}b.styleClass={};for(var d in a[c]){b.styleClass[d]=b.theme+"-"+a.styleClass[d]}}else if(c==="height"||c==="width"){if(b[c]===null||b[c]===undefined){return"auto"}else{return b[c]+"px"}}else{if(b[c]===null||b[c]===undefined){return a[c]}}return b[c]}});$.fn.completed=function(a){var b=Array.prototype.slice.call(arguments);return this.each(function(){typeof a=='string'?$.completed['_'+a+'Completed'].apply($.completed,[this].concat(b)):$.completed._attach(this,a)})};$.completed=new l();window['DP_jQuery_'+j]=$})(jQuery);
(function($){$.fn.extend({tip:{version:"0.0.0.3",author:"lly219@gmail.com"}});var f=new Date().getTime();var g='tip';var h=function(){this._defaults={"styleClass":{"panel":"tip-panel"}},this._settingsDataFormat={}};$.extend(h.prototype,{_attach:function(a,b){if(!a.id){this.uuid++;a.id='dp'+this.uuid}var c=this._newInst($(a));c.settings=$.extend({},b||{});$.data(a,g,c);this._init(a)},_newInst:function(a){var b=a[0].id.replace(/([^A-Za-z0-9_])/g,'\\\\$1');return{id:b}},_getInst:function(a){try{return $.data(a,g)}catch(err){throw'Missing instance data for this tip.';}},_destroyTip:function(a){$.removeData(a,g);$("#"+a.id+"Panel").remove()},_init:function(a){var b=this._getInst(a);var c=b.id,settings=b.settings;var d='',styleClass=settings.className?settings.className:this._getDefaults($.tip._defaults,settings,"styleClass").panel;d="<div id='"+c+"Panel' class='"+styleClass+"'>"+settings.content+"</div>";$(settings.appendId?"#"+settings.appendId:"body").append(d);$(a).hover(function(){$.tip._parsePosition(settings,a);$("#"+c+"Panel").fadeIn("normal")},function(){$("#"+c+"Panel").fadeOut("normal")})},_optionTip:function(a,b,c){var d=$.tip._getInst(a[0]);var e=d.settings;if(c){e[b]=c;$("#"+a[0].id+"Panel").html(c)}return e[b]},_parsePosition:function(a,b){var c="",$targetPanel=$("#"+b.id+"Panel");if(a.left===undefined&&a.right===undefined&&a.bottom===undefined&&a.top===undefined&&a.position===undefined){a.position="bottom"}if(a.position){var d=$(b);switch(a.position){case"top":c="left: "+parseInt(d.position().left)+"px; top: "+parseInt(d.position().top-$targetPanel.height()-6-parseInt(d.css("padding-top"))-parseInt($targetPanel.css("padding-top")))+"px;";break;case"bottom":c="left: "+parseInt(d.position().left)+"px; top: "+parseInt(d.position().top+d.height())+"px;";break;default:alert("Has no type!");break}$targetPanel.attr("style",c);return}if(a.left!==undefined){c+="left:"+a.left+"px;"}if(a.top!==undefined){c+="top:"+a.top+"px;"}if(a.bottom!==undefined){c+="bottom:"+a.bottom+"px;"}if(a.right!==undefined){c+="right:"+a.right+"px;"}$targetPanel.attr("style",c)},_getDefaults:function(a,b,c){if(c==="styleClass"){if(b.theme==="default"||b.theme===undefined){return a.styleClass}b.styleClass={};for(var d in a[c]){b.styleClass[d]=b.theme+"-"+a.styleClass[d]}}else if(c==="height"||c==="width"){if(b[c]===null||b[c]===undefined){return"auto"}else{return b[c]+"px"}}else{if(b[c]===null||b[c]===undefined){return a[c]}}return b[c]}});$.fn.tip=function(a){var b=Array.prototype.slice.call(arguments);if(a==="option"){b.shift();return $.tip['_'+a+'Tip'].apply($.tip,[this].concat(b))}return this.each(function(){typeof a=='string'?$.tip['_'+a+'Tip'].apply($.tip,[this].concat(b)):$.tip._attach(this,a)})};$.tip=new h();window['DP_jQuery_'+f]=$})(jQuery);
<<<<<<< HEAD
>>>>>>> origin/0.4.6
=======
>>>>>>> origin/0.4.6
(function($){$.fn.extend({tabs:{version:"0.0.1.9",author:"lly219@gmail.com"}});var g=new Date().getTime();var h='tabs';var k=function(){};$.extend(k.prototype,{_attach:function(a,b){if(!a.id){this.uuid++;a.id='dp'+this.uuid}var c=this._newInst($(a));c.settings=$.extend({length:0},b||{});$.data(a,h,c);this._init(a)},_newInst:function(a){var b=a[0].id.replace(/([^A-Za-z0-9_])/g,'\\\\$1');return{id:b}},_getInst:function(a){try{return $.data(a,h)}catch(err){throw'Missing instance data for this tabs';}},_init:function(a){var b=this._getInst(a);var c=b.settings,id=b.id;var d=$(a).find("li");c.data=[];for(var i=0,j=0;i<d.length;i++){if(d[i].children[0].id){c.data[j]=d[i].children[0].id.replace(id+"_","");j++}}},_setCurrentTabs:function(a,b){var c=this._getInst(a);var d=c.settings,id=c.id;if($("#"+id+"_"+b+" a").hasClass("tab-current")){return}var e=d.data;for(var i=0;i<e.length;i++){var f=$("#"+id+"Panel_"+e[i]),$tab=$("#"+id+"_"+e[i]);if(b===e[i]){f.show();$tab.find("a").addClass("tab-current")}else{f.hide();$tab.find("a").removeClass("tab-current")}}},_addTabs:function(a,b){var c=this._getInst(a);var d=c.settings,id=c.id;d.data.push(b.id);var e="";if(b.hash){e="<a href='"+b.hash+"'>"+b.text+"</a>"}else{e="<span>"+b.text+"</span>"}$(b.target).before("<li><div id='"+id+"_"+b.id+"'>"+e+"</div></li>");$("#"+id+"Panel").append("<div id="+id+"Panel_"+b.id+" class='none'>"+b.content+"</div>")},_removeTabs:function(a,b){var c=this._getInst(a);var d=c.settings.data,id=c.id;for(var i=0;i<d.length;i++){if(d[i]===b){d.splice(i,1)}}$("#"+id+"_"+b).remove();$("#"+id+"Pabel_"+b).remove()}});$.fn.tabs=function(a){var b=Array.prototype.slice.call(arguments);if(typeof a==='string'){b.shift();return $.tabs['_'+a+'Tabs'].apply($.tabs,[this[0]].concat(b))}return this.each(function(){$.tabs._attach(this,a)})};$.tabs=new k();window['DP_jQuery_'+g]=$})(jQuery);
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment