Merge branch 'develop'
admin [init ok] lea++ blog platform [ok]
This commit is contained in:
app
controllers
AuthController.goBlogController.goLeaController.go
admin
AdminBaseController.goAdminBlogController.goAdminController.goAdminSettingController.goAdminUserController.goinit.go
init.godb
info
init.goservice
views
public
admin
css
js
admin.jsblack.cssblue.csschrome.cssidialog.cssopera.csss1.pngs2.pngsimple.csstwitter.cssexcanvas.jshtml5shiv.js
artDialog
.svn
all-wcpropsentries
artDialog.jsartDialog.source.jsjquery.artDialog.jslicense.txtprop-base
artDialog.js.svn-baseartDialog.source.js.svn-baseindex.html.svn-basejquery.artDialog.js.svn-basejquery.artDialog.source.js.svn-baselicense.txt.svn-base
text-base
skins
.svn
all-wcpropsentries
aero.cssprop-base
aero.css.svn-baseblack.css.svn-baseblue.css.svn-basechrome.css.svn-basedefault.css.svn-basegreen.css.svn-baseidialog.css.svn-baseopera.css.svn-basesimple.css.svn-basetwitter.css.svn-base
text-base
aero
.svn
aero_s.pngaero_s2.pngie6
.svn
all-wcpropsentries
aui_close.hover.pngaui_close.pngaui_e.pngaui_n.pngaui_ne.pngaui_nw.pngaui_s.pngaui_se.pngaui_sw.pngaui_title_icon.pngaui_w.pngprop-base
aui_close.hover.png.svn-baseaui_close.png.svn-baseaui_e.png.svn-baseaui_n.png.svn-baseaui_ne.png.svn-baseaui_nw.png.svn-baseaui_s.png.svn-baseaui_se.png.svn-baseaui_sw.png.svn-baseaui_title_icon.png.svn-baseaui_w.png.svn-base
text-base
black
.svn
bg.pngbg2.pngbg_css3.pngbg_css3_2.pngie6
blue
.svn
bg.pngbg2.pngbg_css3.pngbg_css3_2.pngie6
chrome
default.cssgreen.cssgreen
.svn
bg.pngbg2.pngbg_css3.pngbg_css3_2.pngcolor_bg.pngie6
icons
.svn
all-wcpropsentries
error.pngface-sad.pngface-smile.pngloading.gifquestion.pngsucceed.pngwarning.pngprop-base
error.png.svn-baseface-sad.png.svn-baseface-smile.png.svn-baseloading.gif.svn-basequestion.png.svn-basesucceed.png.svn-basewarning.png.svn-base
text-base
idialog
.svn
idialog_s.pngidialog_s2.pngie6
.svn
all-wcpropsentries
aui_close.hover.pngaui_close.pngaui_e.pngaui_n.pngaui_ne.pngaui_nw.pngaui_s.pngaui_se.pngaui_sw.pngaui_w.pngprop-base
aui_close.hover.png.svn-baseaui_close.png.svn-baseaui_e.png.svn-baseaui_n.png.svn-baseaui_ne.png.svn-baseaui_nw.png.svn-baseaui_s.png.svn-baseaui_se.png.svn-baseaui_sw.png.svn-baseaui_w.png.svn-base
text-base
opera
.svn
ie6
.svn
all-wcpropsentries
aui_close.hover.pngaui_close.pngaui_e.pngaui_n.pngaui_ne.pngaui_nw.pngaui_s.pngaui_se.pngaui_sw.pngaui_w.pngprop-base
aui_close.hover.png.svn-baseaui_close.png.svn-baseaui_e.png.svn-baseaui_n.png.svn-baseaui_ne.png.svn-baseaui_nw.png.svn-baseaui_s.png.svn-baseaui_se.png.svn-baseaui_sw.png.svn-baseaui_w.png.svn-base
text-base
jquery-validation-1.13.0
respond.min.jscss
images
js
tinymce
plugins
paste
@ -32,6 +32,7 @@ func (c Auth) DoLogin(email, pwd string) revel.Result {
|
||||
c.SetSession(userInfo)
|
||||
// 必须要redirect, 不然用户刷新会重复提交登录信息
|
||||
// return c.Redirect("/")
|
||||
configService.InitUserConfigs(userInfo.UserId.Hex())
|
||||
return c.RenderJson(info.Re{Ok: true})
|
||||
}
|
||||
// return c.RenderTemplate("login.html")
|
||||
|
@ -4,7 +4,7 @@ import (
|
||||
"github.com/revel/revel"
|
||||
// "encoding/json"
|
||||
"gopkg.in/mgo.v2/bson"
|
||||
// . "leanote/app/lea"
|
||||
// . "github.com/leanote/leanote/app/lea"
|
||||
"github.com/leanote/leanote/app/info"
|
||||
// "github.com/leanote/leanote/app/types"
|
||||
// "io/ioutil"
|
||||
@ -45,15 +45,14 @@ func (c Blog) SetNotebook2Blog(notebookId string, isBlog bool) revel.Result {
|
||||
//-----------------------------
|
||||
// 前台
|
||||
|
||||
// 默认是admin用户的博客
|
||||
// 列表
|
||||
// 这里还需要得到其它博客配置信息...
|
||||
// 配置信息可以放在users表中, 或添加一个user_options表(用户配置表)
|
||||
|
||||
// 进入某个用户的博客
|
||||
var blogPageSize = 5
|
||||
var searchBlogPageSize = 30
|
||||
func (c Blog) Index(userId string, notebookId string) revel.Result {
|
||||
// 用户id为空, 转至博客平台
|
||||
if userId == "" {
|
||||
userId = leanoteUserId
|
||||
userId = leanoteUserId;
|
||||
}
|
||||
|
||||
// userId可能是 username, email
|
||||
|
52
app/controllers/LeaController.go
Normal file
52
app/controllers/LeaController.go
Normal file
@ -0,0 +1,52 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"github.com/revel/revel"
|
||||
// "encoding/json"
|
||||
. "github.com/leanote/leanote/app/lea"
|
||||
// "github.com/leanote/leanote/app/types"
|
||||
// "io/ioutil"
|
||||
// "math"
|
||||
// "os"
|
||||
// "path"
|
||||
)
|
||||
|
||||
// lea++博客平台
|
||||
type Lea struct {
|
||||
BaseController
|
||||
}
|
||||
|
||||
// 进入某个用户的博客
|
||||
func (c Lea) Index(tag, keywords string) revel.Result {
|
||||
c.RenderArgs["nav"] = "recommend"
|
||||
return c.p(tag, keywords, true)
|
||||
}
|
||||
|
||||
func (c Lea) Latest(tag, keywords string) revel.Result {
|
||||
c.RenderArgs["nav"] = "latest"
|
||||
return c.p(tag, keywords, false);
|
||||
}
|
||||
|
||||
func (c Lea) p(tag, keywords string, recommend bool) revel.Result {
|
||||
var tags = []string{}
|
||||
if recommend {
|
||||
tags = configService.GetGlobalArrayConfig("recommendTags")
|
||||
} else {
|
||||
tags = configService.GetGlobalArrayConfig("newTags")
|
||||
}
|
||||
// 如果不在所在的tag就不能搜索
|
||||
if !InArray(tags, tag) {
|
||||
tag = ""
|
||||
}
|
||||
c.RenderArgs["tag"] = tag
|
||||
|
||||
page := c.GetPage()
|
||||
pageInfo, blogs := blogService.ListAllBlogs(tag, keywords, recommend, page, 10, "UpdatedTime", false)
|
||||
|
||||
c.RenderArgs["pageInfo"] = pageInfo
|
||||
c.RenderArgs["blogs"] = blogs
|
||||
c.RenderArgs["tags"] = tags
|
||||
c.RenderArgs["keywords"] = keywords
|
||||
|
||||
return c.RenderTemplate("lea/index.html");
|
||||
}
|
51
app/controllers/admin/AdminBaseController.go
Normal file
51
app/controllers/admin/AdminBaseController.go
Normal file
@ -0,0 +1,51 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
// "github.com/revel/revel"
|
||||
// "gopkg.in/mgo.v2/bson"
|
||||
// "encoding/json"
|
||||
. "github.com/leanote/leanote/app/lea"
|
||||
"github.com/leanote/leanote/app/controllers"
|
||||
// "io/ioutil"
|
||||
// "fmt"
|
||||
// "math"
|
||||
// "strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// 公用Controller, 其它Controller继承它
|
||||
type AdminBaseController struct {
|
||||
controllers.BaseController // 不能用*BaseController
|
||||
}
|
||||
|
||||
// 得到sorterField 和 isAsc
|
||||
// okSorter = ['email', 'username']
|
||||
func (c AdminBaseController) getSorter(sorterField string, isAsc bool, okSorter []string) (string, bool){
|
||||
sorter := ""
|
||||
c.Params.Bind(&sorter, "sorter")
|
||||
if sorter == "" {
|
||||
return sorterField, isAsc;
|
||||
}
|
||||
|
||||
// sorter形式 email-up, email-down
|
||||
s2 := strings.Split(sorter, "-")
|
||||
if len(s2) != 2 {
|
||||
return sorterField, isAsc;
|
||||
}
|
||||
|
||||
// 必须是可用的sorter
|
||||
if okSorter != nil && len(okSorter) > 0 {
|
||||
if !InArray(okSorter, s2[0]) {
|
||||
return sorterField, isAsc;
|
||||
}
|
||||
}
|
||||
|
||||
sorterField = strings.Title(s2[0])
|
||||
if s2[1] == "up" {
|
||||
isAsc = true
|
||||
} else {
|
||||
isAsc = false
|
||||
}
|
||||
c.RenderArgs["sorter"] = sorter
|
||||
return sorterField, isAsc;
|
||||
}
|
30
app/controllers/admin/AdminBlogController.go
Normal file
30
app/controllers/admin/AdminBlogController.go
Normal file
@ -0,0 +1,30 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"github.com/revel/revel"
|
||||
// . "github.com/leanote/leanote/app/lea"
|
||||
"github.com/leanote/leanote/app/info"
|
||||
)
|
||||
|
||||
// admin 首页
|
||||
|
||||
type AdminBlog struct {
|
||||
AdminBaseController
|
||||
}
|
||||
|
||||
// admin 主页
|
||||
func (c AdminBlog) Index(sorter, keywords string) revel.Result {
|
||||
pageNumber := c.GetPage()
|
||||
sorterField, isAsc := c.getSorter("CreatedTime", false, []string{"title", "userId", "isRecommed", "createdTime"});
|
||||
pageInfo, blogs := blogService.ListAllBlogs("", keywords, false, pageNumber, userPageSize, sorterField, isAsc);
|
||||
c.RenderArgs["pageInfo"] = pageInfo
|
||||
c.RenderArgs["blogs"] = blogs
|
||||
c.RenderArgs["keywords"] = keywords
|
||||
return c.RenderTemplate("admin/blog/list.html");
|
||||
}
|
||||
|
||||
func (c AdminBlog) SetRecommend(noteId string, recommend bool) revel.Result {
|
||||
re := info.NewRe()
|
||||
re.Ok = blogService.SetRecommend(noteId, recommend);
|
||||
return c.RenderJson(re)
|
||||
}
|
25
app/controllers/admin/AdminController.go
Normal file
25
app/controllers/admin/AdminController.go
Normal file
@ -0,0 +1,25 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"github.com/revel/revel"
|
||||
)
|
||||
|
||||
// admin 首页
|
||||
|
||||
type Admin struct {
|
||||
AdminBaseController
|
||||
}
|
||||
|
||||
// admin 主页
|
||||
func (c Admin) Index() revel.Result {
|
||||
c.SetUserInfo()
|
||||
|
||||
c.RenderArgs["title"] = "leanote"
|
||||
c.SetLocale()
|
||||
|
||||
return c.RenderTemplate("admin/index.html");
|
||||
}
|
||||
|
||||
func (c Admin) GetView(view string) revel.Result {
|
||||
return c.RenderTemplate("admin/" + view);
|
||||
}
|
62
app/controllers/admin/AdminSettingController.go
Normal file
62
app/controllers/admin/AdminSettingController.go
Normal file
@ -0,0 +1,62 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"github.com/revel/revel"
|
||||
// . "github.com/leanote/leanote/app/lea"
|
||||
"github.com/leanote/leanote/app/info"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// admin 首页
|
||||
|
||||
type AdminSetting struct {
|
||||
AdminBaseController
|
||||
}
|
||||
|
||||
// email配置
|
||||
func (c AdminSetting) Email() revel.Result {
|
||||
return nil
|
||||
}
|
||||
|
||||
// blog标签设置
|
||||
func (c AdminSetting) Blog() revel.Result {
|
||||
recommendTags := configService.GetGlobalArrayConfig("recommendTags")
|
||||
newTags := configService.GetGlobalArrayConfig("newTags")
|
||||
c.RenderArgs["recommendTags"] = strings.Join(recommendTags, ",")
|
||||
c.RenderArgs["newTags"] = strings.Join(newTags, ",")
|
||||
return c.RenderTemplate("admin/setting/blog.html");
|
||||
}
|
||||
func (c AdminSetting) DoBlogTag(recommendTags, newTags string) revel.Result {
|
||||
re := info.NewRe()
|
||||
|
||||
re.Ok = configService.UpdateUserArrayConfig(c.GetUserId(), "recommendTags", strings.Split(recommendTags, ","))
|
||||
re.Ok = configService.UpdateUserArrayConfig(c.GetUserId(), "newTags", strings.Split(newTags, ","))
|
||||
|
||||
return c.RenderJson(re)
|
||||
}
|
||||
|
||||
// demo
|
||||
// blog标签设置
|
||||
func (c AdminSetting) Demo() revel.Result {
|
||||
c.RenderArgs["demoUsername"] = configService.GetGlobalStringConfig("demoUsername")
|
||||
c.RenderArgs["demoPassword"] = configService.GetGlobalStringConfig("demoPassword")
|
||||
return c.RenderTemplate("admin/setting/demo.html");
|
||||
}
|
||||
func (c AdminSetting) DoDemo(demoUsername, demoPassword string) revel.Result {
|
||||
re := info.NewRe()
|
||||
|
||||
userInfo := authService.Login(demoUsername, demoPassword)
|
||||
if userInfo.UserId == "" {
|
||||
re.Msg = "The User is Not Exists";
|
||||
return c.RenderJson(re)
|
||||
}
|
||||
|
||||
re.Ok = configService.UpdateUserStringConfig(c.GetUserId(), "demoUserId", userInfo.UserId.Hex())
|
||||
re.Ok = configService.UpdateUserStringConfig(c.GetUserId(), "demoUsername", demoUsername)
|
||||
re.Ok = configService.UpdateUserStringConfig(c.GetUserId(), "demoPassword", demoPassword)
|
||||
|
||||
return c.RenderJson(re)
|
||||
}
|
||||
|
||||
|
||||
|
28
app/controllers/admin/AdminUserController.go
Normal file
28
app/controllers/admin/AdminUserController.go
Normal file
@ -0,0 +1,28 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"github.com/revel/revel"
|
||||
// . "github.com/leanote/leanote/app/lea"
|
||||
)
|
||||
|
||||
// admin 首页
|
||||
|
||||
type AdminUser struct {
|
||||
AdminBaseController
|
||||
}
|
||||
|
||||
// admin 主页
|
||||
var userPageSize = 10
|
||||
func (c AdminUser) Index(sorter, keywords string) revel.Result {
|
||||
pageNumber := c.GetPage()
|
||||
sorterField, isAsc := c.getSorter("CreatedTime", false, []string{"email", "username", "verified", "createdTime"});
|
||||
pageInfo, users := userService.ListUsers(pageNumber, userPageSize, sorterField, isAsc, keywords);
|
||||
c.RenderArgs["pageInfo"] = pageInfo
|
||||
c.RenderArgs["users"] = users
|
||||
c.RenderArgs["keywords"] = keywords
|
||||
return c.RenderTemplate("admin/user/list.html");
|
||||
}
|
||||
|
||||
func (c AdminUser) Add() revel.Result {
|
||||
return c.RenderTemplate("admin/user/add.html");
|
||||
}
|
127
app/controllers/admin/init.go
Normal file
127
app/controllers/admin/init.go
Normal file
@ -0,0 +1,127 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"github.com/leanote/leanote/app/service"
|
||||
"github.com/leanote/leanote/app/info"
|
||||
// . "github.com/leanote/leanote/app/lea"
|
||||
"github.com/revel/revel"
|
||||
// "strings"
|
||||
)
|
||||
|
||||
var userService *service.UserService
|
||||
var noteService *service.NoteService
|
||||
var trashService *service.TrashService
|
||||
var notebookService *service.NotebookService
|
||||
var noteContentHistoryService *service.NoteContentHistoryService
|
||||
var authService *service.AuthService
|
||||
var shareService *service.ShareService
|
||||
var blogService *service.BlogService
|
||||
var tagService *service.TagService
|
||||
var pwdService *service.PwdService
|
||||
var tokenService *service.TokenService
|
||||
var suggestionService *service.SuggestionService
|
||||
var albumService *service.AlbumService
|
||||
var noteImageService *service.NoteImageService
|
||||
var fileService *service.FileService
|
||||
var attachService *service.AttachService
|
||||
var configService *service.ConfigService
|
||||
|
||||
var adminUsername = "admin"
|
||||
// 拦截器
|
||||
// 不需要拦截的url
|
||||
// Index 除了Note之外都不需要
|
||||
var commonUrl = map[string]map[string]bool{"Index": map[string]bool{"Index": true,
|
||||
"Login": true,
|
||||
"DoLogin": true,
|
||||
"Logout": true,
|
||||
"Register": true,
|
||||
"DoRegister": true,
|
||||
"FindPasswword": true,
|
||||
"DoFindPassword": true,
|
||||
"FindPassword2": true,
|
||||
"FindPasswordUpdate": true,
|
||||
"Suggestion": true,
|
||||
},
|
||||
"Blog": map[string]bool{"Index": true,
|
||||
"View": true,
|
||||
"AboutMe": true,
|
||||
"SearchBlog": true,
|
||||
},
|
||||
// 用户的激活与修改邮箱都不需要登录, 通过链接地址
|
||||
"User": map[string]bool{"UpdateEmail": true,
|
||||
"ActiveEmail":true,
|
||||
},
|
||||
"Oauth": map[string]bool{"GithubCallback": true},
|
||||
"File": map[string]bool{"OutputImage": true, "OutputFile": true},
|
||||
"Attach": map[string]bool{"Download": true, "DownloadAll": true},
|
||||
}
|
||||
func needValidate(controller, method string) bool {
|
||||
// 在里面
|
||||
if v, ok := commonUrl[controller]; ok {
|
||||
// 在commonUrl里
|
||||
if _, ok2 := v[method]; ok2 {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
} else {
|
||||
// controller不在这里的, 肯定要验证
|
||||
return true;
|
||||
}
|
||||
}
|
||||
func AuthInterceptor(c *revel.Controller) revel.Result {
|
||||
// 全部变成首字大写
|
||||
/*
|
||||
var controller = strings.Title(c.Name)
|
||||
var method = strings.Title(c.MethodName)
|
||||
// 是否需要验证?
|
||||
if !needValidate(controller, method) {
|
||||
return nil
|
||||
}
|
||||
*/
|
||||
|
||||
// 验证是否已登录
|
||||
// 必须是管理员
|
||||
if username, ok := c.Session["Username"]; ok && username == adminUsername {
|
||||
return nil // 已登录
|
||||
}
|
||||
|
||||
// 没有登录, 判断是否是ajax操作
|
||||
if c.Request.Header.Get("X-Requested-With") == "XMLHttpRequest" {
|
||||
re := info.NewRe()
|
||||
re.Msg = "NOTLOGIN"
|
||||
return c.RenderJson(re)
|
||||
}
|
||||
|
||||
return c.Redirect("/login")
|
||||
}
|
||||
|
||||
// 最外层init.go调用
|
||||
// 获取service, 单例
|
||||
func InitService() {
|
||||
notebookService = service.NotebookS
|
||||
noteService = service.NoteS
|
||||
noteContentHistoryService = service.NoteContentHistoryS
|
||||
trashService = service.TrashS
|
||||
shareService = service.ShareS
|
||||
userService = service.UserS
|
||||
tagService = service.TagS
|
||||
blogService = service.BlogS
|
||||
tokenService = service.TokenS
|
||||
noteImageService = service.NoteImageS
|
||||
fileService = service.FileS
|
||||
albumService= service.AlbumS
|
||||
attachService = service.AttachS
|
||||
pwdService = service.PwdS
|
||||
suggestionService = service.SuggestionS
|
||||
authService = service.AuthS
|
||||
configService = service.ConfigS
|
||||
}
|
||||
|
||||
func init() {
|
||||
revel.InterceptFunc(AuthInterceptor, revel.BEFORE, &Admin{})
|
||||
revel.InterceptFunc(AuthInterceptor, revel.BEFORE, &AdminSetting{})
|
||||
revel.InterceptFunc(AuthInterceptor, revel.BEFORE, &AdminUser{})
|
||||
revel.OnAppStart(func() {
|
||||
adminUsername, _ = revel.Config.String("adminUsername")
|
||||
})
|
||||
}
|
@ -24,6 +24,7 @@ var albumService *service.AlbumService
|
||||
var noteImageService *service.NoteImageService
|
||||
var fileService *service.FileService
|
||||
var attachService *service.AttachService
|
||||
var configService *service.ConfigService
|
||||
|
||||
var pageSize = 1000
|
||||
var defaultSortField = "UpdatedTime"
|
||||
@ -116,6 +117,7 @@ func InitService() {
|
||||
pwdService = service.PwdS
|
||||
suggestionService = service.SuggestionS
|
||||
authService = service.AuthS
|
||||
configService = service.ConfigS
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
@ -39,6 +39,7 @@ var Files *mgo.Collection
|
||||
var Attachs *mgo.Collection
|
||||
|
||||
var NoteImages *mgo.Collection
|
||||
var Configs *mgo.Collection
|
||||
|
||||
// 初始化时连接数据库
|
||||
func Init() {
|
||||
@ -110,6 +111,8 @@ func Init() {
|
||||
Attachs = Session.DB(dbname).C("attachs")
|
||||
|
||||
NoteImages = Session.DB(dbname).C("note_images")
|
||||
|
||||
Configs = Session.DB(dbname).C("configs")
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
@ -10,6 +10,7 @@ type BlogItem struct {
|
||||
Note
|
||||
Content string // 可能是content的一部分, 截取. 点击more后就是整个信息了
|
||||
HasMore bool // 是否是否还有
|
||||
User User // 用户信息
|
||||
}
|
||||
|
||||
type UserBlogBase struct {
|
||||
|
15
app/info/Configinfo.go
Normal file
15
app/info/Configinfo.go
Normal file
@ -0,0 +1,15 @@
|
||||
package info
|
||||
|
||||
import (
|
||||
"gopkg.in/mgo.v2/bson"
|
||||
"time"
|
||||
)
|
||||
|
||||
// 配置
|
||||
// 用户配置高于全局配置
|
||||
type Config struct {
|
||||
UserId bson.ObjectId `bson:"_id"`
|
||||
StringConfigs map[string]string `StringConfigs` // key => value
|
||||
ArrayConfigs map[string][]string `ArrayConfigs` // key => []value
|
||||
UpdatedTime time.Time `UpdatedTime`
|
||||
}
|
@ -17,9 +17,11 @@ type Note struct {
|
||||
|
||||
ImgSrc string `ImgSrc` // 图片, 第一张缩略图地址
|
||||
Tags []string `Tags,omitempty`
|
||||
|
||||
IsTrash bool `IsTrash` // 是否是trash, 默认是false
|
||||
|
||||
IsBlog bool `IsBlog,omitempty` // 是否设置成了blog 2013/12/29 新加
|
||||
IsRecommend bool `IsRecommend,omitempty` // 是否为推荐博客 2014/9/24新加
|
||||
IsTop bool `IsTop,omitempty` // blog是否置顶
|
||||
|
||||
IsMarkdown bool `IsMarkdown` // 是否是markdown笔记, 默认是false
|
||||
|
@ -20,6 +20,7 @@ type User struct {
|
||||
Pwd string `bson:"Pwd" json:"-"`
|
||||
CreatedTime time.Time `CreatedTime`
|
||||
|
||||
Logo string `Logo` // 9-24
|
||||
// 主题
|
||||
Theme string `Theme`
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package info
|
||||
|
||||
import (
|
||||
"math"
|
||||
)
|
||||
|
||||
|
||||
@ -11,3 +12,11 @@ type Page struct {
|
||||
Count int // 总记录数
|
||||
List interface{}
|
||||
}
|
||||
|
||||
func NewPage(page, perPageSize, count int, list interface{}) Page {
|
||||
totalPage := 0
|
||||
if count > 0 {
|
||||
totalPage = int(math.Ceil(float64(count) / float64(perPageSize)))
|
||||
}
|
||||
return Page{page, totalPage, count, list}
|
||||
}
|
127
app/init.go
127
app/init.go
@ -5,11 +5,13 @@ import (
|
||||
. "github.com/leanote/leanote/app/lea"
|
||||
"github.com/leanote/leanote/app/service"
|
||||
"github.com/leanote/leanote/app/controllers"
|
||||
"github.com/leanote/leanote/app/controllers/admin"
|
||||
_ "github.com/leanote/leanote/app/lea/binder"
|
||||
"reflect"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"math"
|
||||
"strings"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
@ -38,9 +40,13 @@ func init() {
|
||||
revel.TemplateFuncs["raw"] = func(str string) template.HTML {
|
||||
return template.HTML(str)
|
||||
}
|
||||
revel.TemplateFuncs["add"] = func(i int) template.HTML {
|
||||
revel.TemplateFuncs["add"] = func(i int) string {
|
||||
i = i + 1;
|
||||
return template.HTML(fmt.Sprintf("%v", i))
|
||||
return fmt.Sprintf("%v", i)
|
||||
}
|
||||
revel.TemplateFuncs["sub"] = func(i int) int {
|
||||
i = i - 1;
|
||||
return i
|
||||
}
|
||||
revel.TemplateFuncs["concat"] = func(s1, s2 string) template.HTML {
|
||||
return template.HTML(s1 + s2)
|
||||
@ -78,6 +84,76 @@ func init() {
|
||||
return template.HTML(tagStr)
|
||||
}
|
||||
|
||||
revel.TemplateFuncs["li"] = func(a string) string {
|
||||
Log(a)
|
||||
Log("life==")
|
||||
return ""
|
||||
}
|
||||
// str连接
|
||||
revel.TemplateFuncs["urlConcat"] = func(url string, v... interface{}) string {
|
||||
html := ""
|
||||
for i := 0; i < len(v); i = i + 2 {
|
||||
item := v[i]
|
||||
if i+1 == len(v) {
|
||||
break;
|
||||
}
|
||||
value := v[i+1]
|
||||
if item != nil && value != nil {
|
||||
keyStr, _ := item.(string)
|
||||
valueStr, err := value.(string)
|
||||
if !err {
|
||||
valueInt, _ := value.(int)
|
||||
valueStr = strconv.Itoa(valueInt)
|
||||
}
|
||||
if keyStr != "" && valueStr != "" {
|
||||
s := keyStr + "=" + valueStr
|
||||
if html != "" {
|
||||
html += "&" + s
|
||||
} else {
|
||||
html += s
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if html != "" {
|
||||
if strings.Index(url, "?") >= 0 {
|
||||
return url + "&" + html
|
||||
} else {
|
||||
return url + "?" + html
|
||||
}
|
||||
}
|
||||
return url
|
||||
}
|
||||
|
||||
revel.TemplateFuncs["urlCond"] = func(url string, sorterI, keyords interface{}) template.HTML {
|
||||
return ""
|
||||
}
|
||||
|
||||
// 为后台管理sorter th使用
|
||||
// 必须要返回HTMLAttr, 返回html, golang 会执行安全检查返回ZgotmplZ
|
||||
// sorterI 可能是nil, 所以用interfalce{}来接收
|
||||
/*
|
||||
data-url="/adminUser/index"
|
||||
data-sorter="email"
|
||||
class="th-sortable {{if eq .sorter "email-up"}}th-sort-up{{else}}{{if eq .sorter "email-down"}}th-sort-down{{end}}{{end}}"
|
||||
*/
|
||||
revel.TemplateFuncs["sorterTh"] = func(url, sorterField string, sorterI interface{}) template.HTMLAttr {
|
||||
sorter := ""
|
||||
if sorterI != nil {
|
||||
sorter, _ = sorterI.(string)
|
||||
}
|
||||
html := "data-url=\"" + url + "\" data-sorter=\"" + sorterField + "\"";
|
||||
html += " class=\"th-sortable ";
|
||||
if sorter == sorterField + "-up" {
|
||||
html += "th-sort-up\"";
|
||||
} else if(sorter == sorterField + "-down") {
|
||||
html += "th-sort-down";
|
||||
}
|
||||
html += "\"";
|
||||
return template.HTMLAttr(html)
|
||||
}
|
||||
|
||||
// pagination
|
||||
revel.TemplateFuncs["page"] = func(userId, notebookId string, page, pageSize, count int) template.HTML {
|
||||
if count == 0 {
|
||||
@ -114,6 +190,51 @@ func init() {
|
||||
}
|
||||
return template.HTML("<li class='" + preClass + "'><a href='" + preUrl + "'>Previous</a></li> <li class='" + nextClass + "'><a href='" + nextUrl + "'>Next</a></li>")
|
||||
}
|
||||
// life
|
||||
// https://groups.google.com/forum/#!topic/golang-nuts/OEdSDgEC7js
|
||||
// http://play.golang.org/p/snygrVpQva
|
||||
// http://grokbase.com/t/gg/golang-nuts/142a6dhfh3/go-nuts-text-template-using-comparison-operators-eq-gt-etc-on-non-existent-variable-causes-the-template-to-stop-outputting-but-with-no-error-correct-behaviour
|
||||
revel.TemplateFuncs["gt"] = func(a1, a2 interface{}) bool {
|
||||
switch a1.(type) {
|
||||
case string:
|
||||
switch a2.(type) {
|
||||
case string:
|
||||
return reflect.ValueOf(a1).String() > reflect.ValueOf(a2).String()
|
||||
}
|
||||
case int, int8, int16, int32, int64:
|
||||
switch a2.(type) {
|
||||
case int, int8, int16, int32, int64:
|
||||
return reflect.ValueOf(a1).Int() > reflect.ValueOf(a2).Int()
|
||||
}
|
||||
case uint, uint8, uint16, uint32, uint64:
|
||||
switch a2.(type) {
|
||||
case uint, uint8, uint16, uint32, uint64:
|
||||
return reflect.ValueOf(a1).Uint() > reflect.ValueOf(a2).Uint()
|
||||
}
|
||||
case float32, float64:
|
||||
switch a2.(type) {
|
||||
case float32, float64:
|
||||
return reflect.ValueOf(a1).Float() > reflect.ValueOf(a2).Float()
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/*
|
||||
{{range $i := N 1 10}}
|
||||
<div>{{$i}}</div>
|
||||
{{end}}
|
||||
*/
|
||||
revel.TemplateFuncs["N"] = func(start, end int) (stream chan int) {
|
||||
stream = make(chan int)
|
||||
go func() {
|
||||
for i := start; i <= end; i++ {
|
||||
stream <- i
|
||||
}
|
||||
close(stream)
|
||||
}()
|
||||
return
|
||||
}
|
||||
|
||||
// init Email
|
||||
revel.OnAppStart(func() {
|
||||
@ -121,5 +242,7 @@ func init() {
|
||||
|
||||
service.InitService()
|
||||
controllers.InitService()
|
||||
admin.InitService()
|
||||
service.ConfigS.InitGlobalConfigs()
|
||||
})
|
||||
}
|
@ -40,7 +40,7 @@ func (this *BlogService) GetBlog(noteId string) (blog info.BlogItem) {
|
||||
noteContent := noteService.GetNoteContent(note.NoteId.Hex(), note.UserId.Hex())
|
||||
|
||||
// 组装成blogItem
|
||||
blog = info.BlogItem{note, noteContent.Content, false}
|
||||
blog = info.BlogItem{note, noteContent.Content, false, info.User{}}
|
||||
|
||||
return
|
||||
}
|
||||
@ -84,7 +84,7 @@ func (this *BlogService) ListBlogs(userId, notebookId string, page, pageSize int
|
||||
if noteContent, ok := noteContentsMap[note.NoteId]; ok {
|
||||
content = noteContent.Abstract
|
||||
}
|
||||
blogs[i] = info.BlogItem{note, content, hasMore}
|
||||
blogs[i] = info.BlogItem{note, content, hasMore, info.User{}}
|
||||
}
|
||||
return count, blogs
|
||||
}
|
||||
@ -119,11 +119,85 @@ func (this *BlogService) SearchBlog(key, userId string, page, pageSize int, sort
|
||||
if noteContent, ok := noteContentsMap[note.NoteId]; ok {
|
||||
content = noteContent.Abstract
|
||||
}
|
||||
blogs[i] = info.BlogItem{note, content, hasMore}
|
||||
blogs[i] = info.BlogItem{note, content, hasMore, info.User{}}
|
||||
}
|
||||
return count, blogs
|
||||
}
|
||||
|
||||
//-------
|
||||
// p
|
||||
// 平台 lea+
|
||||
// 博客列表
|
||||
func (this *BlogService) ListAllBlogs(tag string, keywords string, isRecommend bool, page, pageSize int, sorterField string, isAsc bool) (info.Page, []info.BlogItem) {
|
||||
pageInfo := info.Page{CurPage: page}
|
||||
notes := []info.Note{}
|
||||
|
||||
skipNum, sortFieldR := parsePageAndSort(page, pageSize, sorterField, isAsc)
|
||||
|
||||
// 不是trash的
|
||||
query := bson.M{"IsTrash": false, "IsBlog": true}
|
||||
if tag != "" {
|
||||
query["Tags"] = bson.M{"$in": []string{tag}}
|
||||
}
|
||||
if isRecommend {
|
||||
query["IsRecommend"] = isRecommend
|
||||
}
|
||||
if keywords != "" {
|
||||
query["Title"] = bson.M{"$regex": bson.RegEx{".*?" + keywords + ".*", "i"}}
|
||||
}
|
||||
q := db.Notes.Find(query);
|
||||
|
||||
// 总记录数
|
||||
count, _ := q.Count()
|
||||
|
||||
q.Sort(sortFieldR).
|
||||
Skip(skipNum).
|
||||
Limit(pageSize).
|
||||
All(¬es)
|
||||
|
||||
if(notes == nil || len(notes) == 0) {
|
||||
return pageInfo, nil
|
||||
}
|
||||
|
||||
// 得到content, 并且每个都要substring
|
||||
noteIds := make([]bson.ObjectId, len(notes))
|
||||
userIds := make([]bson.ObjectId, len(notes))
|
||||
for i, note := range notes {
|
||||
noteIds[i] = note.NoteId
|
||||
userIds[i] = note.UserId
|
||||
}
|
||||
|
||||
// 可以不要的
|
||||
// 直接得到noteContents表的abstract
|
||||
// 这里可能是乱序的
|
||||
/*
|
||||
noteContents := noteService.ListNoteAbstractsByNoteIds(noteIds) // 返回[info.NoteContent]
|
||||
noteContentsMap := make(map[bson.ObjectId]info.NoteContent, len(noteContents))
|
||||
for _, noteContent := range noteContents {
|
||||
noteContentsMap[noteContent.NoteId] = noteContent
|
||||
}
|
||||
*/
|
||||
|
||||
// 得到用户信息
|
||||
userMap := userService.MapUserInfoAndBlogInfosByUserIds(userIds)
|
||||
|
||||
// 组装成blogItem
|
||||
// 按照notes的顺序
|
||||
blogs := make([]info.BlogItem, len(noteIds))
|
||||
for i, note := range notes {
|
||||
hasMore := true
|
||||
var content string
|
||||
/*
|
||||
if noteContent, ok := noteContentsMap[note.NoteId]; ok {
|
||||
content = noteContent.Abstract
|
||||
}
|
||||
*/
|
||||
blogs[i] = info.BlogItem{note, content, hasMore, userMap[note.UserId]}
|
||||
}
|
||||
pageInfo = info.NewPage(page, pageSize, count, nil)
|
||||
|
||||
return pageInfo, blogs
|
||||
}
|
||||
|
||||
//------------------------
|
||||
// 博客设置
|
||||
@ -153,3 +227,11 @@ func (this *BlogService) UpdateUserBlogComment(userId string, userBlog info.User
|
||||
func (this *BlogService) UpdateUserBlogStyle(userId string, userBlog info.UserBlogStyle) bool {
|
||||
return db.UpdateByQMap(db.UserBlogs, bson.M{"_id": bson.ObjectIdHex(userId)}, userBlog)
|
||||
}
|
||||
|
||||
//------------
|
||||
// 后台管理
|
||||
|
||||
// 推荐博客
|
||||
func (this *BlogService) SetRecommend(noteId string, isRecommend bool) bool {
|
||||
return db.UpdateByQField(db.Notes, bson.M{"_id": bson.ObjectIdHex(noteId), "IsBlog": true}, "IsRecommend", isRecommend)
|
||||
}
|
141
app/service/ConfigService.go
Normal file
141
app/service/ConfigService.go
Normal file
@ -0,0 +1,141 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"github.com/leanote/leanote/app/info"
|
||||
// . "github.com/leanote/leanote/app/lea"
|
||||
"github.com/leanote/leanote/app/db"
|
||||
"gopkg.in/mgo.v2/bson"
|
||||
"github.com/revel/revel"
|
||||
"time"
|
||||
)
|
||||
|
||||
// 配置服务
|
||||
type ConfigService struct {
|
||||
// 全局的
|
||||
GlobalStringConfigs map[string]string
|
||||
GlobalArrayConfigs map[string][]string
|
||||
|
||||
// 两种配置, 用户自己的
|
||||
UserStringConfigs map[string]string
|
||||
UserArrayConfigs map[string][]string
|
||||
|
||||
// 合并之后的
|
||||
AllStringConfigs map[string]string
|
||||
AllArrayConfigs map[string][]string
|
||||
}
|
||||
|
||||
var adminUserId = ""
|
||||
|
||||
// appStart时 将全局的配置从数据库中得到作为全局
|
||||
func (this *ConfigService) InitGlobalConfigs() bool {
|
||||
this.GlobalStringConfigs = map[string]string{}
|
||||
this.GlobalArrayConfigs = map[string][]string{}
|
||||
|
||||
this.UserStringConfigs = map[string]string{}
|
||||
this.UserArrayConfigs = map[string][]string{}
|
||||
|
||||
this.AllStringConfigs = map[string]string{}
|
||||
this.AllArrayConfigs = map[string][]string{}
|
||||
|
||||
adminUsername, _ := revel.Config.String("adminUsername")
|
||||
if adminUsername == "" {
|
||||
adminUsername = "admin"
|
||||
}
|
||||
|
||||
userInfo := userService.GetUserInfoByAny(adminUsername)
|
||||
if userInfo.UserId == "" {
|
||||
return false
|
||||
}
|
||||
adminUserId = userInfo.UserId.Hex()
|
||||
|
||||
configs := info.Config{}
|
||||
db.Get2(db.Configs, userInfo.UserId, &configs)
|
||||
|
||||
if configs.UserId == "" {
|
||||
db.Insert(db.Configs, info.Config{UserId: userInfo.UserId, StringConfigs: map[string]string{}, ArrayConfigs: map[string][]string{}})
|
||||
}
|
||||
|
||||
this.GlobalStringConfigs = configs.StringConfigs;
|
||||
this.GlobalArrayConfigs = configs.ArrayConfigs;
|
||||
|
||||
// 复制到所有配置上
|
||||
for key, value := range this.GlobalStringConfigs {
|
||||
this.AllStringConfigs[key] = value
|
||||
}
|
||||
for key, value := range this.GlobalArrayConfigs {
|
||||
this.AllArrayConfigs[key] = value
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// 用户登录后获取用户自定义的配置, 并将所有的配置都用上
|
||||
func (this *ConfigService) InitUserConfigs(userId string) bool {
|
||||
configs := info.Config{}
|
||||
db.Get(db.Configs, userId, &configs)
|
||||
|
||||
if configs.UserId == "" {
|
||||
db.Insert(db.Configs, info.Config{UserId: bson.ObjectIdHex(userId), StringConfigs: map[string]string{}, ArrayConfigs: map[string][]string{}})
|
||||
}
|
||||
|
||||
this.UserStringConfigs = configs.StringConfigs;
|
||||
this.UserArrayConfigs = configs.ArrayConfigs;
|
||||
|
||||
// 合并配置
|
||||
for key, value := range this.UserStringConfigs {
|
||||
this.AllStringConfigs[key] = value
|
||||
}
|
||||
for key, value := range this.UserArrayConfigs {
|
||||
this.AllArrayConfigs[key] = value
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// 获取配置
|
||||
func (this *ConfigService) GetStringConfig(key string) string {
|
||||
return this.AllStringConfigs[key]
|
||||
}
|
||||
func (this *ConfigService) GetArrayConfig(key string) []string {
|
||||
arr := this.AllArrayConfigs[key]
|
||||
if arr == nil {
|
||||
return []string{}
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
// 更新用户配置
|
||||
func (this *ConfigService) UpdateUserStringConfig(userId, key string, value string) bool {
|
||||
this.UserStringConfigs[key] = value
|
||||
this.AllStringConfigs[key] = value
|
||||
if userId == adminUserId {
|
||||
this.GlobalStringConfigs[key] = value
|
||||
}
|
||||
|
||||
// 保存到数据库中
|
||||
return db.UpdateByQMap(db.Configs, bson.M{"_id": bson.ObjectIdHex(userId)},
|
||||
bson.M{"StringConfigs": this.UserStringConfigs, "UpdatedTime": time.Now()})
|
||||
}
|
||||
func (this *ConfigService) UpdateUserArrayConfig(userId, key string, value []string) bool {
|
||||
this.UserArrayConfigs[key] = value
|
||||
this.AllArrayConfigs[key] = value
|
||||
if userId == adminUserId {
|
||||
this.GlobalArrayConfigs[key] = value
|
||||
}
|
||||
|
||||
// 保存到数据库中
|
||||
return db.UpdateByQMap(db.Configs, bson.M{"_id": bson.ObjectIdHex(userId)},
|
||||
bson.M{"ArrayConfigs": this.UserArrayConfigs, "UpdatedTime": time.Now()})
|
||||
}
|
||||
|
||||
// 获取全局配置, 博客平台使用
|
||||
func (this *ConfigService) GetGlobalStringConfig(key string) string {
|
||||
return this.GlobalStringConfigs[key]
|
||||
}
|
||||
func (this *ConfigService) GetGlobalArrayConfig(key string) []string {
|
||||
arr := this.GlobalArrayConfigs[key]
|
||||
if arr == nil {
|
||||
return []string{}
|
||||
}
|
||||
return arr
|
||||
}
|
@ -99,6 +99,29 @@ func (this *UserService) ListUserInfosByUserIds(userIds []bson.ObjectId) []info.
|
||||
db.ListByQ(db.Users, bson.M{"_id": bson.M{"$in": userIds}}, &users)
|
||||
return users
|
||||
}
|
||||
// 用户信息和博客设置信息
|
||||
func (this *UserService) MapUserInfoAndBlogInfosByUserIds(userIds []bson.ObjectId) map[bson.ObjectId]info.User {
|
||||
users := []info.User{}
|
||||
db.ListByQ(db.Users, bson.M{"_id": bson.M{"$in": userIds}}, &users)
|
||||
|
||||
userBlogs := []info.UserBlog{}
|
||||
db.ListByQWithFields(db.UserBlogs, bson.M{"_id": bson.M{"$in": userIds}}, []string{"Logo"}, &userBlogs)
|
||||
|
||||
userBlogMap := make(map[bson.ObjectId]info.UserBlog, len(userBlogs))
|
||||
for _, user := range userBlogs {
|
||||
userBlogMap[user.UserId] = user
|
||||
}
|
||||
|
||||
userMap := make(map[bson.ObjectId]info.User, len(users))
|
||||
for _, user := range users {
|
||||
if userBlog, ok := userBlogMap[user.UserId]; ok {
|
||||
user.Logo = userBlog.Logo
|
||||
}
|
||||
userMap[user.UserId] = user
|
||||
}
|
||||
|
||||
return userMap
|
||||
}
|
||||
|
||||
// 通过ids得到users, 按id的顺序组织users
|
||||
func (this *UserService) GetUserInfosOrderBySeq(userIds []bson.ObjectId) []info.User {
|
||||
@ -135,7 +158,7 @@ func (this *UserService) LoginGetUserInfo(emailOrUsername, md5Pwd string) info.U
|
||||
|
||||
// 更新username
|
||||
func (this *UserService) UpdateUsername(userId, username string) (bool, string) {
|
||||
if userId == "" || username == "" {
|
||||
if userId == "" || username == "" || username == "admin" { // admin用户是内置的, 不能设置
|
||||
return false, "用户已存在"
|
||||
}
|
||||
usernameRaw := username // 原先的, 可能是同一个, 但有大小写
|
||||
@ -297,3 +320,24 @@ func (this *UserService)UpdateColumnWidth(userId string, notebookWidth, noteList
|
||||
func (this *UserService)UpdateLeftIsMin(userId string, leftIsMin bool) bool {
|
||||
return db.UpdateByQMap(db.Users, bson.M{"_id": bson.ObjectIdHex(userId)}, bson.M{"LeftIsMin": leftIsMin})
|
||||
}
|
||||
|
||||
//-------------
|
||||
// user admin
|
||||
func (this *UserService) ListUsers(pageNumber, pageSize int, sortField string, isAsc bool, email string) (page info.Page, users []info.User) {
|
||||
users = []info.User{}
|
||||
skipNum, sortFieldR := parsePageAndSort(pageNumber, pageSize, sortField, isAsc)
|
||||
query := bson.M{}
|
||||
if email != "" {
|
||||
query["Email"] = bson.M{"$regex": bson.RegEx{".*?" + email + ".*", "i"}}
|
||||
}
|
||||
q := db.Users.Find(query);
|
||||
// 总记录数
|
||||
count, _ := q.Count()
|
||||
// 列表
|
||||
q.Sort(sortFieldR).
|
||||
Skip(skipNum).
|
||||
Limit(pageSize).
|
||||
All(&users)
|
||||
page = info.NewPage(pageNumber, pageSize, count, nil)
|
||||
return
|
||||
}
|
@ -21,6 +21,7 @@ var noteImageService, NoteImageS *NoteImageService
|
||||
var fileService, FileS *FileService
|
||||
var albumService, AlbumS *AlbumService
|
||||
var attachService, AttachS *AttachService
|
||||
var configService, ConfigS *ConfigService
|
||||
var PwdS *PwdService
|
||||
var SuggestionS *SuggestionService
|
||||
var AuthS *AuthService
|
||||
@ -40,6 +41,7 @@ func InitService() {
|
||||
FileS = &FileService{}
|
||||
AlbumS = &AlbumService{}
|
||||
AttachS = &AttachService{}
|
||||
ConfigS = &ConfigService{}
|
||||
PwdS = &PwdService{}
|
||||
SuggestionS = &SuggestionService{}
|
||||
AuthS = &AuthService{}
|
||||
@ -57,4 +59,5 @@ func InitService() {
|
||||
fileService = FileS
|
||||
albumService = AlbumS
|
||||
attachService = AttachS
|
||||
configService = ConfigS
|
||||
}
|
175
app/views/Admin/Blog/list.html
Normal file
175
app/views/Admin/Blog/list.html
Normal file
@ -0,0 +1,175 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Blog</h3></div>
|
||||
|
||||
<section class="panel panel-default">
|
||||
<div class="row wrapper">
|
||||
<div class="col-sm-5 m-b-xs">
|
||||
<select class="input-sm form-control input-s-sm inline v-middle">
|
||||
<option value="0">
|
||||
Bulk action
|
||||
</option>
|
||||
<option value="1">
|
||||
Delete selected
|
||||
</option>
|
||||
<option value="2">
|
||||
Bulk edit
|
||||
</option>
|
||||
<option value="3">
|
||||
Export
|
||||
</option>
|
||||
</select>
|
||||
<button class="btn btn-sm btn-default">
|
||||
Apply
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-4 m-b-xs">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div class="input-group search-group">
|
||||
<input type="text" class="input-sm form-control" placeholder="Title" id="keywords" value="{{.keywords}}" />
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-sm btn-default" type="button" data-url="/adminBlog/index">Search</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped b-t b-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="20">
|
||||
<input type="checkbox">
|
||||
</th>
|
||||
{{$url := urlConcat "/adminBlog/index" "keywords" .keywords}}
|
||||
<th
|
||||
{{sorterTh $url "title" .sorter}}
|
||||
>
|
||||
Title
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "userId" .sorter}}
|
||||
>
|
||||
Username
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "isRecommend" .sorter}}
|
||||
>
|
||||
isRecommend
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "createdTime" .sorter}}
|
||||
>
|
||||
Create Date
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th width="30">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .blogs}}
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" name="post[]" value="2">
|
||||
</td>
|
||||
<td>
|
||||
<a href="/blog/view/{{.NoteId.Hex}}" target="_blank">{{.Title|raw}}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/blog/{{.UserId.Hex}}" target="_blank">
|
||||
{{.User.Username}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<button data-loading-text="..." class="btn btn-default change-recommend" data-id="{{.NoteId.Hex}}" data-recommend="{{if .IsRecommend}}1{{else}}0{{end}}">
|
||||
{{if .IsRecommend}}
|
||||
Y
|
||||
{{else}}
|
||||
N
|
||||
{{end}}
|
||||
</button>
|
||||
</td>
|
||||
<td>
|
||||
{{.CreatedTime|datetime}}
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" class="btn btn-default">Send Email</a>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<footer class="panel-footer">
|
||||
<div class="row">
|
||||
<div class="col-sm-4 hidden-xs">
|
||||
<select class="input-sm form-control input-s-sm inline v-middle">
|
||||
<option value="0">
|
||||
Bulk action
|
||||
</option>
|
||||
<option value="1">
|
||||
Delete selected
|
||||
</option>
|
||||
<option value="2">
|
||||
Bulk edit
|
||||
</option>
|
||||
<option value="3">
|
||||
Export
|
||||
</option>
|
||||
</select>
|
||||
<button class="btn btn-sm btn-default">
|
||||
Apply
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-4 text-center">
|
||||
<small class="text-muted inline m-t-sm m-b-sm">
|
||||
showing 20-30 of 50 items
|
||||
</small>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right text-center-xs">
|
||||
{{set . "url" (urlConcat "/adminBlog/index" "sorter" .sorter "keywords" .keywords)}}
|
||||
{{template "admin/user/page.html" .}}
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$(".change-recommend").click(function() {
|
||||
var isRecommend = +$(this).data("recommend");
|
||||
var noteId = $(this).data("id");
|
||||
var t = this;
|
||||
$(t).button("loading");
|
||||
ajaxGet("/adminBlog/setRecommend", {noteId: noteId, recommend: !isRecommend}, function() {
|
||||
$(t).button("reset");
|
||||
$(t).text(isRecommend ? "N" : "Y");
|
||||
$(t).data("recommend", !isRecommend);
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
33
app/views/Admin/Blog/page.html
Normal file
33
app/views/Admin/Blog/page.html
Normal file
@ -0,0 +1,33 @@
|
||||
{{if gt .pageInfo.TotalPage 1}}
|
||||
<ul class="pagination pagination-sm m-t-none m-b-none">
|
||||
<li class="{{if eq $.pageInfo.CurPage 1}}disabled{{end}}" >
|
||||
<a href="{{if eq $.pageInfo.CurPage 1}}javascript:;{{else}}{{sub $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-left">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{{range $i := N 1 .pageInfo.TotalPage}}
|
||||
{{if eq $i $.pageInfo.CurPage}}
|
||||
<li class="active">
|
||||
<a href="javascript:;">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{else}}
|
||||
<li class="">
|
||||
<a href="{{urlConcat $.url "page" $i}}">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
<li class="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}disabled{{end}}" >
|
||||
<a href="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}javascript:;{{else}}{{add $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-right">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{{end}}
|
55
app/views/Admin/Setting/blog.html
Normal file
55
app/views/Admin/Setting/blog.html
Normal file
@ -0,0 +1,55 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Blog</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<form id="add_user_form">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Recommend Tags</label>
|
||||
<input type="text" class="form-control" name="recommendTags" value="{{.recommendTags}}">
|
||||
Split by ','
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>New Tags</label>
|
||||
<input type="text" class="form-control" name="newTags" value="{{.newTags}}">
|
||||
Split by ','
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
init_validator("#add_user_form");
|
||||
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#add_user_form").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminSetting/doBlogTag", getFormJsonData("add_user_form"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
52
app/views/Admin/Setting/demo.html
Normal file
52
app/views/Admin/Setting/demo.html
Normal file
@ -0,0 +1,52 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Demo User</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<form id="add_user_form">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Demo Username</label>
|
||||
<input type="text" class="form-control" name="demoUsername" value="{{.demoUsername}}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Demo Password</label>
|
||||
<input type="text" class="form-control" name="demoPassword" value="{{.demoPassword}}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
init_validator("#add_user_form");
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#add_user_form").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminSetting/doDemo", getFormJsonData("add_user_form"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
58
app/views/Admin/User/add.html
Normal file
58
app/views/Admin/User/add.html
Normal file
@ -0,0 +1,58 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Add User</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<form id="add_user_form">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Email</label>
|
||||
<input type="text" class="form-control" name="email" data-rule-required="true" data-rule-email="true">
|
||||
</div>
|
||||
<div class="form-group pull-in clearfix">
|
||||
<div class="col-sm-6">
|
||||
<label>Enter password</label>
|
||||
<input type="password" class="form-control" data-rule-required="true" id="pwd" name="pwd" data-rule-minlength="6">
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<label>Confirm password</label>
|
||||
<input type="password" class="form-control parsley-validated" data-rule-equalto="#pwd" data-rule-required="true" name="password2">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
init_validator("#add_user_form");
|
||||
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#add_user_form").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/auth/doRegister", getFormJsonData("add_user_form"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
163
app/views/Admin/User/list.html
Normal file
163
app/views/Admin/User/list.html
Normal file
@ -0,0 +1,163 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">User</h3></div>
|
||||
|
||||
<section class="panel panel-default">
|
||||
<div class="row wrapper">
|
||||
<div class="col-sm-5 m-b-xs">
|
||||
<select class="input-sm form-control input-s-sm inline v-middle">
|
||||
<option value="0">
|
||||
Bulk action
|
||||
</option>
|
||||
<option value="1">
|
||||
Delete selected
|
||||
</option>
|
||||
<option value="2">
|
||||
Bulk edit
|
||||
</option>
|
||||
<option value="3">
|
||||
Export
|
||||
</option>
|
||||
</select>
|
||||
<button class="btn btn-sm btn-default">
|
||||
Apply
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-4 m-b-xs">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div class="input-group search-group">
|
||||
<input type="text" class="input-sm form-control" placeholder="Email" id="keywords" value="{{.keywords}}" />
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-sm btn-default" type="button" data-url="/adminUser/index">Search</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped b-t b-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="20">
|
||||
<input type="checkbox">
|
||||
</th>
|
||||
{{$url := urlConcat "/adminUser/index" "keywords" .keywords}}
|
||||
<th
|
||||
{{sorterTh $url "email" .sorter}}
|
||||
>
|
||||
Email
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "username" .sorter}}
|
||||
>
|
||||
Username
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "verified" .sorter}}
|
||||
>
|
||||
Verified
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "createdTime" .sorter}}
|
||||
>
|
||||
Register Date
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th width="30">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .users}}
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" name="post[]" value="2">
|
||||
</td>
|
||||
<td>
|
||||
{{.Email}}
|
||||
</td>
|
||||
<td>
|
||||
{{.Username}}
|
||||
</td>
|
||||
<td>
|
||||
{{.Verified}}
|
||||
</td>
|
||||
<td>
|
||||
{{.CreatedTime|datetime}}
|
||||
<a href="#" class="active" data-toggle="class">
|
||||
<i class="fa fa-check text-success text-active">
|
||||
</i>
|
||||
<i class="fa fa-times text-danger text">
|
||||
</i>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" class="btn btn-default">Send Email</a>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<footer class="panel-footer">
|
||||
<div class="row">
|
||||
<div class="col-sm-4 hidden-xs">
|
||||
<select class="input-sm form-control input-s-sm inline v-middle">
|
||||
<option value="0">
|
||||
Bulk action
|
||||
</option>
|
||||
<option value="1">
|
||||
Delete selected
|
||||
</option>
|
||||
<option value="2">
|
||||
Bulk edit
|
||||
</option>
|
||||
<option value="3">
|
||||
Export
|
||||
</option>
|
||||
</select>
|
||||
<button class="btn btn-sm btn-default">
|
||||
Apply
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-4 text-center">
|
||||
<small class="text-muted inline m-t-sm m-b-sm">
|
||||
showing 20-30 of 50 items
|
||||
</small>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right text-center-xs">
|
||||
{{set . "url" (urlConcat "/adminUser/index" "sorter" .sorter "keywords" .keywords)}}
|
||||
{{template "admin/user/page.html" .}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
33
app/views/Admin/User/page.html
Normal file
33
app/views/Admin/User/page.html
Normal file
@ -0,0 +1,33 @@
|
||||
{{if gt .pageInfo.TotalPage 1}}
|
||||
<ul class="pagination pagination-sm m-t-none m-b-none">
|
||||
<li class="{{if eq $.pageInfo.CurPage 1}}disabled{{end}}" >
|
||||
<a href="{{if eq $.pageInfo.CurPage 1}}javascript:;{{else}}{{sub $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-left">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{{range $i := N 1 .pageInfo.TotalPage}}
|
||||
{{if eq $i $.pageInfo.CurPage}}
|
||||
<li class="active">
|
||||
<a href="javascript:;">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{else}}
|
||||
<li class="">
|
||||
<a href="{{urlConcat $.url "page" $i}}">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
<li class="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}disabled{{end}}" >
|
||||
<a href="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}javascript:;{{else}}{{add $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-right">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{{end}}
|
639
app/views/Admin/button.html
Normal file
639
app/views/Admin/button.html
Normal file
@ -0,0 +1,639 @@
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6">
|
||||
<h4 class="m-t-xs">
|
||||
Button options
|
||||
</h4>
|
||||
<div class="doc-buttons">
|
||||
<a href="#" class="btn btn-s-md btn-default">
|
||||
Default
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-primary">
|
||||
Primary
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-success">
|
||||
Success
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-info">
|
||||
Info
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-warning">
|
||||
Warning
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-danger">
|
||||
Danger
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-dark">
|
||||
Dark
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-default disabled">
|
||||
Disabled
|
||||
</a>
|
||||
</div>
|
||||
<h4 class="m-t">
|
||||
Button size
|
||||
</h4>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default btn-lg">
|
||||
Large button
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default">
|
||||
Default button
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default btn-sm">
|
||||
Small button
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default btn-xs">
|
||||
Extra small button
|
||||
</a>
|
||||
</p>
|
||||
<h4 class="m-t-lg">
|
||||
Button dropdowns
|
||||
</h4>
|
||||
<p class="text-muted">
|
||||
Single button dropdowns
|
||||
</p>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
Action
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-success dropdown-toggle" data-toggle="dropdown">
|
||||
Action
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
|
||||
Action
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown">
|
||||
Action
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
Split button dropdowns & variation
|
||||
</p>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-default">
|
||||
Action
|
||||
</button>
|
||||
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btn-group dropup">
|
||||
<button class="btn btn-default">
|
||||
Action
|
||||
</button>
|
||||
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<h4 class="m-t-lg">
|
||||
Button with icon
|
||||
</h4>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default">
|
||||
<i class="fa fa-html5">
|
||||
</i>
|
||||
Html5
|
||||
</a>
|
||||
<a href="#" class="btn btn-info">
|
||||
<i class="fa fa-css3">
|
||||
</i>
|
||||
CSS3
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default btn-lg btn-block">
|
||||
<i class="fa fa-bars pull-right">
|
||||
</i>
|
||||
Block button with icon
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default btn-block">
|
||||
<i class="fa fa-bars pull-left">
|
||||
</i>
|
||||
Block button with icon
|
||||
</a>
|
||||
</p>
|
||||
<h4 class="m-t-lg">
|
||||
Button icon
|
||||
</h4>
|
||||
<p id="social-buttons">
|
||||
<a href="#" class="btn btn-sm btn-icon btn-info">
|
||||
<i class="fa fa-twitter">
|
||||
</i>
|
||||
</a>
|
||||
<a href="#" class="btn btn-sm btn-icon btn-success">
|
||||
<i class="fa fa-facebook">
|
||||
</i>
|
||||
</a>
|
||||
<a href="#" class="btn btn-sm btn-icon btn-danger">
|
||||
<i class="fa fa-google-plus">
|
||||
</i>
|
||||
</a>
|
||||
</p>
|
||||
<h4 class="m-t-lg">
|
||||
Button icon rounded
|
||||
</h4>
|
||||
<p id="social-buttons">
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-icon btn-default">
|
||||
<i class="fa fa-twitter">
|
||||
</i>
|
||||
</a>
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-icon btn-default">
|
||||
<i class="fa fa-facebook">
|
||||
</i>
|
||||
</a>
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-icon btn-default">
|
||||
<i class="fa fa-google-plus">
|
||||
</i>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h4 class="m-t-xs">
|
||||
Rounded button
|
||||
</h4>
|
||||
<div class="doc-buttons">
|
||||
<a href="#" class="btn btn-s-md btn-default btn-rounded">
|
||||
Default
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-primary btn-rounded">
|
||||
Primary
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-success btn-rounded">
|
||||
Success
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-info btn-rounded">
|
||||
Info
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-warning btn-rounded">
|
||||
Warning
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-danger btn-rounded">
|
||||
Danger
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-dark btn-rounded">
|
||||
Dark
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-default btn-rounded disabled">
|
||||
Disabled
|
||||
</a>
|
||||
</div>
|
||||
<h4 class="m-t-lg">
|
||||
Button groups
|
||||
</h4>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default">
|
||||
Left
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
Middle
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
Right
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
Vertical button groups
|
||||
</p>
|
||||
<div class="btn-group-vertical m-b-sm">
|
||||
<button type="button" class="btn btn-default">
|
||||
Top
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
Middle
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
Bottom
|
||||
</button>
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
Nested button groups
|
||||
</p>
|
||||
<div class="btn-group m-b-sm">
|
||||
<button type="button" class="btn btn-default">
|
||||
1
|
||||
</button>
|
||||
<button type="button" class="btn btn-success">
|
||||
2
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
3
|
||||
</button>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
Dropdown
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Dropdown link
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Dropdown link
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Dropdown link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
Justified button groups
|
||||
</p>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group btn-group-justified">
|
||||
<a href="#" class="btn btn-primary">
|
||||
Left
|
||||
</a>
|
||||
<a href="#" class="btn btn-info">
|
||||
Middle
|
||||
</a>
|
||||
<a href="#" class="btn btn-success">
|
||||
Right
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
Multiple button groups
|
||||
</p>
|
||||
<div class="btn-toolbar">
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default">
|
||||
1
|
||||
</button>
|
||||
<button type="button" class="btn btn-default active">
|
||||
2
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
3
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
4
|
||||
</button>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default">
|
||||
5
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
6
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
7
|
||||
</button>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default">
|
||||
8
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<h4 class="m-t-lg">
|
||||
Button components
|
||||
</h4>
|
||||
<p class="text-muted">
|
||||
<span>
|
||||
There are a few easy ways to quickly get started with Bootstrap, each
|
||||
one ...
|
||||
</span>
|
||||
<span class="text-muted hide" id="moreless">
|
||||
appealing to a different skill level and use case. Read through to see
|
||||
what suits your particular needs.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<button href="#moreless" class="btn btn-sm btn-default" data-toggle="class:show">
|
||||
<i class="fa fa-plus text">
|
||||
</i>
|
||||
<span class="text">
|
||||
More
|
||||
</span>
|
||||
<i class="fa fa-minus text-active">
|
||||
</i>
|
||||
<span class="text-active">
|
||||
Less
|
||||
</span>
|
||||
</button>
|
||||
</p>
|
||||
<p>
|
||||
<button class="btn btn-default" id="btn-1" href="#btn-1" data-toggle="class:btn-success">
|
||||
<i class="fa fa-cloud-upload text">
|
||||
</i>
|
||||
<span class="text">
|
||||
Upload
|
||||
</span>
|
||||
<i class="fa fa-check text-active">
|
||||
</i>
|
||||
<span class="text-active">
|
||||
Success
|
||||
</span>
|
||||
</button>
|
||||
<button class="btn btn-default" data-toggle="button">
|
||||
<i class="fa fa-heart-o text">
|
||||
</i>
|
||||
<i class="fa fa-heart text-active text-danger">
|
||||
</i>
|
||||
</button>
|
||||
<button class="btn btn-default" data-toggle="button">
|
||||
<span class="text">
|
||||
<i class="fa fa-thumbs-up text-success">
|
||||
</i>
|
||||
25
|
||||
</span>
|
||||
<span class="text-active">
|
||||
<i class="fa fa-thumbs-down text-danger">
|
||||
</i>
|
||||
10
|
||||
</span>
|
||||
</button>
|
||||
<button class="btn btn-success" data-toggle="class:show inline" data-target="#spin"
|
||||
data-loading-text="Saving...">
|
||||
Save
|
||||
</button>
|
||||
<i class="fa fa-spin fa-spinner hide" id="spin">
|
||||
</i>
|
||||
</p>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group" data-toggle="buttons">
|
||||
<label class="btn btn-sm btn-info active">
|
||||
<input type="radio" name="options" id="option1">
|
||||
<i class="fa fa-check text-active">
|
||||
</i>
|
||||
Male
|
||||
</label>
|
||||
<label class="btn btn-sm btn-success">
|
||||
<input type="radio" name="options" id="option2">
|
||||
<i class="fa fa-check text-active">
|
||||
</i>
|
||||
Female
|
||||
</label>
|
||||
<label class="btn btn-sm btn-primary">
|
||||
<input type="radio" name="options" id="option3">
|
||||
<i class="fa fa-check text-active">
|
||||
</i>
|
||||
N/A
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group" data-toggle="buttons">
|
||||
<label class="btn btn-sm btn-default">
|
||||
<input type="checkbox" name="options" id="option1">
|
||||
option1
|
||||
</label>
|
||||
<label class="btn btn-sm btn-default">
|
||||
<input type="checkbox" name="options" id="option2">
|
||||
option2
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<h5 class="m-t-lg">
|
||||
Select Button
|
||||
</h5>
|
||||
<div class="btn-group m-r">
|
||||
<button data-toggle="dropdown" class="btn btn-sm btn-default dropdown-toggle">
|
||||
<span class="dropdown-label">
|
||||
Option1
|
||||
</span>
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-select">
|
||||
<li class="active">
|
||||
<a href="#">
|
||||
<input type="radio" name="d-s-r" checked="">
|
||||
Option1
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<input type="radio" name="d-s-r">
|
||||
Option2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<input type="radio" name="d-s-r">
|
||||
Option3
|
||||
</a>
|
||||
</li>
|
||||
<li class="disabled">
|
||||
<a href="#">
|
||||
<input type="radio" name="d-s-r" disabled="">
|
||||
I'm disabled
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 class="m-t-lg">
|
||||
<a href="#" class="pull-right text-sm" data-toggle="class:btn-rounded"
|
||||
data-target="#social-buttons a">
|
||||
Toggle
|
||||
</a>
|
||||
Social buttons
|
||||
</h4>
|
||||
<p id="social-buttons">
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-twitter">
|
||||
<i class="fa fa-fw fa-twitter">
|
||||
</i>
|
||||
Twitter
|
||||
</a>
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-facebook">
|
||||
<i class="fa fa-fw fa-facebook">
|
||||
</i>
|
||||
Facebook
|
||||
</a>
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-gplus">
|
||||
<i class="fa fa-fw fa-google-plus">
|
||||
</i>
|
||||
Google+
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
3
app/views/Admin/end.html
Normal file
3
app/views/Admin/end.html
Normal file
@ -0,0 +1,3 @@
|
||||
|
||||
</body>
|
||||
</html>
|
36
app/views/Admin/footer.html
Normal file
36
app/views/Admin/footer.html
Normal file
@ -0,0 +1,36 @@
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
<!-- Bootstrap -->
|
||||
<!-- App -->
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/bootstrap.js"></script>
|
||||
<script src="/public/admin/js/artDialog/jquery.artDialog.js?skin=default"></script>
|
||||
<script src="/public/js/common.js"></script>
|
||||
<script src="/public/admin/js/admin.js"></script>
|
||||
<script>
|
||||
$(function(){
|
||||
var pathname = location.pathname;
|
||||
var arr = pathname.split("/");
|
||||
if(arr.length == 0){
|
||||
return;
|
||||
}
|
||||
var controller = "";
|
||||
var action = "";
|
||||
if(arr[0] == "") {
|
||||
arr = arr.slice(1);
|
||||
}
|
||||
controller = arr[0];
|
||||
if(arr.length > 1) {
|
||||
action = arr[1];
|
||||
}
|
||||
$("#nav > li").removeClass("active");
|
||||
$("#" + controller + "Nav").addClass("active");
|
||||
|
||||
$('a[href="' + pathname + '"]').parent().addClass("active");
|
||||
});
|
||||
</script>
|
37
app/views/Admin/header.html
Normal file
37
app/views/Admin/header.html
Normal file
@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="keywords" content="leanote,leanote.com">
|
||||
<meta name="description" content="leanote, your own cloud note!">
|
||||
<meta name="author" content="leanote">
|
||||
<title>{{.title}}</title>
|
||||
|
||||
<link href="/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="/css/font-awesome-4.0.3/css/font-awesome.css" rel="stylesheet">
|
||||
<link href="/public/admin/css/admin.css" rel="stylesheet">
|
||||
<style>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function log(o) {
|
||||
if(window.console) {
|
||||
console.log(o);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="headerContainer" class="navbar-fixed-top">
|
||||
<div class="container" style="clearfix" id="header">
|
||||
<div class="pull-left">
|
||||
<h1 id="logo" class="clearfix">
|
||||
<a href="/admin/index"></a>
|
||||
<span>Admin</span>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
106
app/views/Admin/index.html
Normal file
106
app/views/Admin/index.html
Normal file
@ -0,0 +1,106 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Workset</h3> <small>Welcome you!</small> </div>
|
||||
<section class="panel panel-default">
|
||||
<div class="row m-l-none m-r-none bg-light lter">
|
||||
<div class="col-sm-6 col-md-3 padder-v b-r b-light">
|
||||
<span class="fa-stack fa-2x pull-left m-r-sm">
|
||||
<i class="fa fa-circle fa-stack-2x text-info"></i>
|
||||
<i class="fa fa-male fa-stack-1x text-white"></i>
|
||||
</span>
|
||||
<a class="clear" href="#">
|
||||
<span class="h3 block m-t-xs"><strong>52,000</strong></span>
|
||||
<small class="text-muted text-uc">users</small>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-3 padder-v b-r b-light lt">
|
||||
<span class="fa-stack fa-2x pull-left m-r-sm">
|
||||
<i class="fa fa-circle fa-stack-2x text-warning"></i>
|
||||
<i class="fa fa-file-o fa-stack-1x text-white"></i>
|
||||
</span>
|
||||
<a class="clear" href="#">
|
||||
<span class="h3 block m-t-xs"><strong>1312,000</strong></span>
|
||||
<small class="text-muted text-uc">notes</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 最新动态 -->
|
||||
<section class="panel panel-default">
|
||||
<h4 class="font-thin padder">
|
||||
Leanote Events
|
||||
</h4>
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
<p>
|
||||
Wellcome
|
||||
<a href="#" class="text-info">
|
||||
@Drew Wllon
|
||||
</a>
|
||||
and play this web application template, have fun1
|
||||
</p>
|
||||
<small class="block text-muted">
|
||||
<i class="fa fa-clock-o">
|
||||
</i>
|
||||
2 minuts ago
|
||||
</small>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<p>
|
||||
Morbi nec
|
||||
<a href="#" class="text-info">
|
||||
@Jonathan George
|
||||
</a>
|
||||
nunc condimentum ipsum dolor sit amet, consectetur
|
||||
</p>
|
||||
<small class="block text-muted">
|
||||
<i class="fa fa-clock-o">
|
||||
</i>
|
||||
1 hour ago
|
||||
</small>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<p>
|
||||
<a href="#" class="text-info">
|
||||
@Josh Long
|
||||
</a>
|
||||
Vestibulum ullamcorper sodales nisi nec adipiscing elit.
|
||||
</p>
|
||||
<small class="block text-muted">
|
||||
<i class="fa fa-clock-o">
|
||||
</i>
|
||||
2 hours ago
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="panel panel-default">
|
||||
<form>
|
||||
<textarea class="form-control no-border" rows="3" placeholder="Suggestions to leanote"></textarea>
|
||||
</form>
|
||||
<footer class="panel-footer bg-light lter">
|
||||
<button class="btn btn-info pull-right btn-sm">
|
||||
POST
|
||||
</button>
|
||||
<ul class="nav nav-pills nav-sm">
|
||||
<!--
|
||||
<li>
|
||||
<a href="#">
|
||||
<i class="fa fa-camera text-muted">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<i class="fa fa-video-camera text-muted">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
-->
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
{{template "admin/end.html" .}}
|
125
app/views/Admin/nav.html
Normal file
125
app/views/Admin/nav.html
Normal file
@ -0,0 +1,125 @@
|
||||
<nav class="nav-primary hidden-xs">
|
||||
<ul class="nav" id="nav">
|
||||
|
||||
<li class="active" id="adminUserNav">
|
||||
<a href="index.html">
|
||||
<i class="fa fa-users icon">
|
||||
<b class="bg-danger">
|
||||
</b>
|
||||
</i>
|
||||
<span class="pull-right">
|
||||
<i class="fa fa-angle-down text">
|
||||
</i>
|
||||
<i class="fa fa-angle-up text-active">
|
||||
</i>
|
||||
</span>
|
||||
<span>
|
||||
User
|
||||
</span>
|
||||
</a>
|
||||
<!-- 导航列表 -->
|
||||
<ul class="nav lt">
|
||||
<li>
|
||||
<a href="/adminUser/index">
|
||||
<span>
|
||||
List
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/adminUser/add">
|
||||
<span>
|
||||
Add User
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/adminBlog/index">
|
||||
<i class="fa fa-file icon">
|
||||
<b class="bg-warning">
|
||||
</b>
|
||||
</i>
|
||||
<span>
|
||||
Blog
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li id="adminSettingNav">
|
||||
<a href="#layout">
|
||||
<i class="fa fa-cog icon">
|
||||
<b class="bg-warning">
|
||||
</b>
|
||||
</i>
|
||||
<span class="pull-right">
|
||||
<i class="fa fa-angle-down text">
|
||||
</i>
|
||||
<i class="fa fa-angle-up text-active">
|
||||
</i>
|
||||
</span>
|
||||
<span>
|
||||
Setting
|
||||
</span>
|
||||
</a>
|
||||
<ul class="nav lt">
|
||||
<li>
|
||||
<a href="layout-c.html">
|
||||
<span>
|
||||
Register
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="layout-c.html">
|
||||
<span>
|
||||
Login
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="layout-r.html">
|
||||
<span>
|
||||
Email
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="layout-h.html">
|
||||
<span>
|
||||
Share
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/adminSetting/blog">
|
||||
<span>
|
||||
Blog
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/adminSetting/demo">
|
||||
<span>
|
||||
Demo User
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#layout">
|
||||
<i class="fa fa-columns icon">
|
||||
<b class="bg-warning">
|
||||
</b>
|
||||
</i>
|
||||
<span>
|
||||
Others
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
106
app/views/Admin/top.html
Normal file
106
app/views/Admin/top.html
Normal file
@ -0,0 +1,106 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" class="app">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>
|
||||
leanote admin
|
||||
</title>
|
||||
<meta name="description" content="leanote admin"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
|
||||
<link href="/css/font-awesome-4.0.3/css/font-awesome.css" rel="stylesheet">
|
||||
<link href="/public/admin/css/bootstrap.3.2.0.min.css" rel="stylesheet">
|
||||
<link href="/public/admin/css/admin.css" rel="stylesheet">
|
||||
<!--[if lt IE 9]>
|
||||
<script src="/public/admin/js/ie/html5shiv.js"></script>
|
||||
<script src="/public/admin/js/ie/respond.min.js"></script>
|
||||
<script src="/public/admin/js/ie/excanvas.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body class="">
|
||||
<section class="vbox">
|
||||
<header class="bg-dark dk header navbar navbar-fixed-top-xs">
|
||||
<div class="navbar-header aside-md clearfix" id="logo">
|
||||
<a href="/admin/index" class="navbar-brand" data-toggle="fullscreen"></a>
|
||||
<div>Admin</div>
|
||||
</div>
|
||||
|
||||
<ul class="nav navbar-nav navbar-right m-n hidden-xs nav-user">
|
||||
<li class="hidden-xs">
|
||||
<a href="/index" class="dk">
|
||||
Index
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-xs">
|
||||
<a href="/note" class="dk">
|
||||
My Note
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-xs">
|
||||
<a href="/blog/admin" class="dk">
|
||||
Blog
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-xs">
|
||||
<a href="/blog/admin" class="dk">
|
||||
Logout
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<section>
|
||||
<section class="hbox stretch">
|
||||
<!-- .aside -->
|
||||
<aside class="bg-light lter b-r aside-md hidden-print hidden-xs" id="nav">
|
||||
<section class="vbox">
|
||||
<header class="header bg-primary lter text-center clearfix">
|
||||
<div class="btn-group">
|
||||
<div class="hidden-nav-xs">
|
||||
<a class="btn btn-sm btn-primary">
|
||||
Welcome, admin!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section class="w-f scrollable">
|
||||
<div class="slim-scroll" data-height="auto" data-disable-fade-out="true"
|
||||
data-distance="0" data-size="5px" data-color="#333333">
|
||||
<!-- nav -->
|
||||
{{template "admin/nav.html" .}}
|
||||
<!-- / nav -->
|
||||
</div>
|
||||
</section>
|
||||
<footer class="footer lt hidden-xs b-t b-light">
|
||||
<a href="#nav" data-toggle="class:nav-xs" class="pull-right btn btn-sm btn-default btn-icon">
|
||||
<i class="fa fa-angle-left text">
|
||||
</i>
|
||||
<i class="fa fa-angle-right text-active">
|
||||
</i>
|
||||
</a>
|
||||
|
||||
</footer>
|
||||
</section>
|
||||
</aside>
|
||||
<!-- /.aside -->
|
||||
<section id="content">
|
||||
<section class="vbox">
|
||||
<section class="scrollable padder">
|
||||
<!-- 导航 -->
|
||||
<ul class="breadcrumb no-border no-radius b-b b-light pull-in">
|
||||
<li>
|
||||
<a href="index.html">
|
||||
<i class="fa fa-home">
|
||||
</i>
|
||||
Home
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Elements
|
||||
</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
Components
|
||||
</li>
|
||||
</ul>
|
||||
<!-- 主要内容区 -->
|
||||
|
7
app/views/Lea/footer.html
Normal file
7
app/views/Lea/footer.html
Normal file
@ -0,0 +1,7 @@
|
||||
<div id="footer">
|
||||
<a href="/lea/index">lea++</a>, leanote博客平台.
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
48
app/views/Lea/header.html
Normal file
48
app/views/Lea/header.html
Normal file
@ -0,0 +1,48 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="keywords" content="lea++, leanote,leanote.com">
|
||||
<meta name="description" content="lea++, leanote blog platform. leanote, your own cloud note!">
|
||||
<meta name="author" content="leanote">
|
||||
<link href="/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="/css/font-awesome-4.0.3/css/font-awesome.css" rel="stylesheet"/>
|
||||
<link href="/css/blog/p.css" rel="stylesheet">
|
||||
<title>lea++, leanote博客平台</title>
|
||||
<script>
|
||||
function log(o) {
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="header">
|
||||
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/lea/index">
|
||||
<span id="logo"></span>
|
||||
<span id="subTitle" title="lea++, leanote博客平台">lea++</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id="navbar" class="navbar-collapse collapse">
|
||||
<form class="navbar-form navbar-right">
|
||||
<input type="text" id="keywords" name="keywords" value="{{raw .keywords}}" class="form-control" placeholder="Search...">
|
||||
</form>
|
||||
<ul class="nav navbar-nav navbar-left">
|
||||
<li {{if eq .nav "recommend"}}class="active"{{end}}><a href="/lea/index">推荐</a></li>
|
||||
<li {{if eq .nav "latest"}}class="active"{{end}}><a href="/lea/latest">最新</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
68
app/views/Lea/index.html
Normal file
68
app/views/Lea/index.html
Normal file
@ -0,0 +1,68 @@
|
||||
{{template "lea/header.html" .}}
|
||||
{{if eq .nav "recommend"}}
|
||||
{{set $ "baseUrl" "/lea/index" }}
|
||||
{{else}}
|
||||
{{set $ "baseUrl" "/lea/latest" }}
|
||||
{{end}}
|
||||
<div id="content">
|
||||
<!-- 分类 -->
|
||||
<ul class="clearfix sort-nav">
|
||||
<li {{if not .tag}}class="active"{{end}}>
|
||||
<a class="category" href="{{$.baseUrl}}">全部</a>
|
||||
</li>
|
||||
{{range $v := .tags}}
|
||||
<li {{if eq $v $.tag}}class="active"{{end}}>
|
||||
<a class="category" data-category-id="{{$v}}" href="{{$.baseUrl}}?tag={{$v}}">{{$v}}</a>
|
||||
</li>
|
||||
{{end}}
|
||||
</ul>
|
||||
<!-- 文章列表 -->
|
||||
<ul class="thumbnails">
|
||||
{{range .blogs}}
|
||||
<li>
|
||||
<div class="article">
|
||||
<a class="title" href="/blog/view/{{.NoteId.Hex}}" title="{{.Title}} {{msg $ "fullBlog"}}" target="_blank">{{.Title}}</a>
|
||||
<a class="avatar maleskine-author" href="/blog/{{.UserId.Hex}}" target="_blank" title="{{.User.Username}}">
|
||||
{{ if .User.Logo}}
|
||||
<img src="{{.User.Logo}}">
|
||||
{{else}}
|
||||
<img src="/images/blog/default_avatar.png">
|
||||
{{end}}
|
||||
</a>
|
||||
<div class="content">
|
||||
{{.Desc | raw}}
|
||||
</div>
|
||||
<div class="article-info">
|
||||
<a class="author" href="/blog/{{.User.Username}}">
|
||||
<span class="fa fa-user"></span>
|
||||
{{.User.Username}}
|
||||
</a>
|
||||
|
||||
<!--
|
||||
<span class="fa fa-comments-o"></span>9
|
||||
<span class="fa fa-heart-o"></span>6
|
||||
-->
|
||||
|
||||
<span class="fa fa-bookmark-o"></span>
|
||||
{{if .Tags}}
|
||||
{{blogTags .Tags}}
|
||||
{{else}}
|
||||
{{msg $ "noTag"}}
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{{end}}
|
||||
</ul>
|
||||
|
||||
<div id="pagination" class="clearfix">
|
||||
{{if eq .nav "recommend"}}
|
||||
{{set . "url" (urlConcat "/lea/index" "keywords" .keywords)}}
|
||||
{{else}}
|
||||
{{set . "url" (urlConcat "/lea/latest" "keywords" .keywords)}}
|
||||
{{end}}
|
||||
{{template "lea/page.html" .}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{template "lea/footer.html" .}}
|
33
app/views/Lea/page.html
Normal file
33
app/views/Lea/page.html
Normal file
@ -0,0 +1,33 @@
|
||||
{{if gt .pageInfo.TotalPage 1}}
|
||||
<ul class="pagination pagination-sm m-t-none m-b-none">
|
||||
<li class="{{if eq $.pageInfo.CurPage 1}}disabled{{end}}" >
|
||||
<a href="{{if eq $.pageInfo.CurPage 1}}javascript:;{{else}}{{sub $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-left">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{{range $i := N 1 .pageInfo.TotalPage}}
|
||||
{{if eq $i $.pageInfo.CurPage}}
|
||||
<li class="active">
|
||||
<a href="javascript:;">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{else}}
|
||||
<li class="">
|
||||
<a href="{{urlConcat $.url "page" $i}}">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
<li class="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}disabled{{end}}" >
|
||||
<a href="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}javascript:;{{else}}{{add $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-right">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{{end}}
|
4171
public/admin/css/admin.css
Normal file
4171
public/admin/css/admin.css
Normal file
File diff suppressed because it is too large
Load Diff
4705
public/admin/css/admin.less
Normal file
4705
public/admin/css/admin.less
Normal file
File diff suppressed because it is too large
Load Diff
5
public/admin/css/bootstrap.3.2.0.min.css
vendored
Normal file
5
public/admin/css/bootstrap.3.2.0.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
556
public/admin/js/admin.js
Normal file
556
public/admin/js/admin.js
Normal file
@ -0,0 +1,556 @@
|
||||
function log(o) {
|
||||
console.log(o);
|
||||
}
|
||||
|
||||
var ARTDIALOG = {stack:[], id: 1};
|
||||
ARTDIALOG.defaultConfig = {title:"", draggable: false, padding: 0, fixed: false, lock: false, opacity: 0.3};
|
||||
function openDialog(config) {
|
||||
config = config || {};
|
||||
if(!config.id) {
|
||||
config.id = ARTDIALOG.id++;
|
||||
}
|
||||
if(config.content) {
|
||||
// $("#life")
|
||||
if(typeof config.content == "object") {
|
||||
try {
|
||||
config.content = config.content.get(0);
|
||||
} catch(e) {
|
||||
// 不是jquery对象, 而是dom对象, document.getElementById("xx")
|
||||
// config.content = config.content;
|
||||
}
|
||||
}
|
||||
}
|
||||
config = $.extend({}, ARTDIALOG.defaultConfig, config);
|
||||
// var content = "<div id='sys-ibank'>" + $("#sys-ibank").html() + "</div>";
|
||||
var d = art.dialog(config);
|
||||
|
||||
if(config.url) {
|
||||
ajaxGetHtml(config.url, {}, function(ret) {
|
||||
d.content(ret);
|
||||
});
|
||||
}
|
||||
|
||||
ARTDIALOG.stack.push(config.id);
|
||||
return d;
|
||||
// $( "#sys-ibank" ).dialog({title:"插入图片", width: 800,draggable: false});
|
||||
}
|
||||
function closeDialog(){
|
||||
var list = art.dialog.list;
|
||||
if(!list) {
|
||||
return;
|
||||
}
|
||||
while(true) {
|
||||
var d = ARTDIALOG.stack.pop();
|
||||
if(d) {
|
||||
if(list[d]) {
|
||||
list[d].close();
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 关闭最近内容为loading的dialog
|
||||
function closeLatestLoadingDialog() {
|
||||
var list = art.dialog.list;
|
||||
if(!list) {
|
||||
return;
|
||||
}
|
||||
while(true) {
|
||||
var d = ARTDIALOG.stack.pop();
|
||||
if(d) {
|
||||
if(list[d]) {
|
||||
var dd = list[d];
|
||||
if($(dd.content()).text() == "loading..") {
|
||||
dd.close();
|
||||
}
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(typeof art != "undefined") {
|
||||
/**
|
||||
* 警告
|
||||
* @param {String} 消息内容
|
||||
*/
|
||||
art.alert = function (content, callback) {
|
||||
return artDialog({
|
||||
id: 'Alert',
|
||||
icon: 'warning',
|
||||
fixed: true,
|
||||
lock: true,
|
||||
content: content,
|
||||
ok: true,
|
||||
opacity: 0.3,
|
||||
close: callback
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 确认
|
||||
* @param {String} 消息内容
|
||||
* @param {Function} 确定按钮回调函数
|
||||
* @param {Function} 取消按钮回调函数
|
||||
*/
|
||||
art.confirm = function (content, yes, no) {
|
||||
return artDialog({
|
||||
id: 'Confirm',
|
||||
icon: 'question',
|
||||
fixed: true,
|
||||
lock: true,
|
||||
opacity: .3,
|
||||
content: content,
|
||||
ok: function (here) {
|
||||
return yes.call(this, here);
|
||||
},
|
||||
cancel: function (here) {
|
||||
return no && no.call(this, here);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* 提问
|
||||
* @param {String} 提问内容
|
||||
* @param {Function} 回调函数. 接收参数:输入值
|
||||
* @param {String} 默认值
|
||||
*/
|
||||
art.prompt = function (content, yes, value) {
|
||||
value = value || '';
|
||||
var input;
|
||||
|
||||
return artDialog({
|
||||
id: 'Prompt',
|
||||
icon: 'question',
|
||||
fixed: true,
|
||||
lock: true,
|
||||
opacity: .3,
|
||||
content: [
|
||||
'<div style="margin-bottom:5px;font-size:12px">',
|
||||
content,
|
||||
'</div>',
|
||||
'<div>',
|
||||
'<input value="',
|
||||
value,
|
||||
'" style="width:18em;padding:6px 4px" />',
|
||||
'</div>'
|
||||
].join(''),
|
||||
init: function () {
|
||||
input = this.DOM.content.find('input')[0];
|
||||
input.select();
|
||||
input.focus();
|
||||
},
|
||||
ok: function (here) {
|
||||
return yes && yes.call(this, input.value, here);
|
||||
},
|
||||
cancel: true
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* 短暂提示
|
||||
* @param {String} 提示内容
|
||||
* @param {Number} 显示时间 (默认1.5秒)
|
||||
*/
|
||||
art.tips = function (content, time) {
|
||||
return artDialog({
|
||||
id: 'Tips',
|
||||
title: false,
|
||||
cancel: false,
|
||||
fixed: true,
|
||||
lock: true,
|
||||
opacity: 0.3
|
||||
})
|
||||
.content('<div style="padding: 0 1em;">' + content + '</div>')
|
||||
.time(time || 1);
|
||||
};
|
||||
|
||||
// art dialog bind
|
||||
// <a href="javascript:;" id="agree_btn" class="button art-dialog" data-url="index.php?app=seller_refund&action=confirm_refund&order_id=55" data-title="确认退款">同意退款</a>
|
||||
$(function() {
|
||||
$(".art-dialog").click(function(){
|
||||
var title = $(this).data('title');
|
||||
var url = $(this).data("url");
|
||||
var lock = +$(this).data('lock');
|
||||
var width = $(this).data('width');
|
||||
var config = {url: url, title: title, lock: lock};
|
||||
if(width) {
|
||||
config.width = width;
|
||||
}
|
||||
openDialog(config);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 删除确认
|
||||
function drop_confirm(msg, url) {
|
||||
if(art) {
|
||||
art.confirm(msg,function(){
|
||||
// window.location = url;
|
||||
var self = this;
|
||||
self.content("正在处理...");
|
||||
ajaxGet(url, {}, function(ret) {
|
||||
if(ret.done) {
|
||||
self.content("操作成功, 正在刷新...");
|
||||
location.reload();
|
||||
} else {
|
||||
art.alert(ret.msg);
|
||||
}
|
||||
self.close();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
} else {
|
||||
if(confirm(msg)){
|
||||
window.location = url;
|
||||
}
|
||||
}
|
||||
}
|
||||
function init_validator(target, rules, messages) {
|
||||
var config = {
|
||||
errorElement : 'div',
|
||||
errorClass : 'help-block alert alert-warning',
|
||||
focusInvalid : false,
|
||||
ignore: ".ignore",
|
||||
highlight : function(element) {
|
||||
var $p = $(element).closest('.control-group');
|
||||
$p.removeClass("success").addClass('error');
|
||||
},
|
||||
success : function(label) {
|
||||
var $p = label.closest('.control-group');
|
||||
$p.removeClass('error');
|
||||
$p.addClass("success");
|
||||
|
||||
$p.find(".help-block").hide();
|
||||
$(label).hide();
|
||||
},
|
||||
errorPlacement : function(error, element) {
|
||||
var $p = element.parent('div');
|
||||
element.parent('div').append(error);
|
||||
log(element);
|
||||
log($p);
|
||||
},
|
||||
submitHandler : function(form) {
|
||||
form.submit();
|
||||
}
|
||||
};
|
||||
if(rules) {
|
||||
config.rules = rules;
|
||||
}
|
||||
if(messages) {
|
||||
config.messages = messages;
|
||||
}
|
||||
return $(target).validate(config);
|
||||
}
|
||||
|
||||
|
||||
function enter_submit(btnId) {
|
||||
var theEvent = window.event || arguments.callee.caller.arguments[0];
|
||||
if(theEvent.keyCode == 13||theEvent.keyCode == 108) {
|
||||
$(btnId).trigger('click');
|
||||
}
|
||||
}
|
||||
|
||||
!function ($) {
|
||||
$(function(){
|
||||
|
||||
// life
|
||||
$(".nav li > a").click(function(e) {
|
||||
$p = $(this).closest("ul");
|
||||
var $li = $(this).closest("li");
|
||||
if($li.find("ul").length == 0) {
|
||||
return true;
|
||||
}
|
||||
e.preventDefault();
|
||||
var hasClass = $li.hasClass("active");
|
||||
$p.find("li").removeClass("active");
|
||||
if(hasClass) {
|
||||
} else {
|
||||
$li.addClass("active");
|
||||
}
|
||||
});
|
||||
|
||||
// sort
|
||||
$(".th-sortable").click(function() {
|
||||
var up = $(this).hasClass("th-sort-up");
|
||||
var down = $(this).hasClass("th-sort-down");
|
||||
var url = $(this).data("url");
|
||||
var sorter = $(this).data("sorter");
|
||||
var t = "th-sort-up";
|
||||
if(up) {
|
||||
t = "th-sort-down";
|
||||
var sUrl = "sorter=" + sorter + "-down";
|
||||
} else {
|
||||
var sUrl = "sorter=" + sorter + "-up";
|
||||
}
|
||||
|
||||
if(url.indexOf("?") > 0) {
|
||||
location.href = url + "&" + sUrl;
|
||||
} else {
|
||||
location.href = url + "?" + sUrl;
|
||||
}
|
||||
$(this).removeClass("th-sort-up th-sort-down").addClass(t);
|
||||
});
|
||||
|
||||
// search
|
||||
$(".search-group input").keyup(function(e){
|
||||
enter_submit(".search-group button");
|
||||
});
|
||||
$(".search-group button").click(function(e){
|
||||
var url = $(this).data("url");
|
||||
$input = $(this).closest(".search-group").find("input");
|
||||
var keywords = $input.val();
|
||||
/*
|
||||
if(!keywords) {
|
||||
$input.focus();
|
||||
return;
|
||||
}
|
||||
*/
|
||||
if(url.indexOf("?") > 0) {
|
||||
location.href = url + "&keywords=" + keywords;
|
||||
} else {
|
||||
location.href = url + "?keywords=" + keywords;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//--------------------------
|
||||
|
||||
// sparkline
|
||||
var sr, sparkline = function($re){
|
||||
$(".sparkline").each(function(){
|
||||
var $data = $(this).data();
|
||||
if($re && !$data.resize) return;
|
||||
($data.type == 'pie') && $data.sliceColors && ($data.sliceColors = eval($data.sliceColors));
|
||||
($data.type == 'bar') && $data.stackedBarColor && ($data.stackedBarColor = eval($data.stackedBarColor));
|
||||
$data.valueSpots = {'0:': $data.spotColor};
|
||||
$(this).sparkline('html', $data);
|
||||
});
|
||||
};
|
||||
$(window).resize(function(e) {
|
||||
clearTimeout(sr);
|
||||
sr = setTimeout(function(){sparkline(true)}, 500);
|
||||
});
|
||||
sparkline(false);
|
||||
|
||||
|
||||
// easypie
|
||||
$('.easypiechart').each(function(){
|
||||
var $this = $(this),
|
||||
$data = $this.data(),
|
||||
$step = $this.find('.step'),
|
||||
$target_value = parseInt($($data.target).text()),
|
||||
$value = 0;
|
||||
$data.barColor || ( $data.barColor = function($percent) {
|
||||
$percent /= 100;
|
||||
return "rgb(" + Math.round(200 * $percent) + ", 200, " + Math.round(200 * (1 - $percent)) + ")";
|
||||
});
|
||||
$data.onStep = function(value){
|
||||
$value = value;
|
||||
$step.text(parseInt(value));
|
||||
$data.target && $($data.target).text(parseInt(value) + $target_value);
|
||||
}
|
||||
$data.onStop = function(){
|
||||
$target_value = parseInt($($data.target).text());
|
||||
$data.update && setTimeout(function() {
|
||||
$this.data('easyPieChart').update(100 - $value);
|
||||
}, $data.update);
|
||||
}
|
||||
$(this).easyPieChart($data);
|
||||
});
|
||||
|
||||
// combodate
|
||||
$(".combodate").each(function(){
|
||||
$(this).combodate();
|
||||
$(this).next('.combodate').find('select').addClass('form-control');
|
||||
});
|
||||
|
||||
// datepicker
|
||||
$(".datepicker-input").each(function(){ $(this).datepicker();});
|
||||
|
||||
// dropfile
|
||||
$('.dropfile').each(function(){
|
||||
var $dropbox = $(this);
|
||||
if (typeof window.FileReader === 'undefined') {
|
||||
$('small',this).html('File API & FileReader API not supported').addClass('text-danger');
|
||||
return;
|
||||
}
|
||||
|
||||
this.ondragover = function () {$dropbox.addClass('hover'); return false; };
|
||||
this.ondragend = function () {$dropbox.removeClass('hover'); return false; };
|
||||
this.ondrop = function (e) {
|
||||
e.preventDefault();
|
||||
$dropbox.removeClass('hover').html('');
|
||||
var file = e.dataTransfer.files[0],
|
||||
reader = new FileReader();
|
||||
reader.onload = function (event) {
|
||||
$dropbox.append($('<img>').attr('src', event.target.result));
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
return false;
|
||||
};
|
||||
});
|
||||
|
||||
// fuelux pillbox
|
||||
var addPill = function($input){
|
||||
var $text = $input.val(), $pills = $input.closest('.pillbox'), $repeat = false, $repeatPill;
|
||||
if($text == "") return;
|
||||
$("li", $pills).text(function(i,v){
|
||||
if(v == $text){
|
||||
$repeatPill = $(this);
|
||||
$repeat = true;
|
||||
}
|
||||
});
|
||||
if($repeat) {
|
||||
$repeatPill.fadeOut().fadeIn();
|
||||
return;
|
||||
};
|
||||
$item = $('<li class="label bg-dark">'+$text+'</li> ');
|
||||
$item.insertBefore($input);
|
||||
$input.val('');
|
||||
$pills.trigger('change', $item);
|
||||
};
|
||||
|
||||
$('.pillbox input').on('blur', function() {
|
||||
addPill($(this));
|
||||
});
|
||||
|
||||
$('.pillbox input').on('keypress', function(e) {
|
||||
if(e.which == 13) {
|
||||
e.preventDefault();
|
||||
addPill($(this));
|
||||
}
|
||||
});
|
||||
|
||||
// slider
|
||||
$('.slider').each(function(){
|
||||
$(this).slider();
|
||||
});
|
||||
|
||||
// wizard
|
||||
$(document).on('change', '.wizard', function (e, data) {
|
||||
if(data.direction !== 'next' ) return;
|
||||
var item = $(this).wizard('selectedItem');
|
||||
var $step = $(this).find('.step-pane:eq(' + (item.step-1) + ')');
|
||||
var validated = true;
|
||||
$('[data-required="true"]', $step).each(function(){
|
||||
return (validated = $(this).parsley( 'validate' ));
|
||||
});
|
||||
if(!validated) return e.preventDefault();
|
||||
});
|
||||
|
||||
// sortable
|
||||
if ($.fn.sortable) {
|
||||
$('.sortable').sortable();
|
||||
}
|
||||
|
||||
// slim-scroll
|
||||
$('.no-touch .slim-scroll').each(function(){
|
||||
var $self = $(this), $data = $self.data(), $slimResize;
|
||||
$self.slimScroll($data);
|
||||
$(window).resize(function(e) {
|
||||
clearTimeout($slimResize);
|
||||
$slimResize = setTimeout(function(){$self.slimScroll($data);}, 500);
|
||||
});
|
||||
|
||||
$(document).on('updateNav', function(){
|
||||
$self.slimScroll($data);
|
||||
});
|
||||
});
|
||||
|
||||
// pjax
|
||||
if ($.support.pjax) {
|
||||
$(document).on('click', 'a[data-pjax]', function(event) {
|
||||
event.preventDefault();
|
||||
var container = $($(this).data('target'));
|
||||
$.pjax.click(event, {container: container});
|
||||
})
|
||||
};
|
||||
|
||||
// portlet
|
||||
$('.portlet').each(function(){
|
||||
$(".portlet").sortable({
|
||||
connectWith: '.portlet',
|
||||
iframeFix: false,
|
||||
items: '.portlet-item',
|
||||
opacity: 0.8,
|
||||
helper: 'original',
|
||||
revert: true,
|
||||
forceHelperSize: true,
|
||||
placeholder: 'sortable-box-placeholder round-all',
|
||||
forcePlaceholderSize: true,
|
||||
tolerance: 'pointer'
|
||||
});
|
||||
});
|
||||
|
||||
// docs
|
||||
$('#docs pre code').each(function(){
|
||||
var $this = $(this);
|
||||
var t = $this.html();
|
||||
$this.html(t.replace(/</g, '<').replace(/>/g, '>'));
|
||||
});
|
||||
|
||||
// fontawesome
|
||||
$(document).on('click', '.fontawesome-icon-list a', function(e){
|
||||
e && e.preventDefault();
|
||||
});
|
||||
|
||||
// table select/deselect all
|
||||
$(document).on('change', 'table thead [type="checkbox"]', function(e){
|
||||
e && e.preventDefault();
|
||||
var $table = $(e.target).closest('table'), $checked = $(e.target).is(':checked');
|
||||
$('tbody [type="checkbox"]',$table).prop('checked', $checked);
|
||||
});
|
||||
|
||||
// random progress
|
||||
$(document).on('click', '[data-toggle^="progress"]', function(e){
|
||||
e && e.preventDefault();
|
||||
|
||||
$el = $(e.target);
|
||||
$target = $($el.data('target'));
|
||||
$('.progress', $target).each(
|
||||
function(){
|
||||
var $max = 50, $data, $ps = $('.progress-bar',this).last();
|
||||
($(this).hasClass('progress-xs') || $(this).hasClass('progress-sm')) && ($max = 100);
|
||||
$data = Math.floor(Math.random()*$max)+'%';
|
||||
$ps.css('width', $data).attr('data-original-title', $data);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
// add notes
|
||||
function addMsg($msg){
|
||||
var $el = $('.nav-user'), $n = $('.count:first', $el), $v = parseInt($n.text());
|
||||
$('.count', $el).fadeOut().fadeIn().text($v+1);
|
||||
$($msg).hide().prependTo($el.find('.list-group')).slideDown().css('display','block');
|
||||
}
|
||||
var $msg = '<a href="#" class="media list-group-item">'+
|
||||
'<span class="pull-left thumb-sm text-center">'+
|
||||
'<i class="fa fa-envelope-o fa-2x text-success"></i>'+
|
||||
'</span>'+
|
||||
'<span class="media-body block m-b-none">'+
|
||||
'Sophi sent you a email<br>'+
|
||||
'<small class="text-muted">1 minutes ago</small>'+
|
||||
'</span>'+
|
||||
'</a>';
|
||||
setTimeout(function(){addMsg($msg);}, 1500);
|
||||
|
||||
// select2
|
||||
if ($.fn.select2) {
|
||||
$("#select2-option").select2();
|
||||
$("#select2-tags").select2({
|
||||
tags:["red", "green", "blue"],
|
||||
tokenSeparators: [",", " "]}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
}(window.jQuery);
|
41
public/admin/js/artDialog/.svn/all-wcprops
Normal file
41
public/admin/js/artDialog/.svn/all-wcprops
Normal file
@ -0,0 +1,41 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 71
|
||||
/svn/ecmall/!svn/ver/367/ecmall/includes/libraries/javascript/artDialog
|
||||
END
|
||||
license.txt
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 82
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/license.txt
|
||||
END
|
||||
index.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 81
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/index.html
|
||||
END
|
||||
artDialog.source.js
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 90
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/artDialog.source.js
|
||||
END
|
||||
jquery.artDialog.source.js
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 97
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/jquery.artDialog.source.js
|
||||
END
|
||||
artDialog.js
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 83
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/artDialog.js
|
||||
END
|
||||
jquery.artDialog.js
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 91
|
||||
/svn/ecmall/!svn/ver/367/ecmall/includes/libraries/javascript/artDialog/jquery.artDialog.js
|
||||
END
|
248
public/admin/js/artDialog/.svn/entries
Normal file
248
public/admin/js/artDialog/.svn/entries
Normal file
@ -0,0 +1,248 @@
|
||||
10
|
||||
|
||||
dir
|
||||
371
|
||||
https://42.121.52.247/svn/ecmall/ecmall/includes/libraries/javascript/artDialog
|
||||
https://42.121.52.247/svn/ecmall
|
||||
|
||||
|
||||
|
||||
2014-08-17T09:53:23.915878Z
|
||||
367
|
||||
litie
|
||||
|
||||
|
||||
svn:special svn:externals svn:needs-lock
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
d8fde07f-0130-2f47-8851-2ad99dc1c468
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
0
|
||||
|
||||
_doc
|
||||
dir
|
||||
|
||||
artDialog.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
96b775131928186a269e3c93ecd8608a
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
25087
|
||||
|
||||
artDialog.source.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
db4b85962f603c5f7cc938eebe6ce7ef
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
54000
|
||||
|
||||
index.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
dce1000b4c176c0f784c09f46096ad28
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
9916
|
||||
|
||||
jquery.artDialog.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-08-17T09:27:53.000000Z
|
||||
c13dd0e19254f0da17a00a0b718d1c1b
|
||||
2014-08-17T09:53:23.915878Z
|
||||
367
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
16141
|
||||
|
||||
jquery.artDialog.source.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
9fb82c1ba68d570bbf6c3bbba3922527
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
33957
|
||||
|
||||
license.txt
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
ad68978264a8534f355b1fff51e3e092
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
7814
|
||||
|
||||
plugins
|
||||
dir
|
||||
|
||||
skins
|
||||
dir
|
||||
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
162
public/admin/js/artDialog/.svn/text-base/index.html.svn-base
Normal file
162
public/admin/js/artDialog/.svn/text-base/index.html.svn-base
Normal file
@ -0,0 +1,162 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>artDialog</title>
|
||||
<meta name="keywords" content="artDialog,javascript,dialog,jQuery" />
|
||||
<meta name="description" content="artDialog是一个精巧的web对话框组件,压缩后只有十多KB,并且不依赖其他框架。" />
|
||||
<script>
|
||||
// skin demo
|
||||
(function() {
|
||||
var _skin, _jQuery;
|
||||
var _search = window.location.search;
|
||||
if (_search) {
|
||||
_skin = _search.split('demoSkin=')[1];
|
||||
_jQuery = _search.indexOf('jQuery=true') !== -1;
|
||||
if (_jQuery) document.write('<scr'+'ipt src="jquery-1.6.2.min.js"></sc'+'ript>');
|
||||
};
|
||||
|
||||
document.write('<scr'+'ipt src="artDialog.source.js?skin=' + (_skin || 'default') +'"></sc'+'ript>');
|
||||
window._isDemoSkin = !!_skin;
|
||||
})();
|
||||
</script>
|
||||
<script src="./plugins/iframeTools.source.js"></script>
|
||||
<script src="./_doc/demo.js"></script>
|
||||
<script src="./_doc/highlight/highlight.pack.js"></script>
|
||||
<script src="./_doc/highlight/languages/javascript.js"></script>
|
||||
<script>
|
||||
hljs.tabReplace = ' ';
|
||||
hljs.initHighlightingOnLoad();
|
||||
</script>
|
||||
<link href="./_doc/demo.css" rel="stylesheet" type="text/css" />
|
||||
<link rel="stylesheet" href="./_doc/highlight/styles/magula.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="doc">
|
||||
<div id="header">
|
||||
<h1 id="logo"><a href="index.html">artDialog</a></h1>
|
||||
<ul id="nav" class="nav">
|
||||
<li><a href="index.html" class="home">首页</a></li>
|
||||
<li><a href="./_doc/API.html" class="api">文档</a></li>
|
||||
<li><a href="./_doc/down.html" class="down">下载</a></li>
|
||||
<li><a href="./_doc/log.html" class="log">更新</a></li>
|
||||
<li><a href="./_doc/labs.html" class="labs">实验</a></li>
|
||||
<li><a href="./_doc/license.html" class="license">授权</a></li>
|
||||
|
|
||||
<li><a href="#" id="nav-skin">皮肤</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="main">
|
||||
<div class="tips" style="margin:4px 5px; padding:8px; background:#EEF7F5; text-align:left; color:#000; border-radius:3px; border:1px solid #D7EAE2; ">artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口</div>
|
||||
<dl class="about">
|
||||
<dt>自适应内容</dt>
|
||||
<dd>artDialog的特殊UI框架能够适应内容变化,甚至连外部程序动态插入的内容它仍然能自适应,因此你不必去考虑消息内容尺寸使用它。它的消息容器甚至能够根据宽度让文本居中或居左对齐——这一切全是XHTML+CSS原生实现。</dd>
|
||||
<dt>完善的接口</dt>
|
||||
<dd>它的接口完善,可以轻易与外部程序配合使用。如异步写入消息、控制位置、尺寸、显示与隐藏、关闭等。</dd>
|
||||
<dt>细致的体验</dt>
|
||||
<dd>如果不是在输入状态,它支持Esc快捷键关闭;可指定在元素附近弹出,让操作更便捷;智能给按钮添加焦点;黄金比例垂直居中;超大响应区域特别为ipad等触屏设备优化;预先缓存皮肤图片更快响应……</dd>
|
||||
<dt>跨平台兼容</dt>
|
||||
<dd>兼容:IE6+、Firefox、Chrome、Safari、Opera以及iPad等移动设备。并且IE6下也能支持现代浏览器的静止定位(<a href="http://www.planeart.cn/?p=877" target="_blank" title="阅读作者ie6Fixed相关博文" style="text-decoration:underline">fixed</a>)、<!--[if gte IE 7]><!-->覆盖下拉控件<!--<![endif]--><!--[if lt IE 7]><select><option>覆盖下拉控件</option></select><![endif]-->、alpha通道png背景。</dd>
|
||||
</dl>
|
||||
<h2>快速入门</h2>
|
||||
<h3>一、使用传统的参数</h3>
|
||||
<p>art.dialog(content, ok, cancel)</p>
|
||||
<div id="demoCode01">
|
||||
<pre><code class=" javascript">art.dialog('简单愉悦的接口,强大的表现力,优雅的内部实现', function(){alert('yes');});</code></pre>
|
||||
</div>
|
||||
<p class="buttons">
|
||||
<button class="runCode" id="btn1" title="btn1" name="demoCode01">运行»</button>
|
||||
</p>
|
||||
<h3>二、使用字面量传参</h3>
|
||||
<p>art.dialog(options)</p>
|
||||
<div id="demoCode02">
|
||||
<pre><code class=" javascript">var dialog = art.dialog({
|
||||
title: '欢迎',
|
||||
content: '欢迎使用artDialog对话框组件!',
|
||||
icon: 'succeed',
|
||||
follow: document.getElementById('btn2'),
|
||||
ok: function(){
|
||||
this.title('警告').content('请注意artDialog两秒后将关闭!').lock().time(2);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
</code></pre>
|
||||
</div>
|
||||
<p class="buttons">
|
||||
<button class="runCode" id="btn2" title="btn2" name="demoCode02">运行»</button>
|
||||
</p>
|
||||
<p>更多配置参数用法请查阅API文档: <a href="./_doc/API.html#options">./_doc/API.html#options</a></p>
|
||||
<h3>三、扩展方法</h3>
|
||||
<p>需要对弹出后的对话框操作?artDialog简单实用的扩展方法可以使这一切变得简单。</p>
|
||||
<p>如在ajax异步操作中,我们可以先定义一个变量引用对话框返回的扩展方法:</p>
|
||||
<pre><code class=" javascript">var myDialog = art.dialog();// 初始化一个带有loading图标的空对话框
|
||||
jQuery.ajax({
|
||||
url: 'http://web5.qq.com/content?id=1',
|
||||
success: function (data) {
|
||||
myDialog.content(data);// 填充对话框内容
|
||||
}
|
||||
});
|
||||
</code></pre>
|
||||
<p>如果需要使用程序控制关闭,可以使用"close"方法关闭对话框:</p>
|
||||
<pre><code class=" javascript">myDialog.close();</code></pre>
|
||||
<p>更多扩展方法用法请查阅API文档: <a href="./_doc/API.html#API">./_doc/API.html#API</a></p>
|
||||
<h2>插件:框架应用工具</h2>
|
||||
<p>artDialog针对CMS类的框架应用提供了专属插件,如穿越框架、iframe、AJAX、跨框架传值操作等。</p>
|
||||
<p>例: 使用open方法嵌入页面,并使用data方法在各个iframe间传递数据:</p>
|
||||
<div id="demoCode04-3">
|
||||
<pre><code class="javascript">var val = document.getElementById('demoInput04-3').value;
|
||||
art.dialog.data('test', val);
|
||||
art.dialog.data('homeDemoPath', './_doc/');
|
||||
|
||||
// 此时 iframeA.html 页面可以使用 art.dialog.data('test') 获取到数据,如:
|
||||
// document.getElementById('aInput').value = art.dialog.data('test');
|
||||
art.dialog.open('./_doc/iframeA.html');
|
||||
</code></pre>
|
||||
</div>
|
||||
<p class="buttons"> 请输入测试文字:
|
||||
<input id="demoInput04-3" title="demoInput04-3" type="text" value="精于心,简于形" style="padding:4px; width:16em; margin-right:10px" />
|
||||
<button class="runCode" name="demoCode04-3">运行»</button>
|
||||
</p>
|
||||
<p>插件更多功能请查阅API文档: <a target="_blank" href="./iframeTop.html">./iframeTop.html</a></p>
|
||||
<h2>jQuery + artDialog</h2>
|
||||
<p>artDialog提供了一个jQuery版本,功能与标准版一致,调用只需要把art前缀改成jQuery的命名空间。</p>
|
||||
<pre><code class=" javascript">// 普通调用
|
||||
$.dialog({content:'hello world!'});
|
||||
|
||||
// 使用选择器方式,此时自动使用绑定了live click事件,同时启用follow模式
|
||||
$('#main .test').dialog({content: 'hello world'});</code></pre>
|
||||
<p>(最低兼容jquery1.3.2,但框架应用插件需要jquery1.4+运行<a href="#?" title="jQuery版本小于1.4不能获取iframe内部尺寸,导致open方法无法自适应内容尺寸">[?]</a>)</p>
|
||||
<h2>联系</h2>
|
||||
|
||||
|
||||
<div style="margin:4px 0; padding:5px; background:#EEF7F5; text-align:left; color:#000; border-radius:3px; border:1px solid #D7EAE2;" class="tips"><span style="color:#DFB113">注意!</span>artDialog4+即将停止维护,在框架满天飞的时代结束后,其历史使命已经完成。新版本<a href="https://github.com/aui/artDialog" style="text-decoration:underline;">artDialog 5+</a>很小,却依然动人。若要迁移,请抛弃iframe,使用ajax技术。</div>
|
||||
|
||||
<p>如果你对artDialog有什么意见建议可以用下面任意一种联系方式找到作者。artDialog一直在不断完善自身,这个愉悦的过程中感谢有你的参与~</p>
|
||||
<p><strong>提交BUG必备项</strong>:1、浏览器名称,版本 2、artDialog版本号(只支持4+版本) 3、简明扼要的描述信息 4、建议提取一份BUG DEMO,这样解决问题的概率增加300%</p>
|
||||
<p>如果对使用问题有疑惑,可以前往由 artDialog 爱好者建立的QQ群寻求帮助(前提是先自己阅读文档): 44030323 </p>
|
||||
<p>作者:糖饼<br />
|
||||
邮箱:<span id="myEmail"></span> <span style="color:#990">(仅用作bug提交)</span><br />
|
||||
网站:<a href="http://www.planeart.cn" target="_blank">PlaneArt.Cn</a><br />
|
||||
微博:<a href="http://t.qq.com/tangbin">t.qq.com/tangbin</a></p>
|
||||
<h2>捐赠</h2>
|
||||
<p>artDialog就是你一直想要的对话框么?哇~那么我非常期待您能够热情的提供15元或者其他金额的捐赠鼓励~正如您支持其他开源项目一样。</p>
|
||||
<p>支付宝: <a href="https://me.alipay.com/planeart" target="_blank">https://me.alipay.com/planeart</a></p>
|
||||
<p>您因如果使用artDialog而受益或者感到愉悦,您还可以这样帮助artDialog成长:</p>
|
||||
<p> 1、共同参与并完善artDialog或用blog/微博/Twitter把它分享它给更多的人。</p>
|
||||
<p> 2、如artDialog有幸被用在你的项目,请您联系我,我后续将在artDialog主页展示您项目/企业的LOGO(目前有盛大phpCMS、腾讯、中国电信等企业使用它)。</p>
|
||||
</div>
|
||||
<div id="footer"></div>
|
||||
</div>
|
||||
<script>
|
||||
(function(){
|
||||
var myMail = 1987 + '.' + 'tangbin' + '@' + 'gmail.com';
|
||||
myMail = '<a href="mailto:' + myMail + '">' + myMail + '</a>';
|
||||
document.getElementById('myEmail').innerHTML = myMail;
|
||||
|
||||
|
||||
})();
|
||||
</script>
|
||||
<script>_isDemoSkin && window._demoSkin && _demoSkin();</script>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
165
public/admin/js/artDialog/.svn/text-base/license.txt.svn-base
Normal file
165
public/admin/js/artDialog/.svn/text-base/license.txt.svn-base
Normal file
@ -0,0 +1,165 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
10
public/admin/js/artDialog/artDialog.js
Normal file
10
public/admin/js/artDialog/artDialog.js
Normal file
File diff suppressed because one or more lines are too long
2078
public/admin/js/artDialog/artDialog.source.js
Normal file
2078
public/admin/js/artDialog/artDialog.source.js
Normal file
File diff suppressed because it is too large
Load Diff
13
public/admin/js/artDialog/jquery.artDialog.js
Normal file
13
public/admin/js/artDialog/jquery.artDialog.js
Normal file
File diff suppressed because one or more lines are too long
165
public/admin/js/artDialog/license.txt
Normal file
165
public/admin/js/artDialog/license.txt
Normal file
@ -0,0 +1,165 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
65
public/admin/js/artDialog/skins/.svn/all-wcprops
Normal file
65
public/admin/js/artDialog/skins/.svn/all-wcprops
Normal file
@ -0,0 +1,65 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 76
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins
|
||||
END
|
||||
black.css
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 86
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/black.css
|
||||
END
|
||||
aero.css
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero.css
|
||||
END
|
||||
default.css
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 88
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/default.css
|
||||
END
|
||||
idialog.css
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 88
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/idialog.css
|
||||
END
|
||||
simple.css
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 87
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/simple.css
|
||||
END
|
||||
green.css
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 86
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/green.css
|
||||
END
|
||||
opera.css
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 86
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/opera.css
|
||||
END
|
||||
twitter.css
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 88
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/twitter.css
|
||||
END
|
||||
blue.css
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/blue.css
|
||||
END
|
||||
chrome.css
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 87
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/chrome.css
|
||||
END
|
399
public/admin/js/artDialog/skins/.svn/entries
Normal file
399
public/admin/js/artDialog/skins/.svn/entries
Normal file
@ -0,0 +1,399 @@
|
||||
10
|
||||
|
||||
dir
|
||||
371
|
||||
https://42.121.52.247/svn/ecmall/ecmall/includes/libraries/javascript/artDialog/skins
|
||||
https://42.121.52.247/svn/ecmall
|
||||
|
||||
|
||||
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
|
||||
|
||||
svn:special svn:externals svn:needs-lock
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
d8fde07f-0130-2f47-8851-2ad99dc1c468
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
0
|
||||
|
||||
aero
|
||||
dir
|
||||
|
||||
aero.css
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
ffb24ffafdaed4cb0d77218a2169cb8c
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
6857
|
||||
|
||||
black
|
||||
dir
|
||||
|
||||
black.css
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
f261bf2ccc44af55e65a12c3eda3d53e
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
7958
|
||||
|
||||
blue
|
||||
dir
|
||||
|
||||
blue.css
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
054fb22cd957ae6968edaecbaf698a12
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
7952
|
||||
|
||||
chrome
|
||||
dir
|
||||
|
||||
chrome.css
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
f2a175510f681ab5c28ece895a44df5b
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
6600
|
||||
|
||||
default.css
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
e1967d793364d45309c9196df7f8ba6f
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
7933
|
||||
|
||||
green
|
||||
dir
|
||||
|
||||
green.css
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
1166cb9031fa7a780b629ba7c95ce734
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
7963
|
||||
|
||||
icons
|
||||
dir
|
||||
|
||||
idialog
|
||||
dir
|
||||
|
||||
idialog.css
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
1155e42520b0ff49a450e2a71013b2de
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
6807
|
||||
|
||||
opera
|
||||
dir
|
||||
|
||||
opera.css
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
9753ed06aaf2a3d48f60beb3bd45b00c
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
6873
|
||||
|
||||
simple.css
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
23414e4767fc102e17bbc5112602554e
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
6006
|
||||
|
||||
twitter.css
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
78f6ddd7e1bcf60b7deb15cb478fd090
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
6118
|
||||
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,5 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
@ -0,0 +1,61 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0\9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #1c6a9e; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#0F3A56; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#FFF; }
|
||||
.aui_titleBar { width:100%; height:0; position:relative; bottom:30px; _bottom:0; _margin-top:-30px; }
|
||||
.aui_title { height:29px; line-height:29px; padding:0 16px 0 0; _padding:0; color:#FFF; font-weight:700; text-shadow:1px 1px 0 rgba(0, 0, 0, .9); }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se, .aui_n, .aui_s, .aui_close { background-image:url(aero/aero_s.png); background-repeat:no-repeat; }
|
||||
.aui_nw { width:14px; height:34px; background-position: 0 0; _png:aero/ie6/aui_nw.png; }
|
||||
.aui_ne { width:14px; height:34px; background-position: -14px 0; _png:aero/ie6/aui_ne.png; }
|
||||
.aui_sw { width:14px; height:14px; background-position: 0 -34px; _png:aero/ie6/aui_sw.png; }
|
||||
.aui_se { width:14px; height:14px; background-position: -14px -34px; _png:aero/ie6/aui_se.png; }
|
||||
.aui_close { top:7px; right:0; _z-index:1; width:13px; height:13px; _font-size:0; _line-height:0; text-indent:-9999em; background-position:left -96px; _background:url(aero/ie6/aui_close.png); }
|
||||
.aui_close:hover { background-position:right -96px; _background:url(aero/ie6/aui_close.hover.png); }
|
||||
.aui_n, .aui_s { background-repeat:repeat-x; }
|
||||
.aui_n { background-position: 0 -48px; _png:aero/ie6/aui_n.png; }
|
||||
.aui_s { background-position: 0 -82px; _png:aero/ie6/aui_s.png; }
|
||||
.aui_w, .aui_e { background-image:url(aero/aero_s2.png); background-repeat:repeat-y; }
|
||||
.aui_w { background-position:left top; _png:aero/ie6/aui_w.png; }
|
||||
.aui_e { background-position: right bottom; _png:aero/ie6/aui_e.png; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_se { width:3px; height:3px; }
|
||||
.aui_state_noTitle .aui_inner { border:1px solid #666; background:#FFF; }
|
||||
.aui_state_noTitle .aui_outer { box-shadow:none; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_n, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_w, .aui_state_noTitle .aui_e, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_s, .aui_state_noTitle .aui_se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5)!important; }
|
||||
.aui_state_noTitle .aui_titleBar { bottom:0; _bottom:0; _margin-top:0; }
|
||||
.aui_state_noTitle .aui_close { top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; text-indent:0; font-family: Helvetica, STHeiti; _font-family: '\u9ed1\u4f53', 'Book Antiqua', Palatino; font-size:18px; text-decoration:none; color:#214FA3; background:none; filter:!important; }
|
||||
.aui_state_noTitle .aui_close:hover, .aui_state_noTitle .aui_close:active { text-decoration:none; color:#900; }
|
@ -0,0 +1,79 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0 \9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #3399dd; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#1c6a9e; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#f7f7f7; }
|
||||
.aui_titleBar { width:100%; height:0; position:relative; bottom:30px; _bottom:0; _margin-top:-30px; }
|
||||
.aui_title { height:29px; line-height:29px; padding:0 25px 0 0; _padding:0; text-indent:5px; color:#FFF; font-weight:700; text-shadow:-1px -1px 0 rgba(0, 0, 0, .7); }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se, .aui_n, .aui_s, .aui_close { background-image:url(black/bg.png); background-repeat:no-repeat; }
|
||||
.aui_nw { width:15px; height:38px; background-position: 0 0; _png:black/ie6/nw.png; }
|
||||
.aui_ne { width:15px; height:38px; background-position: -15px 0; _png:black/ie6/ne.png; }
|
||||
.aui_sw { width:15px; height:18px; background-position: 0 -38px; _png:black/ie6/sw.png; }
|
||||
.aui_se { width:15px; height:18px; background-position: -15px -38px; _png:black/ie6/se.png; }
|
||||
.aui_close { top:4px; right:4px; _z-index:1; width:20px; height:20px; _font-size:0; _line-height:0; text-indent:-9999em; background-position:0 -112px; _png:black/ie6/close.png; }
|
||||
.aui_close:hover { background-position:0 -132px; }
|
||||
.aui_n, .aui_s { background-repeat:repeat-x; }
|
||||
.aui_n { background-position: 0 -56px; _png:black/ie6/n.png; }
|
||||
.aui_s { background-position: 0 -94px; _png:black/ie6/s.png; }
|
||||
.aui_w, .aui_e { background-image:url(black/bg2.png); background-repeat:repeat-y; }
|
||||
.aui_w { background-position:left top; _png:black/ie6/w.png; }
|
||||
.aui_e { background-position: right bottom; _png:black/ie6/e.png; }
|
||||
aui_icon, .aui_main { padding-top:3px; }
|
||||
@media screen and (min-width:0) {
|
||||
.aui_outer { border-radius:8px; box-shadow:0 5px 15px rgba(0, 0, 0, .4); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: -webkit-box-shadow linear .2s; }
|
||||
.aui_state_drag .aui_outer { box-shadow:none; }
|
||||
.aui_state_lock .aui_outer { box-shadow:0 3px 26px rgba(0, 0, 0, .9); }
|
||||
.aui_outer:active { box-shadow:0 0 5px rgba(0, 0, 0, .1)!important; }
|
||||
.aui_state_drag .aui_outer { box-shadow:none!important; }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se, .aui_n, .aui_s, .aui_close { background-image:url(black/bg_css3.png); }
|
||||
.aui_nw { width:5px; height:31px; }
|
||||
.aui_ne { width:5px; height:31px; background-position: -5px 0; _png:black/ie6/ne.png; }
|
||||
.aui_sw { width:5px; height:5px;background-position: 0 -31px; }
|
||||
.aui_se { width:5px; height:5px; background-position: -5px -31px; }
|
||||
.aui_close { background-position:0 -72px; }
|
||||
.aui_close:hover { background-position:0 -92px; }
|
||||
.aui_n { background-position: 0 -36px; }
|
||||
.aui_s { background-position: 0 -67px; }
|
||||
.aui_w, .aui_e { background-image:url(black/bg_css3_2.png); }
|
||||
}
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_se { width:3px; height:3px; }
|
||||
.aui_state_noTitle .aui_inner { border:1px solid #666; background:#FFF; }
|
||||
.aui_state_noTitle .aui_outer { box-shadow:none; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_n, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_w, .aui_state_noTitle .aui_e, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_s, .aui_state_noTitle .aui_se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5)!important; }
|
||||
.aui_state_noTitle .aui_titleBar { bottom:0; _bottom:0; _margin-top:0; }
|
||||
.aui_state_noTitle .aui_close { top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; text-indent:0; font-family: Helvetica, STHeiti; _font-family: '\u9ed1\u4f53', 'Book Antiqua', Palatino; font-size:18px; text-decoration:none; color:#214FA3; background:none; filter:!important; }
|
||||
.aui_state_noTitle .aui_close:hover, .aui_state_noTitle .aui_close:active { text-decoration:none; color:#900; }
|
@ -0,0 +1,79 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0 \9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #3399dd; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#1c6a9e; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#f7f7f7; }
|
||||
.aui_titleBar { width:100%; height:0; position:relative; bottom:30px; _bottom:0; _margin-top:-30px; }
|
||||
.aui_title { height:29px; line-height:29px; padding:0 25px 0 0; _padding:0; text-indent:5px; color:#FFF; font-weight:700; text-shadow:-1px -1px 0 rgba(33, 79, 183, .7); }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se, .aui_n, .aui_s, .aui_close { background-image:url(blue/bg.png); background-repeat:no-repeat; }
|
||||
.aui_nw { width:15px; height:38px; background-position: 0 0; _png:blue/ie6/nw.png; }
|
||||
.aui_ne { width:15px; height:38px; background-position: -15px 0; _png:blue/ie6/ne.png; }
|
||||
.aui_sw { width:15px; height:18px; background-position: 0 -38px; _png:blue/ie6/sw.png; }
|
||||
.aui_se { width:15px; height:18px; background-position: -15px -38px; _png:blue/ie6/se.png; }
|
||||
.aui_close { top:4px; right:4px; _z-index:1; width:20px; height:20px; _font-size:0; _line-height:0; text-indent:-9999em; background-position:0 -112px; _png:blue/ie6/close.png; }
|
||||
.aui_close:hover { background-position:0 -132px; }
|
||||
.aui_n, .aui_s { background-repeat:repeat-x; }
|
||||
.aui_n { background-position: 0 -56px; _png:blue/ie6/n.png; }
|
||||
.aui_s { background-position: 0 -94px; _png:blue/ie6/s.png; }
|
||||
.aui_w, .aui_e { background-image:url(blue/bg2.png); background-repeat:repeat-y; }
|
||||
.aui_w { background-position:left top; _png:blue/ie6/w.png; }
|
||||
.aui_e { background-position: right bottom; _png:blue/ie6/e.png; }
|
||||
aui_icon, .aui_main { padding-top:3px; }
|
||||
@media screen and (min-width:0) {
|
||||
.aui_outer { border-radius:8px; box-shadow:0 5px 15px rgba(2, 37, 69, .4); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: -webkit-box-shadow linear .2s; }
|
||||
.aui_state_drag .aui_outer { box-shadow:none; }
|
||||
.aui_state_lock .aui_outer { box-shadow:0 3px 26px rgba(0, 0, 0, .9); }
|
||||
.aui_outer:active { box-shadow:0 0 5px rgba(2, 37, 69, .1)!important; }
|
||||
.aui_state_drag .aui_outer { box-shadow:none!important; }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se, .aui_n, .aui_s, .aui_close { background-image:url(blue/bg_css3.png); }
|
||||
.aui_nw { width:5px; height:31px; }
|
||||
.aui_ne { width:5px; height:31px; background-position: -5px 0; _png:blue/ie6/ne.png; }
|
||||
.aui_sw { width:5px; height:5px;background-position: 0 -31px; }
|
||||
.aui_se { width:5px; height:5px; background-position: -5px -31px; }
|
||||
.aui_close { background-position:0 -72px; }
|
||||
.aui_close:hover { background-position:0 -92px; }
|
||||
.aui_n { background-position: 0 -36px; }
|
||||
.aui_s { background-position: 0 -67px; }
|
||||
.aui_w, .aui_e { background-image:url(blue/bg_css3_2.png); }
|
||||
}
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_se { width:3px; height:3px; }
|
||||
.aui_state_noTitle .aui_inner { border:1px solid #666; background:#FFF; }
|
||||
.aui_state_noTitle .aui_outer { box-shadow:none; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_n, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_w, .aui_state_noTitle .aui_e, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_s, .aui_state_noTitle .aui_se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5)!important; }
|
||||
.aui_state_noTitle .aui_titleBar { bottom:0; _bottom:0; _margin-top:0; }
|
||||
.aui_state_noTitle .aui_close { top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; text-indent:0; font-family: Helvetica, STHeiti; _font-family: '\u9ed1\u4f53', 'Book Antiqua', Palatino; font-size:18px; text-decoration:none; color:#214FA3; background:none; filter:!important; }
|
||||
.aui_state_noTitle .aui_close:hover, .aui_state_noTitle .aui_close:active { text-decoration:none; color:#900; }
|
@ -0,0 +1,61 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0\9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #1c6a9e; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#0F3A56; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#FFF; }
|
||||
.aui_titleBar { width:100%; height:0; position:relative; bottom:26px; _bottom:0; _margin-top:-26px;}
|
||||
.aui_title { height:26px; line-height:23px; padding:0 60px 0 5px; color:#FFF; font-weight:700; text-shadow:0 1px 0 #000; }
|
||||
.aui_nw, .aui_ne, .aui_w, .aui_e, .aui_sw, .aui_se, .aui_close { background-image:url(chrome/chrome_s.png); background-repeat:no-repeat; }
|
||||
.aui_nw { width:5px; height:26px; background-position: -46px -8px; }
|
||||
.aui_ne { width:5px; height:26px; background-position: -53px -8px; }
|
||||
.aui_w { background-position:-60px 0; background-repeat:repeat-y; }
|
||||
.aui_e { background-position:-65px 0; background-repeat:repeat-y; }
|
||||
.aui_sw { width:5px; height:5px; background-position: -46px -2px;}
|
||||
.aui_se { width:5px; height:5px; background-position: -53px -2px;}
|
||||
.aui_close { top:1px; right:0; width:44px; height:17px; background-position:0 0; _font-size:0; _line-height:0; text-indent:-9999em; }
|
||||
.aui_close:hover { background-position:0 -18px; }
|
||||
.aui_n, .aui_s { background-image:url(chrome/border.png); background-repeat:repeat-x; }
|
||||
.aui_n { background-position:0 top; }
|
||||
.aui_s { background-position: 0 bottom; }
|
||||
.aui_buttons { background-color:#F6F6F6; border-top:solid 1px #DADEE5; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_se { width:3px; height:3px; }
|
||||
.aui_state_noTitle .aui_inner { border:1px solid #666; background:#FFF; }
|
||||
.aui_state_noTitle .aui_outer { box-shadow:none; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_n, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_w, .aui_state_noTitle .aui_e, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_s, .aui_state_noTitle .aui_se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5)!important; }
|
||||
.aui_state_noTitle .aui_titleBar { bottom:0; _bottom:0; _margin-top:0; }
|
||||
.aui_state_noTitle .aui_close { top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; text-indent:0; font-family: Helvetica, STHeiti; _font-family: '\u9ed1\u4f53', 'Book Antiqua', Palatino; font-size:18px; text-decoration:none; color:#214FA3; background:none; filter:!important; }
|
||||
.aui_state_noTitle .aui_close:hover, .aui_state_noTitle .aui_close:active { text-decoration:none; color:#900; }
|
@ -0,0 +1,67 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0\9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #1c6a9e; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#0F3A56; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#FFF; }
|
||||
.aui_outer, .aui_inner { border:1px solid rgba(0, 0, 0, .7); border:1px solid #333\9; }
|
||||
.aui_border { box-shadow: inset 0 0 1px rgba(255, 255, 255, .9); }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se { width:8px; height:8px; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_e, .aui_sw, .aui_s, .aui_se { background:rgba(0, 0, 0, .4); background:#000\9!important; filter:alpha(opacity=40); }
|
||||
.aui_state_lock .aui_nw, .aui_state_lock .aui_n, .aui_state_lock .aui_ne, .aui_state_lock .aui_w, .aui_state_lock .aui_e, .aui_state_lock .aui_sw, .aui_state_lock .aui_s, .aui_state_lock .aui_se { background:rgba(0, 0, 0, .5); background:#000\9!important; filter:alpha(opacity=50); }
|
||||
.aui_state_focus .aui_dialog { box-shadow: 0 0 3px rgba(0, 0, 0, 0.4); }
|
||||
.aui_state_focus .aui_outer { box-shadow: 0 2px 3px rgba(0, 0, 0, 0.1); }
|
||||
.aui_state_lock .aui_border { box-shadow:0 3px 26px rgba(0, 0, 0, .9); }
|
||||
.aui_state_drag .aui_outer, .aui_outer:active { box-shadow:none; }
|
||||
.aui_titleBar { position:relative; height:100%; }
|
||||
.aui_title { height:28px; line-height:27px; padding:0 28px 0 10px; text-shadow:0 1px 0 rgba(255, 255, 255, .7); background-color:#edf5f8; font-weight:bold; color:#95a7ae; font-family: Tahoma, Arial/9!important; background-color:#bdc6cd; background: linear-gradient(top, #edf5f8, #bdc6cd); background: -moz-linear-gradient(top, #edf5f8, #bdc6cd); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#edf5f8), to(#bdc6cd)); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#edf5f8', endColorstr='#bdc6cd'); border-top:1px solid #edf5f8; border-bottom:1px solid #b6bec5; }
|
||||
.aui_state_focus .aui_title { color:#4c5a5f; }
|
||||
.aui_state_drag .aui_title { background: linear-gradient(top, #bdc6cd, #edf5f8); background: -moz-linear-gradient(top, #bdc6cd, #edf5f8); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bdc6cd), to(#edf5f8)); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bdc6cd', endColorstr='#edf5f8'); box-shadow:none; }
|
||||
.aui_state_drag .aui_titleBar { box-shadow:none; }
|
||||
.aui_close { padding:0; top:4px; right:4px; width:21px; height:21px; line-height:21px; font-size:18px; color:#68767b; text-align:center; font-family: Helvetica, STHeiti; _font-family: Tahoma, '\u9ed1\u4f53', 'Book Antiqua', Palatino; text-shadow:0 1px 0 rgba(255, 255, 255, .9); }
|
||||
.aui_close:hover { background:#C72015; color:#FFF; }
|
||||
.aui_close:active { box-shadow: none; }
|
||||
.aui_content { color:#666; }
|
||||
.aui_state_focus .aui_content { color:#000; }
|
||||
.aui_buttons { background-color:#F6F6F6; border-top:solid 1px #DADEE5; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_se { width:3px; height:3px; }
|
||||
.aui_state_noTitle .aui_inner { border:1px solid #666; background:#FFF; }
|
||||
.aui_state_noTitle .aui_outer { border:none 0; box-shadow:none; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_n, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_w, .aui_state_noTitle .aui_e, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_s, .aui_state_noTitle .aui_se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5)!important; }
|
||||
.aui_state_noTitle .aui_titleBar { bottom:0; _bottom:0; _margin-top:0; }
|
||||
.aui_state_noTitle .aui_close { top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; text-indent:0; font-size:18px; text-decoration:none; color:#214FA3; background:none; filter:!important; }
|
||||
.aui_state_noTitle .aui_close:hover, .aui_state_noTitle .aui_close:active { text-decoration:none; color:#900; }
|
||||
.aui_state_noTitle .aui_dialog { box-shadow: none; }
|
@ -0,0 +1,79 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0 \9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(0, 50, 0, .7); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(0, 50, 0, .7), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #679a10; background: #7cb61b; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#98d237', endColorstr='#7cb61b'); background: linear-gradient(top, #98d237, #7cb61b); background: -moz-linear-gradient(top, #98d237, #7cb61b); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#98d237), to(#7cb61b)); text-shadow: -1px -1px 1px #679a10; }
|
||||
button.aui_state_highlight:focus { border-color:#679a10; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#3c5412; }
|
||||
button.aui_state_highlight:active { border-color:#3c5412; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#98d237', endColorstr='#7cb61b'); background: linear-gradient(top, #98d237, #7cb61b); background: -moz-linear-gradient(top, #98d237, #7cb61b); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#98d237), to(#7cb61b)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#f7f7f7; }
|
||||
.aui_titleBar { width:100%; height:0; position:relative; bottom:30px; _bottom:0; _margin-top:-30px; }
|
||||
.aui_title { height:29px; line-height:29px; padding:0 25px 0 0; _padding:0; text-indent:5px; color:#FFF; font-weight:700; text-shadow:-1px -1px 0 rgba(0, 50, 0, .7); }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se, .aui_n, .aui_s, .aui_close { background-image:url(green/bg.png); background-repeat:no-repeat; }
|
||||
.aui_nw { width:15px; height:38px; background-position: 0 0; _png:green/ie6/nw.png; }
|
||||
.aui_ne { width:15px; height:38px; background-position: -15px 0; _png:green/ie6/ne.png; }
|
||||
.aui_sw { width:15px; height:18px; background-position: 0 -38px; _png:green/ie6/sw.png; }
|
||||
.aui_se { width:15px; height:18px; background-position: -15px -38px; _png:green/ie6/se.png; }
|
||||
.aui_close { top:4px; right:4px; _z-index:1; width:20px; height:20px; _font-size:0; _line-height:0; text-indent:-9999em; background-position:0 -112px; _png:green/ie6/close.png; }
|
||||
.aui_close:hover { background-position:0 -132px; }
|
||||
.aui_n, .aui_s { background-repeat:repeat-x; }
|
||||
.aui_n { background-position: 0 -56px; _png:green/ie6/n.png; }
|
||||
.aui_s { background-position: 0 -94px; _png:green/ie6/s.png; }
|
||||
.aui_w, .aui_e { background-image:url(green/bg2.png); background-repeat:repeat-y; }
|
||||
.aui_w { background-position:left top; _png:green/ie6/w.png; }
|
||||
.aui_e { background-position: right bottom; _png:green/ie6/e.png; }
|
||||
aui_icon, .aui_main { padding-top:3px; }
|
||||
@media screen and (min-width:0) {
|
||||
.aui_outer { border-radius:8px; box-shadow:0 5px 15px rgba(0, 50, 0, .4); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: -webkit-box-shadow linear .2s; }
|
||||
.aui_state_lock .aui_outer { box-shadow:0 3px 26px rgba(0, 0, 0, .9); }
|
||||
.aui_outer:active { box-shadow:0 0 5px rgba(0, 50, 0, .1)!important; }
|
||||
.aui_state_drag .aui_outer { box-shadow:none!important; }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se, .aui_n, .aui_s, .aui_close { background-image:url(green/bg_css3.png); }
|
||||
.aui_nw { width:5px; height:31px; }
|
||||
.aui_ne { width:5px; height:31px; background-position: -5px 0; _png:green/ie6/ne.png; }
|
||||
.aui_sw { width:5px; height:5px;background-position: 0 -31px; }
|
||||
.aui_se { width:5px; height:5px; background-position: -5px -31px; }
|
||||
.aui_close { background-position:0 -72px; }
|
||||
.aui_close:hover { background-position:0 -92px; }
|
||||
.aui_n { background-position: 0 -36px; }
|
||||
.aui_s { background-position: 0 -67px; }
|
||||
.aui_w, .aui_e { background-image:url(green/bg_css3_2.png); }
|
||||
}
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_se { width:3px; height:3px; }
|
||||
.aui_state_noTitle .aui_inner { border:1px solid #666; background:#FFF; }
|
||||
.aui_state_noTitle .aui_outer { box-shadow:none; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_n, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_w, .aui_state_noTitle .aui_e, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_s, .aui_state_noTitle .aui_se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5)!important; }
|
||||
.aui_state_noTitle .aui_titleBar { bottom:0; _bottom:0; _margin-top:0; }
|
||||
.aui_state_noTitle .aui_close { top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; text-indent:0; font-family: Helvetica, STHeiti; _font-family: '\u9ed1\u4f53', 'Book Antiqua', Palatino; font-size:18px; text-decoration:none; color:#214FA3; background:none; filter:!important; }
|
||||
.aui_state_noTitle .aui_close:hover, .aui_state_noTitle .aui_close:active { text-decoration:none; color:#900; }
|
@ -0,0 +1,71 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0\9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #1c6a9e; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#0F3A56; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#FFF; }
|
||||
.aui_titleBar { width:100%; }
|
||||
.aui_title { position:absolute; left:0; top:0; width:100%; height:22px; text-align:left; text-indent:-999em; font-size:0; }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se, .aui_n, .aui_s, .aui_close { background-image:url(idialog/idialog_s.png); background-repeat:no-repeat; }
|
||||
.aui_nw { width:15px; height:15px; background-position: 0 0; _png:idialog/ie6/aui_nw.png; }
|
||||
.aui_ne { width:15px; height:15px; background-position: -15px 0; _png:idialog/ie6/aui_ne.png; }
|
||||
.aui_sw { width:15px; height:15px; background-position: 0 -15px; _png:idialog/ie6/aui_sw.png; }
|
||||
.aui_se { width:15px; height:15px; background-position: -15px -15px; _png:idialog/ie6/aui_se.png; }
|
||||
.aui_close { position:absolute; right:-8px; top:-8px; _z-index:1; width:34px; height:34px; _font-size:0; _line-height:0; text-indent:-9999em; background-position:0 -60px; _png:idialog/ie6/aui_close.png; }
|
||||
.aui_close:hover { background-position:0 -94px; _png:idialog/ie6/aui_close.hover.png; }
|
||||
.aui_n, .aui_s { background-repeat:repeat-x; }
|
||||
.aui_n { background-position: 0 -30px; _png:idialog/ie6/aui_n.png; }
|
||||
.aui_s { background-position: 0 -45px; _png:idialog/ie6/aui_s.png; }
|
||||
.aui_w, .aui_e { background-image:url(idialog/idialog_s2.png); background-repeat:repeat-y; }
|
||||
.aui_w { background-position:left top; _png:idialog/ie6/aui_w.png; }
|
||||
.aui_e { background-position: right bottom; _png:idialog/ie6/aui_e.png; }
|
||||
@media screen and (min-width:0) {/* css3 */
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se{ width:5px; height:5px; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_e, .aui_sw, .aui_s, .aui_se { background:none; }
|
||||
.aui_sw, .aui_s, .aui_se { background:url(idialog/idialog_s.png) repeat-x 0 -45px; }
|
||||
.aui_sw { border-radius:0 0 0 5px; }
|
||||
.aui_se { border-radius:0 0 5px 0; }
|
||||
.aui_outer { border:1px solid #929292; border-radius:5px; box-shadow:0 3px 8px rgba(0, 0, 0, .2); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: -webkit-box-shadow linear .2s; }
|
||||
.aui_border { border-radius:5px; background:#FFF; }
|
||||
.aui_state_drag .aui_outer { box-shadow:none; }
|
||||
.aui_state_lock .aui_outer { box-shadow:0 3px 26px rgba(0, 0, 0, .9); }
|
||||
.aui_outer:active { box-shadow:0 0 5px rgba(0, 0, 0, .1)!important; }
|
||||
.aui_state_drag .aui_outer { box-shadow:none!important; }
|
||||
.aui_close { right:-16px; top:-16px; }
|
||||
}
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {/* apple | webkit */
|
||||
.aui_close { right:auto; left:-16px; top:-16px; }
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0\9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #1c6a9e; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#0F3A56; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#f0f1f9; }
|
||||
.aui_titleBar { width:100%; height:0; position:relative; bottom:27px; _bottom:0; _margin-top:-27px; }
|
||||
.aui_title { height:27px; line-height:27px; padding:0 37px 0 0; _padding:0; color:#333; text-shadow:1px 1px 0 rgba(255, 255, 255, .7); }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se, .aui_n, .aui_s, .aui_close { background-image:url(opera/s1.png); background-repeat:no-repeat; }
|
||||
.aui_nw { width:15px; height:32px; background-position: 0 0; _png:opera/ie6/aui_nw.png; }
|
||||
.aui_ne { width:15px; height:32px; background-position: -15px 0; _png:opera/ie6/aui_ne.png; }
|
||||
.aui_sw { width:15px; height:15px; background-position: 0 -33px; _png:opera/ie6/aui_sw.png; }
|
||||
.aui_se { width:15px; height:15px; background-position: -15px -33px; _png:opera/ie6/aui_se.png; }
|
||||
.aui_close { top:0; right:0; _z-index:1; width:27px; height:27px; _font-size:0; _line-height:0; *zoom:1; text-indent:-9999em; background-position:0 -96px; _png:opera/ie6/aui_close.png; }
|
||||
.aui_close:hover { background-position:0 -123px; _png:opera/ie6/aui_close.hover.png; }
|
||||
.aui_n, .aui_s { background-repeat:repeat-x; }
|
||||
.aui_n { background-position: 0 -48px; _png:opera/ie6/aui_n.png; }
|
||||
.aui_s { background-position: 0 -81px; _png:opera/ie6/aui_s.png; }
|
||||
.aui_w, .aui_e { background-image:url(opera/s2.png); background-repeat:repeat-y; }
|
||||
.aui_w { background-position:left top; _png:opera/ie6/aui_w.png; }
|
||||
.aui_e { background-position: right bottom; _png:opera/ie6/aui_e.png; }
|
||||
.aui_icon, .aui_main { padding-top:10px; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_se { width:3px; height:3px; }
|
||||
.aui_state_noTitle .aui_inner { border:1px solid #666; background:#FFF; }
|
||||
.aui_state_noTitle .aui_outer { box-shadow:none; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_n, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_w, .aui_state_noTitle .aui_e, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_s, .aui_state_noTitle .aui_se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5)!important; }
|
||||
.aui_state_noTitle .aui_titleBar { bottom:0; _bottom:0; _margin-top:0; }
|
||||
.aui_state_noTitle .aui_close { top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; text-indent:0; font-family: Helvetica, STHeiti; _font-family: '\u9ed1\u4f53', 'Book Antiqua', Palatino; font-size:18px; text-decoration:none; color:#214FA3; background:none; filter:!important; }
|
||||
.aui_state_noTitle .aui_close:hover, .aui_state_noTitle .aui_close:active { text-decoration:none; color:#900; }
|
@ -0,0 +1,55 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0\9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #1c6a9e; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#0F3A56; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#FFF; border:1px solid #666; }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se { width:3px; height:3px; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_e, .aui_sw, .aui_s, .aui_se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5); }
|
||||
.aui_titleBar { position:relative; height:100%; }
|
||||
.aui_title { position:absolute; top:0; left:0; width:100%; height:24px; text-indent:-9999em; overflow:hidden; font-size:0; }
|
||||
.aui_state_drag .aui_title { color:#666; }
|
||||
.aui_close { padding:0; top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; font-family: Helvetica, STHeiti; _font-family: '\u9ed1\u4f53', 'Book Antiqua', Palatino; font-size:18px; text-decoration:none; color:#214FA3; }
|
||||
.aui_close:hover, .aui_close:active { text-decoration:none; color:#900; }
|
||||
.aui_content { color:#666; }
|
||||
.aui_state_focus .aui_content { color:#000; }
|
||||
@media screen and (min-width:0) {
|
||||
.aui_close { width:20px; height:20px; line-height:20px; right:-10px; top:-10px; border-radius:20px; background:#999; color:#FFF; box-shadow:0 1px 3px rgba(0, 0, 0, .3); -moz-transition: linear .06s; -webkit-transition: linear .06s; transition: linear .06s; }
|
||||
.aui_close:hover { width:24px; height:24px; line-height:24px; right:-12px; top:-12px; color:#FFF; box-shadow:0 1px 3px rgba(209, 40, 42, .5); background:#d1282a; border-radius:24px; }
|
||||
.aui_state_lock .aui_dialog { box-shadow:0 3px 26px rgba(0, 0, 0, .9); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: -webkit-box-shadow linear .2s; }
|
||||
.aui_dialog:active { box-shadow:0 0 5px rgba(0, 0, 0, .1)!important; }
|
||||
.aui_state_drag .aui_outer { box-shadow:none!important; }
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0\9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #1c6a9e; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#0F3A56; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:rgba(0, 0, 0, .7); }
|
||||
.aui_dialog { background:#FFF; border-radius:3px; }
|
||||
.aui_outer { border:1px solid #000; border-radius:5px; box-shadow: 0 3px 0 rgba(0,0,0,0.1); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: -webkit-box-shadow linear .2s; }
|
||||
.aui_state_lock .aui_outer { box-shadow:0 3px 26px rgba(0, 0, 0, .9); }
|
||||
.aui_outer:active { box-shadow:none!important; }
|
||||
.aui_state_drag .aui_outer { box-shadow:none!important; }
|
||||
.aui_border { border-radius:3px; }
|
||||
.aui_nw, .aui_ne { width:5px; height:37px; }
|
||||
.aui_sw, .aui_se { width:5px; height:5px; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_e, .aui_sw, .aui_s, .aui_se { background:rgba(0, 0, 0, .7); background:#000\9!important; filter:alpha(opacity=70); }
|
||||
.aui_titleBar { width:100%; height:0; position:relative; bottom:33px; _bottom:0; _margin-top:-33px; }
|
||||
.aui_title { height:27px; line-height:27px; padding:0 16px 0 5px; color:#FFF; font-weight:700; text-shadow:0 1px 0 #000; }
|
||||
.aui_close { padding:0; top:2px; right:5px; width:21px; height:21px; line-height:21px; font-size:18px; text-align:center; color:#EBEBEB; font-family: Helvetica, STHeiti; _font-family: Tahoma, '\u9ed1\u4f53', 'Book Antiqua', Palatino; border:1px solid transparent; _border:0 none; background:#000; border-radius:15px; }
|
||||
.aui_state_drag .aui_close { color:#FFF; }
|
||||
.aui_close:hover { background:#C72015; border:1px solid #000; _border:0 none; box-shadow: 0 1px 0 rgba(255, 255, 255, .3), inset 0 1px 0 rgba(255, 255, 255, .3); }
|
||||
.aui_close:active { box-shadow: none; }
|
||||
.aui_state_noTitle { }
|
||||
.aui_content { color:#666; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_ne { height:5px; }
|
||||
.aui_state_noTitle .aui_titleBar { bottom:0; _bottom:0; _margin-top:0; }
|
||||
.aui_state_noTitle .aui_close { top:5px; }
|
61
public/admin/js/artDialog/skins/aero.css
Normal file
61
public/admin/js/artDialog/skins/aero.css
Normal file
@ -0,0 +1,61 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0\9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #1c6a9e; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#0F3A56; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#FFF; }
|
||||
.aui_titleBar { width:100%; height:0; position:relative; bottom:30px; _bottom:0; _margin-top:-30px; }
|
||||
.aui_title { height:29px; line-height:29px; padding:0 16px 0 0; _padding:0; color:#FFF; font-weight:700; text-shadow:1px 1px 0 rgba(0, 0, 0, .9); }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se, .aui_n, .aui_s, .aui_close { background-image:url(aero/aero_s.png); background-repeat:no-repeat; }
|
||||
.aui_nw { width:14px; height:34px; background-position: 0 0; _png:aero/ie6/aui_nw.png; }
|
||||
.aui_ne { width:14px; height:34px; background-position: -14px 0; _png:aero/ie6/aui_ne.png; }
|
||||
.aui_sw { width:14px; height:14px; background-position: 0 -34px; _png:aero/ie6/aui_sw.png; }
|
||||
.aui_se { width:14px; height:14px; background-position: -14px -34px; _png:aero/ie6/aui_se.png; }
|
||||
.aui_close { top:7px; right:0; _z-index:1; width:13px; height:13px; _font-size:0; _line-height:0; text-indent:-9999em; background-position:left -96px; _background:url(aero/ie6/aui_close.png); }
|
||||
.aui_close:hover { background-position:right -96px; _background:url(aero/ie6/aui_close.hover.png); }
|
||||
.aui_n, .aui_s { background-repeat:repeat-x; }
|
||||
.aui_n { background-position: 0 -48px; _png:aero/ie6/aui_n.png; }
|
||||
.aui_s { background-position: 0 -82px; _png:aero/ie6/aui_s.png; }
|
||||
.aui_w, .aui_e { background-image:url(aero/aero_s2.png); background-repeat:repeat-y; }
|
||||
.aui_w { background-position:left top; _png:aero/ie6/aui_w.png; }
|
||||
.aui_e { background-position: right bottom; _png:aero/ie6/aui_e.png; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_se { width:3px; height:3px; }
|
||||
.aui_state_noTitle .aui_inner { border:1px solid #666; background:#FFF; }
|
||||
.aui_state_noTitle .aui_outer { box-shadow:none; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_n, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_w, .aui_state_noTitle .aui_e, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_s, .aui_state_noTitle .aui_se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5)!important; }
|
||||
.aui_state_noTitle .aui_titleBar { bottom:0; _bottom:0; _margin-top:0; }
|
||||
.aui_state_noTitle .aui_close { top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; text-indent:0; font-family: Helvetica, STHeiti; _font-family: '\u9ed1\u4f53', 'Book Antiqua', Palatino; font-size:18px; text-decoration:none; color:#214FA3; background:none; filter:!important; }
|
||||
.aui_state_noTitle .aui_close:hover, .aui_state_noTitle .aui_close:active { text-decoration:none; color:#900; }
|
17
public/admin/js/artDialog/skins/aero/.svn/all-wcprops
Normal file
17
public/admin/js/artDialog/skins/aero/.svn/all-wcprops
Normal file
@ -0,0 +1,17 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 81
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero
|
||||
END
|
||||
aero_s.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 92
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/aero_s.png
|
||||
END
|
||||
aero_s2.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 93
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/aero_s2.png
|
||||
END
|
106
public/admin/js/artDialog/skins/aero/.svn/entries
Normal file
106
public/admin/js/artDialog/skins/aero/.svn/entries
Normal file
@ -0,0 +1,106 @@
|
||||
10
|
||||
|
||||
dir
|
||||
371
|
||||
https://42.121.52.247/svn/ecmall/ecmall/includes/libraries/javascript/artDialog/skins/aero
|
||||
https://42.121.52.247/svn/ecmall
|
||||
|
||||
|
||||
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
|
||||
|
||||
svn:special svn:externals svn:needs-lock
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
d8fde07f-0130-2f47-8851-2ad99dc1c468
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
0
|
||||
|
||||
aero_s.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
7035a93bdc791536094c126232abae0e
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2381
|
||||
|
||||
aero_s2.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
89a5907a3cb1bebdce0aa272e684e3a7
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
188
|
||||
|
||||
ie6
|
||||
dir
|
||||
|
@ -0,0 +1,9 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
@ -0,0 +1,9 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
Binary file not shown.
After ![]() (image error) Size: 2.3 KiB |
Binary file not shown.
After ![]() (image error) Size: 188 B |
BIN
public/admin/js/artDialog/skins/aero/aero_s.png
Normal file
BIN
public/admin/js/artDialog/skins/aero/aero_s.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 2.3 KiB |
BIN
public/admin/js/artDialog/skins/aero/aero_s2.png
Normal file
BIN
public/admin/js/artDialog/skins/aero/aero_s2.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 188 B |
71
public/admin/js/artDialog/skins/aero/ie6/.svn/all-wcprops
Normal file
71
public/admin/js/artDialog/skins/aero/ie6/.svn/all-wcprops
Normal file
@ -0,0 +1,71 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6
|
||||
END
|
||||
aui_s.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 95
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_s.png
|
||||
END
|
||||
aui_title_icon.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 104
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_title_icon.png
|
||||
END
|
||||
aui_e.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 95
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_e.png
|
||||
END
|
||||
aui_close.hover.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 105
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_close.hover.png
|
||||
END
|
||||
aui_se.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 96
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_se.png
|
||||
END
|
||||
aui_w.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 95
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_w.png
|
||||
END
|
||||
aui_close.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 99
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_close.png
|
||||
END
|
||||
aui_sw.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 96
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_sw.png
|
||||
END
|
||||
aui_ne.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 96
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_ne.png
|
||||
END
|
||||
aui_nw.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 96
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_nw.png
|
||||
END
|
||||
aui_n.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 95
|
||||
/svn/ecmall/!svn/ver/55/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6/aui_n.png
|
||||
END
|
409
public/admin/js/artDialog/skins/aero/ie6/.svn/entries
Normal file
409
public/admin/js/artDialog/skins/aero/ie6/.svn/entries
Normal file
@ -0,0 +1,409 @@
|
||||
10
|
||||
|
||||
dir
|
||||
371
|
||||
https://42.121.52.247/svn/ecmall/ecmall/includes/libraries/javascript/artDialog/skins/aero/ie6
|
||||
https://42.121.52.247/svn/ecmall
|
||||
|
||||
|
||||
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
|
||||
|
||||
svn:special svn:externals svn:needs-lock
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
d8fde07f-0130-2f47-8851-2ad99dc1c468
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
0
|
||||
|
||||
aui_close.hover.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
5cc34cf0c556616d6763d3ea4f675dbc
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
190
|
||||
|
||||
aui_close.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
0efde381df612e9b7c0c705fbdcd638f
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
190
|
||||
|
||||
aui_e.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
b2a80828dda76b28bddbe2ed3fb0e5d9
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1352
|
||||
|
||||
aui_n.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
355891e1a588f8363412c3e27588f41a
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2043
|
||||
|
||||
aui_ne.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
486d7255f0ec6c73dd2b310c857ad170
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
601
|
||||
|
||||
aui_nw.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
ec7fef3ffe3da92a82783b7a686cd3bb
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
528
|
||||
|
||||
aui_s.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
40d3ab663bd235e49c19eb7192fce876
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
971
|
||||
|
||||
aui_se.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
11c4dfad146c80b3404ea6560746f795
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
471
|
||||
|
||||
aui_sw.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
eeecb15c9bd9ec2bac0a3785f1a2efc3
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
470
|
||||
|
||||
aui_title_icon.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
152ba4b28316d023af9ac2c1e9254239
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
233
|
||||
|
||||
aui_w.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2014-06-16T14:20:20.000000Z
|
||||
c2fb74ab9ce7152694a0084b11953cd6
|
||||
2014-06-17T11:53:48.998281Z
|
||||
55
|
||||
litie
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1361
|
||||
|
@ -0,0 +1,9 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
@ -0,0 +1,9 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
@ -0,0 +1,9 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
@ -0,0 +1,9 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
@ -0,0 +1,9 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
@ -0,0 +1,9 @@
|
||||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user