Merge branch 'master' into master
commit
6d78d51fc0
|
@ -6,9 +6,8 @@
|
||||||
|
|
||||||
官方网站[http://webmagic.io/](http://webmagic.io/)
|
官方网站[http://webmagic.io/](http://webmagic.io/)
|
||||||
|
|
||||||
>webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发。webmagic的核心非常简单,但是覆盖爬虫的整个流程,也是很好的学习爬虫开发的材料。作者曾经在前公司进行过一年的垂直爬虫的开发,webmagic就是为了解决爬虫开发的一些重复劳动而产生的框架。
|
>webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发。webmagic的核心非常简单,但是覆盖爬虫的整个流程,也是很好的学习爬虫开发的材料。
|
||||||
|
|
||||||
>web爬虫是一种技术,webmagic致力于将这种技术的实现成本降低,但是出于对资源提供者的尊重,webmagic不会做反封锁的事情,包括:验证码破解、代理切换、自动登录等。
|
|
||||||
|
|
||||||
webmagic的主要特色:
|
webmagic的主要特色:
|
||||||
|
|
||||||
|
@ -39,12 +38,12 @@ webmagic使用maven管理依赖,在项目中添加对应的依赖即可使用w
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>us.codecraft</groupId>
|
<groupId>us.codecraft</groupId>
|
||||||
<artifactId>webmagic-core</artifactId>
|
<artifactId>webmagic-core</artifactId>
|
||||||
<version>0.5.3</version>
|
<version>0.6.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>us.codecraft</groupId>
|
<groupId>us.codecraft</groupId>
|
||||||
<artifactId>webmagic-extension</artifactId>
|
<artifactId>webmagic-extension</artifactId>
|
||||||
<version>0.5.3</version>
|
<version>0.6.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
[Readme in Chinese](https://github.com/code4craft/webmagic/tree/master/README-zh.md)
|
[Readme in Chinese](https://github.com/code4craft/webmagic/tree/master/README-zh.md)
|
||||||
|
|
||||||
[User Manual (Chinese)](https://github.com/code4craft/webmagic/blob/master/user-manual.md)
|
|
||||||
|
|
||||||
|
|
||||||
[](https://travis-ci.org/code4craft/webmagic)
|
[](https://travis-ci.org/code4craft/webmagic)
|
||||||
|
|
||||||
|
@ -25,12 +23,12 @@ Add dependencies to your pom.xml:
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>us.codecraft</groupId>
|
<groupId>us.codecraft</groupId>
|
||||||
<artifactId>webmagic-core</artifactId>
|
<artifactId>webmagic-core</artifactId>
|
||||||
<version>0.5.3</version>
|
<version>0.6.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>us.codecraft</groupId>
|
<groupId>us.codecraft</groupId>
|
||||||
<artifactId>webmagic-extension</artifactId>
|
<artifactId>webmagic-extension</artifactId>
|
||||||
<version>0.5.3</version>
|
<version>0.6.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
3
make.sh
3
make.sh
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
mvn clean dependency:copy-dependencies -DoutputDirectory=target/lib
|
|
||||||
rsync -avz --delete ./webmagic-samples/target/lib/ ./lib/
|
|
12
pom.xml
12
pom.xml
|
@ -6,7 +6,7 @@
|
||||||
<version>7</version>
|
<version>7</version>
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>us.codecraft</groupId>
|
<groupId>us.codecraft</groupId>
|
||||||
<version>0.5.4-SNAPSHOT</version>
|
<version>0.6.1-SNAPSHOT</version>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<properties>
|
<properties>
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
<connection>scm:git:git@github.com:code4craft/webmagic.git</connection>
|
<connection>scm:git:git@github.com:code4craft/webmagic.git</connection>
|
||||||
<developerConnection>scm:git:git@github.com:code4craft/webmagic.git</developerConnection>
|
<developerConnection>scm:git:git@github.com:code4craft/webmagic.git</developerConnection>
|
||||||
<url>git@github.com:code4craft/webmagic.git</url>
|
<url>git@github.com:code4craft/webmagic.git</url>
|
||||||
<tag>webmagic-parent-0.5.4-SNAPSHOT</tag>
|
<tag>webmagic-parent-0.6.0</tag>
|
||||||
</scm>
|
</scm>
|
||||||
<licenses>
|
<licenses>
|
||||||
<license>
|
<license>
|
||||||
|
@ -54,7 +54,6 @@
|
||||||
<module>webmagic-selenium</module>
|
<module>webmagic-selenium</module>
|
||||||
<module>webmagic-saxon</module>
|
<module>webmagic-saxon</module>
|
||||||
<module>webmagic-samples</module>
|
<module>webmagic-samples</module>
|
||||||
<module>webmagic-avalon</module>
|
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
|
@ -68,13 +67,18 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.httpcomponents</groupId>
|
<groupId>org.apache.httpcomponents</groupId>
|
||||||
<artifactId>httpclient</artifactId>
|
<artifactId>httpclient</artifactId>
|
||||||
<version>4.3.3</version>
|
<version>4.5.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.google.guava</groupId>
|
<groupId>com.google.guava</groupId>
|
||||||
<artifactId>guava</artifactId>
|
<artifactId>guava</artifactId>
|
||||||
<version>15.0</version>
|
<version>15.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.jayway.jsonpath</groupId>
|
||||||
|
<artifactId>json-path</artifactId>
|
||||||
|
<version>0.8.1</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
<artifactId>slf4j-api</artifactId>
|
<artifactId>slf4j-api</artifactId>
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
#release configuration
|
|
||||||
#Thu Jan 21 19:19:07 CST 2016
|
|
||||||
scm.commentPrefix=[maven-release-plugin]
|
|
||||||
pushChanges=true
|
|
||||||
project.dev.us.codecraft\:webmagic-extension=0.5.4-SNAPSHOT
|
|
||||||
project.scm.us.codecraft\:webmagic-parent.developerConnection=scm\:git\:git@github.com\:code4craft/webmagic.git
|
|
||||||
project.rel.us.codecraft\:webmagic-core=0.5.3
|
|
||||||
project.rel.us.codecraft\:webmagic-extension=0.5.3
|
|
||||||
project.rel.us.codecraft\:webmagic-parent=0.5.3
|
|
||||||
scm.tag=webmagic-parent-0.5.3
|
|
||||||
remoteTagging=true
|
|
||||||
project.scm.us.codecraft\:webmagic-parent.tag=webmagic-parent-0.5.3
|
|
||||||
exec.additionalArguments=-Psonatype-oss-release -P development
|
|
||||||
project.dev.us.codecraft\:webmagic-core=0.5.4-SNAPSHOT
|
|
||||||
scm.url=scm\:git\:git@github.com\:code4craft/webmagic.git
|
|
||||||
scm.tagNameFormat=@{project.artifactId}-@{project.version}
|
|
||||||
project.scm.us.codecraft\:webmagic-extension.empty=true
|
|
||||||
project.scm.us.codecraft\:webmagic-parent.url=git@github.com\:code4craft/webmagic.git
|
|
||||||
preparationGoals=clean verify
|
|
||||||
project.scm.us.codecraft\:webmagic-core.empty=true
|
|
||||||
project.scm.us.codecraft\:webmagic-parent.connection=scm\:git\:git@github.com\:code4craft/webmagic.git
|
|
||||||
exec.snapshotReleasePluginAllowed=false
|
|
||||||
project.dev.us.codecraft\:webmagic-parent=0.5.4-SNAPSHOT
|
|
||||||
completedPhase=end-release
|
|
446
user-manual.md
446
user-manual.md
|
@ -1,446 +0,0 @@
|
||||||
webmagic使用手册
|
|
||||||
========
|
|
||||||
>新版文档地址[http://webmagic.io/docs/](http://webmagic.io/docs/),此手册已不再更新。
|
|
||||||
|
|
||||||
<div style="page-break-after:always"></div>
|
|
||||||
|
|
||||||
--------
|
|
||||||
|
|
||||||
## 下载及安装
|
|
||||||
|
|
||||||
### 使用maven
|
|
||||||
|
|
||||||
webmagic使用maven管理依赖,在项目中添加对应的依赖即可使用webmagic:
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>us.codecraft</groupId>
|
|
||||||
<artifactId>webmagic-core</artifactId>
|
|
||||||
<version>0.4.2</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>us.codecraft</groupId>
|
|
||||||
<artifactId>webmagic-extension</artifactId>
|
|
||||||
<version>0.4.2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
#### 项目结构
|
|
||||||
|
|
||||||
webmagic主要包括两个包:
|
|
||||||
|
|
||||||
* **webmagic-core**
|
|
||||||
|
|
||||||
webmagic核心部分,只包含爬虫基本模块和基本抽取器。webmagic-core的目标是成为网页爬虫的一个教科书般的实现。
|
|
||||||
|
|
||||||
* **webmagic-extension**
|
|
||||||
|
|
||||||
webmagic的扩展模块,提供一些更方便的编写爬虫的工具。包括注解格式定义爬虫、JSON、分布式等支持。
|
|
||||||
|
|
||||||
webmagic还包含两个可用的扩展包,因为这两个包都依赖了比较重量级的工具,所以从主要包中抽离出来,这些包需要下载源码后自己编译:
|
|
||||||
|
|
||||||
* **webmagic-saxon**
|
|
||||||
|
|
||||||
webmagic与Saxon结合的模块。Saxon是一个XPath、XSLT的解析工具,webmagic依赖Saxon来进行XPath2.0语法解析支持。
|
|
||||||
|
|
||||||
* **webmagic-selenium**
|
|
||||||
|
|
||||||
webmagic与Selenium结合的模块。Selenium是一个模拟浏览器进行页面渲染的工具,webmagic依赖Selenium进行动态页面的抓取。
|
|
||||||
|
|
||||||
在项目中,你可以根据需要依赖不同的包。
|
|
||||||
|
|
||||||
### 不使用maven
|
|
||||||
|
|
||||||
不使用maven的用户,可以下载附带二进制jar包的版本(感谢[oschina](http://www.oschina.net/)):
|
|
||||||
|
|
||||||
git clone http://git.oschina.net/flashsword20/webmagic.git
|
|
||||||
|
|
||||||
在**lib**目录下,有项目依赖的所有jar包,直接在IDE里import即可。
|
|
||||||
|
|
||||||
--------
|
|
||||||
|
|
||||||
## 第一个爬虫
|
|
||||||
|
|
||||||
### 定制PageProcessor
|
|
||||||
|
|
||||||
PageProcessor是webmagic-core的一部分,定制一个PageProcessor即可实现自己的爬虫逻辑。以下是抓取osc博客的一段代码:
|
|
||||||
|
|
||||||
```java
|
|
||||||
public class OschinaBlogPageProcesser implements PageProcessor {
|
|
||||||
|
|
||||||
private Site site = Site.me().setDomain("my.oschina.net")
|
|
||||||
.addStartUrl("http://my.oschina.net/flashsword/blog");
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void process(Page page) {
|
|
||||||
List<String> links = page.getHtml().links().regex("http://my\\.oschina\\.net/flashsword/blog/\\d+").all();
|
|
||||||
page.addTargetRequests(links);
|
|
||||||
page.putField("title", page.getHtml().xpath("//div[@class='BlogEntity']/div[@class='BlogTitle']/h1").toString());
|
|
||||||
page.putField("content", page.getHtml().$("div.content").toString());
|
|
||||||
page.putField("tags",page.getHtml().xpath("//div[@class='BlogTags']/a/text()").all());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Site getSite() {
|
|
||||||
return site;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
Spider.create(new OschinaBlogPageProcesser())
|
|
||||||
.pipeline(new ConsolePipeline()).run();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
这里通过page.addTargetRequests()方法来增加要抓取的URL,并通过page.putField()来保存抽取结果。page.getHtml().xpath()则是按照某个规则对结果进行抽取,这里抽取支持链式调用。调用结束后,toString()表示转化为单个String,all()则转化为一个String列表。
|
|
||||||
|
|
||||||
Spider是爬虫的入口类。Pipeline是结果输出和持久化的接口,这里ConsolePipeline表示结果输出到控制台。
|
|
||||||
|
|
||||||
执行这个main方法,即可在控制台看到抓取结果。webmagic默认有3秒抓取间隔,请耐心等待。你可以通过site.setSleepTime(int)修改这个值。site还有一些修改抓取属性的方法。
|
|
||||||
|
|
||||||
#### 使用注解
|
|
||||||
|
|
||||||
webmagic-extension包括了注解方式编写爬虫的方法,只需基于一个POJO增加注解即可完成一个爬虫。以下仍然是抓取oschina博客的一段代码,功能与OschinaBlogPageProcesser完全相同:
|
|
||||||
|
|
||||||
```java
|
|
||||||
@TargetUrl("http://my.oschina.net/flashsword/blog/\\d+")
|
|
||||||
public class OschinaBlog {
|
|
||||||
|
|
||||||
@ExtractBy("//title")
|
|
||||||
private String title;
|
|
||||||
|
|
||||||
@ExtractBy(value = "div.BlogContent",type = ExtractBy.Type.Css)
|
|
||||||
private String content;
|
|
||||||
|
|
||||||
@ExtractBy(value = "//div[@class='BlogTags']/a/text()", multi = true)
|
|
||||||
private List<String> tags;
|
|
||||||
|
|
||||||
@Formatter("yyyy-MM-dd HH:mm")
|
|
||||||
@ExtractBy("//div[@class='BlogStat']/regex('\\d+-\\d+-\\d+\\s+\\d+:\\d+')")
|
|
||||||
private Date date;
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
OOSpider.create(
|
|
||||||
Site.me().addStartUrl("http://my.oschina.net/flashsword/blog"),
|
|
||||||
new ConsolePageModelPipeline(), OschinaBlog.class).run();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
这个例子定义了一个Model类,Model类的字段'title'、'content'、'tags'均为要抽取的属性。这个类在Pipeline里是可以复用的。
|
|
||||||
|
|
||||||
注解的详细使用方式见后文中的webmagic-extension注解模块。
|
|
||||||
|
|
||||||
<div style="page-break-after:always"></div>
|
|
||||||
|
|
||||||
--------
|
|
||||||
|
|
||||||
## 模块详细介绍
|
|
||||||
|
|
||||||
## webmagic-core
|
|
||||||
|
|
||||||
webmagic-core是爬虫的核心框架,只包括一个爬虫各功能模块的核心功能。webmagic-core的目标是成为网页爬虫的一个教科书般的实现。
|
|
||||||
|
|
||||||
此节部分内容摘自作者的博文
|
|
||||||
[webmagic的设计机制及原理-如何开发一个Java爬虫](http://my.oschina.net/flashsword/blog/145796)。
|
|
||||||
|
|
||||||
### webmagic-core的模块划分
|
|
||||||
|
|
||||||
webmagic-core参考了scrapy的模块划分,分为Spider(整个爬虫的调度框架)、Downloader(页面下载)、PageProcessor(链接提取和页面分析)、Scheduler(URL管理)、Pipeline(离线分析和持久化)几部分。只不过scrapy通过middleware实现扩展,而webmagic则通过定义这几个接口,并将其不同的实现注入主框架类Spider来实现扩展。
|
|
||||||
|
|
||||||

|
|
||||||
<div style="page-break-after:always"></div>
|
|
||||||
|
|
||||||
#### Spider类(核心调度)
|
|
||||||
|
|
||||||
**Spider**是爬虫的入口类,Spider的接口调用采用了链式的API设计,其他功能全部通过接口注入Spider实现,下面是启动一个比较复杂的Spider的例子。
|
|
||||||
|
|
||||||
```java
|
|
||||||
Spider.create(sinaBlogProcessor)
|
|
||||||
.scheduler(new FileCacheQueueScheduler("/data/temp/webmagic/cache/"))
|
|
||||||
.pipeline(new FilePipeline())
|
|
||||||
.thread(10).run();
|
|
||||||
```
|
|
||||||
|
|
||||||
Spider的核心处理流程非常简单,代码如下:
|
|
||||||
|
|
||||||
```java
|
|
||||||
private void processRequest(Request request) {
|
|
||||||
Page page = downloader.download(request, this);
|
|
||||||
if (page == null) {
|
|
||||||
sleep(site.getSleepTime());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
pageProcessor.process(page);
|
|
||||||
addRequest(page);
|
|
||||||
for (Pipeline pipeline : pipelines) {
|
|
||||||
pipeline.process(page, this);
|
|
||||||
}
|
|
||||||
sleep(site.getSleepTime());
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Spider还包括一个方法test(String url),该方法只抓取一个单独的页面,用于测试抽取效果。
|
|
||||||
|
|
||||||
#### PageProcessor(页面分析及链接抽取)
|
|
||||||
|
|
||||||
页面分析是垂直爬虫中需要定制的部分。在webmagic-core里,通过实现**PageProcessor**接口来实现定制爬虫。PageProcessor有两个核心方法:public void process(Page page)和public Site getSite() 。
|
|
||||||
|
|
||||||
* public void process(Page page)
|
|
||||||
|
|
||||||
通过对**Page**对象的操作,实现爬虫逻辑。Page对象包括两个最重要的方法:addTargetRequests()可以添加URL到待抓取队列,put()可以将结果保存供后续处理。
|
|
||||||
Page的数据可以通过Page.getHtml()和Page.getUrl()获取。
|
|
||||||
|
|
||||||
* public Site getSite()
|
|
||||||
|
|
||||||
**Site**对象定义了爬虫的域名、起始地址、抓取间隔、编码等信息。
|
|
||||||
|
|
||||||
**Selector**是webmagic为了简化页面抽取开发的独立模块,是webmagic-core的主要着力点。这里整合了CSS Selector、XPath和正则表达式,并可以进行链式的抽取。
|
|
||||||
|
|
||||||
```java
|
|
||||||
//content是用别的爬虫工具抽取到的正文
|
|
||||||
List<String> links = page.getHtml()
|
|
||||||
.$("div.title") //css 选择,Java里虽然很少有$符号出现,不过貌似$作为方法名是合法的
|
|
||||||
.xpath("//@href") //提取链接
|
|
||||||
.regex(".*blog.*") //正则匹配过滤
|
|
||||||
.all(); //转换为string列表
|
|
||||||
```
|
|
||||||
|
|
||||||
webmagic包括一个对于页面正文的自动抽取的类**SmartContentSelector**。相信用过Evernote Clearly都会对其自动抽取正文的技术印象深刻。这个技术又叫**Readability**。当然webmagic对Readability的实现还比较粗略,但是仍有一些学习价值。
|
|
||||||
|
|
||||||
webmagic的XPath解析使用了作者另一个开源项目:基于Jsoup的XPath解析器[Xsoup](https://github.com/code4craft/xsoup),Xsoup对XPath的语法进行了一些扩展,支持一些自定义的函数。这些函数的使用方式都是在XPath末尾加上`/name-of-function()`,例如:`"//div[@class='BlogStat']/regex('\\d+-\\d+-\\d+\\s+\\d+:\\d+')"`。
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td width="100">函数</td>
|
|
||||||
<td>说明</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="100">text(n)</td>
|
|
||||||
<td>第n个文本节点(0表示取所有)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="100">allText()</td>
|
|
||||||
<td>包括子节点的所有文本</td>
|
|
||||||
</tr>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="100">tidyText()</td>
|
|
||||||
<td>包括子节点的所有文本,并进行智能换行</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="100">html()</td>
|
|
||||||
<td>内部html(不包括当前标签本身)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="100">outerHtml()</td>
|
|
||||||
<td>外部html(包括当前标签本身)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="100">regex(@attr,expr,group)</td>
|
|
||||||
<td>正则表达式,@attr是抽取的属性(可省略),expr是表达式内容,group为捕获组(可省略,默认为0)</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
基于Saxon,webmagic提供了XPath2.0语法的支持。XPath2.0语法支持内部函数、逻辑控制等,是一门完整的语言,如果你熟悉XPath2.0语法,倒是不妨一试(需要引入**webmagic-saxon**包)。
|
|
||||||
|
|
||||||
**webmagic-samples**包里有一些为某个站点定制的PageProcessor,供学习之用。
|
|
||||||
|
|
||||||
#### Downloader(页面下载)
|
|
||||||
|
|
||||||
**Downloader**是webmagic中下载页面的接口,主要方法:
|
|
||||||
|
|
||||||
* public Page download(Request request, Task task)
|
|
||||||
|
|
||||||
**Request**对象封装了待抓取的URL及其他信息,而Page则包含了页面下载后的Html及其他信息。Task是一个包装了任务对应的Site信息的抽象接口。
|
|
||||||
|
|
||||||
* public void setThread(int thread)
|
|
||||||
|
|
||||||
因为Downloader一般会涉及连接池等功能,而这些功能与多线程密切相关,所以定义了此方法。
|
|
||||||
|
|
||||||
目前有几个Downloader的实现:
|
|
||||||
|
|
||||||
* HttpClientDownloader
|
|
||||||
|
|
||||||
集成了**Apache HttpClient**的Downloader。Apache HttpClient(4.0后整合到HttpCompenent项目中)是强大的Java http下载器,它支持自定义HTTP头(对于爬虫比较有用的就是User-agent、cookie等)、自动redirect、连接复用、cookie保留、设置代理等诸多强大的功能。
|
|
||||||
|
|
||||||
* SeleniumDownloader
|
|
||||||
|
|
||||||
对于一些Javascript动态加载的网页,仅仅使用http模拟下载工具,并不能取到页面的内容。这方面的思路有两种:一种是抽丝剥茧,分析js的逻辑,再用爬虫去重现它;另一种就是:内置一个浏览器,直接获取最后加载完的页面。**webmagic-selenium**包中整合了Selenium到SeleniumDownloader,可以直接进行动态加载页面的抓取。使用selenium需要安装一些native的工具,具体步骤可以参考作者的博文[使用Selenium来抓取动态加载的页面](http://my.oschina.net/flashsword/blog/147334)
|
|
||||||
|
|
||||||
#### Scheduler(URL管理)
|
|
||||||
|
|
||||||
**Scheduler**是webmagic的管理模块,通过实现Scheduler可以定制自己的URL管理器。Scheduler包括两个主要方法:
|
|
||||||
|
|
||||||
* public void push(Request request,Task task)
|
|
||||||
|
|
||||||
将待抓取URL加入Scheduler。Request对象是对URL的一个封装,还包括优先级、以及一个供存储数据的Map。Task仍然用于区分不同任务,在多个任务公用一个Scheduler时可以此进行区分。
|
|
||||||
|
|
||||||
* public Request poll(Task task)
|
|
||||||
|
|
||||||
从Scheduler里取出一条请求,并进行后续执行。
|
|
||||||
|
|
||||||
webmagic目前有三个Scheduler的实现:
|
|
||||||
|
|
||||||
* QueueScheduler
|
|
||||||
|
|
||||||
一个简单的内存队列,速度较快,并且是线程安全的。
|
|
||||||
|
|
||||||
* FileCacheQueueScheduler
|
|
||||||
|
|
||||||
使用文件保存队列,它可以用于耗时较长的下载任务,在任务中途停止后(手动停止或者程序崩溃),下次执行仍然从中止的URL开始继续爬取。
|
|
||||||
|
|
||||||
* RedisScheduler
|
|
||||||
|
|
||||||
使用redis存储URL队列。通过使用同一台redis服务器存储URL,webmagic可以很容易的在多机部署,从而达到分布式爬虫的效果。
|
|
||||||
|
|
||||||
#### Pipeline(后续处理和持久化)
|
|
||||||
|
|
||||||
**Pipeline**是最终抽取结果进行输出和持久化的接口。它只包括一个方法:
|
|
||||||
|
|
||||||
* public void process(ResultItems resultItems,Task task)
|
|
||||||
|
|
||||||
**ResultItems**是集成了抽取结果的对象。通过ResultItems.get(key)可以获取抽取结果。Task同样是用于区分不同任务的对象。
|
|
||||||
|
|
||||||
webmagic包括以下几个Pipeline的实现:
|
|
||||||
|
|
||||||
* ConsolePipeline
|
|
||||||
|
|
||||||
直接输出结果到控制台,测试时使用。
|
|
||||||
|
|
||||||
* FilePipeline
|
|
||||||
|
|
||||||
输出结果到文件,每个URL单独保存到一个页面,以URL的MD5结果作为文件名。通过构造函数`public FilePipeline(String path)`定义存储路径,**以下使用文件持久化的类,多数都使用此方法指定路径**。
|
|
||||||
|
|
||||||
* JsonFilePipeline
|
|
||||||
|
|
||||||
以JSON输出结果到文件(.json后缀),其他与FilePipeline相同。
|
|
||||||
|
|
||||||
webmagic目前不支持持久化到数据库,但是结合其他工具,持久化到数据库也是很容易的。这里不妨看一下[webmagic结合JFinal持久化到数据库的一段代码](http://www.oschina.net/code/snippet_190591_23456)。因为JFinal目前还不支持maven,所以这段代码并没有放到webmagic-samples里来。
|
|
||||||
|
|
||||||
<div style="page-break-after:always"></div>
|
|
||||||
|
|
||||||
-----
|
|
||||||
|
|
||||||
## webmagic-extension
|
|
||||||
|
|
||||||
webmagic-extension是为了开发爬虫更方便而实现的一些功能模块。这些功能完全基于webmagic-core的框架,包括注解形式编写爬虫、分页、分布式等功能。
|
|
||||||
|
|
||||||
### 注解模块
|
|
||||||
|
|
||||||
webmagic-extension包括注解模块。为什么会有注解方式?
|
|
||||||
|
|
||||||
因为PageProcessor的方式灵活、强大,但是没有解决两个问题:
|
|
||||||
|
|
||||||
* 对于一个站点,如果想抓取多种格式的URL,那么必须在PageProcesser中写判断逻辑,代码难以管理。
|
|
||||||
* 抓取结果没有对应Model,并不符合Java程序开发习惯,与一些框架也无法很好整合。
|
|
||||||
|
|
||||||
注解的核心是Model类,本身是一个POJO,这个Model类用于传递、保存页面最终抓取结果数据。注解方式直接将抽取与数据绑定,以便于编写和维护。
|
|
||||||
|
|
||||||
注解方式其实也是通过一个PageProcessor的实现--ModelPageProcessor完成,因此对webmagic-core代码没有任何影响。仍然以抓取OschinaBlog的程序为例:
|
|
||||||
|
|
||||||
```java
|
|
||||||
@TargetUrl("http://my.oschina.net/flashsword/blog/\\d+")
|
|
||||||
public class OschinaBlog {
|
|
||||||
|
|
||||||
@ExtractBy("//title")
|
|
||||||
private String title;
|
|
||||||
|
|
||||||
@ExtractBy(value = "div.BlogContent",type = ExtractBy.Type.Css)
|
|
||||||
private String content;
|
|
||||||
|
|
||||||
@ExtractBy(value = "//div[@class='BlogTags']/a/text()", multi = true)
|
|
||||||
private List<String> tags;
|
|
||||||
|
|
||||||
@Formatter("yyyy-MM-dd HH:mm")
|
|
||||||
@ExtractBy("//div[@class='BlogStat']/regex('\\d+-\\d+-\\d+\\s+\\d+:\\d+')")
|
|
||||||
private Date date;
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
OOSpider.create(
|
|
||||||
Site.me().addStartUrl("http://my.oschina.net/flashsword/blog"),
|
|
||||||
new ConsolePageModelPipeline(), OschinaBlog.class).run();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
注解部分包括以下内容:
|
|
||||||
|
|
||||||
* #### TargetUrl
|
|
||||||
|
|
||||||
"TargetUrl"表示这个Model对应要抓取的URL,它包含两层意思:符合这个条件的URL会被加入抓取队列;符合这个条件的URL会被这个Model抓取。TargetUrl可以**sourceRegion**指定提取URL的区域(仅支持XPath)。
|
|
||||||
|
|
||||||
TargetUrl使用了正则表达式,匹配 "http://my.oschina.net/flashsword/blog/150039" 格式的URL。webmagic对正则表达式进行了修改,"."仅表示字符"."而不代表任意字符,而"\*"则代表了".\*",例如"http://\*.oschina.net/\*"代表了oschina所有的二级域名下的URL。
|
|
||||||
|
|
||||||
与TargetUrl相似的还有**HelpUrl**,HelpUrl表示:仅仅抓取该URL用作链接提取,并不对它进行内容抽取。例如博客正文页对应TargetUrl,而列表页则对应HelpUrl。
|
|
||||||
|
|
||||||
* #### ExtractBy
|
|
||||||
|
|
||||||
* #### 用于字段
|
|
||||||
|
|
||||||
"ExtractBy"可用于类以及字段。用于字段时,定义了字段抽取的规则。抽取的规则默认使用[**XPath**](http://www.w3school.com.cn/xpath/),也可以选择使用CSS Selector、正则表达式(通过设置type)。
|
|
||||||
|
|
||||||
ExtractBy还有几个扩展属性。**multi**表示是否抽取列表,当然,设置为multi时,你需要一个List字段去容纳它。**notnull**则表示,此字段不允许为null,若为null则放弃整个对象。
|
|
||||||
|
|
||||||
* #### 用于类
|
|
||||||
|
|
||||||
"ExtractBy"用于类时,则限定了字段抽取的区域。用于类时仍支持multi,multi则表示一个页面可以抽取到多个对象。
|
|
||||||
|
|
||||||
* #### ExtractByUrl
|
|
||||||
|
|
||||||
ExtractByUrl表示从URL中抽取信息,只支持正则表达式。
|
|
||||||
|
|
||||||
* #### ComboExtract
|
|
||||||
|
|
||||||
ComboExtract是对ExtractBy的一个补充,支持将对个抽取规则用and或者or的形式组合起来。
|
|
||||||
|
|
||||||
* #### 类型转换
|
|
||||||
|
|
||||||
webmagic的注解模式支持对抽取结果进行类型转换,这样抽取结果并不需要是String类型,而可以是任意类型。webmagic内置了基本类型的支持(需要保证抽取结果能够被转换到对应类型)。
|
|
||||||
|
|
||||||
```java
|
|
||||||
@ExtractBy("//ul[@class='pagehead-actions']/li[1]//a[@class='social-count js-social-count']/text()")
|
|
||||||
private int star;
|
|
||||||
```
|
|
||||||
抽取结果也可以是`java.util.Date`类型,不过需要指定日期格式化的方式:
|
|
||||||
|
|
||||||
```java
|
|
||||||
@Formatter("yyyy-MM-dd HH:mm")
|
|
||||||
@ExtractBy("//div[@class='BlogStat']/regex('\\d+-\\d+-\\d+\\s+\\d+:\\d+')")
|
|
||||||
private Date date;
|
|
||||||
```
|
|
||||||
|
|
||||||
你也可以编写一个实现`ObjectFormatter`接口的类,进行自己的类型解析。要使用自己的类,需要调用`ObjectFormatters.put()`对这个类进行注册。
|
|
||||||
|
|
||||||
* #### AfterExtractor
|
|
||||||
|
|
||||||
AfterExtractor接口是对注解方式抽取能力不足的补充。实现AfterExtractor接口后,会在**使用注解方式填充完字段后**调用**afterProcess()**方法,在这个方法中可以直接访问已抽取的字段、补充需要抽取的字段,甚至做一些简单的输出和持久化操作(并不是很建议这么做)。这部分可以参考[webmagic结合JFinal持久化到数据库的一段代码](http://www.oschina.net/code/snippet_190591_23456)。
|
|
||||||
|
|
||||||
* #### OOSpider
|
|
||||||
OOSpider是注解式爬虫的入口,这里调用**create()**方法将OschinaBlog这个类加入到爬虫的抽取中,这里是可以传入多个类的,例如:
|
|
||||||
|
|
||||||
```java
|
|
||||||
OOSpider.create(
|
|
||||||
Site.me().addStartUrl("http://www.oschina.net"),
|
|
||||||
new ConsolePageModelPipeline(),
|
|
||||||
OschinaBlog.clas,OschinaAnswer.class).run();
|
|
||||||
```
|
|
||||||
|
|
||||||
OOSpider会根据TargetUrl调用不同的Model进行解析。
|
|
||||||
|
|
||||||
* #### PageModelPipeline
|
|
||||||
可以通过定义PageModelPipeline来选择结果输出方式。这里new ConsolePageModelPipeline()是PageModelPipeline的一个实现,会将结果输出到控制台。
|
|
||||||
|
|
||||||
PageModelPipeline目前包括`ConsolePageModelPipeline`、`JsonFilePageModelPipeline`、`FilePageModelPipeline`三个实现。
|
|
||||||
|
|
||||||
* #### 分页
|
|
||||||
|
|
||||||
处理单项数据分页(例如单条新闻多个页面)是爬虫一个比较头疼的问题。webmagic目前对于分页的解决方案是:在注解模式下,Model通过实现**PagedModel**接口,并引入PagedPipeline作为第一个Pipeline来实现。具体可以参考webmagic-samples中抓取网易新闻的代码:**us.codecraft.webmagic.model.samples.News163**。
|
|
||||||
|
|
||||||
关于分页,这里有一篇对于webmagic分页实现的详细说明的文章[关于爬虫实现分页的一些思考](http://my.oschina.net/flashsword/blog/150039)。
|
|
||||||
目前分页功能还没有分布式实现,如果实现RedisScheduler进行分布式爬取,请不要使用分页功能。
|
|
||||||
|
|
||||||
### 分布式
|
|
||||||
|
|
||||||
webmagic-extension中,通过redis来管理URL,达到分布式的效果。但是对于分布式爬虫,仅仅程序能够分布式运行,还满足不了大规模抓取的需要,webmagic可能后期会加入一些任务管理和监控的功能,也欢迎各位用户为webmagic提交代码,做出贡献。
|
|
||||||
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
WebMagic-Avalon项目计划
|
|
||||||
=======
|
|
||||||
WebMagic-Avalon项目的目标是打造一个可配置、可管理的爬虫,以及一个可分享配置/脚本的平台,从而减少熟悉的开发者的开发量,并且让**不熟悉Java技术的人**也能简单的使用一个爬虫。
|
|
||||||
|
|
||||||
## Part1:webmagic-scripts
|
|
||||||
|
|
||||||
目标:使得可以用简单脚本的方式编写爬虫,从而为一些常用场景提供可流通的脚本。
|
|
||||||
例如:我需要抓github的仓库数据,可以这样写一个脚本(javascript):
|
|
||||||
|
|
||||||
[https://github.com/code4craft/webmagic/tree/master/webmagic-scripts](https://github.com/code4craft/webmagic/tree/master/webmagic-scripts)
|
|
||||||
|
|
||||||
这个功能目前实现了一部分,但最终结果仍在实验阶段。欢迎大家积极参与并提出意见。
|
|
||||||
|
|
||||||
## Part2:webmagic-pannel
|
|
||||||
|
|
||||||
一个集成了加载脚本、管理爬虫的后台。计划中。
|
|
||||||
|
|
||||||
## Part3:webmagic-market
|
|
||||||
|
|
||||||
一个可以分享、搜索和下载脚本的站点。计划中。
|
|
||||||
|
|
||||||
## 如何参与
|
|
||||||
|
|
||||||
webmagic目前由作者业余维护,仅仅为了分享和个人提高,没有任何盈利,也没有商业化打算。
|
|
||||||
|
|
||||||
欢迎以下几种形式的贡献:
|
|
||||||
|
|
||||||
1. 为webmagic项目本身提出改进意见,可以通过邮件组、qq、oschina或者在github提交issue(推荐)的方式。
|
|
||||||
2. 参与WebMagic-Avalon计划的建设讨论,包括产品设计、技术选型等,可以直接回复这个issue。
|
|
||||||
3. 参与webmagic代码开发,请fork一份代码,修改后提交pull request给我。请使用尽量新的版本,并说明修改内容。pull request接受后,我会将你加为committer,共同参与开发。
|
|
|
@ -1,5 +0,0 @@
|
||||||
WebMagic-Avalon
|
|
||||||
========
|
|
||||||
> Spiders Manage Web
|
|
||||||
|
|
||||||
see [#issue43](https://github.com/code4craft/webmagic/issues/43)
|
|
|
@ -1,202 +0,0 @@
|
||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright {yyyy} {name of copyright owner}
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
forger
|
|
||||||
======
|
|
||||||
|
|
||||||
Dynamic Java object generator with template class and configuration.
|
|
||||||
|
|
||||||
## Compiler
|
|
||||||
|
|
||||||
Use groovy compiler. Compile source code to Java class.
|
|
||||||
|
|
||||||
## PropertyLoader
|
|
||||||
|
|
||||||
Load properties of object from user input.
|
|
||||||
|
|
||||||
## API
|
|
||||||
|
|
||||||
```java
|
|
||||||
@Test
|
|
||||||
public void testForgerCreateByClassAnnotationCompile() throws Exception {
|
|
||||||
ForgerFactory forgerFactory = new ForgerFactory(new AnnotationPropertyLoader(), new GroovyForgerCompiler());
|
|
||||||
Forger<Fooable> forger = forgerFactory.<Fooable>compile(Foo.SOURCE_CODE);
|
|
||||||
Fooable foo = forger.forge(ImmutableMap.<String, Object>of("fooa", "test"));
|
|
||||||
Field field = forger.getClazz().getDeclaredField("foo");
|
|
||||||
field.setAccessible(true);
|
|
||||||
assertThat(field.get(foo)).isEqualTo("test");
|
|
||||||
assertThat(foo.foo()).isEqualTo("test");
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -1,193 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<parent>
|
|
||||||
<groupId>org.sonatype.oss</groupId>
|
|
||||||
<artifactId>oss-parent</artifactId>
|
|
||||||
<version>7</version>
|
|
||||||
</parent>
|
|
||||||
<groupId>us.codecraft</groupId>
|
|
||||||
<artifactId>forger</artifactId>
|
|
||||||
<version>0.1.1-SNAPSHOT</version>
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
<properties>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
||||||
</properties>
|
|
||||||
<name>forger</name>
|
|
||||||
<description>
|
|
||||||
Dynamic Java object generator with template class and configuration.
|
|
||||||
</description>
|
|
||||||
<url>https://github.com/code4craft/forger/</url>
|
|
||||||
<developers>
|
|
||||||
<developer>
|
|
||||||
<id>code4craft</id>
|
|
||||||
<name>Yihua huang</name>
|
|
||||||
<email>code4crafer@gmail.com</email>
|
|
||||||
</developer>
|
|
||||||
</developers>
|
|
||||||
<scm>
|
|
||||||
<connection>scm:git:git@github.com:code4craft/forger.git</connection>
|
|
||||||
<developerConnection>scm:git:git@github.com:code4craft/forger.git</developerConnection>
|
|
||||||
<url>git@github.com:code4craft/forger.git</url>
|
|
||||||
<tag>HEAD</tag>
|
|
||||||
</scm>
|
|
||||||
<licenses>
|
|
||||||
<license>
|
|
||||||
<name>Apache License,Version 2</name>
|
|
||||||
<url>http://www.apache.org/licenses/LICENSE-2.0</url>
|
|
||||||
<distribution>repo</distribution>
|
|
||||||
</license>
|
|
||||||
</licenses>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>junit</groupId>
|
|
||||||
<artifactId>junit</artifactId>
|
|
||||||
<version>4.11</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.assertj</groupId>
|
|
||||||
<artifactId>assertj-core</artifactId>
|
|
||||||
<version>1.5.0</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.codehaus.groovy</groupId>
|
|
||||||
<artifactId>groovy</artifactId>
|
|
||||||
<version>2.2.2</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
<version>1.7.6</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-log4j12</artifactId>
|
|
||||||
<version>1.7.6</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.commons</groupId>
|
|
||||||
<artifactId>commons-lang3</artifactId>
|
|
||||||
<version>3.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.google.guava</groupId>
|
|
||||||
<artifactId>guava</artifactId>
|
|
||||||
<version>15.0</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>3.1</version>
|
|
||||||
<configuration>
|
|
||||||
<source>1.6</source>
|
|
||||||
<target>1.6</target>
|
|
||||||
<encoding>UTF-8</encoding>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-dependency-plugin</artifactId>
|
|
||||||
<version>2.8</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>copy-dependencies</id>
|
|
||||||
<phase>package</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>copy-dependencies</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<outputDirectory>${project.build.directory}/lib</outputDirectory>
|
|
||||||
<overWriteReleases>false</overWriteReleases>
|
|
||||||
<overWriteSnapshots>false</overWriteSnapshots>
|
|
||||||
<overWriteIfNewer>true</overWriteIfNewer>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-resources-plugin</artifactId>
|
|
||||||
<version>2.6</version>
|
|
||||||
<configuration>
|
|
||||||
<encoding>UTF-8</encoding>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-source-plugin</artifactId>
|
|
||||||
<version>2.2.1</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>attach-sources</id>
|
|
||||||
<goals>
|
|
||||||
<goal>jar</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
|
||||||
<version>2.9.1</version>
|
|
||||||
<configuration>
|
|
||||||
<encoding>UTF-8</encoding>
|
|
||||||
</configuration>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>attach-javadocs</id>
|
|
||||||
<goals>
|
|
||||||
<goal>jar</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-release-plugin</artifactId>
|
|
||||||
<version>2.4.1</version>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
<profiles>
|
|
||||||
<profile>
|
|
||||||
<id>release-sign-artifacts</id>
|
|
||||||
<activation>
|
|
||||||
<property>
|
|
||||||
<name>performRelease</name>
|
|
||||||
<value>true</value>
|
|
||||||
</property>
|
|
||||||
</activation>
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-gpg-plugin</artifactId>
|
|
||||||
<version>1.1</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>sign-artifacts</id>
|
|
||||||
<phase>verify</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>sign</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
</profiles>
|
|
||||||
|
|
||||||
|
|
||||||
</project>
|
|
|
@ -1,36 +0,0 @@
|
||||||
package us.codecraft.forger;
|
|
||||||
|
|
||||||
import us.codecraft.forger.property.Property;
|
|
||||||
import us.codecraft.forger.property.PropertyLoader;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class Forger<T> {
|
|
||||||
|
|
||||||
private final Class<T> clazz;
|
|
||||||
|
|
||||||
private final PropertyLoader propertyLoader;
|
|
||||||
|
|
||||||
public Forger(Class<T> clazz,PropertyLoader propertyLoader) {
|
|
||||||
this.clazz = clazz;
|
|
||||||
this.propertyLoader = propertyLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
public T forge(Map<String, Object> properties) throws IllegalAccessException, InstantiationException {
|
|
||||||
T t = clazz.newInstance();
|
|
||||||
propertyLoader.load(t, properties);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Property> getPropertyNames() {
|
|
||||||
return propertyLoader.getProperties(clazz);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Class<T> getClazz() {
|
|
||||||
return clazz;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
package us.codecraft.forger;
|
|
||||||
|
|
||||||
import us.codecraft.forger.compiler.ForgerCompiler;
|
|
||||||
import us.codecraft.forger.property.PropertyLoader;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class ForgerFactory {
|
|
||||||
|
|
||||||
private final PropertyLoader propertyLoader;
|
|
||||||
|
|
||||||
private final ForgerCompiler forgerCompiler;
|
|
||||||
|
|
||||||
public ForgerFactory(PropertyLoader propertyLoader, ForgerCompiler forgerCompiler) {
|
|
||||||
this.propertyLoader = propertyLoader;
|
|
||||||
this.forgerCompiler = forgerCompiler;
|
|
||||||
}
|
|
||||||
|
|
||||||
public <T> Forger<T> compile(String sourceCode) {
|
|
||||||
Class clazz = forgerCompiler.compile(sourceCode);
|
|
||||||
return new Forger(clazz, propertyLoader);
|
|
||||||
}
|
|
||||||
|
|
||||||
public <T> Forger<T> create(Class clazz) {
|
|
||||||
return new Forger(clazz, propertyLoader);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
package us.codecraft.forger.compiler;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public interface ForgerCompiler {
|
|
||||||
|
|
||||||
public Class compile(String sourceCode);
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
package us.codecraft.forger.compiler;
|
|
||||||
|
|
||||||
import groovy.lang.GroovyClassLoader;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class GroovyForgerCompiler implements ForgerCompiler{
|
|
||||||
|
|
||||||
private GroovyClassLoader groovyClassLoader = new GroovyClassLoader();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class compile(String sourceCode) {
|
|
||||||
return groovyClassLoader.parseClass(sourceCode);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,112 +0,0 @@
|
||||||
package us.codecraft.forger.property;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import us.codecraft.forger.property.format.*;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public abstract class AbstractPropertyLoader implements PropertyLoader {
|
|
||||||
|
|
||||||
private TypeFormatterFactory typeFormatterFactory = new TypeFormatterFactory();
|
|
||||||
|
|
||||||
protected Logger logger = LoggerFactory.getLogger(getClass());
|
|
||||||
|
|
||||||
protected TypeFormatterFactory getTypeFormatterFactory() {
|
|
||||||
return typeFormatterFactory;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public <T> T load(T object, Map<String, Object> propertyConfigs) {
|
|
||||||
List<Property> properties = getProperties(object.getClass());
|
|
||||||
for (Property property : properties) {
|
|
||||||
Object value = propertyConfigs.get(property.getName());
|
|
||||||
if (value == null) {
|
|
||||||
throw new IllegalArgumentException("Config for property " + property.getName() + " is missing!");
|
|
||||||
}
|
|
||||||
ObjectFormatter objectFormatter = property.getObjectFormatter();
|
|
||||||
switch (property.getType()) {
|
|
||||||
case PropertyString:
|
|
||||||
Object fieldValue = objectFormatter.format(String.valueOf(value));
|
|
||||||
try {
|
|
||||||
property.getField().set(object, fieldValue);
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
logger.warn("Set field " + property.getField() + " error!", e);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PropertyList:
|
|
||||||
if (!List.class.isAssignableFrom(value.getClass())) {
|
|
||||||
throw new IllegalArgumentException("Config for property " + property.getName() + " should be subclass of List!");
|
|
||||||
}
|
|
||||||
List listField = new ArrayList();
|
|
||||||
List<String> listConfigs = (List) value;
|
|
||||||
for (String listConfig : listConfigs) {
|
|
||||||
listField.add(objectFormatter.format(listConfig));
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
property.getField().set(object, listField);
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
logger.warn("Set field " + property.getField() + " error!", e);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PropertyMap:
|
|
||||||
if (!Map.class.isAssignableFrom(value.getClass())) {
|
|
||||||
throw new IllegalArgumentException("Config for property " + property.getName() + " should be subclass of List!");
|
|
||||||
}
|
|
||||||
Map mapField = new HashMap();
|
|
||||||
Map<String, String> mapConfigs = (Map<String, String>) value;
|
|
||||||
for (Map.Entry<String, String> entry : mapConfigs.entrySet()) {
|
|
||||||
mapField.put(entry.getKey(), objectFormatter.format(entry.getValue()));
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
property.getField().set(object, mapField);
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
logger.warn("Set field " + property.getField() + " error!", e);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return object;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected ObjectFormatter prepareTypeFormatterParam(TypeFormatter objectFormatter, String[] params) {
|
|
||||||
if (params == null) {
|
|
||||||
return objectFormatter;
|
|
||||||
}
|
|
||||||
return new ObjectFormatterWithParams().setTypeFormatter(objectFormatter).setParams(params);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected ObjectFormatter getObjectFormatter(Field field) {
|
|
||||||
Class type = field.getType();
|
|
||||||
if (List.class.isAssignableFrom(type) || Map.class.isAssignableFrom(type)) {
|
|
||||||
type = String.class;
|
|
||||||
}
|
|
||||||
if (field.isAnnotationPresent(Formatter.class)) {
|
|
||||||
Formatter formatter = field.getAnnotation(Formatter.class);
|
|
||||||
if (!formatter.formatter().equals(TypeFormatter.class)) {
|
|
||||||
TypeFormatter typeFormatter = typeFormatterFactory.getByFormatterClass(formatter.formatter());
|
|
||||||
if (typeFormatter != null) {
|
|
||||||
return prepareTypeFormatterParam(typeFormatter,formatter.value());
|
|
||||||
}
|
|
||||||
typeFormatterFactory.put(formatter.formatter());
|
|
||||||
return prepareTypeFormatterParam(typeFormatterFactory.getByFormatterClass(formatter.formatter()), formatter.value());
|
|
||||||
} else if (!formatter.subClazz().equals(String.class)) {
|
|
||||||
type = formatter.subClazz();
|
|
||||||
TypeFormatter typeFormatter = typeFormatterFactory.get(type);
|
|
||||||
if (typeFormatter == null) {
|
|
||||||
throw new IllegalArgumentException("No typeFormatter for class " + type);
|
|
||||||
}
|
|
||||||
return prepareTypeFormatterParam(typeFormatter, formatter.value());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return getTypeFormatterFactory().get(BasicTypeFormatter.detectBasicClass(type));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
package us.codecraft.forger.property;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class AnnotationPropertyLoader extends AbstractPropertyLoader {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Property> getProperties(Class clazz) {
|
|
||||||
Field[] fields = clazz.getDeclaredFields();
|
|
||||||
List<Property> properties = new ArrayList<Property>(fields.length);
|
|
||||||
for (Field field : fields) {
|
|
||||||
Inject inject = field.getAnnotation(Inject.class);
|
|
||||||
if (inject != null) {
|
|
||||||
if (!field.isAccessible()) {
|
|
||||||
field.setAccessible(true);
|
|
||||||
}
|
|
||||||
Property property = Property.fromField(field);
|
|
||||||
if (inject.value().length() > 0) {
|
|
||||||
property.setName(inject.value());
|
|
||||||
}
|
|
||||||
property.setObjectFormatter(getObjectFormatter(field));
|
|
||||||
properties.add(property);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return properties;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
package us.codecraft.forger.property;
|
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.Target;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
|
|
||||||
@Target({ElementType.FIELD})
|
|
||||||
public @interface Inject {
|
|
||||||
|
|
||||||
String value() default "";
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
package us.codecraft.forger.property;
|
|
||||||
|
|
||||||
import us.codecraft.forger.property.format.ObjectFormatter;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class Property {
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private PropertyType type;
|
|
||||||
|
|
||||||
private Field field;
|
|
||||||
|
|
||||||
private ObjectFormatter objectFormatter;
|
|
||||||
|
|
||||||
public ObjectFormatter getObjectFormatter() {
|
|
||||||
return objectFormatter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Property setObjectFormatter(ObjectFormatter objectFormatter) {
|
|
||||||
this.objectFormatter = objectFormatter;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Property setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PropertyType getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Property setType(PropertyType type) {
|
|
||||||
this.type = type;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field getField() {
|
|
||||||
return field;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Property setField(Field field) {
|
|
||||||
this.field = field;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Property fromField(Field field) {
|
|
||||||
return new Property().setName(field.getName()).setType(PropertyType.from(field.getType())).setField(field);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
package us.codecraft.forger.property;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public interface PropertyLoader {
|
|
||||||
|
|
||||||
public <T> T load(T object, Map<String, Object> propertyConfigs);
|
|
||||||
|
|
||||||
public List<Property> getProperties(Class clazz);
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
package us.codecraft.forger.property;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public enum PropertyType {
|
|
||||||
|
|
||||||
PropertyString,PropertyMap,PropertyList;
|
|
||||||
|
|
||||||
public static PropertyType from(Class clazz){
|
|
||||||
if (Map.class.isAssignableFrom(clazz)){
|
|
||||||
return PropertyMap;
|
|
||||||
}
|
|
||||||
if (List.class.isAssignableFrom(clazz)){
|
|
||||||
return PropertyList;
|
|
||||||
}
|
|
||||||
return PropertyString;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
package us.codecraft.forger.property;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.lang.reflect.Modifier;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class SimpleFieldPropertyLoader extends AbstractPropertyLoader {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Property> getProperties(Class clazz) {
|
|
||||||
Field[] fields = clazz.getDeclaredFields();
|
|
||||||
List<Property> properties = new ArrayList<Property>(fields.length);
|
|
||||||
for (Field field : fields) {
|
|
||||||
if (Modifier.isStatic(field.getModifiers())){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (!field.isAccessible()){
|
|
||||||
field.setAccessible(true);
|
|
||||||
}
|
|
||||||
properties.add(Property.fromField(field).setObjectFormatter(getObjectFormatter(field)));
|
|
||||||
}
|
|
||||||
return properties;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,168 +0,0 @@
|
||||||
package us.codecraft.forger.property.format;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
* @since 0.3.2
|
|
||||||
*/
|
|
||||||
public abstract class BasicTypeFormatter<T> implements TypeFormatter<T> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public T format(String text) {
|
|
||||||
if (text == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
text = text.trim();
|
|
||||||
return formatTrimmed(text);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public T format(String text, String[] params) {
|
|
||||||
return format(text);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract T formatTrimmed(String raw);
|
|
||||||
|
|
||||||
public static final List<Class<? extends TypeFormatter>> basicTypeFormatters = Arrays.<Class<? extends TypeFormatter>>asList(IntegerFormatter.class,
|
|
||||||
LongFormatter.class, DoubleFormatter.class, FloatFormatter.class, ShortFormatter.class,
|
|
||||||
CharactorFormatter.class, ByteFormatter.class, BooleanFormatter.class, DateFormatter.class, StringFormatter.class);
|
|
||||||
|
|
||||||
public static Class<?> detectBasicClass(Class<?> type) {
|
|
||||||
if (type.equals(Integer.TYPE) || type.equals(Integer.class)) {
|
|
||||||
return Integer.class;
|
|
||||||
} else if (type.equals(Long.TYPE) || type.equals(Long.class)) {
|
|
||||||
return Long.class;
|
|
||||||
} else if (type.equals(Double.TYPE) || type.equals(Double.class)) {
|
|
||||||
return Double.class;
|
|
||||||
} else if (type.equals(Float.TYPE) || type.equals(Float.class)) {
|
|
||||||
return Float.class;
|
|
||||||
} else if (type.equals(Short.TYPE) || type.equals(Short.class)) {
|
|
||||||
return Short.class;
|
|
||||||
} else if (type.equals(Character.TYPE) || type.equals(Character.class)) {
|
|
||||||
return Character.class;
|
|
||||||
} else if (type.equals(Byte.TYPE) || type.equals(Byte.class)) {
|
|
||||||
return Byte.class;
|
|
||||||
} else if (type.equals(Boolean.TYPE) || type.equals(Boolean.class)) {
|
|
||||||
return Boolean.class;
|
|
||||||
}
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class IntegerFormatter extends BasicTypeFormatter<Integer> {
|
|
||||||
@Override
|
|
||||||
public Integer formatTrimmed(String raw) {
|
|
||||||
return Integer.parseInt(raw);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<Integer> clazz() {
|
|
||||||
return Integer.class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class LongFormatter extends BasicTypeFormatter<Long> {
|
|
||||||
@Override
|
|
||||||
public Long formatTrimmed(String raw) {
|
|
||||||
return Long.parseLong(raw);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<Long> clazz() {
|
|
||||||
return Long.class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class DoubleFormatter extends BasicTypeFormatter<Double> {
|
|
||||||
@Override
|
|
||||||
public Double formatTrimmed(String raw) {
|
|
||||||
return Double.parseDouble(raw);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<Double> clazz() {
|
|
||||||
return Double.class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class FloatFormatter extends BasicTypeFormatter<Float> {
|
|
||||||
@Override
|
|
||||||
public Float formatTrimmed(String raw) {
|
|
||||||
return Float.parseFloat(raw);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<Float> clazz() {
|
|
||||||
return Float.class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ShortFormatter extends BasicTypeFormatter<Short> {
|
|
||||||
@Override
|
|
||||||
public Short formatTrimmed(String raw) {
|
|
||||||
return Short.parseShort(raw);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<Short> clazz() {
|
|
||||||
return Short.class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class CharactorFormatter extends BasicTypeFormatter<Character> {
|
|
||||||
@Override
|
|
||||||
public Character formatTrimmed(String raw) {
|
|
||||||
return raw.charAt(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<Character> clazz() {
|
|
||||||
return Character.class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ByteFormatter extends BasicTypeFormatter<Byte> {
|
|
||||||
@Override
|
|
||||||
public Byte formatTrimmed(String raw) {
|
|
||||||
return Byte.parseByte(raw, 10);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<Byte> clazz() {
|
|
||||||
return Byte.class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class BooleanFormatter extends BasicTypeFormatter<Boolean> {
|
|
||||||
@Override
|
|
||||||
public Boolean formatTrimmed(String raw) {
|
|
||||||
return Boolean.parseBoolean(raw);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<Boolean> clazz() {
|
|
||||||
return Boolean.class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class StringFormatter implements TypeFormatter<String> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String format(String text) {
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String format(String text, String[] params) {
|
|
||||||
return format(text);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<String> clazz() {
|
|
||||||
return String.class;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
package us.codecraft.forger.property.format;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
|
||||||
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
* @since 0.3.2
|
|
||||||
*/
|
|
||||||
public class DateFormatter implements TypeFormatter<Date> {
|
|
||||||
|
|
||||||
public static final String[] DEFAULT_PATTERN = new String[]{"yyyy-MM-dd HH:mm"};
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Date format(String text) {
|
|
||||||
return format(text,DEFAULT_PATTERN);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Date format(String text, String[] params) {
|
|
||||||
try {
|
|
||||||
return DateUtils.parseDate(text, params);
|
|
||||||
} catch (ParseException e) {
|
|
||||||
throw new IllegalArgumentException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<Date> clazz() {
|
|
||||||
return Date.class;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
package us.codecraft.forger.property.format;
|
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
|
||||||
import java.lang.annotation.Retention;
|
|
||||||
import java.lang.annotation.Target;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define how the result string is convert to an object for field.
|
|
||||||
*
|
|
||||||
* @author code4crafter@gmail.com <br>
|
|
||||||
* @since 0.3.2
|
|
||||||
*/
|
|
||||||
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
|
|
||||||
@Target({ElementType.FIELD})
|
|
||||||
public @interface Formatter {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set formatter params.
|
|
||||||
*
|
|
||||||
* @return formatter params
|
|
||||||
*/
|
|
||||||
String[] value();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specific the class of field of class of elements in collection for field. <br>
|
|
||||||
* It is not necessary to be set because we can detect the class by class of field,
|
|
||||||
* unless you use a collection as a field. <br>
|
|
||||||
*
|
|
||||||
* @return the class of field
|
|
||||||
*/
|
|
||||||
Class subClazz() default String.class;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If there are more than one formatter for a class, just specify the implement.
|
|
||||||
* @return implement
|
|
||||||
*/
|
|
||||||
Class<? extends TypeFormatter> formatter() default TypeFormatter.class;
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
package us.codecraft.forger.property.format;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public interface ObjectFormatter<T> {
|
|
||||||
|
|
||||||
T format(String text);
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
package us.codecraft.forger.property.format;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class ObjectFormatterWithParams<T> implements ObjectFormatter<T> {
|
|
||||||
|
|
||||||
private TypeFormatter<T> typeFormatter;
|
|
||||||
|
|
||||||
private String[] params;
|
|
||||||
|
|
||||||
public TypeFormatter getTypeFormatter() {
|
|
||||||
return typeFormatter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ObjectFormatterWithParams<T> setTypeFormatter(TypeFormatter typeFormatter) {
|
|
||||||
this.typeFormatter = typeFormatter;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String[] getParams() {
|
|
||||||
return params;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ObjectFormatterWithParams setParams(String[] params) {
|
|
||||||
this.params = params;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public T format(String text) {
|
|
||||||
return typeFormatter.format(text, params);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
package us.codecraft.forger.property.format;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public interface TypeFormatter<T> extends ObjectFormatter<T> {
|
|
||||||
|
|
||||||
T format(String text, String[] params);
|
|
||||||
|
|
||||||
Class<T> clazz();
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
package us.codecraft.forger.property.format;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
* @since 0.3.2
|
|
||||||
*/
|
|
||||||
public class TypeFormatterFactory {
|
|
||||||
|
|
||||||
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
||||||
|
|
||||||
private Map<Class, TypeFormatter> objectFormatterMapWithPropertyAsKey = new ConcurrentHashMap<Class, TypeFormatter>();
|
|
||||||
|
|
||||||
private Map<Class, TypeFormatter> objectFormatterMapWithClassAsKey = new ConcurrentHashMap<Class, TypeFormatter>();
|
|
||||||
|
|
||||||
public TypeFormatterFactory() {
|
|
||||||
initFormatterMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initFormatterMap() {
|
|
||||||
for (Class<? extends TypeFormatter> basicTypeFormatter : BasicTypeFormatter.basicTypeFormatters) {
|
|
||||||
put(basicTypeFormatter);
|
|
||||||
}
|
|
||||||
put(DateFormatter.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public synchronized void put(Class<? extends TypeFormatter> objectFormatterClazz) {
|
|
||||||
try {
|
|
||||||
TypeFormatter typeFormatter = objectFormatterClazz.newInstance();
|
|
||||||
if (typeFormatter.clazz() != null) {
|
|
||||||
objectFormatterMapWithPropertyAsKey.put(typeFormatter.clazz(), typeFormatter);
|
|
||||||
}
|
|
||||||
objectFormatterMapWithClassAsKey.put(objectFormatterClazz, typeFormatter);
|
|
||||||
} catch (InstantiationException e) {
|
|
||||||
logger.error("Init objectFormatter error", e);
|
|
||||||
} catch (IllegalAccessException e) {
|
|
||||||
logger.error("Init objectFormatter error", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public TypeFormatter get(Class<?> clazz) {
|
|
||||||
return objectFormatterMapWithPropertyAsKey.get(clazz);
|
|
||||||
}
|
|
||||||
|
|
||||||
public TypeFormatter getByFormatterClass(Class<?> clazz) {
|
|
||||||
return objectFormatterMapWithClassAsKey.get(clazz);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
|
|
||||||
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
|
|
||||||
|
|
||||||
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss,SSS} %-5p %c(%F:%L) ## %m%n" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<logger name="org.apache" additivity="false">
|
|
||||||
<level value="warn" />
|
|
||||||
<appender-ref ref="stdout" />
|
|
||||||
</logger>
|
|
||||||
|
|
||||||
<root>
|
|
||||||
<level value="info" />
|
|
||||||
<appender-ref ref="stdout" />
|
|
||||||
</root>
|
|
||||||
|
|
||||||
</log4j:configuration>
|
|
|
@ -1,47 +0,0 @@
|
||||||
package us.codecraft.forger;
|
|
||||||
|
|
||||||
import us.codecraft.forger.property.Inject;
|
|
||||||
import us.codecraft.forger.property.format.Formatter;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class Bar {
|
|
||||||
|
|
||||||
@Inject("bar")
|
|
||||||
private String bar;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private List<String> values;
|
|
||||||
|
|
||||||
@Formatter(value = "", subClazz = Integer.class)
|
|
||||||
@Inject
|
|
||||||
private Map<String, Integer> idMap;
|
|
||||||
|
|
||||||
public String getBar() {
|
|
||||||
return bar;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBar(String bar) {
|
|
||||||
this.bar = bar;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getValues() {
|
|
||||||
return values;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValues(List<String> values) {
|
|
||||||
this.values = values;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Integer> getIdMap() {
|
|
||||||
return idMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIdMap(Map<String, Integer> idMap) {
|
|
||||||
this.idMap = idMap;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
package us.codecraft.forger;
|
|
||||||
|
|
||||||
import us.codecraft.forger.property.Inject;
|
|
||||||
import us.codecraft.forger.property.format.Formatter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class Foo implements Fooable{
|
|
||||||
|
|
||||||
@Formatter("")
|
|
||||||
@Inject("fooa")
|
|
||||||
private String foo;
|
|
||||||
|
|
||||||
public static final String SOURCE_CODE="import us.codecraft.forger.*;\n" +
|
|
||||||
"import us.codecraft.forger.property.Inject;\n" +
|
|
||||||
"import us.codecraft.forger.property.Inject;\n" +
|
|
||||||
"import us.codecraft.forger.property.format.Formatter;\n" +
|
|
||||||
"\n" +
|
|
||||||
"/**\n" +
|
|
||||||
" * @author code4crafter@gmail.com\n" +
|
|
||||||
" */\n" +
|
|
||||||
"public class Foo implements Fooable{\n" +
|
|
||||||
"\n" +
|
|
||||||
" @Formatter(\"\")\n" +
|
|
||||||
" @Inject(\"fooa\")\n" +
|
|
||||||
" private String foo;\n" +
|
|
||||||
"\n" +
|
|
||||||
" public String getFoo() {\n" +
|
|
||||||
" return foo;\n" +
|
|
||||||
" }\n" +
|
|
||||||
"\n" +
|
|
||||||
" @Override\n" +
|
|
||||||
" public String foo() {\n" +
|
|
||||||
" return foo;\n" +
|
|
||||||
" }\n" +
|
|
||||||
"}";
|
|
||||||
|
|
||||||
public String getFoo() {
|
|
||||||
return foo;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String foo() {
|
|
||||||
return foo;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
package us.codecraft.forger;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public interface Fooable {
|
|
||||||
|
|
||||||
public String foo();
|
|
||||||
}
|
|
|
@ -1,66 +0,0 @@
|
||||||
package us.codecraft.forger;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
|
||||||
import org.junit.Test;
|
|
||||||
import us.codecraft.forger.compiler.GroovyForgerCompiler;
|
|
||||||
import us.codecraft.forger.property.AnnotationPropertyLoader;
|
|
||||||
import us.codecraft.forger.property.SimpleFieldPropertyLoader;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class ForgerFactoryTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testForgerCreateByClassProperty() throws Exception {
|
|
||||||
ForgerFactory forgerFactory = new ForgerFactory(new SimpleFieldPropertyLoader(), null);
|
|
||||||
Forger<Foo> forger = forgerFactory.<Foo>create(Foo.class);
|
|
||||||
Foo foo = forger.forge(ImmutableMap.<String, Object>of("foo", "test"));
|
|
||||||
assertThat(foo.getFoo()).isEqualTo("test");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testForgerCreateByClassAnnotation() throws Exception {
|
|
||||||
ForgerFactory forgerFactory = new ForgerFactory(new AnnotationPropertyLoader(), null);
|
|
||||||
Forger<Foo> forger = forgerFactory.<Foo>create(Foo.class);
|
|
||||||
Foo foo = forger.forge(ImmutableMap.<String, Object>of("fooa", "test"));
|
|
||||||
assertThat(foo.getFoo()).isEqualTo("test");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testForgerCreateByClassAnnotationCompile() throws Exception {
|
|
||||||
ForgerFactory forgerFactory = new ForgerFactory(new AnnotationPropertyLoader(), new GroovyForgerCompiler());
|
|
||||||
Forger<Fooable> forger = forgerFactory.<Fooable>compile(Foo.SOURCE_CODE);
|
|
||||||
Fooable foo = forger.forge(ImmutableMap.<String, Object>of("fooa", "test"));
|
|
||||||
Field field = forger.getClazz().getDeclaredField("foo");
|
|
||||||
field.setAccessible(true);
|
|
||||||
assertThat(field.get(foo)).isEqualTo("test");
|
|
||||||
assertThat(foo.foo()).isEqualTo("test");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testForgerCreateByClassAnnotationWithCollections() throws Exception {
|
|
||||||
ForgerFactory forgerFactory = new ForgerFactory(new AnnotationPropertyLoader(), null);
|
|
||||||
Forger<Bar> forger = forgerFactory.<Bar>create(Bar.class);
|
|
||||||
Map<String, Object> map = new HashMap<String, Object>();
|
|
||||||
map.put("bar", "bar");
|
|
||||||
Map<String, String> submap = new HashMap<String, String>();
|
|
||||||
submap.put("1", "1");
|
|
||||||
submap.put("2", "2");
|
|
||||||
map.put("idMap", submap);
|
|
||||||
List<String> sublist = new ArrayList<String>();
|
|
||||||
sublist.add("test");
|
|
||||||
map.put("values", sublist);
|
|
||||||
Bar forge = forger.forge(map);
|
|
||||||
assertThat(forge.getValues().size() > 0);
|
|
||||||
assertThat(forge.getIdMap().get("1")).isEqualTo(1);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
package us.codecraft.forger.compiler;
|
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
import us.codecraft.forger.Foo;
|
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
public class GroovyForgerCompilerTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testGroovyClassLoader() throws Exception {
|
|
||||||
GroovyForgerCompiler groovyForgerCompiler = new GroovyForgerCompiler();
|
|
||||||
Class compiledClass = groovyForgerCompiler.compile(Foo.SOURCE_CODE);
|
|
||||||
assertThat(compiledClass.getName()).isEqualTo("Foo");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
|
|
||||||
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
|
|
||||||
|
|
||||||
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss,SSS} %-5p %c(%F:%L) ## %m%n" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<logger name="org.springframework" additivity="false">
|
|
||||||
<level value="warn" />
|
|
||||||
<appender-ref ref="stdout" />
|
|
||||||
</logger>
|
|
||||||
|
|
||||||
<logger name="org.apache" additivity="false">
|
|
||||||
<level value="warn" />
|
|
||||||
<appender-ref ref="stdout" />
|
|
||||||
</logger>
|
|
||||||
|
|
||||||
<logger name="net.sf.ehcache" additivity="false">
|
|
||||||
<level value="warn" />
|
|
||||||
<appender-ref ref="stdout" />
|
|
||||||
</logger>
|
|
||||||
|
|
||||||
<root>
|
|
||||||
<level value="info" />
|
|
||||||
<appender-ref ref="stdout" />
|
|
||||||
</root>
|
|
||||||
|
|
||||||
</log4j:configuration>
|
|
|
@ -1,137 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<parent>
|
|
||||||
<artifactId>webmagic-parent</artifactId>
|
|
||||||
<groupId>us.codecraft</groupId>
|
|
||||||
<version>0.5.4-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<groupId>us.codecraft</groupId>
|
|
||||||
<artifactId>webmagic-avalon</artifactId>
|
|
||||||
<packaging>pom</packaging>
|
|
||||||
|
|
||||||
<modules>
|
|
||||||
<module>forger</module>
|
|
||||||
<module>webmagic-admin</module>
|
|
||||||
<module>webmagic-worker</module>
|
|
||||||
<module>webmagic-avalon-common</module>
|
|
||||||
</modules>
|
|
||||||
|
|
||||||
<dependencyManagement>
|
|
||||||
<dependencies>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>us.codecraft</groupId>
|
|
||||||
<artifactId>webmagic-scripts</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.mybatis</groupId>
|
|
||||||
<artifactId>mybatis</artifactId>
|
|
||||||
<version>3.1.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.mybatis</groupId>
|
|
||||||
<artifactId>mybatis-spring</artifactId>
|
|
||||||
<version>1.1.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.freemarker</groupId>
|
|
||||||
<artifactId>freemarker</artifactId>
|
|
||||||
<version>2.3.19</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-test</artifactId>
|
|
||||||
<version>${spring-version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.assertj</groupId>
|
|
||||||
<artifactId>assertj-core</artifactId>
|
|
||||||
<version>1.5.0</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>mysql</groupId>
|
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
|
||||||
<version>5.1.18</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-dbcp</groupId>
|
|
||||||
<artifactId>commons-dbcp</artifactId>
|
|
||||||
<version>1.3</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-aop</artifactId>
|
|
||||||
<version>${spring-version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.aspectj</groupId>
|
|
||||||
<artifactId>aspectjrt</artifactId>
|
|
||||||
<version>1.7.2</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.aspectj</groupId>
|
|
||||||
<artifactId>aspectjweaver</artifactId>
|
|
||||||
<version>1.7.2</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-core</artifactId>
|
|
||||||
<version>${spring-version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-webmvc</artifactId>
|
|
||||||
<version>${spring-version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.servlet</groupId>
|
|
||||||
<artifactId>javax.servlet-api</artifactId>
|
|
||||||
<version>3.0.1</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-context</artifactId>
|
|
||||||
<version>${spring-version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-context-support</artifactId>
|
|
||||||
<version>${spring-version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.alibaba</groupId>
|
|
||||||
<artifactId>fastjson</artifactId>
|
|
||||||
<version>1.1.37</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
</dependencyManagement>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-deploy-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skip>true</skip>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
|
|
||||||
</project>
|
|
|
@ -1,3 +0,0 @@
|
||||||
WebMagic-Admin
|
|
||||||
=====
|
|
||||||
Admin is the control web of workers.
|
|
|
@ -1,35 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<parent>
|
|
||||||
<artifactId>webmagic-avalon</artifactId>
|
|
||||||
<groupId>us.codecraft</groupId>
|
|
||||||
<version>0.5.4-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<groupId>us.codecraft</groupId>
|
|
||||||
<artifactId>webmagic-admin</artifactId>
|
|
||||||
<packaging>war</packaging>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>us.codecraft</groupId>
|
|
||||||
<artifactId>webmagic-avalon-common</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-deploy-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skip>true</skip>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
|
|
||||||
</project>
|
|
|
@ -1,20 +0,0 @@
|
||||||
package us.codecraft.webmagic.avalon.web;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Controller;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
@Controller("dashboard")
|
|
||||||
@RequestMapping("/")
|
|
||||||
public class DashBoardController {
|
|
||||||
|
|
||||||
@RequestMapping
|
|
||||||
public ModelAndView index() {
|
|
||||||
ModelAndView map = new ModelAndView("dashboard");
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
package us.codecraft.webmagic.avalon.web;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Controller;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author code4crafter@gmail.com
|
|
||||||
*/
|
|
||||||
@Controller("spider")
|
|
||||||
@RequestMapping("spider")
|
|
||||||
public class SpiderController {
|
|
||||||
|
|
||||||
@RequestMapping("create")
|
|
||||||
@ResponseBody
|
|
||||||
public Map<String, Object> create() {
|
|
||||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
|
||||||
map.put("code", 200);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
number_format=#
|
|
||||||
classic_compatible=true
|
|
||||||
|
|
||||||
default_encoding=UTF-8
|
|
||||||
template_update_delay=0
|
|
||||||
#########################
|
|
||||||
template_exception_handler=rethrow
|
|
|
@ -1,21 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
|
|
||||||
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
|
|
||||||
|
|
||||||
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss,SSS} %-5p %c(%F:%L) ## %m%n" />
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<logger name="org.apache" additivity="false">
|
|
||||||
<level value="warn" />
|
|
||||||
<appender-ref ref="stdout" />
|
|
||||||
</logger>
|
|
||||||
|
|
||||||
<root>
|
|
||||||
<level value="info" />
|
|
||||||
<appender-ref ref="stdout" />
|
|
||||||
</root>
|
|
||||||
|
|
||||||
</log4j:configuration>
|
|
File diff suppressed because one or more lines are too long
|
@ -1,18 +0,0 @@
|
||||||
<%@ page language="java" contentType="text/html; charset=utf8"
|
|
||||||
pageEncoding="utf8" isErrorPage="true" import="java.io.*"%>
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
|
|
||||||
<title>500</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
页面出错啦!
|
|
||||||
<%
|
|
||||||
|
|
||||||
StringWriter stringWriter = new StringWriter();
|
|
||||||
exception.printStackTrace(new PrintWriter(stringWriter));
|
|
||||||
out.println(stringWriter.toString());
|
|
||||||
%>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,14 +0,0 @@
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<script src=""></script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<div class="url-box">
|
|
||||||
<input type="text" id="url-input">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="content-show">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</html>
|
|
|
@ -1,505 +0,0 @@
|
||||||
<#assign staticPath="/static">
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="zh">
|
|
||||||
<head>
|
|
||||||
<!--
|
|
||||||
Charisma v1.0.0
|
|
||||||
|
|
||||||
Copyright 2012 Muhammad Usman
|
|
||||||
Licensed under the Apache License v2.0
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
http://usman.it
|
|
||||||
http://twitter.com/halalit_usman
|
|
||||||
-->
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>WebMaigc Avalon</title>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="description" content="WebMagic, a scalable crawler framework.">
|
|
||||||
<meta name="author" content="code4crafter@gmail.com">
|
|
||||||
|
|
||||||
<!-- The styles -->
|
|
||||||
<link id="bs-css" href="${staticPath}/css/bootstrap-cerulean.css" rel="stylesheet">
|
|
||||||
<style type="text/css">
|
|
||||||
body {
|
|
||||||
padding-bottom: 40px;
|
|
||||||
}
|
|
||||||
.sidebar-nav {
|
|
||||||
padding: 9px 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<link href="${staticPath}/css/bootstrap-responsive.css" rel="stylesheet">
|
|
||||||
<link href="${staticPath}/css/charisma-app.css" rel="stylesheet">
|
|
||||||
<link href="${staticPath}/css/jquery-ui-1.8.21.custom.css" rel="stylesheet">
|
|
||||||
<link href='${staticPath}/css/fullcalendar.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/fullcalendar.print.css' rel='stylesheet' media='print'>
|
|
||||||
<link href='${staticPath}/css/chosen.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/uniform.default.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/colorbox.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/jquery.cleditor.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/jquery.noty.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/noty_theme_default.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/elfinder.min.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/elfinder.theme.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/jquery.iphone.toggle.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/opa-icons.css' rel='stylesheet'>
|
|
||||||
<link href='${staticPath}/css/uploadify.css' rel='stylesheet'>
|
|
||||||
|
|
||||||
<!-- The HTML5 shim, for IE6-8 support of HTML5 elements -->
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<!-- The fav icon -->
|
|
||||||
<link rel="shortcut icon" href="/static/favicon.jpg">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<!-- topbar starts -->
|
|
||||||
<div class="navbar">
|
|
||||||
<div class="navbar-inner">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".top-nav.nav-collapse,.sidebar-nav.nav-collapse">
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
</a>
|
|
||||||
<a class="brand" href="index.html"> <img alt="WebMagic Logo" src="${staticPath}/favicon.jpg" /> <span>WebMagic</span></a>
|
|
||||||
|
|
||||||
<!-- theme selector starts -->
|
|
||||||
<div class="btn-group pull-right theme-container" >
|
|
||||||
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
|
|
||||||
<i class="icon-tint"></i><span class="hidden-phone"> Change Theme / Skin</span>
|
|
||||||
<span class="caret"></span>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu" id="themes">
|
|
||||||
<li><a data-value="classic" href="#"><i class="icon-blank"></i> Classic</a></li>
|
|
||||||
<li><a data-value="cerulean" href="#"><i class="icon-blank"></i> Cerulean</a></li>
|
|
||||||
<li><a data-value="cyborg" href="#"><i class="icon-blank"></i> Cyborg</a></li>
|
|
||||||
<li><a data-value="redy" href="#"><i class="icon-blank"></i> Redy</a></li>
|
|
||||||
<li><a data-value="journal" href="#"><i class="icon-blank"></i> Journal</a></li>
|
|
||||||
<li><a data-value="simplex" href="#"><i class="icon-blank"></i> Simplex</a></li>
|
|
||||||
<li><a data-value="slate" href="#"><i class="icon-blank"></i> Slate</a></li>
|
|
||||||
<li><a data-value="spacelab" href="#"><i class="icon-blank"></i> Spacelab</a></li>
|
|
||||||
<li><a data-value="united" href="#"><i class="icon-blank"></i> United</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<!-- theme selector ends -->
|
|
||||||
|
|
||||||
<!-- user dropdown starts -->
|
|
||||||
<div class="btn-group pull-right" >
|
|
||||||
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
|
|
||||||
<i class="icon-user"></i><span class="hidden-phone"> admin</span>
|
|
||||||
<span class="caret"></span>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><a href="#">Profile</a></li>
|
|
||||||
<li class="divider"></li>
|
|
||||||
<li><a href="login.html">Logout</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<!-- user dropdown ends -->
|
|
||||||
|
|
||||||
<div class="top-nav nav-collapse">
|
|
||||||
<ul class="nav">
|
|
||||||
<li><a href="#">Visit Site</a></li>
|
|
||||||
<li>
|
|
||||||
<form class="navbar-search pull-left">
|
|
||||||
<input placeholder="Search" class="search-query span2" name="query" type="text">
|
|
||||||
</form>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div><!--/.nav-collapse -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- topbar ends -->
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row-fluid">
|
|
||||||
|
|
||||||
<!-- left menu starts -->
|
|
||||||
<div class="span2 main-menu-span">
|
|
||||||
<div class="well nav-collapse sidebar-nav">
|
|
||||||
<ul class="nav nav-tabs nav-stacked main-menu">
|
|
||||||
<li class="nav-header hidden-tablet">Main</li>
|
|
||||||
<li><a class="ajax-link" href="dashboard"><i class="icon-home"></i><span class="hidden-tablet">Dashboard</span></a></li>
|
|
||||||
<li><a class="ajax-link" href="spider"><i class="icon-eye-open"></i><span class="hidden-tablet">Spider</span></a></li>
|
|
||||||
<li><a class="ajax-link" href="charts"><i class="icon-edit"></i><span class="hidden-tablet">Charts</span></a></li>
|
|
||||||
</ul>
|
|
||||||
</div><!--/.well -->
|
|
||||||
</div><!--/span-->
|
|
||||||
<!-- left menu ends -->
|
|
||||||
|
|
||||||
<noscript>
|
|
||||||
<div class="alert alert-block span10">
|
|
||||||
<h4 class="alert-heading">Warning!</h4>
|
|
||||||
<p>You need to have <a href="http://en.wikipedia.org/wiki/JavaScript" target="_blank">JavaScript</a> enabled to use this site.</p>
|
|
||||||
</div>
|
|
||||||
</noscript>
|
|
||||||
|
|
||||||
<div id="content" class="span10">
|
|
||||||
<!-- content starts -->
|
|
||||||
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<ul class="breadcrumb">
|
|
||||||
<li>
|
|
||||||
<a href="#">Home</a> <span class="divider">/</span>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">Dashboard</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="sortable row-fluid">
|
|
||||||
<a data-rel="tooltip" title="6 new members." class="well span3 top-block" href="#">
|
|
||||||
<span class="icon32 icon-red icon-user"></span>
|
|
||||||
<div>Total Members</div>
|
|
||||||
<div>507</div>
|
|
||||||
<span class="notification">6</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row-fluid">
|
|
||||||
<div class="box span12">
|
|
||||||
<div class="box-header well">
|
|
||||||
<h2><i class="icon-info-sign"></i> Introduction</h2>
|
|
||||||
<div class="box-icon">
|
|
||||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
|
||||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
|
||||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="box-content">
|
|
||||||
<h1>Charisma <small>free, premium quality, responsive, multiple skin admin template.</small></h1>
|
|
||||||
<p>Its a live demo of the template. I have created Charisma to ease the repeat work I have to do on my projects. Now I re-use Charisma as a base for my admin panel work and I am sharing it with you :)</p>
|
|
||||||
<p><b>All pages in the menu are functional, take a look at all, please share this with your followers.</b></p>
|
|
||||||
|
|
||||||
<p class="center">
|
|
||||||
<a href="http://usman.it/free-responsive-admin-template" class="btn btn-large btn-primary"><i class="icon-chevron-left icon-white"></i> Back to article</a>
|
|
||||||
<a href="http://usman.it/free-responsive-admin-template" class="btn btn-large"><i class="icon-download-alt"></i> Download Page</a>
|
|
||||||
</p>
|
|
||||||
<div class="clearfix"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row-fluid sortable">
|
|
||||||
<div class="box span4">
|
|
||||||
<div class="box-header well">
|
|
||||||
<h2><i class="icon-th"></i> Tabs</h2>
|
|
||||||
<div class="box-icon">
|
|
||||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
|
||||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
|
||||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="box-content">
|
|
||||||
<ul class="nav nav-tabs" id="myTab">
|
|
||||||
<li class="active"><a href="#info">Info</a></li>
|
|
||||||
<li><a href="#custom">Custom</a></li>
|
|
||||||
<li><a href="#messages">Messages</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div id="myTabContent" class="tab-content">
|
|
||||||
<div class="tab-pane active" id="info">
|
|
||||||
<h3>Charisma <small>a fully featued template</small></h3>
|
|
||||||
<p>Its a fully featured, responsive template for your admin panel. Its optimized for tablet and mobile phones. Scan the QR code below to view it in your mobile device.</p> <img alt="QR Code" class="charisma_qr center" src="${staticPath}/img/qrcode136.png" />
|
|
||||||
</div>
|
|
||||||
<div class="tab-pane" id="custom">
|
|
||||||
<h3>Custom <small>small text</small></h3>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor.</p>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales at. Nulla tellus elit, varius non commodo eget, mattis vel eros. In sed ornare nulla. Donec consectetur, velit a pharetra ultricies, diam lorem lacinia risus, ac commodo orci erat eu massa. Sed sit amet nulla ipsum. Donec felis mauris, vulputate sed tempor at, aliquam a ligula. Pellentesque non pulvinar nisi.</p>
|
|
||||||
</div>
|
|
||||||
<div class="tab-pane" id="messages">
|
|
||||||
<h3>Messages <small>small text</small></h3>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales at. Nulla tellus elit, varius non commodo eget, mattis vel eros. In sed ornare nulla. Donec consectetur, velit a pharetra ultricies, diam lorem lacinia risus, ac commodo orci erat eu massa. Sed sit amet nulla ipsum. Donec felis mauris, vulputate sed tempor at, aliquam a ligula. Pellentesque non pulvinar nisi.</p>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div><!--/span-->
|
|
||||||
|
|
||||||
<div class="box span4">
|
|
||||||
<div class="box-header well" data-original-title>
|
|
||||||
<h2><i class="icon-list-alt"></i> Realtime Traffic</h2>
|
|
||||||
<div class="box-icon">
|
|
||||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
|
||||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="box-content">
|
|
||||||
<div id="realtimechart" style="height:190px;"></div>
|
|
||||||
<p class="clearfix">You can update a chart periodically to get a real-time effect by using a timer to insert the new data in the plot and redraw it.</p>
|
|
||||||
<p>Time between updates: <input id="updateInterval" type="text" value="" style="text-align: right; width:5em"> milliseconds</p>
|
|
||||||
</div>
|
|
||||||
</div><!--/span-->
|
|
||||||
</div><!--/row-->
|
|
||||||
|
|
||||||
<div class="row-fluid sortable">
|
|
||||||
<div class="box span4">
|
|
||||||
<div class="box-header well" data-original-title>
|
|
||||||
<h2><i class="icon-list"></i> Buttons</h2>
|
|
||||||
<div class="box-icon">
|
|
||||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
|
||||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
|
||||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="box-content buttons">
|
|
||||||
<p class="btn-group">
|
|
||||||
<button class="btn">Left</button>
|
|
||||||
<button class="btn">Middle</button>
|
|
||||||
<button class="btn">Right</button>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<button class="btn btn-small"><i class="icon-star"></i> Icon button</button>
|
|
||||||
<button class="btn btn-small btn-primary">Small button</button>
|
|
||||||
<button class="btn btn-small btn-danger">Small button</button>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<button class="btn btn-small btn-warning">Small button</button>
|
|
||||||
<button class="btn btn-small btn-success">Small button</button>
|
|
||||||
<button class="btn btn-small btn-info">Small button</button>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<button class="btn btn-small btn-inverse">Small button</button>
|
|
||||||
<button class="btn btn-large btn-primary btn-round">Round button</button>
|
|
||||||
<button class="btn btn-large btn-round"><i class="icon-ok"></i></button>
|
|
||||||
<button class="btn btn-primary"><i class="icon-edit icon-white"></i></button>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<button class="btn btn-mini">Mini button</button>
|
|
||||||
<button class="btn btn-mini btn-primary">Mini button</button>
|
|
||||||
<button class="btn btn-mini btn-danger">Mini button</button>
|
|
||||||
<button class="btn btn-mini btn-warning">Mini button</button>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<button class="btn btn-mini btn-info">Mini button</button>
|
|
||||||
<button class="btn btn-mini btn-success">Mini button</button>
|
|
||||||
<button class="btn btn-mini btn-inverse">Mini button</button>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div><!--/span-->
|
|
||||||
|
|
||||||
<div class="box span4">
|
|
||||||
<div class="box-header well" data-original-title>
|
|
||||||
<h2><i class="icon-list"></i> Buttons</h2>
|
|
||||||
<div class="box-icon">
|
|
||||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
|
||||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
|
||||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="box-content buttons">
|
|
||||||
<p>
|
|
||||||
<button class="btn btn-large">Large button</button>
|
|
||||||
<button class="btn btn-large btn-primary">Large button</button>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<button class="btn btn-large btn-danger">Large button</button>
|
|
||||||
<button class="btn btn-large btn-warning">Large button</button>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<button class="btn btn-large btn-success">Large button</button>
|
|
||||||
<button class="btn btn-large btn-info">Large button</button>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<button class="btn btn-large btn-inverse">Large button</button>
|
|
||||||
</p>
|
|
||||||
<div class="btn-group">
|
|
||||||
<button class="btn btn-large">Large Dropdown</button>
|
|
||||||
<button class="btn btn-large dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><a href="#"><i class="icon-star"></i> Action</a></li>
|
|
||||||
<li><a href="#"><i class="icon-tag"></i> Another action</a></li>
|
|
||||||
<li><a href="#"><i class="icon-download-alt"></i> Something else here</a></li>
|
|
||||||
<li class="divider"></li>
|
|
||||||
<li><a href="#"><i class="icon-tint"></i> Separated link</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div><!--/span-->
|
|
||||||
|
|
||||||
<div class="box span4">
|
|
||||||
<div class="box-header well" data-original-title>
|
|
||||||
<h2><i class="icon-list"></i> Weekly Stat</h2>
|
|
||||||
<div class="box-icon">
|
|
||||||
<a href="#" class="btn btn-setting btn-round"><i class="icon-cog"></i></a>
|
|
||||||
<a href="#" class="btn btn-minimize btn-round"><i class="icon-chevron-up"></i></a>
|
|
||||||
<a href="#" class="btn btn-close btn-round"><i class="icon-remove"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="box-content">
|
|
||||||
<ul class="dashboard-list">
|
|
||||||
<li>
|
|
||||||
<a href="#">
|
|
||||||
<i class="icon-arrow-up"></i>
|
|
||||||
<span class="green">92</span>
|
|
||||||
New Comments
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">
|
|
||||||
<i class="icon-arrow-down"></i>
|
|
||||||
<span class="red">15</span>
|
|
||||||
New Registrations
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">
|
|
||||||
<i class="icon-minus"></i>
|
|
||||||
<span class="blue">36</span>
|
|
||||||
New Articles
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">
|
|
||||||
<i class="icon-comment"></i>
|
|
||||||
<span class="yellow">45</span>
|
|
||||||
User reviews
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">
|
|
||||||
<i class="icon-arrow-up"></i>
|
|
||||||
<span class="green">112</span>
|
|
||||||
New Comments
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">
|
|
||||||
<i class="icon-arrow-down"></i>
|
|
||||||
<span class="red">31</span>
|
|
||||||
New Registrations
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">
|
|
||||||
<i class="icon-minus"></i>
|
|
||||||
<span class="blue">93</span>
|
|
||||||
New Articles
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">
|
|
||||||
<i class="icon-comment"></i>
|
|
||||||
<span class="yellow">254</span>
|
|
||||||
User reviews
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div><!--/span-->
|
|
||||||
</div><!--/row-->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- content ends -->
|
|
||||||
</div><!--/#content.span10-->
|
|
||||||
</div><!--/fluid-row-->
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="modal hide fade" id="myModal">
|
|
||||||
<div class="modal-header">
|
|
||||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
|
||||||
<h3>Settings</h3>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<p>Here settings can be configured...</p>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<a href="#" class="btn" data-dismiss="modal">Close</a>
|
|
||||||
<a href="#" class="btn btn-primary">Save changes</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<footer>
|
|
||||||
<p class="pull-left">© <a href="http://usman.it" target="_blank">Muhammad Usman</a> 2012</p>
|
|
||||||
<p class="pull-right">Powered by: <a href="http://usman.it/free-responsive-admin-template">Charisma</a></p>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</div><!--/.fluid-container-->
|
|
||||||
|
|
||||||
<!-- external javascript
|
|
||||||
================================================== -->
|
|
||||||
<!-- Placed at the end of the document so the pages load faster -->
|
|
||||||
|
|
||||||
<!-- jQuery -->
|
|
||||||
<script src="${staticPath}/js/jquery-1.7.2.min.js"></script>
|
|
||||||
<!-- jQuery UI -->
|
|
||||||
<script src="${staticPath}/js/jquery-ui-1.8.21.custom.min.js"></script>
|
|
||||||
<!-- transition / effect library -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-transition.js"></script>
|
|
||||||
<!-- alert enhancer library -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-alert.js"></script>
|
|
||||||
<!-- modal / dialog library -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-modal.js"></script>
|
|
||||||
<!-- custom dropdown library -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-dropdown.js"></script>
|
|
||||||
<!-- scrolspy library -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-scrollspy.js"></script>
|
|
||||||
<!-- library for creating tabs -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-tab.js"></script>
|
|
||||||
<!-- library for advanced tooltip -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-tooltip.js"></script>
|
|
||||||
<!-- popover effect library -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-popover.js"></script>
|
|
||||||
<!-- button enhancer library -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-button.js"></script>
|
|
||||||
<!-- accordion library (optional, not used in demo) -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-collapse.js"></script>
|
|
||||||
<!-- carousel slideshow library (optional, not used in demo) -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-carousel.js"></script>
|
|
||||||
<!-- autocomplete library -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-typeahead.js"></script>
|
|
||||||
<!-- tour library -->
|
|
||||||
<script src="${staticPath}/js/bootstrap-tour.js"></script>
|
|
||||||
<!-- library for cookie management -->
|
|
||||||
<script src="${staticPath}/js/jquery.cookie.js"></script>
|
|
||||||
<!-- calander plugin -->
|
|
||||||
<script src='${staticPath}/js/fullcalendar.min.js'></script>
|
|
||||||
<!-- data table plugin -->
|
|
||||||
<script src='${staticPath}/js/jquery.dataTables.min.js'></script>
|
|
||||||
|
|
||||||
<!-- chart libraries start -->
|
|
||||||
<script src="${staticPath}/js/excanvas.js"></script>
|
|
||||||
<script src="${staticPath}/js/jquery.flot.min.js"></script>
|
|
||||||
<script src="${staticPath}/js/jquery.flot.pie.min.js"></script>
|
|
||||||
<script src="${staticPath}/js/jquery.flot.stack.js"></script>
|
|
||||||
<script src="${staticPath}/js/jquery.flot.resize.min.js"></script>
|
|
||||||
<!-- chart libraries end -->
|
|
||||||
|
|
||||||
<!-- select or dropdown enhancer -->
|
|
||||||
<script src="${staticPath}/js/jquery.chosen.min.js"></script>
|
|
||||||
<!-- checkbox, radio, and file input styler -->
|
|
||||||
<script src="${staticPath}/js/jquery.uniform.min.js"></script>
|
|
||||||
<!-- plugin for gallery image view -->
|
|
||||||
<script src="${staticPath}/js/jquery.colorbox.min.js"></script>
|
|
||||||
<!-- rich text editor library -->
|
|
||||||
<script src="${staticPath}/js/jquery.cleditor.min.js"></script>
|
|
||||||
<!-- notification plugin -->
|
|
||||||
<script src="${staticPath}/js/jquery.noty.js"></script>
|
|
||||||
<!-- file manager library -->
|
|
||||||
<script src="${staticPath}/js/jquery.elfinder.min.js"></script>
|
|
||||||
<!-- star rating plugin -->
|
|
||||||
<script src="${staticPath}/js/jquery.raty.min.js"></script>
|
|
||||||
<!-- for iOS style toggle switch -->
|
|
||||||
<script src="${staticPath}/js/jquery.iphone.toggle.js"></script>
|
|
||||||
<!-- autogrowing textarea plugin -->
|
|
||||||
<script src="${staticPath}/js/jquery.autogrow-textarea.js"></script>
|
|
||||||
<!-- multiple file upload plugin -->
|
|
||||||
<script src="${staticPath}/js/jquery.uploadify-3.1.min.js"></script>
|
|
||||||
<!-- history.js for cross-browser state change on ajax -->
|
|
||||||
<script src="${staticPath}/js/jquery.history.js"></script>
|
|
||||||
<!-- application script for Charisma demo -->
|
|
||||||
<script src="${staticPath}/js/charisma.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,53 +0,0 @@
|
||||||
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
|
|
||||||
|
|
||||||
<display-name>Archetype Created Web Application</display-name>
|
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>contextConfigLocation</param-name>
|
|
||||||
<param-value>
|
|
||||||
classpath*:/config/spring/applicationContext*.xml,
|
|
||||||
</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>contextClass</param-name>
|
|
||||||
<param-value>org.springframework.web.context.support.XmlWebApplicationContext</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<!--由Sprng载入的Log4j配置文件位置 -->
|
|
||||||
<context-param>
|
|
||||||
<param-name>log4jConfigLocation</param-name>
|
|
||||||
<param-value>classpath:log/log4j.xml</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>log4jRefreshInterval</param-name>
|
|
||||||
<param-value>60000</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>spring</servlet-name>
|
|
||||||
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
|
||||||
<init-param>
|
|
||||||
<param-name>contextConfigLocation</param-name>
|
|
||||||
<param-value>classpath*:config/spring/applicationContext*.xml</param-value>
|
|
||||||
</init-param>
|
|
||||||
<load-on-startup>1</load-on-startup>
|
|
||||||
</servlet>
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>spring</servlet-name>
|
|
||||||
<url-pattern>/</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
<error-page>
|
|
||||||
<error-code>404</error-code>
|
|
||||||
<location>/WEB-INF/jsp/404.jsp</location>
|
|
||||||
</error-page>
|
|
||||||
<error-page>
|
|
||||||
<error-code>500</error-code>
|
|
||||||
<location>/WEB-INF/jsp/500.jsp</location>
|
|
||||||
</error-page>
|
|
||||||
|
|
||||||
</web-app>
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,815 +0,0 @@
|
||||||
/*!
|
|
||||||
* Bootstrap Responsive v2.0.4
|
|
||||||
*
|
|
||||||
* Copyright 2012 Twitter, Inc
|
|
||||||
* Licensed under the Apache License v2.0
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Designed and built with all the love in the world @twitter by @mdo and @fat.
|
|
||||||
*/
|
|
||||||
|
|
||||||
.clearfix {
|
|
||||||
*zoom: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.clearfix:before,
|
|
||||||
.clearfix:after {
|
|
||||||
display: table;
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
|
|
||||||
.clearfix:after {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hide-text {
|
|
||||||
font: 0/0 a;
|
|
||||||
color: transparent;
|
|
||||||
text-shadow: none;
|
|
||||||
background-color: transparent;
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-block-level {
|
|
||||||
display: block;
|
|
||||||
width: 100%;
|
|
||||||
min-height: 28px;
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
-ms-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hidden {
|
|
||||||
display: none;
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.visible-phone {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.visible-tablet {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hidden-desktop {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 767px) {
|
|
||||||
.visible-phone {
|
|
||||||
display: inherit !important;
|
|
||||||
}
|
|
||||||
.hidden-phone {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
.hidden-desktop {
|
|
||||||
display: inherit !important;
|
|
||||||
}
|
|
||||||
.visible-desktop {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 768px) and (max-width: 979px) {
|
|
||||||
.visible-tablet {
|
|
||||||
display: inherit !important;
|
|
||||||
}
|
|
||||||
.hidden-tablet {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
.hidden-desktop {
|
|
||||||
display: inherit !important;
|
|
||||||
}
|
|
||||||
.visible-desktop {
|
|
||||||
display: none !important ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 480px) {
|
|
||||||
.nav-collapse {
|
|
||||||
-webkit-transform: translate3d(0, 0, 0);
|
|
||||||
}
|
|
||||||
.page-header h1 small {
|
|
||||||
display: block;
|
|
||||||
line-height: 18px;
|
|
||||||
}
|
|
||||||
input[type="checkbox"],
|
|
||||||
input[type="radio"] {
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
}
|
|
||||||
.form-horizontal .control-group > label {
|
|
||||||
float: none;
|
|
||||||
width: auto;
|
|
||||||
padding-top: 0;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.form-horizontal .controls {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
.form-horizontal .control-list {
|
|
||||||
padding-top: 0;
|
|
||||||
}
|
|
||||||
.form-horizontal .form-actions {
|
|
||||||
padding-right: 10px;
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
.modal {
|
|
||||||
position: absolute;
|
|
||||||
top: 10px;
|
|
||||||
right: 10px;
|
|
||||||
left: 10px;
|
|
||||||
width: auto;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.modal.fade.in {
|
|
||||||
top: 50%;
|
|
||||||
}
|
|
||||||
.modal-header .close {
|
|
||||||
padding: 10px;
|
|
||||||
margin: -10px;
|
|
||||||
}
|
|
||||||
.carousel-caption {
|
|
||||||
position: static;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 767px) {
|
|
||||||
body {
|
|
||||||
padding-right: 20px;
|
|
||||||
padding-left: 20px;
|
|
||||||
}
|
|
||||||
.navbar-fixed-top,
|
|
||||||
.navbar-fixed-bottom {
|
|
||||||
margin-right: -20px;
|
|
||||||
margin-left: -20px;
|
|
||||||
}
|
|
||||||
.container-fluid {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.dl-horizontal dt {
|
|
||||||
float: none;
|
|
||||||
width: auto;
|
|
||||||
clear: none;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.dl-horizontal dd {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
.container {
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
.row-fluid {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.row,
|
|
||||||
.thumbnails {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
[class*="span"],
|
|
||||||
.row-fluid [class*="span"] {
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
width: auto;
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
.input-large,
|
|
||||||
.input-xlarge,
|
|
||||||
.input-xxlarge,
|
|
||||||
input[class*="span"],
|
|
||||||
select[class*="span"],
|
|
||||||
textarea[class*="span"],
|
|
||||||
.uneditable-input {
|
|
||||||
display: block;
|
|
||||||
width: 100%;
|
|
||||||
min-height: 28px;
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
-ms-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
.input-prepend input,
|
|
||||||
.input-append input,
|
|
||||||
.input-prepend input[class*="span"],
|
|
||||||
.input-append input[class*="span"] {
|
|
||||||
display: inline-block;
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 768px) and (max-width: 979px) {
|
|
||||||
.row {
|
|
||||||
margin-left: -20px;
|
|
||||||
*zoom: 1;
|
|
||||||
}
|
|
||||||
.row:before,
|
|
||||||
.row:after {
|
|
||||||
display: table;
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
.row:after {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
[class*="span"] {
|
|
||||||
float: left;
|
|
||||||
margin-left: 20px;
|
|
||||||
}
|
|
||||||
.container,
|
|
||||||
.navbar-fixed-top .container,
|
|
||||||
.navbar-fixed-bottom .container {
|
|
||||||
width: 724px;
|
|
||||||
}
|
|
||||||
.span12 {
|
|
||||||
width: 724px;
|
|
||||||
}
|
|
||||||
.span11 {
|
|
||||||
width: 662px;
|
|
||||||
}
|
|
||||||
.span10 {
|
|
||||||
width: 600px;
|
|
||||||
}
|
|
||||||
.span9 {
|
|
||||||
width: 538px;
|
|
||||||
}
|
|
||||||
.span8 {
|
|
||||||
width: 476px;
|
|
||||||
}
|
|
||||||
.span7 {
|
|
||||||
width: 414px;
|
|
||||||
}
|
|
||||||
.span6 {
|
|
||||||
width: 352px;
|
|
||||||
}
|
|
||||||
.span5 {
|
|
||||||
width: 290px;
|
|
||||||
}
|
|
||||||
.span4 {
|
|
||||||
width: 228px;
|
|
||||||
}
|
|
||||||
.span3 {
|
|
||||||
width: 166px;
|
|
||||||
}
|
|
||||||
.span2 {
|
|
||||||
width: 104px;
|
|
||||||
}
|
|
||||||
.span1 {
|
|
||||||
width: 42px;
|
|
||||||
}
|
|
||||||
.offset12 {
|
|
||||||
margin-left: 764px;
|
|
||||||
}
|
|
||||||
.offset11 {
|
|
||||||
margin-left: 702px;
|
|
||||||
}
|
|
||||||
.offset10 {
|
|
||||||
margin-left: 640px;
|
|
||||||
}
|
|
||||||
.offset9 {
|
|
||||||
margin-left: 578px;
|
|
||||||
}
|
|
||||||
.offset8 {
|
|
||||||
margin-left: 516px;
|
|
||||||
}
|
|
||||||
.offset7 {
|
|
||||||
margin-left: 454px;
|
|
||||||
}
|
|
||||||
.offset6 {
|
|
||||||
margin-left: 392px;
|
|
||||||
}
|
|
||||||
.offset5 {
|
|
||||||
margin-left: 330px;
|
|
||||||
}
|
|
||||||
.offset4 {
|
|
||||||
margin-left: 268px;
|
|
||||||
}
|
|
||||||
.offset3 {
|
|
||||||
margin-left: 206px;
|
|
||||||
}
|
|
||||||
.offset2 {
|
|
||||||
margin-left: 144px;
|
|
||||||
}
|
|
||||||
.offset1 {
|
|
||||||
margin-left: 82px;
|
|
||||||
}
|
|
||||||
.row-fluid {
|
|
||||||
width: 100%;
|
|
||||||
*zoom: 1;
|
|
||||||
}
|
|
||||||
.row-fluid:before,
|
|
||||||
.row-fluid:after {
|
|
||||||
display: table;
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
.row-fluid:after {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
.row-fluid [class*="span"] {
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
width: 100%;
|
|
||||||
min-height: 28px;
|
|
||||||
margin-left: 2.762430939%;
|
|
||||||
*margin-left: 2.709239449638298%;
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
-ms-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
.row-fluid [class*="span"]:first-child {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
.row-fluid .span12 {
|
|
||||||
width: 99.999999993%;
|
|
||||||
*width: 99.9468085036383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span11 {
|
|
||||||
width: 91.436464082%;
|
|
||||||
*width: 91.38327259263829%;
|
|
||||||
}
|
|
||||||
.row-fluid .span10 {
|
|
||||||
width: 82.87292817100001%;
|
|
||||||
*width: 82.8197366816383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span9 {
|
|
||||||
width: 74.30939226%;
|
|
||||||
*width: 74.25620077063829%;
|
|
||||||
}
|
|
||||||
.row-fluid .span8 {
|
|
||||||
width: 65.74585634900001%;
|
|
||||||
*width: 65.6926648596383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span7 {
|
|
||||||
width: 57.182320438000005%;
|
|
||||||
*width: 57.129128948638304%;
|
|
||||||
}
|
|
||||||
.row-fluid .span6 {
|
|
||||||
width: 48.618784527%;
|
|
||||||
*width: 48.5655930376383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span5 {
|
|
||||||
width: 40.055248616%;
|
|
||||||
*width: 40.0020571266383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span4 {
|
|
||||||
width: 31.491712705%;
|
|
||||||
*width: 31.4385212156383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span3 {
|
|
||||||
width: 22.928176794%;
|
|
||||||
*width: 22.874985304638297%;
|
|
||||||
}
|
|
||||||
.row-fluid .span2 {
|
|
||||||
width: 14.364640883%;
|
|
||||||
*width: 14.311449393638298%;
|
|
||||||
}
|
|
||||||
.row-fluid .span1 {
|
|
||||||
width: 5.801104972%;
|
|
||||||
*width: 5.747913482638298%;
|
|
||||||
}
|
|
||||||
input,
|
|
||||||
textarea,
|
|
||||||
.uneditable-input {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
input.span12,
|
|
||||||
textarea.span12,
|
|
||||||
.uneditable-input.span12 {
|
|
||||||
width: 714px;
|
|
||||||
}
|
|
||||||
input.span11,
|
|
||||||
textarea.span11,
|
|
||||||
.uneditable-input.span11 {
|
|
||||||
width: 652px;
|
|
||||||
}
|
|
||||||
input.span10,
|
|
||||||
textarea.span10,
|
|
||||||
.uneditable-input.span10 {
|
|
||||||
width: 590px;
|
|
||||||
}
|
|
||||||
input.span9,
|
|
||||||
textarea.span9,
|
|
||||||
.uneditable-input.span9 {
|
|
||||||
width: 528px;
|
|
||||||
}
|
|
||||||
input.span8,
|
|
||||||
textarea.span8,
|
|
||||||
.uneditable-input.span8 {
|
|
||||||
width: 466px;
|
|
||||||
}
|
|
||||||
input.span7,
|
|
||||||
textarea.span7,
|
|
||||||
.uneditable-input.span7 {
|
|
||||||
width: 404px;
|
|
||||||
}
|
|
||||||
input.span6,
|
|
||||||
textarea.span6,
|
|
||||||
.uneditable-input.span6 {
|
|
||||||
width: 342px;
|
|
||||||
}
|
|
||||||
input.span5,
|
|
||||||
textarea.span5,
|
|
||||||
.uneditable-input.span5 {
|
|
||||||
width: 280px;
|
|
||||||
}
|
|
||||||
input.span4,
|
|
||||||
textarea.span4,
|
|
||||||
.uneditable-input.span4 {
|
|
||||||
width: 218px;
|
|
||||||
}
|
|
||||||
input.span3,
|
|
||||||
textarea.span3,
|
|
||||||
.uneditable-input.span3 {
|
|
||||||
width: 156px;
|
|
||||||
}
|
|
||||||
input.span2,
|
|
||||||
textarea.span2,
|
|
||||||
.uneditable-input.span2 {
|
|
||||||
width: 94px;
|
|
||||||
}
|
|
||||||
input.span1,
|
|
||||||
textarea.span1,
|
|
||||||
.uneditable-input.span1 {
|
|
||||||
width: 32px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
.row {
|
|
||||||
margin-left: -30px;
|
|
||||||
*zoom: 1;
|
|
||||||
}
|
|
||||||
.row:before,
|
|
||||||
.row:after {
|
|
||||||
display: table;
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
.row:after {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
[class*="span"] {
|
|
||||||
float: left;
|
|
||||||
margin-left: 30px;
|
|
||||||
}
|
|
||||||
.container,
|
|
||||||
.navbar-fixed-top .container,
|
|
||||||
.navbar-fixed-bottom .container {
|
|
||||||
width: 1170px;
|
|
||||||
}
|
|
||||||
.span12 {
|
|
||||||
width: 1170px;
|
|
||||||
}
|
|
||||||
.span11 {
|
|
||||||
width: 1070px;
|
|
||||||
}
|
|
||||||
.span10 {
|
|
||||||
width: 970px;
|
|
||||||
}
|
|
||||||
.span9 {
|
|
||||||
width: 870px;
|
|
||||||
}
|
|
||||||
.span8 {
|
|
||||||
width: 770px;
|
|
||||||
}
|
|
||||||
.span7 {
|
|
||||||
width: 670px;
|
|
||||||
}
|
|
||||||
.span6 {
|
|
||||||
width: 570px;
|
|
||||||
}
|
|
||||||
.span5 {
|
|
||||||
width: 470px;
|
|
||||||
}
|
|
||||||
.span4 {
|
|
||||||
width: 370px;
|
|
||||||
}
|
|
||||||
.span3 {
|
|
||||||
width: 270px;
|
|
||||||
}
|
|
||||||
.span2 {
|
|
||||||
width: 170px;
|
|
||||||
}
|
|
||||||
.span1 {
|
|
||||||
width: 70px;
|
|
||||||
}
|
|
||||||
.offset12 {
|
|
||||||
margin-left: 1230px;
|
|
||||||
}
|
|
||||||
.offset11 {
|
|
||||||
margin-left: 1130px;
|
|
||||||
}
|
|
||||||
.offset10 {
|
|
||||||
margin-left: 1030px;
|
|
||||||
}
|
|
||||||
.offset9 {
|
|
||||||
margin-left: 930px;
|
|
||||||
}
|
|
||||||
.offset8 {
|
|
||||||
margin-left: 830px;
|
|
||||||
}
|
|
||||||
.offset7 {
|
|
||||||
margin-left: 730px;
|
|
||||||
}
|
|
||||||
.offset6 {
|
|
||||||
margin-left: 630px;
|
|
||||||
}
|
|
||||||
.offset5 {
|
|
||||||
margin-left: 530px;
|
|
||||||
}
|
|
||||||
.offset4 {
|
|
||||||
margin-left: 430px;
|
|
||||||
}
|
|
||||||
.offset3 {
|
|
||||||
margin-left: 330px;
|
|
||||||
}
|
|
||||||
.offset2 {
|
|
||||||
margin-left: 230px;
|
|
||||||
}
|
|
||||||
.offset1 {
|
|
||||||
margin-left: 130px;
|
|
||||||
}
|
|
||||||
.row-fluid {
|
|
||||||
width: 100%;
|
|
||||||
*zoom: 1;
|
|
||||||
}
|
|
||||||
.row-fluid:before,
|
|
||||||
.row-fluid:after {
|
|
||||||
display: table;
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
.row-fluid:after {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
.row-fluid [class*="span"] {
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
width: 100%;
|
|
||||||
min-height: 28px;
|
|
||||||
margin-left: 2.564102564%;
|
|
||||||
*margin-left: 2.510911074638298%;
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
-ms-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
.row-fluid [class*="span"]:first-child {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
.row-fluid .span12 {
|
|
||||||
width: 100%;
|
|
||||||
*width: 99.94680851063829%;
|
|
||||||
}
|
|
||||||
.row-fluid .span11 {
|
|
||||||
width: 91.45299145300001%;
|
|
||||||
*width: 91.3997999636383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span10 {
|
|
||||||
width: 82.905982906%;
|
|
||||||
*width: 82.8527914166383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span9 {
|
|
||||||
width: 74.358974359%;
|
|
||||||
*width: 74.30578286963829%;
|
|
||||||
}
|
|
||||||
.row-fluid .span8 {
|
|
||||||
width: 65.81196581200001%;
|
|
||||||
*width: 65.7587743226383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span7 {
|
|
||||||
width: 57.264957265%;
|
|
||||||
*width: 57.2117657756383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span6 {
|
|
||||||
width: 48.717948718%;
|
|
||||||
*width: 48.6647572286383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span5 {
|
|
||||||
width: 40.170940171000005%;
|
|
||||||
*width: 40.117748681638304%;
|
|
||||||
}
|
|
||||||
.row-fluid .span4 {
|
|
||||||
width: 31.623931624%;
|
|
||||||
*width: 31.5707401346383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span3 {
|
|
||||||
width: 23.076923077%;
|
|
||||||
*width: 23.0237315876383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span2 {
|
|
||||||
width: 14.529914530000001%;
|
|
||||||
*width: 14.4767230406383%;
|
|
||||||
}
|
|
||||||
.row-fluid .span1 {
|
|
||||||
width: 5.982905983%;
|
|
||||||
*width: 5.929714493638298%;
|
|
||||||
}
|
|
||||||
input,
|
|
||||||
textarea,
|
|
||||||
.uneditable-input {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
input.span12,
|
|
||||||
textarea.span12,
|
|
||||||
.uneditable-input.span12 {
|
|
||||||
width: 1160px;
|
|
||||||
}
|
|
||||||
input.span11,
|
|
||||||
textarea.span11,
|
|
||||||
.uneditable-input.span11 {
|
|
||||||
width: 1060px;
|
|
||||||
}
|
|
||||||
input.span10,
|
|
||||||
textarea.span10,
|
|
||||||
.uneditable-input.span10 {
|
|
||||||
width: 960px;
|
|
||||||
}
|
|
||||||
input.span9,
|
|
||||||
textarea.span9,
|
|
||||||
.uneditable-input.span9 {
|
|
||||||
width: 860px;
|
|
||||||
}
|
|
||||||
input.span8,
|
|
||||||
textarea.span8,
|
|
||||||
.uneditable-input.span8 {
|
|
||||||
width: 760px;
|
|
||||||
}
|
|
||||||
input.span7,
|
|
||||||
textarea.span7,
|
|
||||||
.uneditable-input.span7 {
|
|
||||||
width: 660px;
|
|
||||||
}
|
|
||||||
input.span6,
|
|
||||||
textarea.span6,
|
|
||||||
.uneditable-input.span6 {
|
|
||||||
width: 560px;
|
|
||||||
}
|
|
||||||
input.span5,
|
|
||||||
textarea.span5,
|
|
||||||
.uneditable-input.span5 {
|
|
||||||
width: 460px;
|
|
||||||
}
|
|
||||||
input.span4,
|
|
||||||
textarea.span4,
|
|
||||||
.uneditable-input.span4 {
|
|
||||||
width: 360px;
|
|
||||||
}
|
|
||||||
input.span3,
|
|
||||||
textarea.span3,
|
|
||||||
.uneditable-input.span3 {
|
|
||||||
width: 260px;
|
|
||||||
}
|
|
||||||
input.span2,
|
|
||||||
textarea.span2,
|
|
||||||
.uneditable-input.span2 {
|
|
||||||
width: 160px;
|
|
||||||
}
|
|
||||||
input.span1,
|
|
||||||
textarea.span1,
|
|
||||||
.uneditable-input.span1 {
|
|
||||||
width: 60px;
|
|
||||||
}
|
|
||||||
.thumbnails {
|
|
||||||
margin-left: -30px;
|
|
||||||
}
|
|
||||||
.thumbnails > li {
|
|
||||||
margin-left: 30px;
|
|
||||||
}
|
|
||||||
.row-fluid .thumbnails {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 767px) {
|
|
||||||
body {
|
|
||||||
padding-top: 0;
|
|
||||||
}
|
|
||||||
.navbar-fixed-top,
|
|
||||||
.navbar-fixed-bottom {
|
|
||||||
position: static;
|
|
||||||
}
|
|
||||||
.navbar-fixed-top {
|
|
||||||
margin-bottom: 18px;
|
|
||||||
}
|
|
||||||
.navbar-fixed-bottom {
|
|
||||||
margin-top: 18px;
|
|
||||||
}
|
|
||||||
.navbar-fixed-top .navbar-inner,
|
|
||||||
.navbar-fixed-bottom .navbar-inner {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
.navbar .container {
|
|
||||||
width: auto;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.navbar .brand {
|
|
||||||
padding-right: 10px;
|
|
||||||
padding-left: 10px;
|
|
||||||
margin: 0 0 0 -5px;
|
|
||||||
}
|
|
||||||
.nav-collapse {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
.nav-collapse .nav {
|
|
||||||
float: none;
|
|
||||||
margin: 0 0 9px;
|
|
||||||
}
|
|
||||||
.nav-collapse .nav > li {
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
.nav-collapse .nav > li > a {
|
|
||||||
margin-bottom: 2px;
|
|
||||||
}
|
|
||||||
.nav-collapse .nav > .divider-vertical {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.nav-collapse .nav .nav-header {
|
|
||||||
color: #999999;
|
|
||||||
text-shadow: none;
|
|
||||||
}
|
|
||||||
.nav-collapse .nav > li > a,
|
|
||||||
.nav-collapse .dropdown-menu a {
|
|
||||||
padding: 6px 15px;
|
|
||||||
font-weight: bold;
|
|
||||||
color: #999999;
|
|
||||||
-webkit-border-radius: 3px;
|
|
||||||
-moz-border-radius: 3px;
|
|
||||||
border-radius: 3px;
|
|
||||||
}
|
|
||||||
.nav-collapse .btn {
|
|
||||||
padding: 4px 10px 4px;
|
|
||||||
font-weight: normal;
|
|
||||||
-webkit-border-radius: 4px;
|
|
||||||
-moz-border-radius: 4px;
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
.nav-collapse .dropdown-menu li + li a {
|
|
||||||
margin-bottom: 2px;
|
|
||||||
}
|
|
||||||
.nav-collapse .nav > li > a:hover,
|
|
||||||
.nav-collapse .dropdown-menu a:hover {
|
|
||||||
background-color: #222222;
|
|
||||||
}
|
|
||||||
.nav-collapse.in .btn-group {
|
|
||||||
padding: 0;
|
|
||||||
margin-top: 5px;
|
|
||||||
}
|
|
||||||
.nav-collapse .dropdown-menu {
|
|
||||||
position: static;
|
|
||||||
top: auto;
|
|
||||||
left: auto;
|
|
||||||
display: block;
|
|
||||||
float: none;
|
|
||||||
max-width: none;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0 15px;
|
|
||||||
background-color: transparent;
|
|
||||||
border: none;
|
|
||||||
-webkit-border-radius: 0;
|
|
||||||
-moz-border-radius: 0;
|
|
||||||
border-radius: 0;
|
|
||||||
-webkit-box-shadow: none;
|
|
||||||
-moz-box-shadow: none;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
.nav-collapse .dropdown-menu:before,
|
|
||||||
.nav-collapse .dropdown-menu:after {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.nav-collapse .dropdown-menu .divider {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.nav-collapse .navbar-form,
|
|
||||||
.nav-collapse .navbar-search {
|
|
||||||
float: none;
|
|
||||||
padding: 9px 15px;
|
|
||||||
margin: 9px 0;
|
|
||||||
border-top: 1px solid #222222;
|
|
||||||
border-bottom: 1px solid #222222;
|
|
||||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
|
|
||||||
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
|
|
||||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
|
|
||||||
}
|
|
||||||
.navbar .nav-collapse .nav.pull-right {
|
|
||||||
float: none;
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
.nav-collapse,
|
|
||||||
.nav-collapse.collapse {
|
|
||||||
height: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.navbar .btn-navbar {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.navbar-static .navbar-inner {
|
|
||||||
padding-right: 10px;
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
|
||||||
.nav-collapse.collapse {
|
|
||||||
height: auto !important;
|
|
||||||
overflow: visible !important;
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,503 +0,0 @@
|
||||||
/*@import url(https://fonts.googleapis.com/css?family=Shojumaru);*/
|
|
||||||
|
|
||||||
select{
|
|
||||||
background-color:#fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-block{
|
|
||||||
font-size:14px;
|
|
||||||
text-align: center;
|
|
||||||
padding: 5px;
|
|
||||||
margin-bottom:10px;
|
|
||||||
font-weight:bold;
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
line-height: 22px;
|
|
||||||
text-shadow: 0 0 1px #DDD;
|
|
||||||
text-decoration:none;
|
|
||||||
-webkit-box-shadow: inset 0 0 0 1px #FAFAFA;
|
|
||||||
-moz-box-shadow: inset 0 0 0 1px #FAFAFA;
|
|
||||||
box-shadow: inset 0 0 0 1px #FAFAFA;
|
|
||||||
background: -moz-linear-gradient(top, rgba(30,87,153,0.2) 0%, rgba(125,185,232,0) 100%);
|
|
||||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(30,87,153,0.2)), color-stop(100%,rgba(125,185,232,0)));
|
|
||||||
background: -webkit-linear-gradient(top, rgba(30,87,153,0.2) 0%,rgba(125,185,232,0) 100%);
|
|
||||||
background: -o-linear-gradient(top, rgba(30,87,153,0.2) 0%,rgba(125,185,232,0) 100%);
|
|
||||||
background: -ms-linear-gradient(top, rgba(30,87,153,0.2) 0%,rgba(125,185,232,0) 100%);
|
|
||||||
background: linear-gradient(to bottom, rgba(30,87,153,0.2) 0%,rgba(125,185,232,0) 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#331e5799', endColorstr='#007db9e8',GradientType=0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-block span{
|
|
||||||
clear:both;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.top-block:hover{
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: -10px;
|
|
||||||
right: -5px;
|
|
||||||
line-height: 16px;
|
|
||||||
height: 16px;
|
|
||||||
padding: 0 5px;
|
|
||||||
font-family: Arial, sans-serif;
|
|
||||||
color: white !important;
|
|
||||||
text-shadow: 0 1px
|
|
||||||
hsla(0, 0%, 0%, 0.25);
|
|
||||||
border-width: 1px;
|
|
||||||
border-style: solid;
|
|
||||||
border-radius: 10px;
|
|
||||||
-webkit-border-radius: 10px;
|
|
||||||
-moz-border-radius: 10px;
|
|
||||||
-webkit-box-shadow: 0 1px 1px
|
|
||||||
hsla(0, 0%, 0%, 0.08), inset 0 1px
|
|
||||||
hsla(0, 100%, 100%, 0.3);
|
|
||||||
-moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.08), inset 0 1px rgba(255, 255, 255, 0.3);
|
|
||||||
box-shadow: 0 1px 1px
|
|
||||||
hsla(0, 0%, 0%, 0.08), inset 0 1px
|
|
||||||
hsla(0, 100%, 100%, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification {
|
|
||||||
border-color: #2FABE9;
|
|
||||||
background-color: #67C2EF;
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, hsl(200, 80%, 82%)), color-stop(100%, hsl(200, 81%, 67%)));
|
|
||||||
background-image: -webkit-linear-gradient(top, hsl(200, 80%, 82%), hsl(200, 81%, 67%));
|
|
||||||
background-image: -moz-linear-gradient(top, hsl(200, 80%, 82%), hsl(200, 81%, 67%));
|
|
||||||
background-image: -ms-linear-gradient(top, hsl(200, 80%, 82%), hsl(200, 81%, 67%));
|
|
||||||
background-image: -o-linear-gradient(top, hsl(200, 80%, 82%), hsl(200, 81%, 67%));
|
|
||||||
background-image: linear-gradient(top, hsl(200, 80%, 82%), hsl(200, 81%, 67%));
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification.green {
|
|
||||||
border-color: #5AAD34;
|
|
||||||
background-color: #78CD51;
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, hsl(101, 54%, 71%)), color-stop(100%, hsl(101, 55%, 56%)));
|
|
||||||
background-image: -webkit-linear-gradient(top, hsl(101, 54%, 71%), hsl(101, 55%, 56%));
|
|
||||||
background-image: -moz-linear-gradient(top, hsl(101, 54%, 71%), hsl(101, 55%, 56%));
|
|
||||||
background-image: -ms-linear-gradient(top, hsl(101, 54%, 71%), hsl(101, 55%, 56%));
|
|
||||||
background-image: -o-linear-gradient(top, hsl(101, 54%, 71%), hsl(101, 55%, 56%));
|
|
||||||
background-image: linear-gradient(top, hsl(101, 54%, 71%), hsl(101, 55%, 56%));
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification.yellow {
|
|
||||||
border-color: #F4A506;
|
|
||||||
background-color: #FABB3D;
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, hsl(40, 95%, 76%)), color-stop(100%, hsl(40, 95%, 61%)));
|
|
||||||
background-image: -webkit-linear-gradient(top, hsl(40, 95%, 76%), hsl(40, 95%, 61%));
|
|
||||||
background-image: -moz-linear-gradient(top, hsl(40, 95%, 76%), hsl(40, 95%, 61%));
|
|
||||||
background-image: -ms-linear-gradient(top, hsl(40, 95%, 76%), hsl(40, 95%, 61%));
|
|
||||||
background-image: -o-linear-gradient(top, hsl(40, 95%, 76%), hsl(40, 95%, 61%));
|
|
||||||
background-image: linear-gradient(top, hsl(40, 95%, 76%), hsl(40, 95%, 61%));
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification.red {
|
|
||||||
border-color: #FA5833;
|
|
||||||
background-color: #FA603D;
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, hsl(11, 95%, 76%)), color-stop(100%, hsl(11, 95%, 61%)));
|
|
||||||
background-image: -webkit-linear-gradient(top, hsl(11, 95%, 76%), hsl(11, 95%, 61%));
|
|
||||||
background-image: -moz-linear-gradient(top, hsl(11, 95%, 76%), hsl(11, 95%, 61%));
|
|
||||||
background-image: -ms-linear-gradient(top, hsl(11, 95%, 76%), hsl(11, 95%, 61%));
|
|
||||||
background-image: -o-linear-gradient(top, hsl(11, 95%, 76%), hsl(11, 95%, 61%));
|
|
||||||
background-image: linear-gradient(top, hsl(11, 95%, 76%), hsl(11, 95%, 61%));
|
|
||||||
}
|
|
||||||
|
|
||||||
#external-events {
|
|
||||||
float: left;
|
|
||||||
width: 15%;
|
|
||||||
padding: 10px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.external-event{
|
|
||||||
margin: 5px;
|
|
||||||
cursor:move;
|
|
||||||
}
|
|
||||||
#calendar {
|
|
||||||
float: right;
|
|
||||||
width: 80%;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.box{
|
|
||||||
border: 1px solid #DEDEDE;
|
|
||||||
border-radius:3px;
|
|
||||||
-webkit-border-radius:3px;
|
|
||||||
-moz-border-radius:3px;
|
|
||||||
margin-top: 10px;
|
|
||||||
margin-bottom: 10px ;
|
|
||||||
box-shadow: 0 0 10px rgba(189, 189, 189, 0.4);
|
|
||||||
-webkit-box-shadow: 0 0 10px rgba(189, 189, 189, 0.4);
|
|
||||||
-moz-box-shadow: 0 0 10px rgba(189, 189, 189, 0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
.box-header{
|
|
||||||
border:none;
|
|
||||||
padding-top:5px;
|
|
||||||
border-bottom: 1px solid #DEDEDE;
|
|
||||||
border-radius:3px 3px 0 0;
|
|
||||||
-webkit-border-radius:3px 3px 0 0;
|
|
||||||
-moz-border-radius:3px 3px 0 0;
|
|
||||||
height:12px;
|
|
||||||
min-height:12px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
cursor:move;
|
|
||||||
font-weight:bold;
|
|
||||||
font-size:16px;
|
|
||||||
background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(0,0,0,0.1) 100%);
|
|
||||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(0,0,0,0.1)));
|
|
||||||
background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(0,0,0,0.1) 100%);
|
|
||||||
background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(0,0,0,0.1) 100%);
|
|
||||||
background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(0,0,0,0.1) 100%);
|
|
||||||
background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(0,0,0,0.1) 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#1a000000',GradientType=0 );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.box-header h2{
|
|
||||||
font-size:15px;
|
|
||||||
width:auto;
|
|
||||||
clear:none;
|
|
||||||
float:left;
|
|
||||||
line-height:25px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.box-header h3{
|
|
||||||
font-size:13px;
|
|
||||||
width:auto;
|
|
||||||
clear:none;
|
|
||||||
float:left;
|
|
||||||
line-height:25px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.box-header h2 > i{
|
|
||||||
margin-top:1px;
|
|
||||||
}
|
|
||||||
.box-icon{
|
|
||||||
float:right;
|
|
||||||
}
|
|
||||||
.box-icon a{
|
|
||||||
clear:none;
|
|
||||||
float:left;
|
|
||||||
margin:0 2px;
|
|
||||||
height: 18px;
|
|
||||||
width:5px;
|
|
||||||
margin-top: -1px;
|
|
||||||
}
|
|
||||||
.box-icon a i{
|
|
||||||
margin-left:-4.5px;
|
|
||||||
}
|
|
||||||
.box-content{
|
|
||||||
padding:10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.btn-round{
|
|
||||||
border-radius: 40px;
|
|
||||||
-webkit-border-radius: 40px;
|
|
||||||
-moz-border-radius: 40px;
|
|
||||||
font-size:12px;
|
|
||||||
padding-top:4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.dashboard-list li{
|
|
||||||
padding: 7px 0;
|
|
||||||
list-style:none;
|
|
||||||
border-bottom: 1px solid #EBEBEB;
|
|
||||||
border-top: 1px solid white;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.dashboard-list a:hover{
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.dashboard-list{
|
|
||||||
margin:0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.dashboard-list li a span {
|
|
||||||
display: inline-block;
|
|
||||||
font-size: 18px;
|
|
||||||
font-weight: bold;
|
|
||||||
margin-right: 10px;
|
|
||||||
text-align: right;
|
|
||||||
width: 70px;
|
|
||||||
zoom: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboard-avatar{
|
|
||||||
height: 50px;
|
|
||||||
width: 50px;
|
|
||||||
padding: 1px;
|
|
||||||
float: left;
|
|
||||||
margin-left: 15px;
|
|
||||||
margin-right: 15px;
|
|
||||||
border: 1px solid #EBEBEB;
|
|
||||||
}
|
|
||||||
|
|
||||||
#prependedInput,#appendedPrependedInput,#appendedInputButtons,#appendedInputButton{
|
|
||||||
width:200px;
|
|
||||||
}
|
|
||||||
#appendedInput{
|
|
||||||
width:75px;
|
|
||||||
}
|
|
||||||
.thumbnail{
|
|
||||||
background-color:white;
|
|
||||||
z-index:2;
|
|
||||||
position:relative;
|
|
||||||
margin-bottom:40px !important;
|
|
||||||
}
|
|
||||||
.thumbnails > li{
|
|
||||||
margin-left:15px;
|
|
||||||
}
|
|
||||||
.thumbnail img,.thumbnail > a{
|
|
||||||
z-index:2;
|
|
||||||
height:100px;
|
|
||||||
width:100px;
|
|
||||||
position:relative;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
img.grayscale{
|
|
||||||
-webkit-filter: grayscale(1);
|
|
||||||
-webkit-filter: grayscale(100%);
|
|
||||||
-moz-filter: grayscale(100%);
|
|
||||||
-ms-filter: grayscale(100%);
|
|
||||||
-o-filter: grayscale(100%);
|
|
||||||
/*filter: url(desaturate.svg#grayscale);
|
|
||||||
filter: gray;
|
|
||||||
filter: grayscale(100%); */
|
|
||||||
}
|
|
||||||
|
|
||||||
.thumbnail .gallery-controls{
|
|
||||||
position:absolute;
|
|
||||||
z-index:1;
|
|
||||||
margin-top:-30px;
|
|
||||||
height:22px;
|
|
||||||
min-height:22px;
|
|
||||||
width:80px;
|
|
||||||
padding:9px;
|
|
||||||
}
|
|
||||||
.thumbnail .gallery-controls p{
|
|
||||||
display:block;
|
|
||||||
margin:auto;
|
|
||||||
width:100%;
|
|
||||||
}
|
|
||||||
label div.checker,label div.radio{
|
|
||||||
margin-bottom:3px;
|
|
||||||
}
|
|
||||||
div.uploader{
|
|
||||||
border-radius:14px;
|
|
||||||
-webkit-border-radius:14px;
|
|
||||||
-moz-border-radius:14px;
|
|
||||||
}
|
|
||||||
footer{
|
|
||||||
clear:both;
|
|
||||||
}
|
|
||||||
footer .pull-right{
|
|
||||||
float:right;
|
|
||||||
margin-right:10px;
|
|
||||||
}
|
|
||||||
footer .pull-left{
|
|
||||||
float:left;
|
|
||||||
margin-left:10px;
|
|
||||||
}
|
|
||||||
.docs-input-sizes select, .docs-input-sizes input[type="text"] {
|
|
||||||
display: block;
|
|
||||||
margin-bottom: 9px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.center,p.center,img.center{
|
|
||||||
margin-left: auto !important;
|
|
||||||
margin-right: auto !important;
|
|
||||||
float:none !important;
|
|
||||||
display: block;
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stackControls{
|
|
||||||
padding:5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.clear{
|
|
||||||
clear:both;
|
|
||||||
width:0px;
|
|
||||||
height:0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-nav{
|
|
||||||
min-height:0;
|
|
||||||
box-shadow: 0 0 10px #BDBDBD;
|
|
||||||
-webkit-box-shadow: 0 0 10px #BDBDBD;
|
|
||||||
-moz-box-shadow: 0 0 10px #BDBDBD;
|
|
||||||
border-radius: 5px;
|
|
||||||
-webkit-border-radius: 5px;
|
|
||||||
-moz-border-radius: 5px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
padding-bottom:0;
|
|
||||||
}
|
|
||||||
.sidebar-nav > ul > li:not(.nav-header){
|
|
||||||
margin-right:-2px;
|
|
||||||
margin-left:-2px;
|
|
||||||
}
|
|
||||||
.brand{
|
|
||||||
font-family: 'Shojumaru', cursive, Arial, serif;
|
|
||||||
letter-spacing:2px;
|
|
||||||
text-shadow:1px 1px 5px rgba(0, 0, 0, 0.5);
|
|
||||||
width:166px;
|
|
||||||
}
|
|
||||||
.brand img{
|
|
||||||
float:left;
|
|
||||||
height:20px;
|
|
||||||
width:20px;
|
|
||||||
margin-right:5px;
|
|
||||||
}
|
|
||||||
.brand span{
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
@media (max-width: 979px){
|
|
||||||
.sidebar-nav{
|
|
||||||
padding:0;
|
|
||||||
margin-bottom:0;
|
|
||||||
}
|
|
||||||
.theme-text{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media (min-width: 768px) and (max-width: 979px) {
|
|
||||||
.box-icon{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.box-header h2{
|
|
||||||
font-size:13px !important;
|
|
||||||
}
|
|
||||||
.box-header h3{
|
|
||||||
font-size:11px !important;
|
|
||||||
}
|
|
||||||
.main-menu-span{
|
|
||||||
width:6.2% !important;
|
|
||||||
margin-right:4%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-search{
|
|
||||||
margin-left:10px;
|
|
||||||
}
|
|
||||||
.navbar-inner{
|
|
||||||
border-radius:0 0 10px 10px;
|
|
||||||
-webkit-border-radius:0 0 10px 10px;
|
|
||||||
-moz-border-radius:0 0 10px 10px;
|
|
||||||
padding-top:5px;
|
|
||||||
padding-bottom:5px;
|
|
||||||
}
|
|
||||||
div.dataTables_length select {
|
|
||||||
width: 50px;
|
|
||||||
}
|
|
||||||
.dataTables_filter input, .dataTables_length select {
|
|
||||||
display: inline-block;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
ul.ajax-loaders li{
|
|
||||||
display:inline-block;
|
|
||||||
list-style:none;
|
|
||||||
padding:10px;
|
|
||||||
}
|
|
||||||
ul.ajax-loaders{
|
|
||||||
min-height:80px;
|
|
||||||
}
|
|
||||||
.bs-icons li{
|
|
||||||
list-style:none;
|
|
||||||
}
|
|
||||||
#for-is-ajax{
|
|
||||||
padding-left: 12px;
|
|
||||||
cursor:pointer;
|
|
||||||
}
|
|
||||||
#loading{
|
|
||||||
margin-top: 20px;
|
|
||||||
width:128px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
#loading div.center{
|
|
||||||
margin-top:10px;
|
|
||||||
height:15px;
|
|
||||||
width:128px;
|
|
||||||
background:url(../img/ajax-loaders/ajax-loader-6.gif);
|
|
||||||
}
|
|
||||||
|
|
||||||
.box-content .nav-tabs{
|
|
||||||
margin-right:-10px;
|
|
||||||
margin-left:-10px;
|
|
||||||
}
|
|
||||||
#inputIcon{
|
|
||||||
width:200px;
|
|
||||||
}
|
|
||||||
.show-grid [class*="span"] {
|
|
||||||
background-color: #EDEDED;
|
|
||||||
text-align: center;
|
|
||||||
-webkit-border-radius: 3px;
|
|
||||||
-moz-border-radius: 3px;
|
|
||||||
border-radius: 3px;
|
|
||||||
min-height: 30px;
|
|
||||||
line-height: 30px;
|
|
||||||
}
|
|
||||||
.show-grid {
|
|
||||||
margin-top: 10px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
color:black;
|
|
||||||
}
|
|
||||||
.show-grid:hover [class*="span"] {
|
|
||||||
background: #DEDEDE;
|
|
||||||
}
|
|
||||||
.login-header{
|
|
||||||
padding-top:30px;
|
|
||||||
height:120px;
|
|
||||||
}
|
|
||||||
.pull-left{
|
|
||||||
float:left !important;
|
|
||||||
}
|
|
||||||
.pull-right{
|
|
||||||
float:right !important;
|
|
||||||
}
|
|
||||||
.remember{
|
|
||||||
margin-top:3px;
|
|
||||||
}
|
|
||||||
.green {
|
|
||||||
color: #458746;
|
|
||||||
}
|
|
||||||
.red {
|
|
||||||
color: #B94846;
|
|
||||||
}
|
|
||||||
.blue {
|
|
||||||
color: #3986AC;
|
|
||||||
}
|
|
||||||
.yellow {
|
|
||||||
color: #F99406;
|
|
||||||
}
|
|
||||||
.login-box{
|
|
||||||
|
|
||||||
}
|
|
||||||
.login-box .input-prepend{
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
.login-box .btn{
|
|
||||||
margin-top:15px;
|
|
||||||
width:100%
|
|
||||||
}
|
|
||||||
.charisma_qr{
|
|
||||||
height:136px;
|
|
||||||
width:136px;
|
|
||||||
border:solid grey 1px;
|
|
||||||
border-radius:2px;
|
|
||||||
-webkit-border-radius:2px;
|
|
||||||
-moz-border-radius:2px;
|
|
||||||
box-shadow: 0 0 10px #BDBDBD;
|
|
||||||
-webkit-box-shadow: 0 0 10px #BDBDBD;
|
|
||||||
-moz-box-shadow: 0 0 10px #BDBDBD;
|
|
||||||
}
|
|
||||||
.box-content.buttons{
|
|
||||||
min-height:297px;
|
|
||||||
}
|
|
|
@ -1,396 +0,0 @@
|
||||||
/* @group Base */
|
|
||||||
.chzn-container {
|
|
||||||
font-size: 13px;
|
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
|
||||||
zoom: 1;
|
|
||||||
*display: inline;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-drop {
|
|
||||||
background: #fff;
|
|
||||||
border: 1px solid #aaa;
|
|
||||||
border-top: 0;
|
|
||||||
position: absolute;
|
|
||||||
top: 29px;
|
|
||||||
left: 0;
|
|
||||||
-webkit-box-shadow: 0 4px 5px rgba(0,0,0,.15);
|
|
||||||
-moz-box-shadow : 0 4px 5px rgba(0,0,0,.15);
|
|
||||||
-o-box-shadow : 0 4px 5px rgba(0,0,0,.15);
|
|
||||||
box-shadow : 0 4px 5px rgba(0,0,0,.15);
|
|
||||||
z-index: 1010;
|
|
||||||
}
|
|
||||||
/* @end */
|
|
||||||
|
|
||||||
/* @group Single Chosen */
|
|
||||||
.chzn-container-single .chzn-single {
|
|
||||||
background-color: #ffffff;
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0 );
|
|
||||||
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
|
|
||||||
background-image: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
|
||||||
background-image: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
|
||||||
background-image: -ms-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
|
||||||
background-image: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
|
||||||
-webkit-border-radius: 5px;
|
|
||||||
-moz-border-radius : 5px;
|
|
||||||
border-radius : 5px;
|
|
||||||
-moz-background-clip : padding;
|
|
||||||
-webkit-background-clip: padding-box;
|
|
||||||
background-clip : padding-box;
|
|
||||||
border: 1px solid #aaaaaa;
|
|
||||||
-webkit-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
|
|
||||||
-moz-box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
|
|
||||||
box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
white-space: nowrap;
|
|
||||||
position: relative;
|
|
||||||
height: 23px;
|
|
||||||
line-height: 24px;
|
|
||||||
padding: 0 0 0 8px;
|
|
||||||
color: #444444;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.chzn-container-single .chzn-default {
|
|
||||||
color: #999;
|
|
||||||
}
|
|
||||||
.chzn-container-single .chzn-single span {
|
|
||||||
margin-right: 26px;
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
white-space: nowrap;
|
|
||||||
-o-text-overflow: ellipsis;
|
|
||||||
-ms-text-overflow: ellipsis;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
}
|
|
||||||
.chzn-container-single .chzn-single abbr {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
right: 26px;
|
|
||||||
top: 6px;
|
|
||||||
width: 12px;
|
|
||||||
height: 13px;
|
|
||||||
font-size: 1px;
|
|
||||||
background: url('../img/../img/chosen-sprite.png') right top no-repeat;
|
|
||||||
}
|
|
||||||
.chzn-container-single .chzn-single abbr:hover {
|
|
||||||
background-position: right -11px;
|
|
||||||
}
|
|
||||||
.chzn-container-single.chzn-disabled .chzn-single abbr:hover {
|
|
||||||
background-position: right top;
|
|
||||||
}
|
|
||||||
.chzn-container-single .chzn-single div {
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
display: block;
|
|
||||||
height: 100%;
|
|
||||||
width: 18px;
|
|
||||||
}
|
|
||||||
.chzn-container-single .chzn-single div b {
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat 0 0;
|
|
||||||
display: block;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
.chzn-container-single .chzn-search {
|
|
||||||
padding: 3px 4px;
|
|
||||||
position: relative;
|
|
||||||
margin: 0;
|
|
||||||
white-space: nowrap;
|
|
||||||
z-index: 1010;
|
|
||||||
}
|
|
||||||
.chzn-container-single .chzn-search input {
|
|
||||||
background: #fff url('../img/chosen-sprite.png') no-repeat 100% -22px;
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat 100% -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
margin: 1px 0;
|
|
||||||
padding: 4px 20px 4px 5px;
|
|
||||||
outline: 0;
|
|
||||||
border: 1px solid #aaa;
|
|
||||||
font-family: sans-serif;
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
.chzn-container-single .chzn-drop {
|
|
||||||
-webkit-border-radius: 0 0 4px 4px;
|
|
||||||
-moz-border-radius : 0 0 4px 4px;
|
|
||||||
border-radius : 0 0 4px 4px;
|
|
||||||
-moz-background-clip : padding;
|
|
||||||
-webkit-background-clip: padding-box;
|
|
||||||
background-clip : padding-box;
|
|
||||||
}
|
|
||||||
/* @end */
|
|
||||||
|
|
||||||
.chzn-container-single-nosearch .chzn-search input {
|
|
||||||
position: absolute;
|
|
||||||
left: -9000px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* @group Multi Chosen */
|
|
||||||
.chzn-container-multi .chzn-choices {
|
|
||||||
background-color: #fff;
|
|
||||||
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
|
||||||
background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background-image: -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background-image: linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
border: 1px solid #aaa;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
cursor: text;
|
|
||||||
overflow: hidden;
|
|
||||||
height: auto !important;
|
|
||||||
height: 1%;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-choices li {
|
|
||||||
float: left;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-choices .search-field {
|
|
||||||
white-space: nowrap;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-choices .search-field input {
|
|
||||||
color: #666;
|
|
||||||
background: transparent !important;
|
|
||||||
border: 0 !important;
|
|
||||||
font-family: sans-serif;
|
|
||||||
font-size: 100%;
|
|
||||||
height: 15px;
|
|
||||||
padding: 5px;
|
|
||||||
margin: 1px 0;
|
|
||||||
outline: 0;
|
|
||||||
-webkit-box-shadow: none;
|
|
||||||
-moz-box-shadow : none;
|
|
||||||
-o-box-shadow : none;
|
|
||||||
box-shadow : none;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-choices .search-field .default {
|
|
||||||
color: #999;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-choices .search-choice {
|
|
||||||
-webkit-border-radius: 3px;
|
|
||||||
-moz-border-radius : 3px;
|
|
||||||
border-radius : 3px;
|
|
||||||
-moz-background-clip : padding;
|
|
||||||
-webkit-background-clip: padding-box;
|
|
||||||
background-clip : padding-box;
|
|
||||||
background-color: #e4e4e4;
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
|
|
||||||
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
|
||||||
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
|
||||||
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
|
||||||
background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
|
||||||
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
|
||||||
-webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
|
|
||||||
-moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
|
|
||||||
box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
|
|
||||||
color: #333;
|
|
||||||
border: 1px solid #aaaaaa;
|
|
||||||
line-height: 13px;
|
|
||||||
padding: 3px 20px 3px 5px;
|
|
||||||
margin: 3px 0 3px 5px;
|
|
||||||
position: relative;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-choices .search-choice-focus {
|
|
||||||
background: #d4d4d4;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-choices .search-choice .search-choice-close {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
right: 3px;
|
|
||||||
top: 4px;
|
|
||||||
width: 12px;
|
|
||||||
height: 13px;
|
|
||||||
font-size: 1px;
|
|
||||||
background: url('../img/chosen-sprite.png') right top no-repeat;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover {
|
|
||||||
background-position: right -11px;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close {
|
|
||||||
background-position: right -11px;
|
|
||||||
}
|
|
||||||
/* @end */
|
|
||||||
|
|
||||||
/* @group Results */
|
|
||||||
.chzn-container .chzn-results {
|
|
||||||
margin: 0 4px 4px 0;
|
|
||||||
max-height: 240px;
|
|
||||||
padding: 0 0 0 4px;
|
|
||||||
position: relative;
|
|
||||||
overflow-x: hidden;
|
|
||||||
overflow-y: auto;
|
|
||||||
-webkit-overflow-scrolling: touch;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-results {
|
|
||||||
margin: -1px 0 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results li {
|
|
||||||
display: none;
|
|
||||||
line-height: 15px;
|
|
||||||
padding: 5px 6px;
|
|
||||||
margin: 0;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results .active-result {
|
|
||||||
cursor: pointer;
|
|
||||||
display: list-item;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results .highlighted {
|
|
||||||
background-color: #3875d7;
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3875d7', endColorstr='#2a62bc', GradientType=0 );
|
|
||||||
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
|
|
||||||
background-image: -webkit-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
|
|
||||||
background-image: -moz-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
|
|
||||||
background-image: -o-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
|
|
||||||
background-image: -ms-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
|
|
||||||
background-image: linear-gradient(top, #3875d7 20%, #2a62bc 90%);
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results li em {
|
|
||||||
background: #feffde;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results .highlighted em {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results .no-results {
|
|
||||||
background: #f4f4f4;
|
|
||||||
display: list-item;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results .group-result {
|
|
||||||
cursor: default;
|
|
||||||
color: #999;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results .group-option {
|
|
||||||
padding-left: 15px;
|
|
||||||
}
|
|
||||||
.chzn-container-multi .chzn-drop .result-selected {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results-scroll {
|
|
||||||
background: white;
|
|
||||||
margin: 0 4px;
|
|
||||||
position: absolute;
|
|
||||||
text-align: center;
|
|
||||||
width: 321px; /* This should by dynamic with js */
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results-scroll span {
|
|
||||||
display: inline-block;
|
|
||||||
height: 17px;
|
|
||||||
text-indent: -5000px;
|
|
||||||
width: 9px;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results-scroll-down {
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results-scroll-down span {
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat -4px -3px;
|
|
||||||
}
|
|
||||||
.chzn-container .chzn-results-scroll-up span {
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat -22px -3px;
|
|
||||||
}
|
|
||||||
/* @end */
|
|
||||||
|
|
||||||
/* @group Active */
|
|
||||||
.chzn-container-active .chzn-single {
|
|
||||||
-webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
|
|
||||||
-moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
|
|
||||||
-o-box-shadow : 0 0 5px rgba(0,0,0,.3);
|
|
||||||
box-shadow : 0 0 5px rgba(0,0,0,.3);
|
|
||||||
border: 1px solid #5897fb;
|
|
||||||
}
|
|
||||||
.chzn-container-active .chzn-single-with-drop {
|
|
||||||
border: 1px solid #aaa;
|
|
||||||
-webkit-box-shadow: 0 1px 0 #fff inset;
|
|
||||||
-moz-box-shadow : 0 1px 0 #fff inset;
|
|
||||||
-o-box-shadow : 0 1px 0 #fff inset;
|
|
||||||
box-shadow : 0 1px 0 #fff inset;
|
|
||||||
background-color: #eee;
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0 );
|
|
||||||
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
|
|
||||||
background-image: -webkit-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
|
|
||||||
background-image: -moz-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
|
|
||||||
background-image: -o-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
|
|
||||||
background-image: -ms-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
|
|
||||||
background-image: linear-gradient(top, #eeeeee 20%, #ffffff 80%);
|
|
||||||
-webkit-border-bottom-left-radius : 0;
|
|
||||||
-webkit-border-bottom-right-radius: 0;
|
|
||||||
-moz-border-radius-bottomleft : 0;
|
|
||||||
-moz-border-radius-bottomright: 0;
|
|
||||||
border-bottom-left-radius : 0;
|
|
||||||
border-bottom-right-radius: 0;
|
|
||||||
}
|
|
||||||
.chzn-container-active .chzn-single-with-drop div {
|
|
||||||
background: transparent;
|
|
||||||
border-left: none;
|
|
||||||
}
|
|
||||||
.chzn-container-active .chzn-single-with-drop div b {
|
|
||||||
background-position: -18px 1px;
|
|
||||||
}
|
|
||||||
.chzn-container-active .chzn-choices {
|
|
||||||
-webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
|
|
||||||
-moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
|
|
||||||
-o-box-shadow : 0 0 5px rgba(0,0,0,.3);
|
|
||||||
box-shadow : 0 0 5px rgba(0,0,0,.3);
|
|
||||||
border: 1px solid #5897fb;
|
|
||||||
}
|
|
||||||
.chzn-container-active .chzn-choices .search-field input {
|
|
||||||
color: #111 !important;
|
|
||||||
}
|
|
||||||
/* @end */
|
|
||||||
|
|
||||||
/* @group Disabled Support */
|
|
||||||
.chzn-disabled {
|
|
||||||
cursor: default;
|
|
||||||
opacity:0.5 !important;
|
|
||||||
}
|
|
||||||
.chzn-disabled .chzn-single {
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
.chzn-disabled .chzn-choices .search-choice .search-choice-close {
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* @group Right to Left */
|
|
||||||
.chzn-rtl { text-align: right; }
|
|
||||||
.chzn-rtl .chzn-single { padding: 0 8px 0 0; overflow: visible; }
|
|
||||||
.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; direction: rtl; }
|
|
||||||
|
|
||||||
.chzn-rtl .chzn-single div { left: 3px; right: auto; }
|
|
||||||
.chzn-rtl .chzn-single abbr {
|
|
||||||
left: 26px;
|
|
||||||
right: auto;
|
|
||||||
}
|
|
||||||
.chzn-rtl .chzn-choices .search-field input { direction: rtl; }
|
|
||||||
.chzn-rtl .chzn-choices li { float: right; }
|
|
||||||
.chzn-rtl .chzn-choices .search-choice { padding: 3px 5px 3px 19px; margin: 3px 5px 3px 0; }
|
|
||||||
.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 4px; right: auto; background-position: right top;}
|
|
||||||
.chzn-rtl.chzn-container-single .chzn-results { margin: 0 0 4px 4px; padding: 0 4px 0 0; }
|
|
||||||
.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 15px; }
|
|
||||||
.chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; }
|
|
||||||
.chzn-rtl .chzn-search input {
|
|
||||||
background: #fff url('../img/chosen-sprite.png') no-repeat -38px -22px;
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat -38px -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat -38px -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat -38px -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
background: url('../img/chosen-sprite.png') no-repeat -38px -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
|
||||||
padding: 4px 5px 4px 20px;
|
|
||||||
direction: rtl;
|
|
||||||
}
|
|
||||||
/* @end */
|
|
|
@ -1,52 +0,0 @@
|
||||||
/*
|
|
||||||
ColorBox Core Style:
|
|
||||||
The following CSS is consistent between example themes and should not be altered.
|
|
||||||
*/
|
|
||||||
#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
|
|
||||||
#cboxOverlay{position:fixed; width:100%; height:100%;}
|
|
||||||
#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
|
|
||||||
#cboxContent{position:relative;}
|
|
||||||
#cboxLoadedContent{overflow:auto;}
|
|
||||||
#cboxTitle{margin:0;}
|
|
||||||
#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
|
|
||||||
#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
|
|
||||||
.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
|
|
||||||
.cboxIframe{width:100%; height:100%; display:block; border:0;}
|
|
||||||
#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box;}
|
|
||||||
|
|
||||||
/*
|
|
||||||
User Style:
|
|
||||||
Change the following styles to modify the appearance of ColorBox. They are
|
|
||||||
ordered & tabbed in a way that represents the nesting of the generated HTML.
|
|
||||||
*/
|
|
||||||
#cboxOverlay{background:#000;}
|
|
||||||
#colorbox{}
|
|
||||||
#cboxTopLeft{width:14px; height:14px; background:url(../img/controls.png) no-repeat 0 0;}
|
|
||||||
#cboxTopCenter{height:14px; background:url(../img/border.png) repeat-x top left;}
|
|
||||||
#cboxTopRight{width:14px; height:14px; background:url(../img/controls.png) no-repeat -36px 0;}
|
|
||||||
#cboxBottomLeft{width:14px; height:43px; background:url(../img/controls.png) no-repeat 0 -32px;}
|
|
||||||
#cboxBottomCenter{height:43px; background:url(../img/border.png) repeat-x bottom left;}
|
|
||||||
#cboxBottomRight{width:14px; height:43px; background:url(../img/controls.png) no-repeat -36px -32px;}
|
|
||||||
#cboxMiddleLeft{width:14px; background:url(../img/controls.png) repeat-y -175px 0;}
|
|
||||||
#cboxMiddleRight{width:14px; background:url(../img/controls.png) repeat-y -211px 0;}
|
|
||||||
#cboxContent{background:#fff; overflow:visible;}
|
|
||||||
.cboxIframe{background:#fff;}
|
|
||||||
#cboxError{padding:50px; border:1px solid #ccc;}
|
|
||||||
#cboxLoadedContent{margin-bottom:5px;}
|
|
||||||
#cboxLoadingOverlay{background:url(../img/loading_background.png) no-repeat center center;}
|
|
||||||
#cboxLoadingGraphic{background:url(../img/loading.gif) no-repeat center center;}
|
|
||||||
#cboxTitle{position:absolute; bottom:-25px; left:0; text-align:center; width:100%; font-weight:bold; color:#7C7C7C;}
|
|
||||||
#cboxCurrent{position:absolute; bottom:-25px; left:58px; font-weight:bold; color:#7C7C7C;}
|
|
||||||
|
|
||||||
#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{position:absolute; bottom:-29px; background:url(../img/controls.png) no-repeat 0px 0px; width:23px; height:23px; text-indent:-9999px;}
|
|
||||||
#cboxPrevious{left:0px; background-position: -51px -25px;}
|
|
||||||
#cboxPrevious:hover{background-position:-51px 0px;}
|
|
||||||
#cboxNext{left:27px; background-position:-75px -25px;}
|
|
||||||
#cboxNext:hover{background-position:-75px 0px;}
|
|
||||||
#cboxClose{right:0; background-position:-100px -25px;}
|
|
||||||
#cboxClose:hover{background-position:-100px 0px;}
|
|
||||||
|
|
||||||
.cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px; right:27px;}
|
|
||||||
.cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0px;}
|
|
||||||
.cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px; right:27px;}
|
|
||||||
.cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0px;}
|
|
File diff suppressed because one or more lines are too long
|
@ -1,49 +0,0 @@
|
||||||
/**
|
|
||||||
* MacOS X like theme for elFinder.
|
|
||||||
* Required jquery ui "smoothness" theme.
|
|
||||||
*
|
|
||||||
* @author Dmitry (dio) Levashov
|
|
||||||
**/
|
|
||||||
|
|
||||||
/* dialogs */
|
|
||||||
.std42-dialog, .std42-dialog .ui-widget-content { background-color:#ededed; background-image:none; background-clip: content-box; }
|
|
||||||
|
|
||||||
/* navbar */
|
|
||||||
.elfinder .elfinder-navbar { background:#dde4eb; }
|
|
||||||
.elfinder-navbar .ui-state-hover { background:transparent; border-color:transparent; }
|
|
||||||
.elfinder-navbar .ui-state-active { background: #3875d7; border-color:#3875d7; color:#fff; }
|
|
||||||
/* disabled elfinder */
|
|
||||||
.elfinder-disabled .elfinder-navbar .ui-state-active { background: #dadada; border-color:#aaa; color:#fff; }
|
|
||||||
|
|
||||||
|
|
||||||
/* current directory */
|
|
||||||
/* selected file in "icons" view */
|
|
||||||
.elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover { background:#ccc; }
|
|
||||||
/* list view*/
|
|
||||||
.elfinder-cwd table tr:nth-child(odd) { background-color:#edf3fe; }
|
|
||||||
.elfinder-cwd table tr { border-top:1px solid #fff; }
|
|
||||||
|
|
||||||
/* common selected background/color */
|
|
||||||
.elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover,
|
|
||||||
.elfinder-cwd table td.ui-state-hover,
|
|
||||||
.elfinder-button-menu .ui-state-hover { background: #3875d7; color:#fff;}
|
|
||||||
/* disabled elfinder */
|
|
||||||
.elfinder-disabled .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover,
|
|
||||||
.elfinder-disabled .elfinder-cwd table td.ui-state-hover { background:#dadada;}
|
|
||||||
|
|
||||||
/* statusbar */
|
|
||||||
.elfinder .elfinder-statusbar { color:#555; }
|
|
||||||
.elfinder .elfinder-statusbar a { text-decoration:none; color:#555;}
|
|
||||||
|
|
||||||
|
|
||||||
.std42-dialog .elfinder-help, .std42-dialog .elfinder-help .ui-widget-content { background:#fff;}
|
|
||||||
|
|
||||||
/* contextmenu */
|
|
||||||
.elfinder-contextmenu .ui-state-hover { background: #3875d7; color:#fff; }
|
|
||||||
.elfinder-contextmenu .ui-state-hover .elfinder-contextmenu-arrow { background-image:url('../img/arrows-active.png'); }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,618 +0,0 @@
|
||||||
/*
|
|
||||||
* FullCalendar v1.5.3 Stylesheet
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011 Adam Shaw
|
|
||||||
* Dual licensed under the MIT and GPL licenses, located in
|
|
||||||
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
|
|
||||||
*
|
|
||||||
* Date: Mon Feb 6 22:40:40 2012 -0800
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
.fc {
|
|
||||||
direction: ltr;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc table {
|
|
||||||
border-collapse: collapse;
|
|
||||||
border-spacing: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
html .fc,
|
|
||||||
.fc table {
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc td,
|
|
||||||
.fc th {
|
|
||||||
padding: 0;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Header
|
|
||||||
------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-header td {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header-left {
|
|
||||||
width: 25%;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header-center {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header-right {
|
|
||||||
width: 25%;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header-title {
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header-title h2 {
|
|
||||||
margin-top: 0;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc .fc-header-space {
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header .fc-button {
|
|
||||||
margin-bottom: 1em;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* buttons edges butting together */
|
|
||||||
|
|
||||||
.fc-header .fc-button {
|
|
||||||
margin-right: -1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header .fc-corner-right {
|
|
||||||
margin-right: 1px; /* back to normal */
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header .ui-corner-right {
|
|
||||||
margin-right: 0; /* back to normal */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* button layering (for border precedence) */
|
|
||||||
|
|
||||||
.fc-header .fc-state-hover,
|
|
||||||
.fc-header .ui-state-hover {
|
|
||||||
z-index: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header .fc-state-down {
|
|
||||||
z-index: 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header .fc-state-active,
|
|
||||||
.fc-header .ui-state-active {
|
|
||||||
z-index: 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Content
|
|
||||||
------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-content {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-view {
|
|
||||||
width: 100%; /* needed for view switching (when view is absolute) */
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Cell Styles
|
|
||||||
------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-widget-header, /* <th>, usually */
|
|
||||||
.fc-widget-content { /* <td>, usually */
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */
|
|
||||||
background: #ffc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-cell-overlay { /* semi-transparent rectangle while dragging */
|
|
||||||
background: #9cf;
|
|
||||||
opacity: .2;
|
|
||||||
filter: alpha(opacity=20); /* for IE */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Buttons
|
|
||||||
------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-button {
|
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-state-default { /* non-theme */
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 1px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-button-inner {
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-state-default .fc-button-inner { /* non-theme */
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 0 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-button-content {
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
height: 1.9em;
|
|
||||||
line-height: 1.9em;
|
|
||||||
padding: 0 .6em;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* icon (for jquery ui) */
|
|
||||||
|
|
||||||
.fc-button-content .fc-icon-wrap {
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
top: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-button-content .ui-icon {
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
margin-top: -50%;
|
|
||||||
*margin-top: 0;
|
|
||||||
*top: -50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* gloss effect */
|
|
||||||
|
|
||||||
.fc-state-default .fc-button-effect {
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-state-default .fc-button-effect span {
|
|
||||||
position: absolute;
|
|
||||||
top: -100px;
|
|
||||||
left: 0;
|
|
||||||
width: 500px;
|
|
||||||
height: 100px;
|
|
||||||
border-width: 100px 0 0 1px;
|
|
||||||
border-style: solid;
|
|
||||||
border-color: #fff;
|
|
||||||
background: #444;
|
|
||||||
opacity: .09;
|
|
||||||
filter: alpha(opacity=9);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* button states (determines colors) */
|
|
||||||
|
|
||||||
.fc-state-default,
|
|
||||||
.fc-state-default .fc-button-inner {
|
|
||||||
border-style: solid;
|
|
||||||
border-color: #ccc #bbb #aaa;
|
|
||||||
background: #F3F3F3;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-state-hover,
|
|
||||||
.fc-state-hover .fc-button-inner {
|
|
||||||
border-color: #999;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-state-down,
|
|
||||||
.fc-state-down .fc-button-inner {
|
|
||||||
border-color: #555;
|
|
||||||
background: #777;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-state-active,
|
|
||||||
.fc-state-active .fc-button-inner {
|
|
||||||
border-color: #555;
|
|
||||||
background: #777;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-state-disabled,
|
|
||||||
.fc-state-disabled .fc-button-inner {
|
|
||||||
color: #999;
|
|
||||||
border-color: #ddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-state-disabled {
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-state-disabled .fc-button-effect {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Global Event Styles
|
|
||||||
------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-event {
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 0;
|
|
||||||
font-size: .85em;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.fc-event,
|
|
||||||
.fc-event-draggable {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.fc-event {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-rtl .fc-event {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-skin {
|
|
||||||
border-color: #36c; /* default BORDER color */
|
|
||||||
background-color: #36c; /* default BACKGROUND color */
|
|
||||||
color: #fff; /* default TEXT color */
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-inner {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-time,
|
|
||||||
.fc-event-title {
|
|
||||||
padding: 0 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc .ui-resizable-handle { /*** TODO: don't use ui-resizable anymore, change class ***/
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 99999;
|
|
||||||
overflow: hidden; /* hacky spaces (IE6/7) */
|
|
||||||
font-size: 300%; /* */
|
|
||||||
line-height: 50%; /* */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Horizontal Events
|
|
||||||
------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-event-hori {
|
|
||||||
border-width: 1px 0;
|
|
||||||
margin-bottom: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* resizable */
|
|
||||||
|
|
||||||
.fc-event-hori .ui-resizable-e {
|
|
||||||
top: 0 !important; /* importants override pre jquery ui 1.7 styles */
|
|
||||||
right: -3px !important;
|
|
||||||
width: 7px !important;
|
|
||||||
height: 100% !important;
|
|
||||||
cursor: e-resize;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-hori .ui-resizable-w {
|
|
||||||
top: 0 !important;
|
|
||||||
left: -3px !important;
|
|
||||||
width: 7px !important;
|
|
||||||
height: 100% !important;
|
|
||||||
cursor: w-resize;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-hori .ui-resizable-handle {
|
|
||||||
_padding-bottom: 14px; /* IE6 had 0 height */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Fake Rounded Corners (for buttons and events)
|
|
||||||
------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-corner-left {
|
|
||||||
margin-left: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-corner-left .fc-button-inner,
|
|
||||||
.fc-corner-left .fc-event-inner {
|
|
||||||
margin-left: -1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-corner-right {
|
|
||||||
margin-right: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-corner-right .fc-button-inner,
|
|
||||||
.fc-corner-right .fc-event-inner {
|
|
||||||
margin-right: -1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-corner-top {
|
|
||||||
margin-top: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-corner-top .fc-event-inner {
|
|
||||||
margin-top: -1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-corner-bottom {
|
|
||||||
margin-bottom: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-corner-bottom .fc-event-inner {
|
|
||||||
margin-bottom: -1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Fake Rounded Corners SPECIFICALLY FOR EVENTS
|
|
||||||
-----------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-corner-left .fc-event-inner {
|
|
||||||
border-left-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-corner-right .fc-event-inner {
|
|
||||||
border-right-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-corner-top .fc-event-inner {
|
|
||||||
border-top-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-corner-bottom .fc-event-inner {
|
|
||||||
border-bottom-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Reusable Separate-border Table
|
|
||||||
------------------------------------------------------------*/
|
|
||||||
|
|
||||||
table.fc-border-separate {
|
|
||||||
border-collapse: separate;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-border-separate th,
|
|
||||||
.fc-border-separate td {
|
|
||||||
border-width: 1px 0 0 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-border-separate th.fc-last,
|
|
||||||
.fc-border-separate td.fc-last {
|
|
||||||
border-right-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-border-separate tr.fc-last th,
|
|
||||||
.fc-border-separate tr.fc-last td {
|
|
||||||
border-bottom-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-border-separate tbody tr.fc-first td,
|
|
||||||
.fc-border-separate tbody tr.fc-first th {
|
|
||||||
border-top-width: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Month View, Basic Week View, Basic Day View
|
|
||||||
------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-grid th {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-grid .fc-day-number {
|
|
||||||
float: right;
|
|
||||||
padding: 0 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-grid .fc-other-month .fc-day-number {
|
|
||||||
opacity: 0.3;
|
|
||||||
filter: alpha(opacity=30); /* for IE */
|
|
||||||
/* opacity with small font can sometimes look too faded
|
|
||||||
might want to set the 'color' property instead
|
|
||||||
making day-numbers bold also fixes the problem */
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-grid .fc-day-content {
|
|
||||||
clear: both;
|
|
||||||
padding: 2px 2px 1px; /* distance between events and day edges */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* event styles */
|
|
||||||
|
|
||||||
.fc-grid .fc-event-time {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* right-to-left */
|
|
||||||
|
|
||||||
.fc-rtl .fc-grid .fc-day-number {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-rtl .fc-grid .fc-event-time {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Agenda Week View, Agenda Day View
|
|
||||||
------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-agenda table {
|
|
||||||
border-collapse: separate;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda-days th {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda .fc-agenda-axis {
|
|
||||||
width: 50px;
|
|
||||||
padding: 0 4px;
|
|
||||||
vertical-align: middle;
|
|
||||||
text-align: right;
|
|
||||||
white-space: nowrap;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda .fc-day-content {
|
|
||||||
padding: 2px 2px 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* make axis border take precedence */
|
|
||||||
|
|
||||||
.fc-agenda-days .fc-agenda-axis {
|
|
||||||
border-right-width: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda-days .fc-col0 {
|
|
||||||
border-left-width: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* all-day area */
|
|
||||||
|
|
||||||
.fc-agenda-allday th {
|
|
||||||
border-width: 0 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda-allday .fc-day-content {
|
|
||||||
min-height: 34px; /* TODO: doesnt work well in quirksmode */
|
|
||||||
_height: 34px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* divider (between all-day and slots) */
|
|
||||||
|
|
||||||
.fc-agenda-divider-inner {
|
|
||||||
height: 2px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-widget-header .fc-agenda-divider-inner {
|
|
||||||
background: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* slot rows */
|
|
||||||
|
|
||||||
.fc-agenda-slots th {
|
|
||||||
border-width: 1px 1px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda-slots td {
|
|
||||||
border-width: 1px 0 0;
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda-slots td div {
|
|
||||||
height: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda-slots tr.fc-slot0 th,
|
|
||||||
.fc-agenda-slots tr.fc-slot0 td {
|
|
||||||
border-top-width: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda-slots tr.fc-minor th,
|
|
||||||
.fc-agenda-slots tr.fc-minor td {
|
|
||||||
border-top-style: dotted;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda-slots tr.fc-minor th.ui-widget-header {
|
|
||||||
*border-top-style: solid; /* doesn't work with background in IE6/7 */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Vertical Events
|
|
||||||
------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-event-vert {
|
|
||||||
border-width: 0 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-vert .fc-event-head,
|
|
||||||
.fc-event-vert .fc-event-content {
|
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
|
||||||
width: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-vert .fc-event-time {
|
|
||||||
white-space: nowrap;
|
|
||||||
font-size: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */
|
|
||||||
position: absolute;
|
|
||||||
z-index: 1;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: #fff;
|
|
||||||
opacity: .3;
|
|
||||||
filter: alpha(opacity=30);
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */
|
|
||||||
.fc-select-helper .fc-event-bg {
|
|
||||||
display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* resizable */
|
|
||||||
|
|
||||||
.fc-event-vert .ui-resizable-s {
|
|
||||||
bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */
|
|
||||||
width: 100% !important;
|
|
||||||
height: 8px !important;
|
|
||||||
overflow: hidden !important;
|
|
||||||
line-height: 8px !important;
|
|
||||||
font-size: 11px !important;
|
|
||||||
font-family: monospace;
|
|
||||||
text-align: center;
|
|
||||||
cursor: s-resize;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-agenda .ui-resizable-resizing { /* TODO: better selector */
|
|
||||||
_overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
/*
|
|
||||||
* FullCalendar v1.5.3 Print Stylesheet
|
|
||||||
*
|
|
||||||
* Include this stylesheet on your page to get a more printer-friendly calendar.
|
|
||||||
* When including this stylesheet, use the media='print' attribute of the <link> tag.
|
|
||||||
* Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css.
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011 Adam Shaw
|
|
||||||
* Dual licensed under the MIT and GPL licenses, located in
|
|
||||||
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
|
|
||||||
*
|
|
||||||
* Date: Mon Feb 6 22:40:40 2012 -0800
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/* Events
|
|
||||||
-----------------------------------------------------*/
|
|
||||||
|
|
||||||
.fc-event-skin {
|
|
||||||
background: none !important;
|
|
||||||
color: #000 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* horizontal events */
|
|
||||||
|
|
||||||
.fc-event-hori {
|
|
||||||
border-width: 0 0 1px 0 !important;
|
|
||||||
border-bottom-style: dotted !important;
|
|
||||||
border-bottom-color: #000 !important;
|
|
||||||
padding: 1px 0 0 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-hori .fc-event-inner {
|
|
||||||
border-width: 0 !important;
|
|
||||||
padding: 0 1px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* vertical events */
|
|
||||||
|
|
||||||
.fc-event-vert {
|
|
||||||
border-width: 0 0 0 1px !important;
|
|
||||||
border-left-style: dotted !important;
|
|
||||||
border-left-color: #000 !important;
|
|
||||||
padding: 0 1px 0 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-vert .fc-event-inner {
|
|
||||||
border-width: 0 !important;
|
|
||||||
padding: 1px 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event-bg {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-event .ui-resizable-handle {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,565 +0,0 @@
|
||||||
/*!
|
|
||||||
* jQuery UI CSS Framework 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Theming/API
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Layout helpers
|
|
||||||
----------------------------------*/
|
|
||||||
.ui-helper-hidden { display: none; }
|
|
||||||
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
|
||||||
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
|
||||||
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
|
|
||||||
.ui-helper-clearfix:after { clear: both; }
|
|
||||||
.ui-helper-clearfix { zoom: 1; }
|
|
||||||
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
|
||||||
|
|
||||||
|
|
||||||
/* Interaction Cues
|
|
||||||
----------------------------------*/
|
|
||||||
.ui-state-disabled { cursor: default !important; }
|
|
||||||
|
|
||||||
|
|
||||||
/* Icons
|
|
||||||
----------------------------------*/
|
|
||||||
|
|
||||||
/* states and ../img */
|
|
||||||
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
|
||||||
|
|
||||||
|
|
||||||
/* Misc visuals
|
|
||||||
----------------------------------*/
|
|
||||||
|
|
||||||
/* Overlays */
|
|
||||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* jQuery UI CSS Framework 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Theming/API
|
|
||||||
*
|
|
||||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/* Component containers
|
|
||||||
----------------------------------*/
|
|
||||||
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
|
|
||||||
.ui-widget .ui-widget { font-size: 1em; }
|
|
||||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
|
|
||||||
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(../img/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
|
|
||||||
.ui-widget-content a { color: #222222; }
|
|
||||||
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(../img/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
|
|
||||||
.ui-widget-header a { color: #222222; }
|
|
||||||
|
|
||||||
/* Interaction states
|
|
||||||
----------------------------------*/
|
|
||||||
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(../img/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
|
|
||||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
|
|
||||||
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(../img/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
|
||||||
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
|
|
||||||
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(../img/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
|
||||||
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
|
|
||||||
.ui-widget :active { outline: none; }
|
|
||||||
|
|
||||||
/* Interaction Cues
|
|
||||||
----------------------------------*/
|
|
||||||
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(../img/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
|
|
||||||
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
|
||||||
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(../img/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
|
|
||||||
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
|
|
||||||
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
|
|
||||||
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
|
||||||
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
|
||||||
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
|
||||||
|
|
||||||
/* Icons
|
|
||||||
----------------------------------*/
|
|
||||||
|
|
||||||
/* states and ../img */
|
|
||||||
.ui-icon { width: 16px; height: 16px; background-image: url(../img/ui-icons_222222_256x240.png); }
|
|
||||||
.ui-widget-content .ui-icon {background-image: url(../img/ui-icons_222222_256x240.png); }
|
|
||||||
.ui-widget-header .ui-icon {background-image: url(../img/ui-icons_222222_256x240.png); }
|
|
||||||
.ui-state-default .ui-icon { background-image: url(../img/ui-icons_888888_256x240.png); }
|
|
||||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../img/ui-icons_454545_256x240.png); }
|
|
||||||
.ui-state-active .ui-icon {background-image: url(../img/ui-icons_454545_256x240.png); }
|
|
||||||
.ui-state-highlight .ui-icon {background-image: url(../img/ui-icons_2e83ff_256x240.png); }
|
|
||||||
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../img/ui-icons_cd0a0a_256x240.png); }
|
|
||||||
|
|
||||||
/* positioning */
|
|
||||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
|
||||||
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
|
||||||
.ui-icon-carat-1-e { background-position: -32px 0; }
|
|
||||||
.ui-icon-carat-1-se { background-position: -48px 0; }
|
|
||||||
.ui-icon-carat-1-s { background-position: -64px 0; }
|
|
||||||
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
|
||||||
.ui-icon-carat-1-w { background-position: -96px 0; }
|
|
||||||
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
|
||||||
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
|
||||||
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
|
||||||
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
|
||||||
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
|
||||||
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
|
||||||
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
|
||||||
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
|
||||||
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
|
||||||
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
|
||||||
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
|
||||||
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
|
||||||
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
|
||||||
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
|
||||||
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
|
||||||
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
|
||||||
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
|
||||||
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
|
||||||
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
|
||||||
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
|
||||||
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
|
||||||
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
|
||||||
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
|
||||||
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
|
||||||
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
|
||||||
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
|
||||||
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
|
||||||
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
|
||||||
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
|
||||||
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
|
||||||
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
|
||||||
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
|
||||||
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
|
||||||
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
|
||||||
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
|
||||||
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
|
||||||
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
|
||||||
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
|
||||||
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
|
||||||
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
|
||||||
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
|
||||||
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
|
||||||
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
|
||||||
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
|
||||||
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
|
||||||
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
|
||||||
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
|
||||||
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
|
||||||
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
|
||||||
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
|
||||||
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
|
||||||
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
|
||||||
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
|
||||||
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
|
||||||
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
|
||||||
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
|
||||||
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
|
||||||
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
|
||||||
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
|
||||||
.ui-icon-extlink { background-position: -32px -80px; }
|
|
||||||
.ui-icon-newwin { background-position: -48px -80px; }
|
|
||||||
.ui-icon-refresh { background-position: -64px -80px; }
|
|
||||||
.ui-icon-shuffle { background-position: -80px -80px; }
|
|
||||||
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
|
||||||
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
|
||||||
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
|
||||||
.ui-icon-folder-open { background-position: -16px -96px; }
|
|
||||||
.ui-icon-document { background-position: -32px -96px; }
|
|
||||||
.ui-icon-document-b { background-position: -48px -96px; }
|
|
||||||
.ui-icon-note { background-position: -64px -96px; }
|
|
||||||
.ui-icon-mail-closed { background-position: -80px -96px; }
|
|
||||||
.ui-icon-mail-open { background-position: -96px -96px; }
|
|
||||||
.ui-icon-suitcase { background-position: -112px -96px; }
|
|
||||||
.ui-icon-comment { background-position: -128px -96px; }
|
|
||||||
.ui-icon-person { background-position: -144px -96px; }
|
|
||||||
.ui-icon-print { background-position: -160px -96px; }
|
|
||||||
.ui-icon-trash { background-position: -176px -96px; }
|
|
||||||
.ui-icon-locked { background-position: -192px -96px; }
|
|
||||||
.ui-icon-unlocked { background-position: -208px -96px; }
|
|
||||||
.ui-icon-bookmark { background-position: -224px -96px; }
|
|
||||||
.ui-icon-tag { background-position: -240px -96px; }
|
|
||||||
.ui-icon-home { background-position: 0 -112px; }
|
|
||||||
.ui-icon-flag { background-position: -16px -112px; }
|
|
||||||
.ui-icon-calendar { background-position: -32px -112px; }
|
|
||||||
.ui-icon-cart { background-position: -48px -112px; }
|
|
||||||
.ui-icon-pencil { background-position: -64px -112px; }
|
|
||||||
.ui-icon-clock { background-position: -80px -112px; }
|
|
||||||
.ui-icon-disk { background-position: -96px -112px; }
|
|
||||||
.ui-icon-calculator { background-position: -112px -112px; }
|
|
||||||
.ui-icon-zoomin { background-position: -128px -112px; }
|
|
||||||
.ui-icon-zoomout { background-position: -144px -112px; }
|
|
||||||
.ui-icon-search { background-position: -160px -112px; }
|
|
||||||
.ui-icon-wrench { background-position: -176px -112px; }
|
|
||||||
.ui-icon-gear { background-position: -192px -112px; }
|
|
||||||
.ui-icon-heart { background-position: -208px -112px; }
|
|
||||||
.ui-icon-star { background-position: -224px -112px; }
|
|
||||||
.ui-icon-link { background-position: -240px -112px; }
|
|
||||||
.ui-icon-cancel { background-position: 0 -128px; }
|
|
||||||
.ui-icon-plus { background-position: -16px -128px; }
|
|
||||||
.ui-icon-plusthick { background-position: -32px -128px; }
|
|
||||||
.ui-icon-minus { background-position: -48px -128px; }
|
|
||||||
.ui-icon-minusthick { background-position: -64px -128px; }
|
|
||||||
.ui-icon-close { background-position: -80px -128px; }
|
|
||||||
.ui-icon-closethick { background-position: -96px -128px; }
|
|
||||||
.ui-icon-key { background-position: -112px -128px; }
|
|
||||||
.ui-icon-lightbulb { background-position: -128px -128px; }
|
|
||||||
.ui-icon-scissors { background-position: -144px -128px; }
|
|
||||||
.ui-icon-clipboard { background-position: -160px -128px; }
|
|
||||||
.ui-icon-copy { background-position: -176px -128px; }
|
|
||||||
.ui-icon-contact { background-position: -192px -128px; }
|
|
||||||
.ui-icon-image { background-position: -208px -128px; }
|
|
||||||
.ui-icon-video { background-position: -224px -128px; }
|
|
||||||
.ui-icon-script { background-position: -240px -128px; }
|
|
||||||
.ui-icon-alert { background-position: 0 -144px; }
|
|
||||||
.ui-icon-info { background-position: -16px -144px; }
|
|
||||||
.ui-icon-notice { background-position: -32px -144px; }
|
|
||||||
.ui-icon-help { background-position: -48px -144px; }
|
|
||||||
.ui-icon-check { background-position: -64px -144px; }
|
|
||||||
.ui-icon-bullet { background-position: -80px -144px; }
|
|
||||||
.ui-icon-radio-off { background-position: -96px -144px; }
|
|
||||||
.ui-icon-radio-on { background-position: -112px -144px; }
|
|
||||||
.ui-icon-pin-w { background-position: -128px -144px; }
|
|
||||||
.ui-icon-pin-s { background-position: -144px -144px; }
|
|
||||||
.ui-icon-play { background-position: 0 -160px; }
|
|
||||||
.ui-icon-pause { background-position: -16px -160px; }
|
|
||||||
.ui-icon-seek-next { background-position: -32px -160px; }
|
|
||||||
.ui-icon-seek-prev { background-position: -48px -160px; }
|
|
||||||
.ui-icon-seek-end { background-position: -64px -160px; }
|
|
||||||
.ui-icon-seek-start { background-position: -80px -160px; }
|
|
||||||
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
|
||||||
.ui-icon-seek-first { background-position: -80px -160px; }
|
|
||||||
.ui-icon-stop { background-position: -96px -160px; }
|
|
||||||
.ui-icon-eject { background-position: -112px -160px; }
|
|
||||||
.ui-icon-volume-off { background-position: -128px -160px; }
|
|
||||||
.ui-icon-volume-on { background-position: -144px -160px; }
|
|
||||||
.ui-icon-power { background-position: 0 -176px; }
|
|
||||||
.ui-icon-signal-diag { background-position: -16px -176px; }
|
|
||||||
.ui-icon-signal { background-position: -32px -176px; }
|
|
||||||
.ui-icon-battery-0 { background-position: -48px -176px; }
|
|
||||||
.ui-icon-battery-1 { background-position: -64px -176px; }
|
|
||||||
.ui-icon-battery-2 { background-position: -80px -176px; }
|
|
||||||
.ui-icon-battery-3 { background-position: -96px -176px; }
|
|
||||||
.ui-icon-circle-plus { background-position: 0 -192px; }
|
|
||||||
.ui-icon-circle-minus { background-position: -16px -192px; }
|
|
||||||
.ui-icon-circle-close { background-position: -32px -192px; }
|
|
||||||
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
|
||||||
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
|
||||||
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
|
||||||
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
|
||||||
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
|
||||||
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
|
||||||
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
|
||||||
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
|
||||||
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
|
||||||
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
|
||||||
.ui-icon-circle-check { background-position: -208px -192px; }
|
|
||||||
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
|
||||||
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
|
||||||
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
|
||||||
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
|
||||||
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
|
||||||
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
|
||||||
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
|
||||||
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
|
||||||
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
|
||||||
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
|
||||||
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
|
||||||
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
|
||||||
|
|
||||||
|
|
||||||
/* Misc visuals
|
|
||||||
----------------------------------*/
|
|
||||||
|
|
||||||
/* Corner radius */
|
|
||||||
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
|
||||||
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
|
||||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
|
||||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
|
||||||
|
|
||||||
/* Overlays */
|
|
||||||
.ui-widget-overlay { background: #aaaaaa url(../img/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
|
||||||
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(../img/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*!
|
|
||||||
* jQuery UI Resizable 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Resizable#theming
|
|
||||||
*/
|
|
||||||
.ui-resizable { position: relative;}
|
|
||||||
.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
|
|
||||||
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
|
||||||
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
|
||||||
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
|
||||||
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
|
||||||
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
|
||||||
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
|
||||||
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
|
||||||
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
|
||||||
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*!
|
|
||||||
* jQuery UI Selectable 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Selectable#theming
|
|
||||||
*/
|
|
||||||
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
|
|
||||||
/*!
|
|
||||||
* jQuery UI Accordion 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Accordion#theming
|
|
||||||
*/
|
|
||||||
/* IE/Win - Fix animation bug - #4615 */
|
|
||||||
.ui-accordion { width: 100%; }
|
|
||||||
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
|
||||||
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
|
||||||
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
|
||||||
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
|
|
||||||
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
|
|
||||||
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
|
||||||
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
|
|
||||||
.ui-accordion .ui-accordion-content-active { display: block; }
|
|
||||||
/*!
|
|
||||||
* jQuery UI Autocomplete 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Autocomplete#theming
|
|
||||||
*/
|
|
||||||
.ui-autocomplete { position: absolute; cursor: default; }
|
|
||||||
|
|
||||||
/* workarounds */
|
|
||||||
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* jQuery UI Menu 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Menu#theming
|
|
||||||
*/
|
|
||||||
.ui-menu {
|
|
||||||
list-style:none;
|
|
||||||
padding: 2px;
|
|
||||||
margin: 0;
|
|
||||||
display:block;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.ui-menu .ui-menu {
|
|
||||||
margin-top: -3px;
|
|
||||||
}
|
|
||||||
.ui-menu .ui-menu-item {
|
|
||||||
margin:0;
|
|
||||||
padding: 0;
|
|
||||||
zoom: 1;
|
|
||||||
float: left;
|
|
||||||
clear: left;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.ui-menu .ui-menu-item a {
|
|
||||||
text-decoration:none;
|
|
||||||
display:block;
|
|
||||||
padding:.2em .4em;
|
|
||||||
line-height:1.5;
|
|
||||||
zoom:1;
|
|
||||||
}
|
|
||||||
.ui-menu .ui-menu-item a.ui-state-hover,
|
|
||||||
.ui-menu .ui-menu-item a.ui-state-active {
|
|
||||||
font-weight: normal;
|
|
||||||
margin: -1px;
|
|
||||||
}
|
|
||||||
/*!
|
|
||||||
* jQuery UI Button 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Button#theming
|
|
||||||
*/
|
|
||||||
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
|
|
||||||
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
|
|
||||||
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
|
|
||||||
.ui-button-icons-only { width: 3.4em; }
|
|
||||||
button.ui-button-icons-only { width: 3.7em; }
|
|
||||||
|
|
||||||
/*button text element */
|
|
||||||
.ui-button .ui-button-text { display: block; line-height: 1.4; }
|
|
||||||
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
|
|
||||||
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
|
|
||||||
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
|
|
||||||
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
|
|
||||||
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
|
|
||||||
/* no icon support for input elements, provide padding by default */
|
|
||||||
input.ui-button { padding: .4em 1em; }
|
|
||||||
|
|
||||||
/*button icon element(s) */
|
|
||||||
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
|
|
||||||
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
|
|
||||||
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
|
|
||||||
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
|
||||||
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
|
||||||
|
|
||||||
/*button sets*/
|
|
||||||
.ui-buttonset { margin-right: 7px; }
|
|
||||||
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
|
|
||||||
|
|
||||||
/* workarounds */
|
|
||||||
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
|
|
||||||
/*!
|
|
||||||
* jQuery UI Dialog 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Dialog#theming
|
|
||||||
*/
|
|
||||||
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
|
|
||||||
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
|
|
||||||
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
|
|
||||||
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
|
||||||
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
|
||||||
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
|
||||||
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
|
||||||
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
|
|
||||||
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
|
|
||||||
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
|
|
||||||
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
|
||||||
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
|
||||||
/*!
|
|
||||||
* jQuery UI Slider 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Slider#theming
|
|
||||||
*/
|
|
||||||
.ui-slider { position: relative; text-align: left; }
|
|
||||||
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
|
||||||
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
|
|
||||||
|
|
||||||
.ui-slider-horizontal { height: .8em; }
|
|
||||||
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
|
||||||
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
|
||||||
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
|
||||||
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
|
||||||
|
|
||||||
.ui-slider-vertical { width: .8em; height: 100px; }
|
|
||||||
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
|
||||||
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
|
||||||
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
|
||||||
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*!
|
|
||||||
* jQuery UI Tabs 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Tabs#theming
|
|
||||||
*/
|
|
||||||
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
|
||||||
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
|
|
||||||
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
|
|
||||||
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
|
|
||||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
|
|
||||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
|
||||||
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
|
||||||
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
|
|
||||||
.ui-tabs .ui-tabs-hide { display: none !important; }
|
|
||||||
/*!
|
|
||||||
* jQuery UI Datepicker 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Datepicker#theming
|
|
||||||
*/
|
|
||||||
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
|
|
||||||
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
|
||||||
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
|
||||||
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
|
||||||
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
|
||||||
.ui-datepicker .ui-datepicker-next { right:2px; }
|
|
||||||
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
|
||||||
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
|
||||||
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
|
||||||
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
|
||||||
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
|
|
||||||
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
|
||||||
.ui-datepicker select.ui-datepicker-month,
|
|
||||||
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
|
||||||
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
|
||||||
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
|
||||||
.ui-datepicker td { border: 0; padding: 1px; }
|
|
||||||
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
|
||||||
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
|
||||||
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
|
||||||
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
|
||||||
|
|
||||||
/* with multiple calendars */
|
|
||||||
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
|
||||||
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
|
||||||
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
|
||||||
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
|
||||||
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
|
||||||
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
|
||||||
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
|
||||||
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
|
||||||
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
|
||||||
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
|
|
||||||
|
|
||||||
/* RTL support */
|
|
||||||
.ui-datepicker-rtl { direction: rtl; }
|
|
||||||
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
|
||||||
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
|
||||||
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
|
||||||
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
|
||||||
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
|
||||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
|
||||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
|
||||||
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
|
||||||
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
|
||||||
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
|
||||||
|
|
||||||
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
|
||||||
.ui-datepicker-cover {
|
|
||||||
display: none; /*sorry for IE5*/
|
|
||||||
display/**/: block; /*sorry for IE5*/
|
|
||||||
position: absolute; /*must have*/
|
|
||||||
z-index: -1; /*must have*/
|
|
||||||
filter: mask(); /*must have*/
|
|
||||||
top: -4px; /*must have*/
|
|
||||||
left: -4px; /*must have*/
|
|
||||||
width: 200px; /*must have*/
|
|
||||||
height: 200px; /*must have*/
|
|
||||||
}/*!
|
|
||||||
* jQuery UI Progressbar 1.8.21
|
|
||||||
*
|
|
||||||
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
|
|
||||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
|
||||||
* http://jquery.org/license
|
|
||||||
*
|
|
||||||
* http://docs.jquery.com/UI/Progressbar#theming
|
|
||||||
*/
|
|
||||||
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
|
|
||||||
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
|
|
|
@ -1,24 +0,0 @@
|
||||||
.cleditorMain {border:1px solid #999; padding:0 1px 1px; background-color:white}
|
|
||||||
.cleditorMain iframe {border:none; margin:0; padding:0}
|
|
||||||
.cleditorMain textarea {border:none; margin:0; padding:0; overflow-y:scroll; font:10pt Arial,Verdana; resize:none; outline:none /* webkit grip focus */}
|
|
||||||
.cleditorToolbar {background: url('../img/toolbar.gif') repeat}
|
|
||||||
.cleditorGroup {float:left; height:26px}
|
|
||||||
.cleditorButton {float:left; width:24px; height:24px; margin:1px 0 1px 0; background: url('../img/buttons.gif')}
|
|
||||||
.cleditorDisabled {opacity:0.3; filter:alpha(opacity=30)}
|
|
||||||
.cleditorDivider {float:left; width:1px; height:23px; margin:1px 0 1px 0; background:#CCC}
|
|
||||||
.cleditorPopup {border:solid 1px #999; background-color:white; position:absolute; font:10pt Arial,Verdana; cursor:default; z-index:10000}
|
|
||||||
.cleditorList div {padding:2px 4px 2px 4px}
|
|
||||||
.cleditorList p,
|
|
||||||
.cleditorList h1,
|
|
||||||
.cleditorList h2,
|
|
||||||
.cleditorList h3,
|
|
||||||
.cleditorList h4,
|
|
||||||
.cleditorList h5,
|
|
||||||
.cleditorList h6,
|
|
||||||
.cleditorList font {padding:0; margin:0; background-color:Transparent}
|
|
||||||
.cleditorColor {width:150px; padding:1px 0 0 1px}
|
|
||||||
.cleditorColor div {float:left; width:14px; height:14px; margin:0 1px 1px 0}
|
|
||||||
.cleditorPrompt {background-color:#F6F7F9; padding:4px; font-size:8.5pt}
|
|
||||||
.cleditorPrompt input,
|
|
||||||
.cleditorPrompt textarea {font:8.5pt Arial,Verdana;}
|
|
||||||
.cleditorMsg {background-color:#FDFCEE; width:150px; padding:4px; font-size:8.5pt}
|
|
|
@ -1,145 +0,0 @@
|
||||||
.iPhoneCheckContainer {
|
|
||||||
position: relative;
|
|
||||||
height: 27px;
|
|
||||||
cursor: pointer;
|
|
||||||
overflow: hidden; }
|
|
||||||
.iPhoneCheckContainer input {
|
|
||||||
position: absolute;
|
|
||||||
top: 5px;
|
|
||||||
left: 30px;
|
|
||||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
|
|
||||||
opacity: 0; }
|
|
||||||
.iPhoneCheckContainer label {
|
|
||||||
white-space: nowrap;
|
|
||||||
font-size: 17px;
|
|
||||||
line-height: 17px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
|
|
||||||
cursor: pointer;
|
|
||||||
display: block;
|
|
||||||
height: 27px;
|
|
||||||
position: absolute;
|
|
||||||
width: auto;
|
|
||||||
top: 0;
|
|
||||||
padding-top: 5px;
|
|
||||||
overflow: hidden; }
|
|
||||||
.iPhoneCheckContainer, .iPhoneCheckContainer label {
|
|
||||||
user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-khtml-user-select: none; }
|
|
||||||
|
|
||||||
.iPhoneCheckDisabled {
|
|
||||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
|
|
||||||
opacity: 0.5; }
|
|
||||||
|
|
||||||
label.iPhoneCheckLabelOn {
|
|
||||||
color: white;
|
|
||||||
background: url('../img/iphone-style-checkboxes/on.png?1284697268') no-repeat;
|
|
||||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
|
|
||||||
left: 0;
|
|
||||||
padding-top: 5px; }
|
|
||||||
label.iPhoneCheckLabelOn span {
|
|
||||||
padding-left: 8px; }
|
|
||||||
label.iPhoneCheckLabelOff {
|
|
||||||
color: #8b8b8b;
|
|
||||||
background: url('../img/iphone-style-checkboxes/off.png?1284697268') no-repeat right 0;
|
|
||||||
text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.6);
|
|
||||||
text-align: right;
|
|
||||||
right: 0; }
|
|
||||||
label.iPhoneCheckLabelOff span {
|
|
||||||
padding-right: 8px; }
|
|
||||||
|
|
||||||
.iPhoneCheckHandle {
|
|
||||||
display: block;
|
|
||||||
height: 27px;
|
|
||||||
cursor: pointer;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 0;
|
|
||||||
background: url('../img/iphone-style-checkboxes/slider_left.png?1284697268') no-repeat;
|
|
||||||
padding-left: 3px; }
|
|
||||||
|
|
||||||
.iPhoneCheckHandleRight {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
padding-right: 3px;
|
|
||||||
background: url('../img/iphone-style-checkboxes/slider_right.png?1284697268') no-repeat right 0; }
|
|
||||||
|
|
||||||
.iPhoneCheckHandleCenter {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
background: url('../img/iphone-style-checkboxes/slider_center.png?1284697268'); }
|
|
||||||
|
|
||||||
.iOSCheckContainer {
|
|
||||||
position: relative;
|
|
||||||
height: 27px;
|
|
||||||
cursor: pointer;
|
|
||||||
overflow: hidden; }
|
|
||||||
.iOSCheckContainer input {
|
|
||||||
position: absolute;
|
|
||||||
top: 5px;
|
|
||||||
left: 30px;
|
|
||||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
|
|
||||||
opacity: 0; }
|
|
||||||
.iOSCheckContainer label {
|
|
||||||
white-space: nowrap;
|
|
||||||
font-size: 17px;
|
|
||||||
line-height: 17px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
|
|
||||||
cursor: pointer;
|
|
||||||
display: block;
|
|
||||||
height: 27px;
|
|
||||||
position: absolute;
|
|
||||||
width: auto;
|
|
||||||
top: 0;
|
|
||||||
padding-top: 5px;
|
|
||||||
overflow: hidden; }
|
|
||||||
.iOSCheckContainer, .iOSCheckContainer label {
|
|
||||||
user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-khtml-user-select: none; }
|
|
||||||
|
|
||||||
.iOSCheckDisabled {
|
|
||||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
|
|
||||||
opacity: 0.5; }
|
|
||||||
|
|
||||||
label.iOSCheckLabelOn {
|
|
||||||
color: white;
|
|
||||||
background: url('../img/ios-style-checkboxes/on.png?1284697268') no-repeat;
|
|
||||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
|
|
||||||
left: 0;
|
|
||||||
padding-top: 5px; }
|
|
||||||
label.iOSCheckLabelOn span {
|
|
||||||
padding-left: 8px; }
|
|
||||||
label.iOSCheckLabelOff {
|
|
||||||
color: #8b8b8b;
|
|
||||||
background: url('../img/ios-style-checkboxes/off.png?1284697268') no-repeat right 0;
|
|
||||||
text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.6);
|
|
||||||
text-align: right;
|
|
||||||
right: 0; }
|
|
||||||
label.iOSCheckLabelOff span {
|
|
||||||
padding-right: 8px; }
|
|
||||||
|
|
||||||
.iOSCheckHandle {
|
|
||||||
display: block;
|
|
||||||
height: 27px;
|
|
||||||
cursor: pointer;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 0;
|
|
||||||
background: url('../img/ios-style-checkboxes/slider_left.png?1284697268') no-repeat;
|
|
||||||
padding-left: 3px; }
|
|
||||||
|
|
||||||
.iOSCheckHandleRight {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
padding-right: 3px;
|
|
||||||
background: url('../img/ios-style-checkboxes/slider_right.png?1284697268') no-repeat right 0; }
|
|
||||||
|
|
||||||
.iOSCheckHandleCenter {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
background: url('../img/ios-style-checkboxes/slider_center.png?1284697268'); }
|
|
|
@ -1,105 +0,0 @@
|
||||||
|
|
||||||
/* CORE STYLES */
|
|
||||||
|
|
||||||
/* noty bar */
|
|
||||||
.noty_bar {
|
|
||||||
position: fixed;
|
|
||||||
display: none;
|
|
||||||
z-index: 9999999;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_message */
|
|
||||||
.noty_bar .noty_message {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty close button */
|
|
||||||
.noty_bar .noty_close {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty modal */
|
|
||||||
.noty_modal {
|
|
||||||
position: fixed;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background-color: #000;
|
|
||||||
z-index: 10000;
|
|
||||||
opacity: 0.6;
|
|
||||||
display: none;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty container for noty_layout_topLeft & noty_layout_topRight */
|
|
||||||
ul.noty_cont {
|
|
||||||
position: fixed;
|
|
||||||
z-index: 10000000;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
list-style: none;
|
|
||||||
width: 300px;
|
|
||||||
}
|
|
||||||
ul.noty_cont li {
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
clear: both;
|
|
||||||
list-style: none;
|
|
||||||
padding: 0px;
|
|
||||||
margin: 10px 0 0 0;
|
|
||||||
width: 300px; /* Fix for: http://bugs.jquery.com/ticket/2278 */
|
|
||||||
}
|
|
||||||
ul.noty_cont.noty_layout_topLeft {left:20px; top:20px;}
|
|
||||||
ul.noty_cont.noty_layout_topRight {right:40px; top:20px;}
|
|
||||||
ul.noty_cont.noty_layout_bottomLeft {left:20px; bottom:20px}
|
|
||||||
ul.noty_cont.noty_layout_bottomRight {right:40px; bottom:20px}
|
|
||||||
ul.noty_cont.noty_layout_topRight li {float:right}
|
|
||||||
|
|
||||||
/* LAYOUTS */
|
|
||||||
|
|
||||||
/* noty_layout_top */
|
|
||||||
.noty_bar.noty_layout_top {
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
-webkit-border-radius: 0px;
|
|
||||||
-moz-border-radius: 0px;
|
|
||||||
border-radius: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_layout_bottom */
|
|
||||||
.noty_bar.noty_layout_bottom {
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
-webkit-border-radius: 0px;
|
|
||||||
-moz-border-radius: 0px;
|
|
||||||
border-radius: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_layout_center */
|
|
||||||
.noty_bar.noty_layout_center {
|
|
||||||
top: 40%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_layout_topLeft & noty_layout_topRight */
|
|
||||||
.noty_bar.noty_layout_topLeft,
|
|
||||||
.noty_bar.noty_layout_topRight,
|
|
||||||
.noty_bar.noty_layout_bottomLeft,
|
|
||||||
.noty_bar.noty_layout_bottomRight {
|
|
||||||
width: 100%;
|
|
||||||
clear: both;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.noty_bar.noty_layout_topLeft .noty_message,
|
|
||||||
.noty_bar.noty_layout_topRight .noty_message,
|
|
||||||
.noty_bar.noty_layout_bottomLeft .noty_message,
|
|
||||||
.noty_bar.noty_layout_bottomRight .noty_message {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_layout_topCenter */
|
|
||||||
.noty_bar.noty_layout_topCenter {
|
|
||||||
top: 20px;
|
|
||||||
}
|
|
|
@ -1,240 +0,0 @@
|
||||||
|
|
||||||
/* CORE STYLES*/
|
|
||||||
|
|
||||||
/* noty bar */
|
|
||||||
.noty_bar.noty_theme_default {
|
|
||||||
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAoCAYAAAAPOoFWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPZJREFUeNq81tsOgjAMANB2ov7/7ypaN7IlIwi9rGuT8QSc9EIDAsAznxvY4pXPKr05RUE5MEVB+TyWfCEl9LZApYopCmo9C4FKSMtYoI8Bwv79aQJU4l6hXXCZrQbokJEksxHo9KMOgc6w1atHXM8K9DVC7FQnJ0i8iK3QooGgbnyKgMDygBWyYFZoqx4qS27KqLZJjA1D0jK6QJcYEQEiWv9PGkTsbqxQ8oT+ZtZB6AkdsJnQDnMoHXHLGKOgDYuCWmYhEERCI5gaamW0bnHdA3k2ltlIN+2qKRyCND0bhqSYCyTB3CAOc4WusBEIpkeBuPgJMAAX8Hs1NfqHRgAAAABJRU5ErkJggg==') repeat-x scroll left top #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if you use noty with customContainer you can access noty with this way
|
|
||||||
* .noty_custom_container noty will add automaticly this class to your customContainer
|
|
||||||
* .noty_theme_default your theme
|
|
||||||
* .noty_layout_inline your layout
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* custom container */
|
|
||||||
.noty_custom_container.noty_theme_default.noty_layout_inline {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* custom growl container */
|
|
||||||
.noty_custom_container.noty_theme_default.noty_layout_inline .noty_cont.noty_layout_inline {
|
|
||||||
position: static;
|
|
||||||
}
|
|
||||||
/* custom noty bar */
|
|
||||||
.noty_custom_container.noty_theme_default.noty_layout_inline .noty_bar {
|
|
||||||
border-width: 1px;
|
|
||||||
border-style: solid;
|
|
||||||
position: static;
|
|
||||||
-webkit-border-radius: 4px;
|
|
||||||
-moz-border-radius: 4px;
|
|
||||||
border-radius: 4px;
|
|
||||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
.noty_custom_container.noty_theme_default.noty_layout_inline .noty_bar .noty_message {
|
|
||||||
font-size: 13px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
.noty_custom_container.noty_theme_default.noty_layout_inline .noty_bar .noty_message .noty_buttons {
|
|
||||||
margin-top: -1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_message */
|
|
||||||
.noty_bar.noty_theme_default .noty_message {
|
|
||||||
padding: 8px 14px;
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: bold;
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_closable .noty_message {
|
|
||||||
padding: 8px 34px 8px 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_buttons */
|
|
||||||
.noty_bar.noty_theme_default .noty_message .noty_buttons {
|
|
||||||
float: right;
|
|
||||||
font-size: 13px;
|
|
||||||
margin-top: -4px;
|
|
||||||
margin-left: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_button */
|
|
||||||
.noty_bar.noty_theme_default .noty_message .noty_buttons button {
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty close button */
|
|
||||||
.noty_bar.noty_theme_default .noty_close {
|
|
||||||
position: absolute;
|
|
||||||
top: 10px;
|
|
||||||
right: 10px;
|
|
||||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAORJREFUeNq0lU0OgjAQhRm5gUl3rLyBB3BDQjwI4TDcgmu4NqwNJGxdueqWA4zzCJoxtvxoeckLzbz2C5ShEDNHDiXis/gkPooPY/0uvomv4ov48bUSQGUSF+Ka51WPc0kzNGwvLnm9ynHtB5B+hGkoaWDB/6t4AZOFe7ZkTxMAc1dqreU0TbnrunetbVvOsmzIPMoBrFwJYGgCY8wAgjFGDZlHFYCNK9EAXPUYmUcNgL0v1dAFMKjfRSsVx/H0hC0eOfhLmWwbfTcYozbXNsEbO/int8nhEPz4CnbAUuhfwFOAAQAA48KKOuexjwAAAABJRU5ErkJggg==');
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty modal */
|
|
||||||
.noty_modal.noty_theme_default {
|
|
||||||
opacity: 0.7;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* LAYOUTS */
|
|
||||||
|
|
||||||
/* noty_layout_top */
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_top {
|
|
||||||
border-bottom: 3px solid #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_layout_bottom */
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_bottom {
|
|
||||||
border-top: 3px solid #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_center .noty_close {
|
|
||||||
top: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_center .noty_message .noty_buttons {
|
|
||||||
margin-top: -2px
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_layout_topLeft & noty_layout_topRight */
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_center,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topLeft,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topRight,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_bottomLeft,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_bottomRight {
|
|
||||||
border: 1px solid #eee;
|
|
||||||
-webkit-border-radius: 5px;
|
|
||||||
-moz-border-radius: 5px;
|
|
||||||
border-radius: 5px;
|
|
||||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_center .noty_message,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topLeft .noty_message,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topRight .noty_message,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_bottomLeft .noty_message,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_bottomRight .noty_message {
|
|
||||||
font-size: 13px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topRight .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_bottomLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_bottomRight .noty_message .noty_buttons {
|
|
||||||
float: none;
|
|
||||||
border-top: 1px solid #ccc;
|
|
||||||
margin-left: 0;
|
|
||||||
margin-top: 10px;
|
|
||||||
padding-top: 10px;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_layout_topCenter */
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topCenter {
|
|
||||||
-webkit-border-radius: 4px;
|
|
||||||
-moz-border-radius: 4px;
|
|
||||||
border-radius: 4px;
|
|
||||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topCenter .noty_message {
|
|
||||||
font-weight: normal;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topCenter .noty_close {
|
|
||||||
top: 50%;
|
|
||||||
margin-top: -10px;
|
|
||||||
-webkit-border-radius: 10px;
|
|
||||||
-moz-border-radius: 10px;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topCenter.noty_success {
|
|
||||||
border: 1px solid #50C24E;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_layout_topCenter .noty_message .noty_buttons {
|
|
||||||
margin-left: 15px;
|
|
||||||
margin-top: 0px
|
|
||||||
}
|
|
||||||
|
|
||||||
/* NOTIFICATION TYPES */
|
|
||||||
|
|
||||||
/* noty_notification */
|
|
||||||
.noty_bar.noty_theme_default.noty_notification {
|
|
||||||
background-color: #fff;
|
|
||||||
border-color: #ccc;
|
|
||||||
color: #555;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_notification.noty_layout_topLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_notification.noty_layout_topRight .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_notification.noty_layout_bottomLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_notification.noty_layout_bottomRight .noty_message .noty_buttons {
|
|
||||||
border-color: #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_warning */
|
|
||||||
.noty_bar.noty_theme_default.noty_warning {
|
|
||||||
background-color: #FFEAA8;
|
|
||||||
border-color: #FFC237;
|
|
||||||
color: #826200;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_warning.noty_layout_topLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_warning.noty_layout_topRight .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_warning.noty_layout_bottomLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_warning.noty_layout_bottomRight .noty_message .noty_buttons {
|
|
||||||
border-color: #FFC237;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_alert */
|
|
||||||
.noty_bar.noty_theme_default.noty_alert {
|
|
||||||
background-color: #fff;
|
|
||||||
border-color: #ccc;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_alert.noty_layout_topLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_alert.noty_layout_topRight .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_alert.noty_layout_bottomLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_alert.noty_layout_bottomRight .noty_message .noty_buttons {
|
|
||||||
border-color: #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_error */
|
|
||||||
.noty_bar.noty_theme_default.noty_error {
|
|
||||||
background-color: red;
|
|
||||||
color: #fff;
|
|
||||||
border-color: darkred;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_error .noty_message {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_error.noty_layout_topLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_error.noty_layout_topRight .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_error.noty_layout_bottomLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_error.noty_layout_bottomRight .noty_message .noty_buttons {
|
|
||||||
border-color: darkred;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_success */
|
|
||||||
.noty_bar.noty_theme_default.noty_success {
|
|
||||||
background-color: lightgreen;
|
|
||||||
color: darkgreen;
|
|
||||||
border-color: #50C24E;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_success.noty_layout_topLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_success.noty_layout_topRight .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_success.noty_layout_bottomLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_success.noty_layout_bottomRight .noty_message .noty_buttons {
|
|
||||||
border-color: #50C24E;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* noty_information */
|
|
||||||
.noty_bar.noty_theme_default.noty_information {
|
|
||||||
background-color: #57B7E2;
|
|
||||||
border-color: #0B90C4;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
.noty_bar.noty_theme_default.noty_information.noty_layout_topLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_information.noty_layout_topRight .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_information.noty_layout_bottomLeft .noty_message .noty_buttons,
|
|
||||||
.noty_bar.noty_theme_default.noty_information.noty_layout_bottomRight .noty_message .noty_buttons {
|
|
||||||
border-color: #0B90C4;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,366 +0,0 @@
|
||||||
.active .icon.icon-add,.icon.icon-add,.icon.icon-add:hover {background-position : -16px -128px ;}
|
|
||||||
.active .icon.icon-alert,.icon.icon-alert,.icon.icon-alert:hover {background-position : -64px -128px ;}
|
|
||||||
.active .icon.icon-archive,.icon.icon-archive,.icon.icon-archive:hover {background-position : -32px -144px ;}
|
|
||||||
.active .icon.icon-arrow-4diag,.icon.icon-arrow-4diag,.icon.icon-arrow-4diag:hover {background-position : -208px -32px ;}
|
|
||||||
.active .icon.icon-arrow-e,.icon.icon-arrow-e,.icon.icon-arrow-e:hover {background-position : -32px -32px ;}
|
|
||||||
.active .icon.icon-arrow-e-w,.icon.icon-arrow-e-w,.icon.icon-arrow-e-w:hover {background-position : -160px -32px ;}
|
|
||||||
.active .icon.icon-arrow-n,.icon.icon-arrow-n,.icon.icon-arrow-n:hover {background-position : 0 -32px ;}
|
|
||||||
.active .icon.icon-arrow-n-s,.icon.icon-arrow-n-s,.icon.icon-arrow-n-s:hover {background-position : -128px -32px ;}
|
|
||||||
.active .icon.icon-arrow-ne,.icon.icon-arrow-ne,.icon.icon-arrow-ne:hover {background-position : -16px -32px ;}
|
|
||||||
.active .icon.icon-arrow-ne-sw,.icon.icon-arrow-ne-sw,.icon.icon-arrow-ne-sw:hover {background-position : -144px -32px ;}
|
|
||||||
.active .icon.icon-arrow-nesw,.icon.icon-arrow-nesw,.icon.icon-arrow-nesw:hover {background-position : -192px -32px ;}
|
|
||||||
.active .icon.icon-arrow-nw,.icon.icon-arrow-nw,.icon.icon-arrow-nw:hover {background-position : -112px -32px ;}
|
|
||||||
.active .icon.icon-arrow-s,.icon.icon-arrow-s,.icon.icon-arrow-s:hover {background-position : -64px -32px ;}
|
|
||||||
.active .icon.icon-arrow-se,.icon.icon-arrow-se,.icon.icon-arrow-se:hover {background-position : -48px -32px ;}
|
|
||||||
.active .icon.icon-arrow-se-nw,.icon.icon-arrow-se-nw,.icon.icon-arrow-se-nw:hover {background-position : -176px -32px ;}
|
|
||||||
.active .icon.icon-arrow-sw,.icon.icon-arrow-sw,.icon.icon-arrow-sw:hover {background-position : -80px -32px ;}
|
|
||||||
.active .icon.icon-arrow-w,.icon.icon-arrow-w,.icon.icon-arrow-w:hover {background-position : -96px -32px ;}
|
|
||||||
.active .icon.icon-arrowrefresh-e,.icon.icon-arrowrefresh-e,.icon.icon-arrowrefresh-e:hover {background-position : -160px -64px ;}
|
|
||||||
.active .icon.icon-arrowrefresh-n,.icon.icon-arrowrefresh-n,.icon.icon-arrowrefresh-n:hover {background-position : -144px -64px ;}
|
|
||||||
.active .icon.icon-arrowrefresh-s,.icon.icon-arrowrefresh-s,.icon.icon-arrowrefresh-s:hover {background-position : -176px -64px ;}
|
|
||||||
.active .icon.icon-arrowrefresh-w,.icon.icon-arrowrefresh-w,.icon.icon-arrowrefresh-w:hover {background-position : -128px -64px ;}
|
|
||||||
.active .icon.icon-arrowreturn-en,.icon.icon-arrowreturn-en,.icon.icon-arrowreturn-en:hover {background-position : -112px -64px ;}
|
|
||||||
.active .icon.icon-arrowreturn-es,.icon.icon-arrowreturn-es,.icon.icon-arrowreturn-es:hover {background-position : -80px -64px ;}
|
|
||||||
.active .icon.icon-arrowreturn-ne,.icon.icon-arrowreturn-ne,.icon.icon-arrowreturn-ne:hover {background-position : -32px -64px ;}
|
|
||||||
.active .icon.icon-arrowreturn-nw,.icon.icon-arrowreturn-nw,.icon.icon-arrowreturn-nw:hover {background-position : -48px -64px ;}
|
|
||||||
.active .icon.icon-arrowreturn-se,.icon.icon-arrowreturn-se,.icon.icon-arrowreturn-se:hover {background-position : 0 -64px ;}
|
|
||||||
.active .icon.icon-arrowreturn-sw,.icon.icon-arrowreturn-sw,.icon.icon-arrowreturn-sw:hover {background-position : -16px -64px ;}
|
|
||||||
.active .icon.icon-arrowreturn-wn,.icon.icon-arrowreturn-wn,.icon.icon-arrowreturn-wn:hover {background-position : -96px -64px ;}
|
|
||||||
.active .icon.icon-arrowreturn-ws,.icon.icon-arrowreturn-ws,.icon.icon-arrowreturn-ws:hover {background-position : -64px -64px ;}
|
|
||||||
.active .icon.icon-arrowstop-e,.icon.icon-arrowstop-e,.icon.icon-arrowstop-e:hover {background-position : -176px 0 ;}
|
|
||||||
.active .icon.icon-arrowstop-n,.icon.icon-arrowstop-n,.icon.icon-arrowstop-n:hover {background-position : -160px 0 ;}
|
|
||||||
.active .icon.icon-arrowstop-s,.icon.icon-arrowstop-s,.icon.icon-arrowstop-s:hover {background-position : -192px 0 ;}
|
|
||||||
.active .icon.icon-arrowstop-w,.icon.icon-arrowstop-w,.icon.icon-arrowstop-w:hover {background-position : -208px 0 ;}
|
|
||||||
.active .icon.icon-arrowthick-e,.icon.icon-arrowthick-e,.icon.icon-arrowthick-e:hover {background-position : -32px -48px ;}
|
|
||||||
.active .icon.icon-arrowthick-n,.icon.icon-arrowthick-n,.icon.icon-arrowthick-n:hover {background-position : 0 -48px ;}
|
|
||||||
.active .icon.icon-arrowthick-ne,.icon.icon-arrowthick-ne,.icon.icon-arrowthick-ne:hover {background-position : -16px -48px ;}
|
|
||||||
.active .icon.icon-arrowthick-nw,.icon.icon-arrowthick-nw,.icon.icon-arrowthick-nw:hover {background-position : -112px -48px ;}
|
|
||||||
.active .icon.icon-arrowthick-s,.icon.icon-arrowthick-s,.icon.icon-arrowthick-s:hover {background-position : -64px -48px ;}
|
|
||||||
.active .icon.icon-arrowthick-se,.icon.icon-arrowthick-se,.icon.icon-arrowthick-se:hover {background-position : -48px -48px ;}
|
|
||||||
.active .icon.icon-arrowthick-sw,.icon.icon-arrowthick-sw,.icon.icon-arrowthick-sw:hover {background-position : -80px -48px ;}
|
|
||||||
.active .icon.icon-arrowthick-w,.icon.icon-arrowthick-w,.icon.icon-arrowthick-w:hover {background-position : -96px -48px ;}
|
|
||||||
.active .icon.icon-attachment,.icon.icon-attachment,.icon.icon-attachment:hover {background-position : -80px -144px ;}
|
|
||||||
.active .icon.icon-audio,.icon.icon-audio,.icon.icon-audio:hover {background-position : -208px -128px ;}
|
|
||||||
.active .icon.icon-basket,.icon.icon-basket,.icon.icon-basket:hover {background-position : -144px -128px ;}
|
|
||||||
.active .icon.icon-book,.icon.icon-book,.icon.icon-book:hover {background-position : -64px -80px ;}
|
|
||||||
.active .icon.icon-book-empty,.icon.icon-book-empty,.icon.icon-book-empty:hover {background-position : -80px -80px ;}
|
|
||||||
.active .icon.icon-bookmark,.icon.icon-bookmark,.icon.icon-bookmark:hover {background-position : -144px -80px ;}
|
|
||||||
.active .icon.icon-briefcase,.icon.icon-briefcase,.icon.icon-briefcase:hover {background-position : -240px -112px ;}
|
|
||||||
.active .icon.icon-bullet-off,.icon.icon-bullet-off,.icon.icon-bullet-off:hover {background-position : -208px -48px ;}
|
|
||||||
.active .icon.icon-bullet-on,.icon.icon-bullet-on,.icon.icon-bullet-on:hover {background-position : -192px -48px ;}
|
|
||||||
.active .icon.icon-calendar,.icon.icon-calendar,.icon.icon-calendar:hover {background-position : -16px -112px ;}
|
|
||||||
.active .icon.icon-cancel,.icon.icon-cancel,.icon.icon-cancel:hover {background-position : -176px -80px ;}
|
|
||||||
.active .icon.icon-carat-1-e,.icon.icon-carat-1-e,.icon.icon-carat-1-e:hover {background-position : -32px -16px ;}
|
|
||||||
.active .icon.icon-carat-1-n,.icon.icon-carat-1-n,.icon.icon-carat-1-n:hover {background-position : 0 -16px ;}
|
|
||||||
.active .icon.icon-carat-1-ne,.icon.icon-carat-1-ne,.icon.icon-carat-1-ne:hover {background-position : -16px -16px ;}
|
|
||||||
.active .icon.icon-carat-1-nw,.icon.icon-carat-1-nw,.icon.icon-carat-1-nw:hover {background-position : -112px -16px ;}
|
|
||||||
.active .icon.icon-carat-1-s,.icon.icon-carat-1-s,.icon.icon-carat-1-s:hover {background-position : -64px -16px ;}
|
|
||||||
.active .icon.icon-carat-1-se,.icon.icon-carat-1-se,.icon.icon-carat-1-se:hover {background-position : -48px -16px ;}
|
|
||||||
.active .icon.icon-carat-1-sw,.icon.icon-carat-1-sw,.icon.icon-carat-1-sw:hover {background-position : -80px -16px ;}
|
|
||||||
.active .icon.icon-carat-1-w,.icon.icon-carat-1-w,.icon.icon-carat-1-w:hover {background-position : -96px -16px ;}
|
|
||||||
.active .icon.icon-carat-2-ew,.icon.icon-carat-2-ew,.icon.icon-carat-2-ew :hover {background-position : -144px -16px ;}
|
|
||||||
.active .icon.icon-carat-2-ns,.icon.icon-carat-2-ns,.icon.icon-carat-2-ns:hover {background-position : -128px -16px ;}
|
|
||||||
.active .icon.icon-cart,.icon.icon-cart,.icon.icon-cart:hover {background-position : -128px -128px ;}
|
|
||||||
.active .icon.icon-check,.icon.icon-check,.icon.icon-check:hover {background-position : -208px -16px ;}
|
|
||||||
.active .icon.icon-clipboard,.icon.icon-clipboard,.icon.icon-clipboard:hover {background-position : -80px -96px ;}
|
|
||||||
.active .icon.icon-clock,.icon.icon-clock,.icon.icon-clock:hover {background-position : -32px -112px ;}
|
|
||||||
.active .icon.icon-close,.icon.icon-close,.icon.icon-close:hover {background-position : -192px -16px ;}
|
|
||||||
.active .icon.icon-comment,.icon.icon-comment,.icon.icon-comment:hover {background-position : -112px -128px ;}
|
|
||||||
.active .icon.icon-comment-text,.icon.icon-comment-text,.icon.icon-comment-text:hover {background-position : -80px -128px ;}
|
|
||||||
.active .icon.icon-comment-video,.icon.icon-comment-video,.icon.icon-comment-video:hover {background-position : -96px -128px ;}
|
|
||||||
.active .icon.icon-compose,.icon.icon-compose,.icon.icon-compose:hover {background-position : 0 -144px ;}
|
|
||||||
.active .icon.icon-contacts,.icon.icon-contacts,.icon.icon-contacts:hover {background-position : -176px -112px ;}
|
|
||||||
.active .icon.icon-copy,.icon.icon-copy,.icon.icon-copy:hover {background-position : -144px -96px ;}
|
|
||||||
.active .icon.icon-cross,.icon.icon-cross,.icon.icon-cross:hover {background-position : 0 -128px ;}
|
|
||||||
.active .icon.icon-date,.icon.icon-date,.icon.icon-cdate:hover {background-position : 0 -112px ;}
|
|
||||||
.active .icon.icon-doc,.icon.icon-doc,.icon.icon-doc:hover {background-position : -192px -96px ;}
|
|
||||||
.active .icon.icon-document,.icon.icon-document,.icon.icon-document:hover {background-position : -224px -96px ;}
|
|
||||||
.active .icon.icon-edit,.icon.icon-edit,.icon.icon-edit:hover {background-position : -112px -96px ;}
|
|
||||||
.active .icon.icon-envelope-closed,.icon.icon-envelope-closed,.icon.icon-envelope-closed:hover {background-position : -48px -112px ;}
|
|
||||||
.active .icon.icon-envelope-open,.icon.icon-envelope-open,.icon.icon-envelope-open:hover {background-position : -64px -112px ;}
|
|
||||||
.active .icon.icon-extlink,.icon.icon-extlink,.icon.icon-extlink:hover {background-position : -240px -32px ;}
|
|
||||||
.active .icon.icon-flag,.icon.icon-flag,.icon.icon-flag:hover {background-position : -128px -80px ;}
|
|
||||||
.active .icon.icon-folder-collapsed,.icon.icon-folder-collapsed,.icon.icon-folder-collapsed:hover {background-position : -96px -80px ;}
|
|
||||||
.active .icon.icon-folder-open,.icon.icon-folder-open,.icon.icon-folder-open:hover {background-position : -112px -80px ;}
|
|
||||||
.active .icon.icon-gear,.icon.icon-gear,.icon.icon-gear:hover {background-position : 0 -96px ;}
|
|
||||||
.active .icon.icon-globe,.icon.icon-globe,.icon.icon-globe:hover {background-position : -160px -112px ;}
|
|
||||||
.active .icon.icon-heart,.icon.icon-heart,.icon.icon-heart:hover {background-position : -160px -80px ;}
|
|
||||||
.active .icon.icon-help,.icon.icon-help,.icon.icon-help:hover {background-position : -224px -16px ;}
|
|
||||||
.active .icon.icon-home,.icon.icon-home,.icon.icon-home:hover {background-position : 0 -80px ;}
|
|
||||||
.active .icon.icon-image,.icon.icon-image,.icon.icon-image:hover {background-position : -208px -112px ;}
|
|
||||||
.active .icon.icon-inbox,.icon.icon-inbox,.icon.icon-inbox:hover {background-position : -16px -144px ;}
|
|
||||||
.active .icon.icon-info,.icon.icon-info,.icon.icon-info:hover {background-position : -48px -128px ;}
|
|
||||||
.active .icon.icon-key,.icon.icon-key,.icon.icon-key:hover {background-position : -64px -96px ;}
|
|
||||||
.active .icon.icon-lightbulb,.icon.icon-lightbulb,.icon.icon-lightbulb:hover {background-position : -240px -80px ;}
|
|
||||||
.active .icon.icon-link,.icon.icon-link,.icon.icon-link:hover {background-position : -112px -112px ;}
|
|
||||||
.active .icon.icon-locked,.icon.icon-locked,.icon.icon-locked:hover {background-position : -32px -96px ;}
|
|
||||||
.active .icon.icon-mail-closed,.icon.icon-mail-closed,.icon.icon-mail-closed:hover {background-position : -80px -112px ;}
|
|
||||||
.active .icon.icon-mail-open,.icon.icon-mail-open,.icon.icon-mail-open:hover {background-position : -96px -112px ;}
|
|
||||||
.active .icon.icon-messages,.icon.icon-messages,.icon.icon-messages:hover {background-position : -160px -128px ;}
|
|
||||||
.active .icon.icon-minus,.icon.icon-minus,.icon.icon-minus:hover {background-position : -176px -16px ;}
|
|
||||||
.active .icon.icon-newwin,.icon.icon-newwin,.icon.icon-newwin:hover {background-position : -224px -32px ;}
|
|
||||||
.active .icon.icon-note,.icon.icon-note,.icon.icon-note:hover {background-position : -160px -96px ;}
|
|
||||||
.active .icon.icon-notice,.icon.icon-notice,.icon.icon-notice:hover {background-position : -240px -16px ;}
|
|
||||||
.active .icon.icon-page,.icon.icon-page,.icon.icon-page:hover {background-position : -128px -96px ;}
|
|
||||||
.active .icon.icon-pdf,.icon.icon-pdf,.icon.icon-pdf:hover {background-position : -176px -96px ;}
|
|
||||||
.active .icon.icon-pin,.icon.icon-pin,.icon.icon-pin:hover {background-position : -208px -80px ;}
|
|
||||||
.active .icon.icon-plus,.icon.icon-plus,.icon.icon-plus:hover {background-position : -160px -16px ;}
|
|
||||||
.active .icon.icon-print,.icon.icon-print,.icon.icon-print:hover {background-position : -32px -80px ;}
|
|
||||||
.active .icon.icon-profile,.icon.icon-profile,.icon.icon-profile:hover {background-position : -192px -112px ;}
|
|
||||||
.active .icon.icon-redo,.icon.icon-redo,.icon.icon-redo:hover {background-position : -144px -48px ;}
|
|
||||||
.active .icon.icon-refresh,.icon.icon-refresh,.icon.icon-refresh:hover {background-position : -176px -48px ;}
|
|
||||||
.active .icon.icon-remove,.icon.icon-remove,.icon.icon-remove:hover {background-position : -32px -128px ;}
|
|
||||||
.active .icon.icon-reply,.icon.icon-reply,.icon.icon-reply:hover {background-position : -48px -144px ;}
|
|
||||||
.active .icon.icon-replyall,.icon.icon-replyall,.icon.icon-replyall:hover {background-position : -160px -48px ;}
|
|
||||||
.active .icon.icon-rssfeed,.icon.icon-rssfeed,.icon.icon-rssfeed:hover {background-position : -240px -64px ;}
|
|
||||||
.active .icon.icon-save,.icon.icon-save,.icon.icon-save:hover {background-position : -48px -80px ;}
|
|
||||||
.active .icon.icon-scissors,.icon.icon-scissors,.icon.icon-scissors:hover {background-position : -96px -96px ;}
|
|
||||||
.active .icon.icon-script,.icon.icon-script,.icon.icon-script:hover {background-position : -240px -96px ;}
|
|
||||||
.active .icon.icon-search,.icon.icon-search,.icon.icon-search:hover {background-position : -192px -64px ;}
|
|
||||||
.active .icon.icon-sent,.icon.icon-sent,.icon.icon-sent:hover {background-position : -64px -144px ;}
|
|
||||||
.active .icon.icon-shuffle,.icon.icon-shuffle,.icon.icon-shuffle:hover {background-position : -240px 0 ;}
|
|
||||||
.active .icon.icon-square-minus,.icon.icon-square-minus,.icon.icon-square-minus:hover {background-position : -176px -240px ;}
|
|
||||||
.active .icon.icon-square-plus,.icon.icon-square-plus,.icon.icon-square-plus:hover {background-position : -160px -240px ;}
|
|
||||||
.active .icon.icon-star-off,.icon.icon-star-off,.icon.icon-star-off:hover {background-position : -240px -48px ;}
|
|
||||||
.active .icon.icon-star-on,.icon.icon-star-on,.icon.icon-star-on:hover {background-position : -224px -48px ;}
|
|
||||||
.active .icon.icon-suitcase,.icon.icon-suitcase,.icon.icon-suitcase:hover {background-position : -224px -112px ;}
|
|
||||||
.active .icon.icon-tag,.icon.icon-tag,.icon.icon-tag:hover {background-position : -224px -80px ;}
|
|
||||||
.active .icon.icon-transfer-ew,.icon.icon-transfer-ew,.icon.icon-transfer-ew:hover {background-position : -224px 0 ;}
|
|
||||||
.active .icon.icon-trash,.icon.icon-trash,.icon.icon-trash:hover {background-position : -192px -80px ;}
|
|
||||||
.active .icon.icon-treeview-corner,.icon.icon-treeview-corner,.icon.icon-treeview-corner:hover {background-position : -224px -240px ;}
|
|
||||||
.active .icon.icon-treeview-corner-minus,.icon.icon-treeview-corner-minus,.icon.icon-treeview-corner-minus:hover {background-position : -208px -240px ;}
|
|
||||||
.active .icon.icon-treeview-corner-plus,.icon.icon-treeview-corner-plus,.icon.icon-treeview-corner-plus:hover {background-position : -192px -240px ;}
|
|
||||||
.active .icon.icon-treeview-vertical-line,.icon.icon-treeview-vertical-line,.icon.icon-treeview-vertical-line:hover {background-position : -240px -240px ;}
|
|
||||||
.active .icon.icon-triangle-e,.icon.icon-triangle-e,.icon.icon-triangle-e:hover {background-position : -32px 0 ;}
|
|
||||||
.active .icon.icon-triangle-ew,.icon.icon-triangle-ew,.icon.icon-triangle-ew:hover {background-position : -144px 0 ;}
|
|
||||||
.active .icon.icon-triangle-n,.icon.icon-triangle-n,.icon.icon-triangle-n:hover {background-position : 0 0 ;}
|
|
||||||
.active .icon.icon-triangle-ne,.icon.icon-triangle-ne,.icon.icon-triangle-ne:hover {background-position : -16px 0 ;}
|
|
||||||
.active .icon.icon-triangle-ns,.icon.icon-triangle-ns,.icon.icon-triangle-ns:hover {background-position : -128px 0 ;}
|
|
||||||
.active .icon.icon-triangle-nw,.icon.icon-triangle-nw,.icon.icon-triangle-nw:hover {background-position : -112px 0 ;}
|
|
||||||
.active .icon.icon-triangle-s,.icon.icon-triangle-s,.icon.icon-triangle-s:hover {background-position : -64px 0 ;}
|
|
||||||
.active .icon.icon-triangle-se,.icon.icon-triangle-se,.icon.icon-triangle-se:hover {background-position : -48px 0 ;}
|
|
||||||
.active .icon.icon-triangle-sw,.icon.icon-triangle-sw,.icon.icon-triangle-sw:hover {background-position : -80px 0 ;}
|
|
||||||
.active .icon.icon-triangle-w,.icon.icon-triangle-w,.icon.icon-triangle-w:hover {background-position : -96px 0 ;}
|
|
||||||
.active .icon.icon-undo,.icon.icon-undo,.icon.icon-undo:hover {background-position : -128px -48px ;}
|
|
||||||
.active .icon.icon-unlink,.icon.icon-unlink,.icon.icon-unlink:hover {background-position : -128px -112px ;}
|
|
||||||
.active .icon.icon-unlocked,.icon.icon-unlocked,.icon.icon-unlocked:hover {background-position : -48px -96px ;}
|
|
||||||
.active .icon.icon-user,.icon.icon-user,.icon.icon-user:hover {background-position : -16px -80px ;}
|
|
||||||
.active .icon.icon-users,.icon.icon-users,.icon.icon-users:hover {background-position : -176px -128px ;}
|
|
||||||
.active .icon.icon-video,.icon.icon-video,.icon.icon-video:hover {background-position : -192px -128px ;}
|
|
||||||
.active .icon.icon-volume-off,.icon.icon-volume-off,.icon.icon-volume-off:hover {background-position : -224px -128px ;}
|
|
||||||
.active .icon.icon-volume-on,.icon.icon-volume-on,.icon.icon-volume-on:hover {background-position : -240px -128px ;}
|
|
||||||
.active .icon.icon-web,.icon.icon-web,.icon.icon-web:hover {background-position : -144px -112px ;}
|
|
||||||
.active .icon.icon-wrench,.icon.icon-wrench,.icon.icon-wrench:hover {background-position : -16px -96px ;}
|
|
||||||
.active .icon.icon-xls,.icon.icon-xls,.icon.icon-xls:hover {background-position : -208px -96px ;}
|
|
||||||
.active .icon.icon-zoomin,.icon.icon-zoomin,.icon.icon-zoomin:hover {background-position : -208px -64px ;}
|
|
||||||
.active .icon.icon-zoomout,.icon.icon-zoomout,.icon.icon-zoomout:hover {background-position : -224px -64px ;}
|
|
||||||
.active .icon32.icon-add,.icon32.icon-add,.icon32.icon-add:hover {background-position : -32px -256px ;}
|
|
||||||
.active .icon32.icon-alert,.icon32.icon-alert,.icon32.icon-alert:hover {background-position : -128px -256px ;}
|
|
||||||
.active .icon32.icon-archive,.icon32.icon-archive,.icon32.icon-archive:hover {background-position : -64px -288px ;}
|
|
||||||
.active .icon32.icon-arrow-4diag,.icon32.icon-arrow-4diag,.icon32.icon-arrow-4diag:hover {background-position : -416px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-e,.icon32.icon-arrow-e,.icon32.icon-arrow-e:hover {background-position : -64px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-e-w,.icon32.icon-arrow-e-w,.icon32.icon-arrow-e-w:hover {background-position : -320px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-n,.icon32.icon-arrow-n,.icon32.icon-arrow-n:hover {background-position : 0 -64px ;}
|
|
||||||
.active .icon32.icon-arrow-n-s,.icon32.icon-arrow-n-s,.icon32.icon-arrow-n-s:hover {background-position : -256px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-ne,.icon32.icon-arrow-ne,.icon32.icon-arrow-ne:hover {background-position : -32px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-ne-sw,.icon32.icon-arrow-ne-sw,.icon32.icon-arrow-ne-sw:hover {background-position : -288px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-nesw,.icon32.icon-arrow-nesw,.icon32.icon-arrow-nesw:hover {background-position : -384px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-nw,.icon32.icon-arrow-nw,.icon32.icon-arrow-nw:hover {background-position : -224px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-s,.icon32.icon-arrow-s,.icon32.icon-arrow-s:hover {background-position : -128px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-se,.icon32.icon-arrow-se,.icon32.icon-arrow-se:hover {background-position : -96px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-se-nw,.icon32.icon-arrow-se-nw,.icon32.icon-arrow-se-nw:hover {background-position : -352px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-sw,.icon32.icon-arrow-sw,.icon32.icon-arrow-sw:hover {background-position : -160px -64px ;}
|
|
||||||
.active .icon32.icon-arrow-w,.icon32.icon-arrow-w,.icon32.icon-arrow-w:hover {background-position : -192px -64px ;}
|
|
||||||
.active .icon32.icon-arrowrefresh-e,.icon32.icon-arrowrefresh-e,.icon32.icon-arrowrefresh-e:hover {background-position : -320px -128px ;}
|
|
||||||
.active .icon32.icon-arrowrefresh-n,.icon32.icon-arrowrefresh-n,.icon32.icon-arrowrefresh-n:hover {background-position : -288px -128px ;}
|
|
||||||
.active .icon32.icon-arrowrefresh-s,.icon32.icon-arrowrefresh-s,.icon32.icon-arrowrefresh-s:hover {background-position : -352px -128px ;}
|
|
||||||
.active .icon32.icon-arrowrefresh-w,.icon32.icon-arrowrefresh-w,.icon32.icon-arrowrefresh-w:hover {background-position : -256px -128px ;}
|
|
||||||
.active .icon32.icon-arrowreturn-en,.icon32.icon-arrowreturn-en,.icon32.icon-arrowreturn-en:hover {background-position : -224px -128px ;}
|
|
||||||
.active .icon32.icon-arrowreturn-es,.icon32.icon-arrowreturn-es,.icon32.icon-arrowreturn-es:hover {background-position : -160px -128px ;}
|
|
||||||
.active .icon32.icon-arrowreturn-ne,.icon32.icon-arrowreturn-ne,.icon32.icon-arrowreturn-ne:hover {background-position : -64px -128px ;}
|
|
||||||
.active .icon32.icon-arrowreturn-nw,.icon32.icon-arrowreturn-nw,.icon32.icon-arrowreturn-nw:hover {background-position : -96px -128px ;}
|
|
||||||
.active .icon32.icon-arrowreturn-se,.icon32.icon-arrowreturn-se,.icon32.icon-arrowreturn-se:hover {background-position : 0 -128px ;}
|
|
||||||
.active .icon32.icon-arrowreturn-sw,.icon32.icon-arrowreturn-sw,.icon32.icon-arrowreturn-sw:hover {background-position : -32px -128px ;}
|
|
||||||
.active .icon32.icon-arrowreturn-wn,.icon32.icon-arrowreturn-wn,.icon32.icon-arrowreturn-wn:hover {background-position : -192px -128px ;}
|
|
||||||
.active .icon32.icon-arrowreturn-ws,.icon32.icon-arrowreturn-ws,.icon32.icon-arrowreturn-ws:hover {background-position : -128px -128px ;}
|
|
||||||
.active .icon32.icon-arrowstop-e,.icon32.icon-arrowstop-e,.icon32.icon-arrowstop-e:hover {background-position : -352px 0 ;}
|
|
||||||
.active .icon32.icon-arrowstop-n,.icon32.icon-arrowstop-n,.icon32.icon-arrowstop-n:hover {background-position : -320px 0 ;}
|
|
||||||
.active .icon32.icon-arrowstop-s,.icon32.icon-arrowstop-s,.icon32.icon-arrowstop-s:hover {background-position : -384px 0 ;}
|
|
||||||
.active .icon32.icon-arrowstop-w,.icon32.icon-arrowstop-w,.icon32.icon-arrowstop-w:hover {background-position : -416px 0 ;}
|
|
||||||
.active .icon32.icon-arrowthick-e,.icon32.icon-arrowthick-e,.icon32.icon-arrowthick-e:hover {background-position : -64px -96px ;}
|
|
||||||
.active .icon32.icon-arrowthick-n,.icon32.icon-arrowthick-n,.icon32.icon-arrowthick-n:hover {background-position : 0 -96px ;}
|
|
||||||
.active .icon32.icon-arrowthick-ne,.icon32.icon-arrowthick-ne,.icon32.icon-arrowthick-ne:hover {background-position : -32px -96px ;}
|
|
||||||
.active .icon32.icon-arrowthick-nw,.icon32.icon-arrowthick-nw,.icon32.icon-arrowthick-nw:hover {background-position : -224px -96px ;}
|
|
||||||
.active .icon32.icon-arrowthick-s,.icon32.icon-arrowthick-s,.icon32.icon-arrowthick-s:hover {background-position : -128px -96px ;}
|
|
||||||
.active .icon32.icon-arrowthick-se,.icon32.icon-arrowthick-se,.icon32.icon-arrowthick-se:hover {background-position : -96px -96px ;}
|
|
||||||
.active .icon32.icon-arrowthick-sw,.icon32.icon-arrowthick-sw,.icon32.icon-arrowthick-sw:hover {background-position : -160px -96px ;}
|
|
||||||
.active .icon32.icon-arrowthick-w,.icon32.icon-arrowthick-w,.icon32.icon-arrowthick-w:hover {background-position : -192px -96px ;}
|
|
||||||
.active .icon32.icon-attachment,.icon32.icon-attachment,.icon32.icon-attachment:hover {background-position : -160px -288px ;}
|
|
||||||
.active .icon32.icon-audio,.icon32.icon-audio,.icon32.icon-audio:hover {background-position : -416px -256px ;}
|
|
||||||
.active .icon32.icon-basket,.icon32.icon-basket,.icon32.icon-basket:hover {background-position : -288px -256px ;}
|
|
||||||
.active .icon32.icon-book,.icon32.icon-book,.icon32.icon-book:hover {background-position : -128px -160px ;}
|
|
||||||
.active .icon32.icon-book-empty,.icon32.icon-book-empty,.icon32.icon-book-empty:hover {background-position : -160px -160px ;}
|
|
||||||
.active .icon32.icon-bookmark,.icon32.icon-bookmark,.icon32.icon-bookmark:hover {background-position : -288px -160px ;}
|
|
||||||
.active .icon32.icon-briefcase,.icon32.icon-briefcase,.icon32.icon-briefcase:hover {background-position : -480px -224px ;}
|
|
||||||
.active .icon32.icon-bullet-off,.icon32.icon-bullet-off,.icon32.icon-bullet-off:hover {background-position : -416px -96px ;}
|
|
||||||
.active .icon32.icon-bullet-on,.icon32.icon-bullet-on,.icon32.icon-bullet-on:hover {background-position : -384px -96px ;}
|
|
||||||
.active .icon32.icon-calendar,.icon32.icon-calendar,.icon32.icon-calendar:hover {background-position : -32px -224px ;}
|
|
||||||
.active .icon32.icon-cancel,.icon32.icon-cancel,.icon32.icon-cancel:hover {background-position : -352px -160px ;}
|
|
||||||
.active .icon32.icon-carat-1-e,.icon32.icon-carat-1-e,.icon32.icon-carat-1-e:hover {background-position : -64px -32px ;}
|
|
||||||
.active .icon32.icon-carat-1-n,.icon32.icon-carat-1-n,.icon32.icon-carat-1-n:hover {background-position : 0 -32px ;}
|
|
||||||
.active .icon32.icon-carat-1-ne,.icon32.icon-carat-1-ne,.icon32.icon-carat-1-ne:hover {background-position : -32px -32px ;}
|
|
||||||
.active .icon32.icon-carat-1-nw,.icon32.icon-carat-1-nw,.icon32.icon-carat-1-nw:hover {background-position : -224px -32px ;}
|
|
||||||
.active .icon32.icon-carat-1-s,.icon32.icon-carat-1-s,.icon32.icon-carat-1-s:hover {background-position : -128px -32px ;}
|
|
||||||
.active .icon32.icon-carat-1-se,.icon32.icon-carat-1-se,.icon32.icon-carat-1-se:hover {background-position : -96px -32px ;}
|
|
||||||
.active .icon32.icon-carat-1-sw,.icon32.icon-carat-1-sw,.icon32.icon-carat-1-sw:hover {background-position : -160px -32px ;}
|
|
||||||
.active .icon32.icon-carat-1-w,.icon32.icon-carat-1-w,.icon32.icon-carat-1-w:hover {background-position : -192px -32px ;}
|
|
||||||
.active .icon32.icon-carat-2-ew,.icon32.icon-carat-2-ew,.icon32.icon-carat-2-ew:hover {background-position : -288px -32px ;}
|
|
||||||
.active .icon32.icon-carat-2-ns,.icon32.icon-carat-2-ns,.icon32.icon-carat-2-ns:hover {background-position : -256px -32px ;}
|
|
||||||
.active .icon32.icon-cart,.icon32.icon-cart,.icon32.icon-cart:hover {background-position : -256px -256px ;}
|
|
||||||
.active .icon32.icon-check,.icon32.icon-check,.icon32.icon-check:hover {background-position : -416px -32px ;}
|
|
||||||
.active .icon32.icon-clipboard,.icon32.icon-clipboard,.icon32.icon-clipboard:hover {background-position : -160px -192px ;}
|
|
||||||
.active .icon32.icon-clock,.icon32.icon-clock,.icon32.icon-clock:hover {background-position : -64px -224px ;}
|
|
||||||
.active .icon32.icon-close,.icon32.icon-close,.icon32.icon-close:hover {background-position : -384px -32px ;}
|
|
||||||
.active .icon32.icon-comment,.icon32.icon-comment,.icon32.icon-comment:hover {background-position : -224px -256px ;}
|
|
||||||
.active .icon32.icon-comment-text,.icon32.icon-comment-text,.icon32.icon-comment-text:hover {background-position : -160px -256px ;}
|
|
||||||
.active .icon32.icon-comment-video,.icon32.icon-comment-video,.icon32.icon-comment-video:hover {background-position : -192px -256px ;}
|
|
||||||
.active .icon32.icon-compose,.icon32.icon-compose,.icon32.icon-compose:hover {background-position : 0 -288px ;}
|
|
||||||
.active .icon32.icon-contacts,.icon32.icon-contacts,.icon32.icon-contacts:hover {background-position : -352px -224px ;}
|
|
||||||
.active .icon32.icon-copy,.icon32.icon-copy,.icon32.icon-copy:hover {background-position : -288px -192px ;}
|
|
||||||
.active .icon32.icon-cross,.icon32.icon-cross,.icon32.icon-cross:hover {background-position : 0 -256px ;}
|
|
||||||
.active .icon32.icon-date,.icon32.icon-date,.icon32.icon-date:hover {background-position : 0 -224px ;}
|
|
||||||
.active .icon32.icon-doc,.icon32.icon-doc,.icon32.icon-doc:hover {background-position : -384px -192px ;}
|
|
||||||
.active .icon32.icon-document,.icon32.icon-document,.icon32.icon-document:hover {background-position : -448px -192px ;}
|
|
||||||
.active .icon32.icon-edit,.icon32.icon-edit,.icon32.icon-edit:hover {background-position : -224px -192px ;}
|
|
||||||
.active .icon32.icon-envelope-closed,.icon32.icon-envelope-closed,.icon32.icon-envelope-closed:hover {background-position : -96px -224px ;}
|
|
||||||
.active .icon32.icon-envelope-open,.icon32.icon-envelope-open,.icon32.icon-envelope-open:hover {background-position : -128px -224px ;}
|
|
||||||
.active .icon32.icon-extlink,.icon32.icon-extlink,.icon32.icon-extlink:hover {background-position : -480px -64px ;}
|
|
||||||
.active .icon32.icon-flag,.icon32.icon-flag,.icon32.icon-flag:hover {background-position : -256px -160px ;}
|
|
||||||
.active .icon32.icon-folder-collapsed,.icon32.icon-folder-collapsed,.icon32.icon-folder-collapsed:hover {background-position : -192px -160px ;}
|
|
||||||
.active .icon32.icon-folder-open,.icon32.icon-folder-open,.icon32.icon-folder-open:hover {background-position : -224px -160px ;}
|
|
||||||
.active .icon32.icon-gear,.icon32.icon-gear,.icon32.icon-gear:hover {background-position : 0 -192px ;}
|
|
||||||
.active .icon32.icon-globe,.icon32.icon-globe,.icon32.icon-globe:hover {background-position : -320px -224px ;}
|
|
||||||
.active .icon32.icon-heart,.icon32.icon-heart,.icon32.icon-heart:hover {background-position : -320px -160px ;}
|
|
||||||
.active .icon32.icon-help,.icon32.icon-help,.icon32.icon-help:hover {background-position : -448px -32px ;}
|
|
||||||
.active .icon32.icon-home,.icon32.icon-home,.icon32.icon-home:hover {background-position : 0 -160px ;}
|
|
||||||
.active .icon32.icon-image,.icon32.icon-image,.icon32.icon-image:hover {background-position : -416px -224px ;}
|
|
||||||
.active .icon32.icon-inbox,.icon32.icon-inbox,.icon32.icon-inbox:hover {background-position : -32px -288px ;}
|
|
||||||
.active .icon32.icon-info,.icon32.icon-info,.icon32.icon-info:hover {background-position : -96px -256px ;}
|
|
||||||
.active .icon32.icon-key,.icon32.icon-key,.icon32.icon-key:hover {background-position : -128px -192px ;}
|
|
||||||
.active .icon32.icon-lightbulb,.icon32.icon-lightbulb,.icon32.icon-lightbulb:hover {background-position : -480px -160px ;}
|
|
||||||
.active .icon32.icon-link,.icon32.icon-link,.icon32.icon-link:hover {background-position : -224px -224px ;}
|
|
||||||
.active .icon32.icon-locked,.icon32.icon-locked,.icon32.icon-locked:hover {background-position : -64px -192px ;}
|
|
||||||
.active .icon32.icon-mail-closed,.icon32.icon-mail-closed,.icon32.icon-mail-closed:hover {background-position : -160px -224px ;}
|
|
||||||
.active .icon32.icon-mail-open,.icon32.icon-mail-open,.icon32.icon-mail-open:hover {background-position : -192px -224px ;}
|
|
||||||
.active .icon32.icon-messages,.icon32.icon-messages,.icon32.icon-messages:hover {background-position : -320px -256px ;}
|
|
||||||
.active .icon32.icon-minus,.icon32.icon-minus,.icon32.icon-minus:hover {background-position : -352px -32px ;}
|
|
||||||
.active .icon32.icon-newwin,.icon32.icon-newwin,.icon32.icon-newwin:hover {background-position : -448px -64px ;}
|
|
||||||
.active .icon32.icon-note,.icon32.icon-note,.icon32.icon-note:hover {background-position : -320px -192px ;}
|
|
||||||
.active .icon32.icon-notice,.icon32.icon-notice,.icon32.icon-notice:hover {background-position : -480px -32px ;}
|
|
||||||
.active .icon32.icon-page,.icon32.icon-page,.icon32.icon-page:hover {background-position : -256px -192px ;}
|
|
||||||
.active .icon32.icon-pdf,.icon32.icon-pdf,.icon32.icon-pdf:hover {background-position : -352px -192px ;}
|
|
||||||
.active .icon32.icon-pin,.icon32.icon-pin,.icon32.icon-pin:hover {background-position : -416px -160px ;}
|
|
||||||
.active .icon32.icon-plus,.icon32.icon-plus,.icon32.icon-plus:hover {background-position : -320px -32px ;}
|
|
||||||
.active .icon32.icon-print,.icon32.icon-print,.icon32.icon-print:hover {background-position : -64px -160px ;}
|
|
||||||
.active .icon32.icon-profile,.icon32.icon-profile,.icon32.icon-profile:hover {background-position : -384px -224px ;}
|
|
||||||
.active .icon32.icon-redo,.icon32.icon-redo,.icon32.icon-redo:hover {background-position : -288px -96px ;}
|
|
||||||
.active .icon32.icon-refresh,.icon32.icon-refresh,.icon32.icon-refresh:hover {background-position : -352px -96px ;}
|
|
||||||
.active .icon32.icon-remove,.icon32.icon-remove,.icon32.icon-remove:hover {background-position : -64px -256px ;}
|
|
||||||
.active .icon32.icon-reply,.icon32.icon-reply,.icon32.icon-reply:hover {background-position : -96px -288px ;}
|
|
||||||
.active .icon32.icon-replyall,.icon32.icon-replyall,.icon32.icon-replyall:hover {background-position : -320px -96px ;}
|
|
||||||
.active .icon32.icon-rssfeed,.icon32.icon-rssfeed,.icon32.icon-rssfeed:hover {background-position : -480px -128px ;}
|
|
||||||
.active .icon32.icon-save,.icon32.icon-save,.icon32.icon-save:hover {background-position : -96px -160px ;}
|
|
||||||
.active .icon32.icon-scissors,.icon32.icon-scissors,.icon32.icon-scissors:hover {background-position : -192px -192px ;}
|
|
||||||
.active .icon32.icon-script,.icon32.icon-script,.icon32.icon-script:hover {background-position : -480px -192px ;}
|
|
||||||
.active .icon32.icon-search,.icon32.icon-search,.icon32.icon-search:hover {background-position : -384px -128px ;}
|
|
||||||
.active .icon32.icon-sent,.icon32.icon-sent,.icon32.icon-sent:hover {background-position : -128px -288px ;}
|
|
||||||
.active .icon32.icon-shuffle,.icon32.icon-shuffle,.icon32.icon-shuffle:hover {background-position : -480px 0 ;}
|
|
||||||
.active .icon32.icon-square-minus,.icon32.icon-square-minus,.icon32.icon-square-minus:hover {background-position : -352px -480px ;}
|
|
||||||
.active .icon32.icon-square-plus,.icon32.icon-square-plus,.icon32.icon-square-plus:hover {background-position : -320px -480px ;}
|
|
||||||
.active .icon32.icon-star-off,.icon32.icon-star-off,.icon32.icon-star-off:hover {background-position : -480px -96px ;}
|
|
||||||
.active .icon32.icon-star-on,.icon32.icon-star-on,.icon32.icon-star-on:hover {background-position : -448px -96px ;}
|
|
||||||
.active .icon32.icon-suitcase,.icon32.icon-suitcase,.icon32.icon-suitcase:hover {background-position : -448px -224px ;}
|
|
||||||
.active .icon32.icon-tag,.icon32.icon-tag,.icon32.icon-tag:hover {background-position : -448px -160px ;}
|
|
||||||
.active .icon32.icon-transfer-ew,.icon32.icon-transfer-ew,.icon32.icon-transfer-ew:hover {background-position : -448px 0 ;}
|
|
||||||
.active .icon32.icon-trash,.icon32.icon-trash,.icon32.icon-trash:hover {background-position : -384px -160px ;}
|
|
||||||
.active .icon32.icon-treeview-corner,.icon32.icon-treeview-corner,.icon32.icon-treeview-corner:hover {background-position : -448px -480px ;}
|
|
||||||
.active .icon32.icon-treeview-corner-minus,.icon32.icon-treeview-corner-minus,.icon32.icon-treeview-corner-minus:hover {background-position : -416px -480px ;}
|
|
||||||
.active .icon32.icon-treeview-corner-plus,.icon32.icon-treeview-corner-plus,.icon32.icon-treeview-corner-plus:hover {background-position : -384px -480px ;}
|
|
||||||
.active .icon32.icon-treeview-vertical-line,.icon32.icon-treeview-vertical-line,.icon32.icon-treeview-vertical-line:hover {background-position : -480px -480px ;}
|
|
||||||
.active .icon32.icon-triangle-e,.icon32.icon-triangle-e,.icon32.icon-triangle-e:hover {background-position : -64px 0 ;}
|
|
||||||
.active .icon32.icon-triangle-ew,.icon32.icon-triangle-ew,.icon32.icon-triangle-ew:hover {background-position : -288px 0 ;}
|
|
||||||
.active .icon32.icon-triangle-n,.icon32.icon-triangle-n,.icon32.icon-triangle-n:hover {background-position : 0 0 ;}
|
|
||||||
.active .icon32.icon-triangle-ne,.icon32.icon-triangle-ne,.icon32.icon-triangle-ne:hover {background-position : -32px 0 ;}
|
|
||||||
.active .icon32.icon-triangle-ns,.icon32.icon-triangle-ns,.icon32.icon-triangle-ns:hover {background-position : -256px 0 ;}
|
|
||||||
.active .icon32.icon-triangle-nw,.icon32.icon-triangle-nw,.icon32.icon-triangle-nw:hover {background-position : -224px 0 ;}
|
|
||||||
.active .icon32.icon-triangle-s,.icon32.icon-triangle-s,.icon32.icon-triangle-s:hover {background-position : -128px 0 ;}
|
|
||||||
.active .icon32.icon-triangle-se,.icon32.icon-triangle-se,.icon32.icon-triangle-se:hover {background-position : -96px 0 ;}
|
|
||||||
.active .icon32.icon-triangle-sw,.icon32.icon-triangle-sw,.icon32.icon-triangle-sw:hover {background-position : -160px 0 ;}
|
|
||||||
.active .icon32.icon-triangle-w,.icon32.icon-triangle-w,.icon32.icon-triangle-w:hover {background-position : -192px 0 ;}
|
|
||||||
.active .icon32.icon-undo,.icon32.icon-undo,.icon32.icon-undo:hover {background-position : -256px -96px ;}
|
|
||||||
.active .icon32.icon-unlink,.icon32.icon-unlink,.icon32.icon-unlink:hover {background-position : -256px -224px ;}
|
|
||||||
.active .icon32.icon-unlocked,.icon32.icon-unlocked,.icon32.icon-unlocked:hover {background-position : -96px -192px ;}
|
|
||||||
.active .icon32.icon-user,.icon32.icon-user,.icon32.icon-user:hover {background-position : -32px -160px ;}
|
|
||||||
.active .icon32.icon-users,.icon32.icon-users,.icon32.icon-users:hover {background-position : -352px -256px ;}
|
|
||||||
.active .icon32.icon-video,.icon32.icon-video,.icon32.icon-video:hover {background-position : -384px -256px ;}
|
|
||||||
.active .icon32.icon-volume-off,.icon32.icon-volume-off,.icon32.icon-volume-off:hover {background-position : -448px -256px ;}
|
|
||||||
.active .icon32.icon-volume-on,.icon32.icon-volume-on,.icon32.icon-volume-on:hover {background-position : -480px -256px ;}
|
|
||||||
.active .icon32.icon-web,.icon32.icon-web,.icon32.icon-web:hover {background-position : -288px -224px ;}
|
|
||||||
.active .icon32.icon-wrench,.icon32.icon-wrench,.icon32.icon-wrench:hover {background-position : -32px -192px ;}
|
|
||||||
.active .icon32.icon-xls,.icon32.icon-xls,.icon32.icon-xls:hover {background-position : -416px -192px ;}
|
|
||||||
.active .icon32.icon-zoomin,.icon32.icon-zoomin,.icon32.icon-zoomin:hover {background-position : -416px -128px ;}
|
|
||||||
.active .icon32.icon-zoomout,.icon32.icon-zoomout,.icon32.icon-zoomout:hover {background-position : -448px -128px ;}
|
|
||||||
.icon.icon-black,.icons-black .icon,.icon.icon-darkgray:hover {background-image : url('../img/opa-icons-black16.png') ;}
|
|
||||||
.icon.icon-blue,.icons-blue .icon {background-image : url('../img/opa-icons-blue16.png') ;}
|
|
||||||
.icon.icon-color,.icons-color .icon,.active .icon {background-image : url('../img/opa-icons-color16.png') ;}
|
|
||||||
.icon.icon-green,.icons-green .icon {background-image : url('../img/opa-icons-green16.png') ;}
|
|
||||||
.icon.icon-orange,.icons-orange .icon {background-image : url('../img/opa-icons-orange16.png') ;}
|
|
||||||
.icon.icon-red,.icons-red .icon {background-image : url('../img/opa-icons-red16.png') ;}
|
|
||||||
.icon.icon-white:hover,.icons-white .icon:hover,.icons-gray .icon {background-image : url('../img/opa-icons-gray16.png') ;}
|
|
||||||
.icon.icon-white,.icons-white .icon {background-image : url('../img/opa-icons-white16.png') ;}
|
|
||||||
.icon:hover,.icon.icon-darkgray,.icons-darkgray .icon {background-image : url('../img/opa-icons-darkgray16.png') ;}
|
|
||||||
.icon {background-image : url('../img/opa-icons-gray16.png') ;background-repeat : no-repeat ;display : inline-block ;height : 16px ;vertical-align : text-top ;width : 16px ;}
|
|
||||||
.icon32.icon-black,.icons-black .icon32,.icon32.icon-darkgray:hover {background-image : url('../img/opa-icons-black32.png') ;}
|
|
||||||
.icon32.icon-blue,.icons-blue .icon32 {background-image : url('../img/opa-icons-blue32.png') ;}
|
|
||||||
.icon32.icon-color,.icons-color .icon32,.active .icon32 {background-image : url('../img/opa-icons-color32.png') ;}
|
|
||||||
.icon32.icon-green,.icons-green .icon32 {background-image : url('../img/opa-icons-green32.png') ;}
|
|
||||||
.icon32.icon-orange,.icons-orange .icon32 {background-image : url('../img/opa-icons-orange32.png') ;}
|
|
||||||
.icon32.icon-red,.icons-red .icon32 {background-image : url('../img/opa-icons-red32.png') ;}
|
|
||||||
.icon32.icon-white:hover,.icons-white .icon32:hover,.icons-gray .icon32 {background-image : url('../img/opa-icons-gray32.png') ;}
|
|
||||||
.icon32.icon-white,.icons-white .icon32 {background-image : url('../img/opa-icons-white32.png') ;}
|
|
||||||
.icon32:hover,.icon32.icon-darkgray,.icons-darkgray .icon32 {background-image : url('../img/opa-icons-darkgray32.png') ;}
|
|
||||||
.icon32 {background-image : url('../img/opa-icons-gray32.png') ;background-repeat : no-repeat ;display : inline-block ;height : 32px ;vertical-align : text-top ;width : 32px ;}
|
|
||||||
|
|
||||||
ul.media-grid li {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.btn.opa-source {
|
|
||||||
margin-top: 5px;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.subhead {
|
|
||||||
background-color: #287590;
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#2C4369), to(#23A1B2));
|
|
||||||
background-image: -webkit-linear-gradient(#2C4369, #23A1B2);
|
|
||||||
background-image: -moz-linear-gradient(#2C4369, #23A1B2);
|
|
||||||
background-image: -o-linear-gradient(top, #2C4369, #23A1B2);
|
|
||||||
background-image: -khtml-gradient(linear, left top, left bottom, from(#2C4369), to(#23A1B2));
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2C4369', endColorstr='#23A1B2', GradientType=0);
|
|
||||||
}
|
|
||||||
.subhead p a {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
.subhead hr {
|
|
||||||
border-color:#CCC;
|
|
||||||
}
|
|
||||||
ul.icons-list li {
|
|
||||||
display:inline-block;
|
|
||||||
margin:6px;
|
|
||||||
}
|
|
||||||
.well-gray {
|
|
||||||
background-color:#CCC;
|
|
||||||
}
|
|
||||||
.well-black {
|
|
||||||
background-color:#333;
|
|
||||||
}
|
|
|
@ -1,609 +0,0 @@
|
||||||
/*
|
|
||||||
|
|
||||||
Uniform Theme: Uniform Default
|
|
||||||
Version: 1.6
|
|
||||||
By: Josh Pyles
|
|
||||||
License: MIT License
|
|
||||||
---
|
|
||||||
For use with the Uniform plugin:
|
|
||||||
http://pixelmatrixdesign.com/uniform/
|
|
||||||
---
|
|
||||||
Generated by Uniform Theme Generator:
|
|
||||||
http://pixelmatrixdesign.com/uniform/themer.html
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Global Declaration */
|
|
||||||
|
|
||||||
div.selector,
|
|
||||||
div.selector span,
|
|
||||||
div.checker span,
|
|
||||||
div.radio span,
|
|
||||||
div.uploader,
|
|
||||||
div.uploader span.action,
|
|
||||||
div.button,
|
|
||||||
div.button span {
|
|
||||||
background-image: url(../img/sprite.png);
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
}
|
|
||||||
|
|
||||||
.selector,
|
|
||||||
.radio,
|
|
||||||
.checker,
|
|
||||||
.uploader,
|
|
||||||
.button,
|
|
||||||
.selector *,
|
|
||||||
.radio *,
|
|
||||||
.checker *,
|
|
||||||
.uploader *,
|
|
||||||
.button *{
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* INPUT & TEXTAREA */
|
|
||||||
|
|
||||||
input.text,
|
|
||||||
input.email,
|
|
||||||
input.password,
|
|
||||||
textarea.uniform {
|
|
||||||
font-size: 12px;
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
font-weight: normal;
|
|
||||||
padding: 3px;
|
|
||||||
color: #777;
|
|
||||||
background: url('../img/bg-input-focus.png') repeat-x 0px 0px;
|
|
||||||
background: url('../img/bg-input.png') repeat-x 0px 0px;
|
|
||||||
border-top: solid 1px #aaa;
|
|
||||||
border-left: solid 1px #aaa;
|
|
||||||
border-bottom: solid 1px #ccc;
|
|
||||||
border-right: solid 1px #ccc;
|
|
||||||
-webkit-border-radius: 3px;
|
|
||||||
-moz-border-radius: 3px;
|
|
||||||
border-radius: 3px;
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
input.text:focus,
|
|
||||||
input.email:focus,
|
|
||||||
input.password:focus,
|
|
||||||
textarea.uniform:focus {
|
|
||||||
-webkit-box-shadow: 0px 0px 4px rgba(0,0,0,0.3);
|
|
||||||
-moz-box-shadow: 0px 0px 4px rgba(0,0,0,0.3);
|
|
||||||
box-shadow: 0px 0px 4px rgba(0,0,0,0.3);
|
|
||||||
border-color: #999;
|
|
||||||
background: url('../img/bg-input-focus.png') repeat-x 0px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SPRITES */
|
|
||||||
|
|
||||||
/* Select */
|
|
||||||
|
|
||||||
div.selector {
|
|
||||||
background-position: -483px -130px;
|
|
||||||
line-height: 26px;
|
|
||||||
height: 26px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector span {
|
|
||||||
background-position: right 0px;
|
|
||||||
height: 26px;
|
|
||||||
line-height: 26px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector select {
|
|
||||||
/* change these to adjust positioning of select element */
|
|
||||||
top: 0px;
|
|
||||||
left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector:active,
|
|
||||||
div.selector.active {
|
|
||||||
background-position: -483px -156px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector:active span,
|
|
||||||
div.selector.active span {
|
|
||||||
background-position: right -26px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector.focus, div.selector.hover, div.selector:hover {
|
|
||||||
background-position: -483px -182px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector.focus span, div.selector.hover span, div.selector:hover span {
|
|
||||||
background-position: right -52px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector.focus:active,
|
|
||||||
div.selector.focus.active,
|
|
||||||
div.selector:hover:active,
|
|
||||||
div.selector.active:hover {
|
|
||||||
background-position: -483px -208px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector.focus:active span,
|
|
||||||
div.selector:hover:active span,
|
|
||||||
div.selector.active:hover span,
|
|
||||||
div.selector.focus.active span {
|
|
||||||
background-position: right -78px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector.disabled {
|
|
||||||
background-position: -483px -234px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector.disabled span {
|
|
||||||
background-position: right -104px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Checkbox */
|
|
||||||
|
|
||||||
div.checker {
|
|
||||||
width: 19px;
|
|
||||||
height: 19px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker input {
|
|
||||||
width: 19px;
|
|
||||||
height: 19px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker span {
|
|
||||||
background-position: 0px -260px;
|
|
||||||
height: 19px;
|
|
||||||
width: 19px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker:active span,
|
|
||||||
div.checker.active span {
|
|
||||||
background-position: -19px -260px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker.focus span,
|
|
||||||
div.checker:hover span {
|
|
||||||
background-position: -38px -260px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker.focus:active span,
|
|
||||||
div.checker:active:hover span,
|
|
||||||
div.checker.active:hover span,
|
|
||||||
div.checker.focus.active span {
|
|
||||||
background-position: -57px -260px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker span.checked {
|
|
||||||
background-position: -76px -260px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker:active span.checked,
|
|
||||||
div.checker.active span.checked {
|
|
||||||
background-position: -95px -260px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker.focus span.checked,
|
|
||||||
div.checker:hover span.checked {
|
|
||||||
background-position: -114px -260px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker.focus:active span.checked,
|
|
||||||
div.checker:hover:active span.checked,
|
|
||||||
div.checker.active:hover span.checked,
|
|
||||||
div.checker.active.focus span.checked {
|
|
||||||
background-position: -133px -260px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker.disabled span,
|
|
||||||
div.checker.disabled:active span,
|
|
||||||
div.checker.disabled.active span {
|
|
||||||
background-position: -152px -260px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker.disabled span.checked,
|
|
||||||
div.checker.disabled:active span.checked,
|
|
||||||
div.checker.disabled.active span.checked {
|
|
||||||
background-position: -171px -260px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Radio */
|
|
||||||
|
|
||||||
div.radio {
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio input {
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio span {
|
|
||||||
height: 18px;
|
|
||||||
width: 18px;
|
|
||||||
background-position: 0px -279px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio:active span,
|
|
||||||
div.radio.active span {
|
|
||||||
background-position: -18px -279px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio.focus span,
|
|
||||||
div.radio:hover span {
|
|
||||||
background-position: -36px -279px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio.focus:active span,
|
|
||||||
div.radio:active:hover span,
|
|
||||||
div.radio.active:hover span,
|
|
||||||
div.radio.active.focus span {
|
|
||||||
background-position: -54px -279px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio span.checked {
|
|
||||||
background-position: -72px -279px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio:active span.checked,
|
|
||||||
div.radio.active span.checked {
|
|
||||||
background-position: -90px -279px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio.focus span.checked, div.radio:hover span.checked {
|
|
||||||
background-position: -108px -279px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio.focus:active span.checked,
|
|
||||||
div.radio:hover:active span.checked,
|
|
||||||
div.radio.focus.active span.checked,
|
|
||||||
div.radio.active:hover span.checked {
|
|
||||||
background-position: -126px -279px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio.disabled span,
|
|
||||||
div.radio.disabled:active span,
|
|
||||||
div.radio.disabled.active span {
|
|
||||||
background-position: -144px -279px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio.disabled span.checked,
|
|
||||||
div.radio.disabled:active span.checked,
|
|
||||||
div.radio.disabled.active span.checked {
|
|
||||||
background-position: -162px -279px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Uploader */
|
|
||||||
|
|
||||||
div.uploader {
|
|
||||||
background-position: 0px -297px;
|
|
||||||
height: 28px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader span.action {
|
|
||||||
background-position: right -409px;
|
|
||||||
height: 24px;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader span.filename {
|
|
||||||
height: 24px;
|
|
||||||
/* change this line to adjust positioning of filename area */
|
|
||||||
margin: 2px 0px 2px 2px;
|
|
||||||
line-height: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader.focus,
|
|
||||||
div.uploader.hover,
|
|
||||||
div.uploader:hover {
|
|
||||||
background-position: 0px -353px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader.focus span.action,
|
|
||||||
div.uploader.hover span.action,
|
|
||||||
div.uploader:hover span.action {
|
|
||||||
background-position: right -437px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader.active span.action,
|
|
||||||
div.uploader:active span.action {
|
|
||||||
background-position: right -465px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader.focus.active span.action,
|
|
||||||
div.uploader:focus.active span.action,
|
|
||||||
div.uploader.focus:active span.action,
|
|
||||||
div.uploader:focus:active span.action {
|
|
||||||
background-position: right -493px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader.disabled {
|
|
||||||
background-position: 0px -325px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader.disabled span.action {
|
|
||||||
background-position: right -381px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button {
|
|
||||||
background-position: 0px -523px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button span {
|
|
||||||
background-position: right -643px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button.focus,
|
|
||||||
div.button:focus,
|
|
||||||
div.button:hover,
|
|
||||||
div.button.hover {
|
|
||||||
background-position: 0px -553px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button.focus span,
|
|
||||||
div.button:focus span,
|
|
||||||
div.button:hover span,
|
|
||||||
div.button.hover span {
|
|
||||||
background-position: right -673px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button.active,
|
|
||||||
div.button:active {
|
|
||||||
background-position: 0px -583px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button.active span,
|
|
||||||
div.button:active span {
|
|
||||||
background-position: right -703px;
|
|
||||||
color: #555;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button.disabled,
|
|
||||||
div.button:disabled {
|
|
||||||
background-position: 0px -613px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button.disabled span,
|
|
||||||
div.button:disabled span {
|
|
||||||
background-position: right -733px;
|
|
||||||
color: #bbb;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* PRESENTATION */
|
|
||||||
|
|
||||||
/* Button */
|
|
||||||
|
|
||||||
div.button {
|
|
||||||
height: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button span {
|
|
||||||
margin-left: 13px;
|
|
||||||
height: 22px;
|
|
||||||
padding-top: 8px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
letter-spacing: 1px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
padding-left: 2px;
|
|
||||||
padding-right: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Select */
|
|
||||||
div.selector {
|
|
||||||
width: 190px;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector select {
|
|
||||||
min-width: 190px;
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
border: solid 1px #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector span {
|
|
||||||
padding: 0px 25px 0px 2px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector span {
|
|
||||||
color: #666;
|
|
||||||
width: 158px;
|
|
||||||
text-shadow: 0 1px 0 #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector.disabled span {
|
|
||||||
color: #bbb;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Checker */
|
|
||||||
div.checker {
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Radio */
|
|
||||||
div.radio {
|
|
||||||
margin-right: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Uploader */
|
|
||||||
div.uploader {
|
|
||||||
width: 190px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader span.action {
|
|
||||||
width: 85px;
|
|
||||||
text-align: center;
|
|
||||||
text-shadow: #fff 0px 1px 0px;
|
|
||||||
font-size: 11px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader span.filename {
|
|
||||||
color: #777;
|
|
||||||
width: 82px;
|
|
||||||
border-right: solid 1px #bbb;
|
|
||||||
font-size: 11px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader input {
|
|
||||||
width: 190px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader.disabled span.action {
|
|
||||||
color: #aaa;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader.disabled span.filename {
|
|
||||||
border-color: #ddd;
|
|
||||||
color: #aaa;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
|
|
||||||
CORE FUNCTIONALITY
|
|
||||||
|
|
||||||
Not advised to edit stuff below this line
|
|
||||||
-----------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
.selector,
|
|
||||||
.checker,
|
|
||||||
.button,
|
|
||||||
.radio,
|
|
||||||
.uploader {
|
|
||||||
display: -moz-inline-box;
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
zoom: 1;
|
|
||||||
*display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.selector select:focus, .radio input:focus, .checker input:focus, .uploader input:focus {
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Button */
|
|
||||||
|
|
||||||
div.button a,
|
|
||||||
div.button button,
|
|
||||||
div.button input {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button {
|
|
||||||
cursor: pointer;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button span {
|
|
||||||
display: -moz-inline-box;
|
|
||||||
display: inline-block;
|
|
||||||
line-height: 1;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Select */
|
|
||||||
|
|
||||||
div.selector {
|
|
||||||
position: relative;
|
|
||||||
padding-left: 10px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector span {
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.selector select {
|
|
||||||
position: absolute;
|
|
||||||
opacity: 0;
|
|
||||||
filter: alpha(opacity=0);
|
|
||||||
height: 25px;
|
|
||||||
border: none;
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Checker */
|
|
||||||
|
|
||||||
div.checker {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker span {
|
|
||||||
display: -moz-inline-box;
|
|
||||||
display: inline-block;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.checker input {
|
|
||||||
opacity: 0;
|
|
||||||
filter: alpha(opacity=0);
|
|
||||||
display: inline-block;
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Radio */
|
|
||||||
|
|
||||||
div.radio {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio span {
|
|
||||||
display: -moz-inline-box;
|
|
||||||
display: inline-block;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.radio input {
|
|
||||||
opacity: 0;
|
|
||||||
filter: alpha(opacity=0);
|
|
||||||
text-align: center;
|
|
||||||
display: inline-block;
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Uploader */
|
|
||||||
|
|
||||||
div.uploader {
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader span.action {
|
|
||||||
float: left;
|
|
||||||
display: inline;
|
|
||||||
padding: 2px 0px;
|
|
||||||
overflow: hidden;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader span.filename {
|
|
||||||
padding: 0px 10px;
|
|
||||||
float: left;
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.uploader input {
|
|
||||||
opacity: 0;
|
|
||||||
filter: alpha(opacity=0);
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
float: right;
|
|
||||||
height: 25px;
|
|
||||||
border: none;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
|
@ -1,92 +0,0 @@
|
||||||
/*
|
|
||||||
Uploadify
|
|
||||||
Copyright (c) 2012 Reactive Apps, Ronnie Garcia
|
|
||||||
Released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
|
|
||||||
*/
|
|
||||||
|
|
||||||
.uploadify {
|
|
||||||
position: relative;
|
|
||||||
margin-bottom: 1em;
|
|
||||||
}
|
|
||||||
.uploadify-button {
|
|
||||||
background-color: #505050;
|
|
||||||
background-image: linear-gradient(bottom, #505050 0%, #707070 100%);
|
|
||||||
background-image: -o-linear-gradient(bottom, #505050 0%, #707070 100%);
|
|
||||||
background-image: -moz-linear-gradient(bottom, #505050 0%, #707070 100%);
|
|
||||||
background-image: -webkit-linear-gradient(bottom, #505050 0%, #707070 100%);
|
|
||||||
background-image: -ms-linear-gradient(bottom, #505050 0%, #707070 100%);
|
|
||||||
background-image: -webkit-gradient(
|
|
||||||
linear,
|
|
||||||
left bottom,
|
|
||||||
left top,
|
|
||||||
color-stop(0, #505050),
|
|
||||||
color-stop(1, #707070)
|
|
||||||
);
|
|
||||||
background-position: center top;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
-webkit-border-radius: 30px;
|
|
||||||
-moz-border-radius: 30px;
|
|
||||||
border-radius: 30px;
|
|
||||||
border: 2px solid #808080;
|
|
||||||
color: #FFF;
|
|
||||||
font: bold 12px Arial, Helvetica, sans-serif;
|
|
||||||
text-align: center;
|
|
||||||
text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.uploadify:hover .uploadify-button {
|
|
||||||
background-color: #606060;
|
|
||||||
background-image: linear-gradient(top, #606060 0%, #808080 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #606060 0%, #808080 100%);
|
|
||||||
background-image: -moz-linear-gradient(top, #606060 0%, #808080 100%);
|
|
||||||
background-image: -webkit-linear-gradient(top, #606060 0%, #808080 100%);
|
|
||||||
background-image: -ms-linear-gradient(top, #606060 0%, #808080 100%);
|
|
||||||
background-image: -webkit-gradient(
|
|
||||||
linear,
|
|
||||||
left bottom,
|
|
||||||
left top,
|
|
||||||
color-stop(0, #606060),
|
|
||||||
color-stop(1, #808080)
|
|
||||||
);
|
|
||||||
background-position: center bottom;
|
|
||||||
}
|
|
||||||
.uploadify-button.disabled {
|
|
||||||
background-color: #D0D0D0;
|
|
||||||
color: #808080;
|
|
||||||
}
|
|
||||||
.uploadify-queue {
|
|
||||||
margin-bottom: 1em;
|
|
||||||
}
|
|
||||||
.uploadify-queue-item {
|
|
||||||
background-color: #F5F5F5;
|
|
||||||
-webkit-border-radius: 3px;
|
|
||||||
-moz-border-radius: 3px;
|
|
||||||
border-radius: 3px;
|
|
||||||
font: 11px Verdana, Geneva, sans-serif;
|
|
||||||
margin-top: 5px;
|
|
||||||
max-width: 350px;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
.uploadify-error {
|
|
||||||
background-color: #FDE5DD !important;
|
|
||||||
}
|
|
||||||
.uploadify-queue-item .cancel a {
|
|
||||||
background: url('../img/uploadify-cancel.png') 0 0 no-repeat;
|
|
||||||
float: right;
|
|
||||||
height: 16px;
|
|
||||||
text-indent: -9999px;
|
|
||||||
width: 16px;
|
|
||||||
}
|
|
||||||
.uploadify-queue-item.completed {
|
|
||||||
background-color: #E5E5E5;
|
|
||||||
}
|
|
||||||
.uploadify-progress {
|
|
||||||
background-color: #E5E5E5;
|
|
||||||
margin-top: 10px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.uploadify-progress-bar {
|
|
||||||
background-color: #0099FF;
|
|
||||||
height: 3px;
|
|
||||||
width: 1px;
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue