updated web library with new style and features
added remote reading from iOS
@ -44,14 +44,28 @@ void CoverController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
QImage img(libraries.getPath(libraryName)+"/.yacreaderlibrary/covers/"+fileName);
|
QImage img(libraries.getPath(libraryName)+"/.yacreaderlibrary/covers/"+fileName);
|
||||||
if (!img.isNull()) {
|
if (!img.isNull()) {
|
||||||
|
|
||||||
int width = 80;
|
int width = 80, height = 120;
|
||||||
if(session.getDisplayType()=="retina")
|
if(session.getDisplayType()=="@2x")
|
||||||
|
{
|
||||||
width = 160;
|
width = 160;
|
||||||
|
height = 240;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(float(img.width())/img.height() < 0.66666)
|
||||||
img = img.scaledToWidth(width,Qt::SmoothTransformation);
|
img = img.scaledToWidth(width,Qt::SmoothTransformation);
|
||||||
|
else
|
||||||
|
img = img.scaledToHeight(height,Qt::SmoothTransformation);
|
||||||
|
|
||||||
|
QImage destImg(width,height,QImage::Format_RGB32);
|
||||||
|
destImg.fill(Qt::black);
|
||||||
|
QPainter p(&destImg);
|
||||||
|
|
||||||
|
p.drawImage((width-img.width())/2,(height-img.height())/2,img);
|
||||||
|
|
||||||
QByteArray ba;
|
QByteArray ba;
|
||||||
QBuffer buffer(&ba);
|
QBuffer buffer(&ba);
|
||||||
buffer.open(QIODevice::WriteOnly);
|
buffer.open(QIODevice::WriteOnly);
|
||||||
img.save(&buffer, "JPG");
|
destImg.save(&buffer, "JPG");
|
||||||
response.write(ba,true);
|
response.write(ba,true);
|
||||||
}
|
}
|
||||||
//DONE else, hay que devolver un 404
|
//DONE else, hay que devolver un 404
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
#include "foldercontroller.h"
|
#include "foldercontroller.h"
|
||||||
|
#include "controllers/errorcontroller.h"
|
||||||
|
|
||||||
#include "db_helper.h" //get libraries
|
#include "db_helper.h" //get libraries
|
||||||
#include "comic_db.h"
|
#include "comic_db.h"
|
||||||
|
|
||||||
@ -36,7 +38,16 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
int libraryId = pathElements.at(2).toInt();
|
int libraryId = pathElements.at(2).toInt();
|
||||||
QString libraryName = DBHelper::getLibraryName(libraryId);
|
QString libraryName = DBHelper::getLibraryName(libraryId);
|
||||||
qulonglong parentId = pathElements.at(4).toULongLong();
|
qulonglong parentId = pathElements.at(4).toULongLong();
|
||||||
|
|
||||||
|
parentId = qMax<qulonglong>(1,parentId);
|
||||||
|
|
||||||
QString folderName = DBHelper::getFolderName(libraryName,parentId);
|
QString folderName = DBHelper::getFolderName(libraryName,parentId);
|
||||||
|
if(folderName.isEmpty())
|
||||||
|
{
|
||||||
|
ErrorController(300).service(request,response);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(parentId!=1)
|
if(parentId!=1)
|
||||||
t.setVariable("folder.name",folderName);
|
t.setVariable("folder.name",folderName);
|
||||||
else
|
else
|
||||||
@ -70,7 +81,21 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
|
|
||||||
int upPage = 0;
|
int upPage = 0;
|
||||||
|
|
||||||
|
if(parentId == 1)
|
||||||
|
session.clearFoldersPath();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(fromUp)
|
||||||
|
session.popFolder();
|
||||||
|
else
|
||||||
|
if(session.getFoldersPath().contains(parentId))
|
||||||
|
{
|
||||||
|
while(session.topFolder()!=parentId)
|
||||||
|
session.popFolder();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
session.pushFolder(parentId);
|
||||||
|
}
|
||||||
|
|
||||||
if(backId == 1 && parentId == 1)
|
if(backId == 1 && parentId == 1)
|
||||||
{
|
{
|
||||||
@ -116,7 +141,7 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
|
|
||||||
//t.loop("element",folderContent.length());
|
//t.loop("element",folderContent.length());
|
||||||
|
|
||||||
int elementsPerPage = 18;
|
int elementsPerPage = 24;
|
||||||
|
|
||||||
int numFolders = folderContent.length();
|
int numFolders = folderContent.length();
|
||||||
//int numComics = folderComics.length();
|
//int numComics = folderComics.length();
|
||||||
@ -135,9 +160,16 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
int indexCurrentPage = page*elementsPerPage;
|
int indexCurrentPage = page*elementsPerPage;
|
||||||
int numFoldersAtCurrentPage = qMax(0,qMin(numFolders - indexCurrentPage, elementsPerPage));
|
int numFoldersAtCurrentPage = qMax(0,qMin(numFolders - indexCurrentPage, elementsPerPage));
|
||||||
|
|
||||||
//response.writeText(QString("indexCurrentPage : %1 <br/>").arg(indexCurrentPage));
|
//PATH
|
||||||
//response.writeText(QString("numFoldersAtCurrentPage : %1 <br/>").arg(numFoldersAtCurrentPage));
|
QStack<int> foldersPath = session.getFoldersPath();
|
||||||
//response.writeText(QString("foldersLength : %1 <br/>").arg(folderContent.length()));
|
t.setVariable(QString("library.name"),libraryName);
|
||||||
|
t.setVariable(QString("library.url"),QString("/library/%1/folder/1").arg(libraryId));
|
||||||
|
t.loop("path",foldersPath.length());
|
||||||
|
for(int i = 0; i < foldersPath.length(); i++){
|
||||||
|
|
||||||
|
t.setVariable(QString("path%1.url").arg(i),QString("/library/%1/folder/%2").arg(libraryId).arg(foldersPath[i]));
|
||||||
|
t.setVariable(QString("path%1.name").arg(i),DBHelper::getFolderName(libraryName,foldersPath[i]));
|
||||||
|
}
|
||||||
|
|
||||||
t.loop("element",numFoldersAtCurrentPage);
|
t.loop("element",numFoldersAtCurrentPage);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
@ -148,7 +180,6 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
if(item->isDir())
|
if(item->isDir())
|
||||||
{
|
{
|
||||||
t.setVariable(QString("element%1.class").arg(i),"folder");
|
t.setVariable(QString("element%1.class").arg(i),"folder");
|
||||||
t.setVariable(QString("element%1.image.width").arg(i),"89px");
|
|
||||||
t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png");
|
t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png");
|
||||||
|
|
||||||
t.setVariable(QString("element%1.browse").arg(i),QString("<a class =\"browseButton\" href=\"%1\">browse</a>").arg(QString("/library/%1/folder/%2").arg(libraryId).arg(item->id)));
|
t.setVariable(QString("element%1.browse").arg(i),QString("<a class =\"browseButton\" href=\"%1\">browse</a>").arg(QString("/library/%1/folder/%2").arg(libraryId).arg(item->id)));
|
||||||
@ -157,13 +188,17 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
//t.setVariable(QString("element%1.downloadurl").arg(i),"/library/"+libraryName+"/folder/"+QString("%1/info").arg(folderContent.at(i + (page*elementsPerPage))->id));
|
//t.setVariable(QString("element%1.downloadurl").arg(i),"/library/"+libraryName+"/folder/"+QString("%1/info").arg(folderContent.at(i + (page*elementsPerPage))->id));
|
||||||
|
|
||||||
t.setVariable(QString("element%1.download").arg(i),QString("<a onclick=\"this.innerHTML='importing';this.className='importedButton';\" class =\"importButton\" href=\"%1\">import</a>").arg("/library/"+QString::number(libraryId)+"/folder/"+QString("%1/info").arg(folderContent.at(i + (page*elementsPerPage))->id)));
|
t.setVariable(QString("element%1.download").arg(i),QString("<a onclick=\"this.innerHTML='importing';this.className='importedButton';\" class =\"importButton\" href=\"%1\">import</a>").arg("/library/"+QString::number(libraryId)+"/folder/"+QString("%1/info").arg(folderContent.at(i + (page*elementsPerPage))->id)));
|
||||||
|
t.setVariable(QString("element%1.read").arg(i),"");
|
||||||
|
|
||||||
|
t.setVariable(QString("element%1.size").arg(i),"");
|
||||||
|
t.setVariable(QString("element%1.pages").arg(i),"");
|
||||||
|
t.setVariable(QString("element%1.status").arg(i),"");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
t.setVariable(QString("element%1.class").arg(i),"cover");
|
t.setVariable(QString("element%1.class").arg(i),"cover");
|
||||||
const ComicDB * comic = (ComicDB *)item;
|
const ComicDB * comic = (ComicDB *)item;
|
||||||
t.setVariable(QString("element%1.browse").arg(i),"");
|
t.setVariable(QString("element%1.browse").arg(i),"");
|
||||||
t.setVariable(QString("element%1.image.width").arg(i),"80px");
|
|
||||||
//t.setVariable(QString("element%1.downloadurl").arg(i),"/library/"+libraryName+"/comic/"+QString("%1").arg(comic->id));
|
//t.setVariable(QString("element%1.downloadurl").arg(i),"/library/"+libraryName+"/comic/"+QString("%1").arg(comic->id));
|
||||||
if(!session.isComicOnDevice(comic->info.hash) && !session.isComicDownloaded(comic->info.hash))
|
if(!session.isComicOnDevice(comic->info.hash) && !session.isComicDownloaded(comic->info.hash))
|
||||||
t.setVariable(QString("element%1.download").arg(i),QString("<a onclick=\"this.innerHTML='importing';this.className='importedButton';\" class =\"importButton\" href=\"%1\">import</a>").arg("/library/"+QString::number(libraryId)+"/comic/"+QString("%1").arg(comic->id)));
|
t.setVariable(QString("element%1.download").arg(i),QString("<a onclick=\"this.innerHTML='importing';this.className='importedButton';\" class =\"importButton\" href=\"%1\">import</a>").arg("/library/"+QString::number(libraryId)+"/comic/"+QString("%1").arg(comic->id)));
|
||||||
@ -174,56 +209,28 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
|
|
||||||
//t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png");
|
//t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png");
|
||||||
|
|
||||||
|
t.setVariable(QString("element%1.read").arg(i),QString("<a class =\"readButton\" href=\"%1\">read</a>").arg("/library/"+QString::number(libraryId)+"/comic/"+QString("%1").arg(comic->id)+"/remote"));
|
||||||
|
|
||||||
t.setVariable(QString("element%1.image.url").arg(i),QString("/library/%1/cover/%2.jpg").arg(libraryId).arg(comic->info.hash));
|
t.setVariable(QString("element%1.image.url").arg(i),QString("/library/%1/cover/%2.jpg").arg(libraryId).arg(comic->info.hash));
|
||||||
|
|
||||||
|
t.setVariable(QString("element%1.size").arg(i),"<span class=\"comicSize\">" + QString::number(comic->info.hash.right(comic->info.hash.length()-40).toInt()/1024.0/1024.0,'f',2)+"Mb</span>");
|
||||||
|
if(comic->info.hasBeenOpened)
|
||||||
|
t.setVariable(QString("element%1.pages").arg(i),QString("<span class=\"numPages\">%1/%2 pages</span>").arg(comic->info.currentPage).arg(comic->info.numPages.toInt()));
|
||||||
|
else
|
||||||
|
t.setVariable(QString("element%1.pages").arg(i),QString("<span class=\"numPages\">%1</span>").arg(comic->info.numPages.toInt()));
|
||||||
|
|
||||||
|
if(comic->info.read)
|
||||||
|
t.setVariable(QString("element%1.status").arg(i), QString("<div class=\"mark\"><img src=\"/images/readMark.png\" style = \"width: 15px\"/> </div>"));
|
||||||
|
else if(comic->info.hasBeenOpened)
|
||||||
|
t.setVariable(QString("element%1.status").arg(i), QString("<div class=\"mark\"><img src=\"/images/readingMark.png\" style = \"width: 15px\"/> </div>"));
|
||||||
|
else
|
||||||
|
t.setVariable(QString("element%1.status").arg(i),"");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
//int comicsOffset;// = qMax(0,((page - (numFolderPages - 1)) * 10) - (numFolders%10));
|
|
||||||
|
|
||||||
//int comicPage = numFolderPages!=0?page-(numFolderPages - 1):page;
|
|
||||||
|
|
||||||
//if(comicPage > 0)
|
|
||||||
//{
|
|
||||||
// comicsOffset = elementsPerPage - (numFolders%elementsPerPage);
|
|
||||||
// comicsOffset += (comicPage-1) *elementsPerPage;
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
// comicsOffset = 0;
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
//int globalComicsOffset = elementsPerPage - (numFolders%elementsPerPage);
|
|
||||||
//int numComicsAtCurrentPage = 0;
|
|
||||||
|
|
||||||
//if(comicPage == 0) //primera p<>gina de los c<>mics
|
|
||||||
// numComicsAtCurrentPage = qMin(globalComicsOffset,numComics);
|
|
||||||
// else if (page == (numPages-1)) //<2F>ltima p<>gina de los c<>mics
|
|
||||||
// numComicsAtCurrentPage = elementsPerPage-globalComicsOffset + (numComics%elementsPerPage);
|
|
||||||
// else
|
|
||||||
// numComicsAtCurrentPage = elementsPerPage - numFoldersAtCurrentPage;
|
|
||||||
|
|
||||||
//if(numComics == 0)
|
|
||||||
// numComicsAtCurrentPage = 0;
|
|
||||||
////response.writeText(QString("numComicsAtCurrentPage : %1 <br/>").arg(numComicsAtCurrentPage));
|
|
||||||
////response.writeText(QString("comicsOffset : %1 <br/>").arg(comicsOffset));
|
|
||||||
|
|
||||||
//t.loop("elementcomic",numComicsAtCurrentPage);
|
|
||||||
////
|
|
||||||
//int j = 0;
|
|
||||||
|
|
||||||
//while(j<numComicsAtCurrentPage)
|
|
||||||
//{
|
|
||||||
// const ComicDB * comic = (ComicDB *)folderComics.at(j+comicsOffset);
|
|
||||||
// //if(comic->info.title == 0 || comic->info.title->isEmpty())
|
|
||||||
// t.setVariable(QString("elementcomic%1.name").arg(j),comic->name);
|
|
||||||
// //else
|
|
||||||
// // t.setVariable(QString("elementcomic%1.name").arg(i),*comic->info.title);
|
|
||||||
// t.setVariable(QString("elementcomic%1.url").arg(j),"/library/"+QUrl::toPercentEncoding(libraryName)+"/comic/"+QString("%1").arg(comic->id));
|
|
||||||
// t.setVariable(QString("elementcomic%1.coverulr").arg(j),"/library/"+QUrl::toPercentEncoding(libraryName)+"/cover/"+QString("%1").arg(comic->info.hash + ".jpg"));
|
|
||||||
// j++;
|
|
||||||
//}
|
|
||||||
|
|
||||||
if(numPages > 1)
|
if(numPages > 1)
|
||||||
{
|
{
|
||||||
t.setCondition("pageIndex",true);
|
t.setCondition("pageIndex",true);
|
||||||
@ -267,7 +274,6 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
i++;
|
i++;
|
||||||
count += indexCount.value(*itr);
|
count += indexCount.value(*itr);
|
||||||
indexPage = count/elementsPerPage;
|
indexPage = count/elementsPerPage;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -295,12 +301,14 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
t.setVariable("page.previous",QString("/library/%1/folder/%2?page=%3").arg(libraryId).arg(parentId).arg((page==0)?page:page-1));
|
t.setVariable("page.previous",QString("/library/%1/folder/%2?page=%3").arg(libraryId).arg(parentId).arg((page==0)?page:page-1));
|
||||||
t.setVariable("page.next",QString("/library/%1/folder/%2?page=%3").arg(libraryId).arg(parentId).arg((page==numPages-1)?page:page+1));
|
t.setVariable("page.next",QString("/library/%1/folder/%2?page=%3").arg(libraryId).arg(parentId).arg((page==numPages-1)?page:page+1));
|
||||||
t.setVariable("page.last",QString("/library/%1/folder/%2?page=%3").arg(libraryId).arg(parentId).arg(numPages-1));
|
t.setVariable("page.last",QString("/library/%1/folder/%2?page=%3").arg(libraryId).arg(parentId).arg(numPages-1));
|
||||||
|
t.setCondition("index", true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
t.loop("page",0);
|
t.loop("page",0);
|
||||||
t.loop("index",0);
|
t.loop("index",0);
|
||||||
|
t.setCondition("index", false);
|
||||||
t.setCondition("pageIndex",false);
|
t.setCondition("pageIndex",false);
|
||||||
t.setCondition("alphaIndex",false);
|
t.setCondition("alphaIndex",false);
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,27 @@ LibrariesController::LibrariesController() {}
|
|||||||
void LibrariesController::service(HttpRequest& request, HttpResponse& response)
|
void LibrariesController::service(HttpRequest& request, HttpResponse& response)
|
||||||
{
|
{
|
||||||
HttpSession session=Static::sessionStore->getSession(request,response);
|
HttpSession session=Static::sessionStore->getSession(request,response);
|
||||||
|
if(session.contains("ySession")) //session is already alive check if it is needed to update comics
|
||||||
|
{
|
||||||
|
QString postData = QString::fromUtf8(request.getBody());
|
||||||
|
if(postData.length()>0) {
|
||||||
|
QList<QString> data = postData.split("\n");
|
||||||
|
if(data.length() > 2) {
|
||||||
|
//ONLY COMICS ARE UPDATED, DEVICE CHARACTERISTICS ARE INMUTABLE
|
||||||
|
QList<QString> comics = data.at(2).split(":").at(1).split("\t");
|
||||||
|
foreach(QString hash,comics) {
|
||||||
|
session.setComicOnDevice(hash);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
session.set("ySession","ok");
|
session.set("ySession","ok");
|
||||||
|
|
||||||
session.clearNavigationPath();
|
session.clearNavigationPath();
|
||||||
|
session.clearFoldersPath();
|
||||||
|
|
||||||
response.setHeader("Content-Type", "text/html; charset=ISO-8859-1");
|
response.setHeader("Content-Type", "text/html; charset=ISO-8859-1");
|
||||||
response.setHeader("Connection","close");
|
response.setHeader("Connection","close");
|
||||||
|
|
||||||
@ -31,10 +50,12 @@ void LibrariesController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
session.setComicOnDevice(hash);
|
session.setComicOnDevice(hash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else //valores por defecto, con propositos de depuraci<63>n
|
else //values by default, only for debug purposes.
|
||||||
{
|
{
|
||||||
session.setDeviceType("ipad");
|
session.setDeviceType("iphone");
|
||||||
session.setDisplayType("retina");
|
session.setDisplayType("@2x");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Template t=Static::templateLoader->getTemplate("libraries_"+session.getDeviceType(),request.getHeader("Accept-Language"));
|
Template t=Static::templateLoader->getTemplate("libraries_"+session.getDeviceType(),request.getHeader("Accept-Language"));
|
||||||
@ -54,6 +75,6 @@ void LibrariesController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
response.setStatus(200,"OK");
|
||||||
response.write(t.toLatin1(),true);
|
response.write(t.toLatin1(),true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,8 @@ HttpRequest::HttpRequest(QSettings* settings) {
|
|||||||
status=waitForRequest;
|
status=waitForRequest;
|
||||||
currentSize=0;
|
currentSize=0;
|
||||||
expectedBodySize=0;
|
expectedBodySize=0;
|
||||||
maxSize=settings->value("maxRequestSize","16000000").toInt();
|
maxSize=settings->value("maxRequestSize","32000000").toInt();
|
||||||
maxMultiPartSize=settings->value("maxMultiPartSize","1000000").toInt();
|
maxMultiPartSize=settings->value("maxMultiPartSize","32000000").toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
void HttpRequest::readRequest(QTcpSocket& socket) {
|
void HttpRequest::readRequest(QTcpSocket& socket) {
|
||||||
|
@ -307,3 +307,36 @@ int HttpSession::topPage()
|
|||||||
return dataPtr->yacreaderSessionData.navigationPath.top();
|
return dataPtr->yacreaderSessionData.navigationPath.top();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HttpSession::clearFoldersPath()
|
||||||
|
{
|
||||||
|
if(dataPtr)
|
||||||
|
dataPtr->yacreaderSessionData.foldersPath.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
int HttpSession::popFolder()
|
||||||
|
{
|
||||||
|
if(dataPtr && !(dataPtr->yacreaderSessionData.foldersPath.isEmpty()))
|
||||||
|
return dataPtr->yacreaderSessionData.foldersPath.pop();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HttpSession::pushFolder(int page)
|
||||||
|
{
|
||||||
|
if(dataPtr)
|
||||||
|
dataPtr->yacreaderSessionData.foldersPath.push(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
int HttpSession::topFolder()
|
||||||
|
{
|
||||||
|
if(dataPtr)
|
||||||
|
return dataPtr->yacreaderSessionData.foldersPath.top();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
QStack<int> HttpSession::getFoldersPath()
|
||||||
|
{
|
||||||
|
if(dataPtr)
|
||||||
|
return dataPtr->yacreaderSessionData.foldersPath;
|
||||||
|
return QStack<int>();
|
||||||
|
}
|
||||||
|
@ -119,6 +119,12 @@ public:
|
|||||||
void pushPage(int page);
|
void pushPage(int page);
|
||||||
int topPage();
|
int topPage();
|
||||||
|
|
||||||
|
void clearFoldersPath();
|
||||||
|
int popFolder();
|
||||||
|
void pushFolder(int page);
|
||||||
|
int topFolder();
|
||||||
|
QStack<int> getFoldersPath();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
struct YACReaderSessionData {
|
struct YACReaderSessionData {
|
||||||
@ -132,6 +138,7 @@ private:
|
|||||||
qulonglong comicId;
|
qulonglong comicId;
|
||||||
|
|
||||||
QStack<int> navigationPath;
|
QStack<int> navigationPath;
|
||||||
|
QStack<int> foldersPath;
|
||||||
|
|
||||||
Comic * comic;
|
Comic * comic;
|
||||||
};
|
};
|
||||||
|
@ -14,7 +14,7 @@ HttpSessionStore::HttpSessionStore(QSettings* settings, QObject* parent)
|
|||||||
connect(&cleanupTimer,SIGNAL(timeout()),this,SLOT(timerEvent()));
|
connect(&cleanupTimer,SIGNAL(timeout()),this,SLOT(timerEvent()));
|
||||||
cleanupTimer.start(60000);
|
cleanupTimer.start(60000);
|
||||||
cookieName=settings->value("cookieName","sessionid").toByteArray();
|
cookieName=settings->value("cookieName","sessionid").toByteArray();
|
||||||
expirationTime=settings->value("expirationTime",18000000).toInt();
|
expirationTime=settings->value("expirationTime",86400000).toInt();
|
||||||
qDebug("HttpSessionStore: Sessions expire after %i milliseconds",expirationTime);
|
qDebug("HttpSessionStore: Sessions expire after %i milliseconds",expirationTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,6 +56,10 @@ void StaticFileController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
stringPath.remove(fileName);
|
stringPath.remove(fileName);
|
||||||
HttpSession session=Static::sessionStore->getSession(request,response,false);
|
HttpSession session=Static::sessionStore->getSession(request,response,false);
|
||||||
QString device = session.getDeviceType();
|
QString device = session.getDeviceType();
|
||||||
|
QString display = session.getDisplayType();
|
||||||
|
if(fileName.endsWith(".png"))
|
||||||
|
fileName = getDeviceAwareFileName(fileName, device, display, request.getHeader("Accept-Language"), stringPath);
|
||||||
|
else
|
||||||
fileName = getDeviceAwareFileName(fileName, device, request.getHeader("Accept-Language"), stringPath);
|
fileName = getDeviceAwareFileName(fileName, device, request.getHeader("Accept-Language"), stringPath);
|
||||||
QString newPath = stringPath.append(fileName);
|
QString newPath = stringPath.append(fileName);
|
||||||
path = newPath.toLocal8Bit();
|
path = newPath.toLocal8Bit();
|
||||||
@ -209,3 +213,22 @@ QString StaticFileController::getDeviceAwareFileName(QString fileName, QString d
|
|||||||
else
|
else
|
||||||
return getLocalizedFileName(fileName,locales,path); //no hay archivo espec<65>fico para el dispositivo, pero puede haberlo para estas locales
|
return getLocalizedFileName(fileName,locales,path); //no hay archivo espec<65>fico para el dispositivo, pero puede haberlo para estas locales
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString StaticFileController::getDeviceAwareFileName(QString fileName, QString device, QString display, QString locales, QString path) const
|
||||||
|
{
|
||||||
|
QFileInfo fi(fileName);
|
||||||
|
QString baseName = fi.baseName();
|
||||||
|
QString extension = fi.completeSuffix();
|
||||||
|
|
||||||
|
QString completeFileName = completeFileName = baseName+display+"."+extension;
|
||||||
|
if(QFile(docroot+"/"+path+completeFileName).exists())
|
||||||
|
return completeFileName;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
completeFileName = baseName+"_"+device+display+"."+extension;
|
||||||
|
if((QFile(docroot+"/"+path+completeFileName).exists()))
|
||||||
|
return completeFileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileName;
|
||||||
|
}
|
||||||
|
@ -84,6 +84,7 @@ private:
|
|||||||
|
|
||||||
QString getLocalizedFileName(QString fileName, QString locales, QString path) const;
|
QString getLocalizedFileName(QString fileName, QString locales, QString path) const;
|
||||||
QString getDeviceAwareFileName(QString fileName, QString device, QString locales, QString path) const;
|
QString getDeviceAwareFileName(QString fileName, QString device, QString locales, QString path) const;
|
||||||
|
QString getDeviceAwareFileName(QString fileName, QString device, QString display, QString locales, QString path) const;
|
||||||
|
|
||||||
bool exists(QString localizedName, QString path) const;
|
bool exists(QString localizedName, QString path) const;
|
||||||
};
|
};
|
||||||
|
@ -1,246 +1,364 @@
|
|||||||
body{
|
body{
|
||||||
background-color: #363636;
|
background-color: #F5F5F5;
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content{
|
/* libraries */
|
||||||
width: 712px;
|
|
||||||
background: url("../images/topbox.jpg") no-repeat scroll 0 0 #FFF;
|
|
||||||
margin: 17px auto 0;
|
|
||||||
padding: 22px 0 22px 22px;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#contentLibraries{
|
#contentLibraries{
|
||||||
width: 256px;
|
width: 300px;
|
||||||
background: url("../images/topboxLibraries.jpg") no-repeat scroll 0 0 #FFF;
|
border: 1px solid #C6C6C6;
|
||||||
margin: 16px auto 0;
|
background-color: white;
|
||||||
padding: 16px;
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-top: 9px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sombraLibraries{
|
#contentLibraries .library-icon
|
||||||
background: url("../images/bottomboxLibraries.jpg") no-repeat scroll bottom center #FFF;
|
{
|
||||||
width: 288px;
|
float: left;
|
||||||
height: 14px;
|
background-color: white;
|
||||||
margin: 0 auto;
|
height: 18px;
|
||||||
|
padding: 11px 19px 10px 19px;
|
||||||
|
display:block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.index{
|
#contentLibraries li
|
||||||
width: 718px;
|
{
|
||||||
background: url("../images/topbox.jpg") no-repeat scroll 0 0 #FFF;
|
border-bottom: 1px solid #e2e2e2;
|
||||||
margin: 7px auto 0;
|
position: relative;
|
||||||
padding: 16px 0px 0px 16px;
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#contentLibraries li:last-child
|
||||||
|
{
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentLibraries .library-link
|
||||||
|
{
|
||||||
|
width: 211px;
|
||||||
|
height: 28px;
|
||||||
|
border: none;
|
||||||
|
padding: 11px 0 0 0px;
|
||||||
|
background-color: white;
|
||||||
|
display: block;
|
||||||
|
float:left;
|
||||||
|
font-family: Arial;
|
||||||
|
font-size: 16px;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #525252 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentLibraries a
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
height: 39px;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 10;
|
||||||
|
display: block;
|
||||||
|
top 0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentLibraries .library-indicator
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
background-color: white;
|
||||||
|
height: 8px;
|
||||||
|
padding: 16px 16px 15px 16px;
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#content h1
|
||||||
|
{
|
||||||
|
color: #292929;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 21px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentLibraries h1{
|
||||||
|
color: #292929;
|
||||||
|
text-align: center;
|
||||||
|
border-bottom: 1px solid #C6C6C6;
|
||||||
|
font-size: 21px;
|
||||||
|
padding: 15px 0 16px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#folder-header
|
||||||
|
{
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: 88px;
|
||||||
|
background-color: rgba(255,255,255,0.9);
|
||||||
|
border-bottom: 1px solid #C6C6C6;
|
||||||
|
z-index: 999;
|
||||||
|
}
|
||||||
|
|
||||||
|
#folder-subheader1
|
||||||
|
{
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
margin-top: 18px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#folder-subheader2
|
||||||
|
{
|
||||||
|
width: 100%;
|
||||||
|
padding-left: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topIndex
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
left: 16px;
|
||||||
|
top: 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topIndex a
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.indicator {
|
||||||
|
margin: 0 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.path {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #5C5C5C;
|
||||||
|
font-family: Arial, Helvetica;
|
||||||
|
font-size: 15px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#header-combos
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
right: 15px;
|
||||||
|
top: 15px;
|
||||||
|
color: #a3a3a3;
|
||||||
|
width: 160px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topIndex .next{
|
||||||
|
width: 25px;
|
||||||
|
height: 19px;
|
||||||
|
border: none;
|
||||||
|
margin: 0 21px 4px 0;
|
||||||
|
padding: 5px 0 0 0;
|
||||||
|
display: block;
|
||||||
|
background: url("/images/next.png") no-repeat scroll 0 0 transparent;
|
||||||
|
background-size: 25px 19px;
|
||||||
|
padding: 0;
|
||||||
|
text-indent: -99999px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topIndex .previous{
|
||||||
|
width: 25px;
|
||||||
|
height: 19px;
|
||||||
|
border: none;
|
||||||
|
margin: 0 14px 4px 0;
|
||||||
|
padding: 5px 0 0 0;
|
||||||
|
display: block;
|
||||||
|
background: url("/images/prev.png") no-repeat scroll 0 0 transparent;
|
||||||
|
background-size: 25px 19px;
|
||||||
|
padding: 0;
|
||||||
|
text-indent: -99999px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#topIndex .up{
|
||||||
|
width: 15px;
|
||||||
|
height: 19px;
|
||||||
|
border: none;
|
||||||
|
background: url("/images/up.png") no-repeat scroll 0 0 transparent;
|
||||||
|
background-size: 15px 19px;
|
||||||
|
color: #FFF;
|
||||||
|
display: block;
|
||||||
|
text-indent: -99999px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#itemContainer li
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
width: 242px;
|
||||||
|
height: 120px;
|
||||||
|
border: 1px solid #E2E2E2;
|
||||||
|
margin: 9px 9px 0px 0;
|
||||||
|
background-color: white;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.folderContent
|
||||||
|
{
|
||||||
|
padding-top: 90px;
|
||||||
|
padding-left: 9px;
|
||||||
|
}
|
||||||
|
/* hasta aquí */
|
||||||
|
|
||||||
.folder
|
.folder
|
||||||
{
|
{
|
||||||
float: left;
|
float: left;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.cover
|
.cover
|
||||||
{
|
{
|
||||||
float: left;
|
float: left;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cover img
|
.mark
|
||||||
{
|
{
|
||||||
-webkit-box-shadow: 0px 0px 5px #333;
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
margin-left: 55px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.info
|
.info
|
||||||
{
|
{
|
||||||
padding: 8px 0px 0px 0px;
|
padding: 8px 0px 0px 0px;
|
||||||
float: left;
|
float: left;
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 115px;
|
height: 115px;
|
||||||
width: 135px;
|
width: 158px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.buttons
|
.buttons
|
||||||
{
|
{
|
||||||
position:absolute;
|
position:absolute;
|
||||||
bottom:0px;
|
bottom:0px;
|
||||||
left:0px;
|
left:0px;
|
||||||
|
border-top: 1px solid #e2e2e2;
|
||||||
|
padding-top: 3px;
|
||||||
|
height: 25px;
|
||||||
|
width: 162px;
|
||||||
|
font-family: Arial;
|
||||||
|
color: #6e6e6e;
|
||||||
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#itemContainer li
|
.elementInfo
|
||||||
{
|
{
|
||||||
float: left;
|
position:absolute;
|
||||||
width: 225px;
|
bottom:24px;
|
||||||
height: 120px;
|
padding-top: 3px;
|
||||||
margin: 20px 12px 20px 0;
|
height: 25px;
|
||||||
|
width: 162px;
|
||||||
|
font-family: Arial;
|
||||||
|
color: #adadad;
|
||||||
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.numPages
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
padding-left:8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comicSize
|
||||||
|
{
|
||||||
|
float: right;
|
||||||
|
padding-right: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#itemContainer a
|
#itemContainer a
|
||||||
{
|
{
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-family: Arial;
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 13px;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.browseButton
|
.browseButton
|
||||||
{
|
{
|
||||||
width: 57px;
|
width: 60px;
|
||||||
height: 22px;
|
background: url("/images/browse.png") no-repeat scroll 0 0 transparent;
|
||||||
background: url("../images/bt_browse.jpg") no-repeat scroll 0 0 transparent;
|
background-position: 16px 5px;
|
||||||
|
background-size: 7px 7px;
|
||||||
border: none;
|
border: none;
|
||||||
text-align:center;
|
text-align:right;
|
||||||
display: block;
|
display: block;
|
||||||
float: left;
|
float: right;
|
||||||
padding: 4px 0 0 0;
|
padding: 4px 10px 0 0;
|
||||||
margin: 0 0 0 4px;
|
color: #6e6e6e;
|
||||||
}
|
}
|
||||||
|
|
||||||
.importButton
|
.importButton
|
||||||
{
|
{
|
||||||
width: 57px;
|
width: 60px;
|
||||||
height: 18px;
|
background: url("/images/download.png") no-repeat scroll 0 0 transparent;
|
||||||
background: url("../images/bt_import.jpg") no-repeat scroll 0 0 transparent;
|
background-position: 3px 5px;
|
||||||
|
background-size: 7px 8px;
|
||||||
border: none;
|
border: none;
|
||||||
text-align:center;
|
text-align:left;
|
||||||
display: block;
|
display: block;
|
||||||
float: left;
|
float: left;
|
||||||
margin: 0 0 0 4px;
|
margin: 0 0 0 4px;
|
||||||
padding: 4px 0 0 0;
|
padding: 4px 0 0 16px;
|
||||||
|
color: #6e6e6e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.readButton
|
||||||
|
{
|
||||||
|
width: 60px;
|
||||||
|
background: url("/images/read.png") no-repeat scroll 0 0 transparent;
|
||||||
|
background-position: 24px 5px;
|
||||||
|
background-size: 7px 9px;
|
||||||
|
border: none;
|
||||||
|
text-align:right;
|
||||||
|
display: block;
|
||||||
|
float: right;
|
||||||
|
padding: 4px 10px 0 0;
|
||||||
|
color: #6e6e6e;
|
||||||
}
|
}
|
||||||
|
|
||||||
.importedButton
|
.importedButton
|
||||||
{
|
{
|
||||||
width: 67px;
|
width: 60px;
|
||||||
height: 18px;
|
background: url("/images/imported.png") no-repeat scroll 0 0 transparent;
|
||||||
background: url("../images/bt_import.jpg") no-repeat scroll 0 -22px transparent;
|
background-position: 2px 6px;
|
||||||
|
background-size: 8px 6px;
|
||||||
border: none;
|
border: none;
|
||||||
text-align:center;
|
text-align:left;
|
||||||
display: block;
|
display: block;
|
||||||
float: left;
|
float: left;
|
||||||
margin: 0 0 0 4px;
|
margin: 0 0 0 4px;
|
||||||
padding: 4px 0 0 0;
|
padding: 4px 0 0 16px;
|
||||||
text-decoration: none;
|
color: #6e6e6e;
|
||||||
font-family: Arial;
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#librariesList a
|
|
||||||
{
|
#indexes{
|
||||||
width: 256px;
|
border-top: 1px solid #C6C6C6;
|
||||||
height: 32px;
|
background-color: white;
|
||||||
background: url("../images/bt_library_iphone.jpg") no-repeat scroll 0 0 transparent;
|
padding: 0px;
|
||||||
border: none;
|
margin: 9px 0 0 0;
|
||||||
display: block;
|
|
||||||
padding: 9px 0 0 40px;
|
|
||||||
text-decoration: none;
|
|
||||||
font-family: Arial;
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#topIndex
|
.index{
|
||||||
{
|
background-color: white;
|
||||||
width: 100%;
|
margin: 9px 0 9px 0;
|
||||||
float: right;
|
|
||||||
margin: 0 24px 15px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#topIndex a
|
|
||||||
{
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#topIndex .next{
|
|
||||||
width: 29px;
|
|
||||||
height: 29px;
|
|
||||||
border: none;
|
|
||||||
margin: 0 8px 4px 0;
|
|
||||||
padding: 5px 0 0 0;
|
|
||||||
display: block;
|
|
||||||
background: url("../images/bt_next.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
padding: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#topIndex .previous{
|
|
||||||
width: 29px;
|
|
||||||
height: 29px;
|
|
||||||
border: none;
|
|
||||||
margin: 0 8px 4px 0;
|
|
||||||
padding: 5px 0 0 0;
|
|
||||||
display: block;
|
|
||||||
background: url("../images/bt_previous.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
padding: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#topIndex .up{
|
|
||||||
width: 92px;
|
|
||||||
height: 29px;
|
|
||||||
border: none;
|
|
||||||
margin: 0 8px 4px 0;
|
|
||||||
padding: 5px 0 0 0;
|
|
||||||
background: url("../images/bt_libraries.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 17px;
|
|
||||||
display: block;
|
|
||||||
text-decoration: none;
|
|
||||||
font-family: Arial;
|
|
||||||
font-weight: bold;
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
#topIndex .libraries{
|
|
||||||
width: 92px;
|
|
||||||
height: 29px;
|
|
||||||
border: none;
|
|
||||||
margin: 0 8px 4px 0;
|
|
||||||
padding: 6px 0 0 0;
|
|
||||||
background: url("../images/bt_libraries.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 17px;
|
|
||||||
display: block;
|
|
||||||
text-decoration: none;
|
|
||||||
font-family: Arial;
|
|
||||||
font-weight: bold;
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
#libraryList li
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#libraryList a
|
|
||||||
{
|
|
||||||
width: 256px;
|
|
||||||
height: 32px;
|
|
||||||
background: url("../images/bt_library.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
border: none;
|
|
||||||
padding: 8px 0 0 40px;
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 14px;
|
|
||||||
display: block;
|
|
||||||
text-decoration: none;
|
|
||||||
font-family: Arial;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#alphaIndex a, #pageIndex a{
|
#alphaIndex a, #pageIndex a{
|
||||||
width: 29px;
|
width: 29px;
|
||||||
height: 29px;
|
height: 24px;
|
||||||
background: url("../images/bt_index.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
border: none;
|
border: none;
|
||||||
margin: 0 8px 4px 0;
|
margin: 0 0 9px 9px;
|
||||||
padding: 5px 0 0 0;
|
padding: 5px 0 0 0px;
|
||||||
color: #FFF;
|
color: #5C5C5C;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
|
text-align: center;
|
||||||
display: block;
|
display: block;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-family: Arial;
|
font-family: Arial;
|
||||||
font-weight: bold;
|
border: 1px solid #E2E2E2;
|
||||||
text-align:center;
|
text-align:center;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,36 +367,12 @@ margin: 20px 12px 20px 0;
|
|||||||
}
|
}
|
||||||
|
|
||||||
#pageIndex .current{
|
#pageIndex .current{
|
||||||
background: url("../images/bt_current.jpg") no-repeat scroll 0 0 transparent;
|
color: white;
|
||||||
color: #EBEBEB;
|
background-color: #A2A2A2;
|
||||||
|
border: 1px solid #A2A2A2;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#alphaIndex .next, #pageIndex .next {
|
|
||||||
background: url("../images/bt_next.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
padding: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
}
|
|
||||||
#alphaIndex .previous, #pageIndex .previous{
|
|
||||||
background: url("../images/bt_previous.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
padding: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
}
|
|
||||||
#alphaIndex .first, #pageIndex .first{
|
|
||||||
background: url("../images/bt_first.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
padding: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
}
|
|
||||||
#alphaIndex .last, #pageIndex .last{
|
|
||||||
background: url("../images/bt_last.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
padding: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
}
|
|
||||||
#content h1, #contentLibraries h1{
|
|
||||||
color: #696969;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 21px;
|
|
||||||
margin: 0 0 5px 0;
|
|
||||||
}
|
|
||||||
#content h2, #contentLibraries h2{
|
#content h2, #contentLibraries h2{
|
||||||
color: #000;
|
color: #000;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
@ -289,13 +383,13 @@ margin: 20px 12px 20px 0;
|
|||||||
.inputs_login{
|
.inputs_login{
|
||||||
width: 256px;
|
width: 256px;
|
||||||
height: 64px;
|
height: 64px;
|
||||||
background: url("../images/fnd_inputs.jpg") no-repeat scroll 0 0 #FFF;
|
background: url("/images/fnd_inputs.jpg") no-repeat scroll 0 0 #FFF;
|
||||||
margin: 0 0 18px 0;
|
margin: 0 0 18px 0;
|
||||||
}
|
}
|
||||||
.username{
|
.username{
|
||||||
width: 200px;
|
width: 200px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
background: url("../images/fnd_input_username.jpg") no-repeat scroll 0 0 #2b2b2b;
|
background: url("/images/fnd_input_username.jpg") no-repeat scroll 0 0 #2b2b2b;
|
||||||
border: none;
|
border: none;
|
||||||
padding: 0 0 0 44px;
|
padding: 0 0 0 44px;
|
||||||
margin: 5px 0 6px 8px;
|
margin: 5px 0 6px 8px;
|
||||||
@ -305,7 +399,7 @@ margin: 20px 12px 20px 0;
|
|||||||
.pass{
|
.pass{
|
||||||
width: 200px;
|
width: 200px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
background: url("../images/fnd_input_pass.jpg") no-repeat scroll 0 0 #2b2b2b;
|
background: url("/images/fnd_input_pass.jpg") no-repeat scroll 0 0 #2b2b2b;
|
||||||
border: none;
|
border: none;
|
||||||
padding: 0 0 0 44px;
|
padding: 0 0 0 44px;
|
||||||
margin: 0 0 0 8px;
|
margin: 0 0 0 8px;
|
||||||
@ -315,7 +409,7 @@ margin: 20px 12px 20px 0;
|
|||||||
.button_sign{
|
.button_sign{
|
||||||
width: 86px;
|
width: 86px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
background: url("../images/bt_login.jpg") no-repeat scroll 0 0 transparent;
|
background: url("/images/bt_login.jpg") no-repeat scroll 0 0 transparent;
|
||||||
border: none;
|
border: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@ -331,12 +425,7 @@ margin: 20px 12px 20px 0;
|
|||||||
margin: 0 0 0 8px;
|
margin: 0 0 0 8px;
|
||||||
line-height: 120%;
|
line-height: 120%;
|
||||||
}
|
}
|
||||||
.sombra{
|
|
||||||
background: url("../images/bottombox.jpg") no-repeat scroll bottom center #FFF;
|
|
||||||
width: 734px;
|
|
||||||
height: 13px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
.clear{
|
.clear{
|
||||||
height: 2px;
|
height: 2px;
|
||||||
clear: both;
|
clear: both;
|
||||||
@ -344,11 +433,33 @@ margin: 20px 12px 20px 0;
|
|||||||
|
|
||||||
.title{
|
.title{
|
||||||
font-family: Arial;
|
font-family: Arial;
|
||||||
font-weight: bold;
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
margin: 0 0 0 6px;
|
margin: 0 0 0 6px;
|
||||||
color: #333;
|
color: #555555 ;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
height: 80px;
|
height: 80px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#indexalpha, #indexnumber{
|
||||||
|
|
||||||
|
-webkit-appearance: none;
|
||||||
|
background-color: rgba(255,255,255,0);
|
||||||
|
border-radius: 0px;
|
||||||
|
border: none;
|
||||||
|
color: #a3a3a3;
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: Arial, Helvetica;
|
||||||
|
height: 30px;
|
||||||
|
margin: 0 0 0 10px;
|
||||||
|
padding:0;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comboIndicator {
|
||||||
|
float: right;
|
||||||
|
padding: 14px 0 0 0;
|
||||||
|
margin: 0 0 0 4px;
|
||||||
|
width: 5px;
|
||||||
}
|
}
|
@ -1,138 +1,119 @@
|
|||||||
body{
|
body{
|
||||||
background-color: #363636;
|
background-color: #F5F5F5;
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content{
|
/* libraries */
|
||||||
width: 256px;
|
#contentLibraries{
|
||||||
background: url("../images/topbox.jpg") no-repeat scroll 0 0 #FFF;
|
width: 300px;
|
||||||
margin: 16px auto 0;
|
border: 1px solid #C6C6C6;
|
||||||
padding: 16px;
|
background-color: white;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-top: 9px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.folder
|
#contentLibraries .library-icon
|
||||||
{
|
{
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cover
|
|
||||||
{
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cover img
|
|
||||||
{
|
|
||||||
-webkit-box-shadow: 0px 0px 5px #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.index{
|
|
||||||
width: 272px;
|
|
||||||
background: url("../images/topbox.jpg") no-repeat scroll 0 0 #FFF;
|
|
||||||
margin: 7px auto 0;
|
|
||||||
padding: 16px 0px 0px 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.info
|
|
||||||
{
|
|
||||||
padding: 8px 0px 0px 0px;
|
|
||||||
float: left;
|
|
||||||
position: relative;
|
|
||||||
height: 110px;
|
|
||||||
width: 160px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttons
|
|
||||||
{
|
|
||||||
position:absolute;
|
|
||||||
bottom:0px;
|
|
||||||
left:0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#itemContainer li
|
|
||||||
{
|
|
||||||
float: left;
|
|
||||||
width: 250px;
|
|
||||||
height: 120px;
|
|
||||||
margin: 20px 0 15px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#itemContainer a
|
|
||||||
{
|
|
||||||
text-decoration: none;
|
|
||||||
font-family: Arial;
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 13px;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.browseButton
|
|
||||||
{
|
|
||||||
width: 67px;
|
|
||||||
height: 24px;
|
|
||||||
background: url("../images/bt_browse.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
border: none;
|
|
||||||
text-align:center;
|
|
||||||
display: block;
|
|
||||||
float: left;
|
float: left;
|
||||||
padding: 5px 0 0 0;
|
background-color: white;
|
||||||
margin: 0 0 0 8px;
|
height: 18px;
|
||||||
|
padding: 11px 19px 10px 19px;
|
||||||
|
display:block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.importButton
|
#contentLibraries li
|
||||||
{
|
{
|
||||||
width: 67px;
|
border-bottom: 1px solid #e2e2e2;
|
||||||
height: 20px;
|
position: relative;
|
||||||
background: url("../images/bt_import.jpg") no-repeat scroll 0 0 transparent;
|
list-style: none;
|
||||||
border: none;
|
|
||||||
text-align:center;
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
margin: 0 0 0 8px;
|
|
||||||
padding: 4px 0 0 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.importedButton
|
#contentLibraries li:last-child
|
||||||
{
|
{
|
||||||
width: 77px;
|
|
||||||
height: 20px;
|
|
||||||
background: url("../images/bt_import.jpg") no-repeat scroll 0 -24px transparent;
|
|
||||||
border: none;
|
border: none;
|
||||||
text-align:center;
|
}
|
||||||
|
|
||||||
|
#contentLibraries .library-link
|
||||||
|
{
|
||||||
|
width: 211px;
|
||||||
|
height: 28px;
|
||||||
|
border: none;
|
||||||
|
padding: 11px 0 0 0px;
|
||||||
|
background-color: white;
|
||||||
display: block;
|
display: block;
|
||||||
float: left;
|
float:left;
|
||||||
margin: 0 0 0 4px;
|
|
||||||
padding: 4px 0 0 0;
|
|
||||||
text-decoration: none;
|
|
||||||
font-family: Arial;
|
font-family: Arial;
|
||||||
color: #FFF;
|
font-size: 16px;
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#librariesList li
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#librariesList a
|
|
||||||
{
|
|
||||||
width: 256px;
|
|
||||||
height: 32px;
|
|
||||||
background: url("../images/bt_library_iphone.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
border: none;
|
|
||||||
display: block;
|
|
||||||
|
|
||||||
padding: 9px 0 0 40px;
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-family: Arial;
|
color: #525252 ;
|
||||||
color: #FFF;
|
}
|
||||||
font-size: 13px;
|
|
||||||
|
#contentLibraries a
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
height: 39px;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 10;
|
||||||
|
display: block;
|
||||||
|
top 0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentLibraries .library-indicator
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
background-color: white;
|
||||||
|
height: 8px;
|
||||||
|
padding: 16px 16px 15px 16px;
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#content h1
|
||||||
|
{
|
||||||
|
color: #292929;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 21px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contentLibraries h1{
|
||||||
|
color: #292929;
|
||||||
|
text-align: center;
|
||||||
|
border-bottom: 1px solid #C6C6C6;
|
||||||
|
font-size: 21px;
|
||||||
|
padding: 15px 0 16px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#folder-header
|
||||||
|
{
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: 88px;
|
||||||
|
background-color: rgba(255,255,255,0.9);
|
||||||
|
border-bottom: 1px solid #C6C6C6;
|
||||||
|
z-index: 999;
|
||||||
|
}
|
||||||
|
|
||||||
|
#folder-subheader1
|
||||||
|
{
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
margin-top: 18px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#folder-subheader2
|
||||||
|
{
|
||||||
|
width: 100%;
|
||||||
|
padding-left: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#topIndex
|
#topIndex
|
||||||
{
|
{
|
||||||
width: 100%;
|
position: absolute;
|
||||||
margin: 7px 0px 7px 0px;
|
left: 16px;
|
||||||
|
top: 19px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#topIndex a
|
#topIndex a
|
||||||
@ -140,95 +121,242 @@ margin: 20px 0 15px 0;
|
|||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.indicator {
|
||||||
|
margin: 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.path {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #5C5C5C;
|
||||||
|
font-family: Arial, Helvetica;
|
||||||
|
font-size: 15px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#header-combos
|
||||||
|
{
|
||||||
|
position: absolute;
|
||||||
|
right: 10px;
|
||||||
|
top: 15px;
|
||||||
|
color: #a3a3a3;
|
||||||
|
width: 160px;
|
||||||
|
}
|
||||||
|
|
||||||
#topIndex .next{
|
#topIndex .next{
|
||||||
width: 29px;
|
width: 25px;
|
||||||
height: 29px;
|
height: 19px;
|
||||||
border: none;
|
border: none;
|
||||||
margin: 0 8px 4px 0;
|
margin: 0 21px 4px 0;
|
||||||
padding: 5px 0 0 0;
|
padding: 5px 0 0 0;
|
||||||
display: block;
|
display: block;
|
||||||
background: url("../images/bt_next.jpg") no-repeat scroll 0 0 transparent;
|
background: url("/images/next.png") no-repeat scroll 0 0 transparent;
|
||||||
|
background-size: 25px 19px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
text-indent: -9999px;
|
text-indent: -99999px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#topIndex .previous{
|
#topIndex .previous{
|
||||||
width: 29px;
|
width: 25px;
|
||||||
height: 29px;
|
height: 19px;
|
||||||
border: none;
|
border: none;
|
||||||
margin: 0 8px 4px 0;
|
margin: 0 14px 4px 0;
|
||||||
padding: 5px 0 0 0;
|
padding: 5px 0 0 0;
|
||||||
display: block;
|
display: block;
|
||||||
background: url("../images/bt_previous.jpg") no-repeat scroll 0 0 transparent;
|
background: url("/images/prev.png") no-repeat scroll 0 0 transparent;
|
||||||
|
background-size: 25px 19px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
text-indent: -9999px;
|
text-indent: -99999px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#topIndex .up{
|
#topIndex .up{
|
||||||
width: 58px;
|
width: 15px;
|
||||||
height: 29px;
|
height: 19px;
|
||||||
border: none;
|
border: none;
|
||||||
margin: 0 8px 4px 0;
|
background: url("/images/up.png") no-repeat scroll 0 0 transparent;
|
||||||
padding: 5px 0 0 0;
|
background-size: 15px 19px;
|
||||||
background: url("../images/bt_up.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
color: #FFF;
|
color: #FFF;
|
||||||
font-size: 17px;
|
|
||||||
display: block;
|
display: block;
|
||||||
text-decoration: none;
|
text-indent: -99999px;
|
||||||
font-family: Arial;
|
|
||||||
font-weight: bold;
|
|
||||||
text-align:center;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#topIndex .libraries{
|
#itemContainer li
|
||||||
width: 92px;
|
|
||||||
height: 29px;
|
|
||||||
border: none;
|
|
||||||
margin: 0 8px 4px 0;
|
|
||||||
padding: 6px 0 0 0;
|
|
||||||
background: url("../images/bt_libraries.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 17px;
|
|
||||||
display: block;
|
|
||||||
text-decoration: none;
|
|
||||||
font-family: Arial;
|
|
||||||
font-weight: bold;
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
#libraryList li
|
|
||||||
{
|
{
|
||||||
|
width: 300px;
|
||||||
|
height: 120px;
|
||||||
|
border: 1px solid #E2E2E2;
|
||||||
|
margin: 9px auto 0px auto;
|
||||||
|
background-color: white;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.folderContent
|
||||||
|
{
|
||||||
|
padding-top: 90px;
|
||||||
|
}
|
||||||
|
/* hasta aquí */
|
||||||
|
|
||||||
|
.folder
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#libraryList a
|
.cover
|
||||||
{
|
{
|
||||||
width: 256px;
|
float: left;
|
||||||
height: 32px;
|
overflow: hidden;
|
||||||
background: url("../images/bt_library.jpg") no-repeat scroll 0 0 transparent;
|
}
|
||||||
border: none;
|
|
||||||
padding: 8px 0 0 40px;
|
.mark
|
||||||
color: #FFF;
|
{
|
||||||
font-size: 14px;
|
position: absolute;
|
||||||
display: block;
|
top: 0px;
|
||||||
text-decoration: none;
|
margin-left: 55px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info
|
||||||
|
{
|
||||||
|
padding: 8px 0px 0px 0px;
|
||||||
|
float: left;
|
||||||
|
position: relative;
|
||||||
|
height: 115px;
|
||||||
|
width: 212px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons
|
||||||
|
{
|
||||||
|
position:absolute;
|
||||||
|
bottom:0px;
|
||||||
|
left:0px;
|
||||||
|
border-top: 1px solid #e2e2e2;
|
||||||
|
padding-top: 3px;
|
||||||
|
height: 25px;
|
||||||
|
width: 220px;
|
||||||
font-family: Arial;
|
font-family: Arial;
|
||||||
|
color: #6e6e6e;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.elementInfo
|
||||||
|
{
|
||||||
|
position:absolute;
|
||||||
|
bottom:24px;
|
||||||
|
padding-top: 3px;
|
||||||
|
height: 25px;
|
||||||
|
width: 220px;
|
||||||
|
font-family: Arial;
|
||||||
|
color: #adadad;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.numPages
|
||||||
|
{
|
||||||
|
float: left;
|
||||||
|
padding-left:8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comicSize
|
||||||
|
{
|
||||||
|
float: right;
|
||||||
|
padding-right: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#itemContainer a
|
||||||
|
{
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.browseButton
|
||||||
|
{
|
||||||
|
width: 60px;
|
||||||
|
background: url("/images/browse.png") no-repeat scroll 0 0 transparent;
|
||||||
|
background-position: 16px 5px;
|
||||||
|
background-size: 7px 7px;
|
||||||
|
border: none;
|
||||||
|
text-align:right;
|
||||||
|
display: block;
|
||||||
|
float: right;
|
||||||
|
padding: 4px 10px 0 0;
|
||||||
|
color: #6e6e6e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.importButton
|
||||||
|
{
|
||||||
|
width: 60px;
|
||||||
|
background: url("/images/download.png") no-repeat scroll 0 0 transparent;
|
||||||
|
background-position: 3px 5px;
|
||||||
|
background-size: 7px 8px;
|
||||||
|
border: none;
|
||||||
|
text-align:left;
|
||||||
|
display: block;
|
||||||
|
float: left;
|
||||||
|
margin: 0 0 0 4px;
|
||||||
|
padding: 4px 0 0 16px;
|
||||||
|
color: #6e6e6e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.readButton
|
||||||
|
{
|
||||||
|
width: 60px;
|
||||||
|
background: url("/images/read.png") no-repeat scroll 0 0 transparent;
|
||||||
|
background-position: 24px 5px;
|
||||||
|
background-size: 7px 9px;
|
||||||
|
border: none;
|
||||||
|
text-align:right;
|
||||||
|
display: block;
|
||||||
|
float: right;
|
||||||
|
padding: 4px 10px 0 0;
|
||||||
|
color: #6e6e6e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.importedButton
|
||||||
|
{
|
||||||
|
width: 60px;
|
||||||
|
background: url("/images/imported.png") no-repeat scroll 0 0 transparent;
|
||||||
|
background-position: 2px 6px;
|
||||||
|
background-size: 8px 6px;
|
||||||
|
border: none;
|
||||||
|
text-align:left;
|
||||||
|
display: block;
|
||||||
|
float: left;
|
||||||
|
margin: 0 0 0 4px;
|
||||||
|
padding: 4px 0 0 16px;
|
||||||
|
color: #6e6e6e;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#indexes{
|
||||||
|
border-top: 1px solid #C6C6C6;
|
||||||
|
background-color: white;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 9px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.index{
|
||||||
|
background-color: white;
|
||||||
|
margin: 9px 0 9px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#alphaIndex a, #pageIndex a{
|
#alphaIndex a, #pageIndex a{
|
||||||
width: 29px;
|
width: 29px;
|
||||||
height: 29px;
|
height: 24px;
|
||||||
background: url("../images/bt_index.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
border: none;
|
border: none;
|
||||||
margin: 0 8px 4px 0;
|
margin: 0 0 9px 9px;
|
||||||
padding: 5px 0 0 0;
|
padding: 5px 0 0 0px;
|
||||||
color: #FFF;
|
color: #5C5C5C;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
|
text-align: center;
|
||||||
display: block;
|
display: block;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-family: Arial;
|
font-family: Arial;
|
||||||
font-weight: bold;
|
border: 1px solid #E2E2E2;
|
||||||
text-align:center;
|
text-align:center;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,37 +365,13 @@ margin: 20px 0 15px 0;
|
|||||||
}
|
}
|
||||||
|
|
||||||
#pageIndex .current{
|
#pageIndex .current{
|
||||||
background: url("../images/bt_current.jpg") no-repeat scroll 0 0 transparent;
|
color: white;
|
||||||
color: #EBEBEB;
|
background-color: #A2A2A2;
|
||||||
|
border: 1px solid #A2A2A2;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#alphaIndex .next, #pageIndex .next{
|
#content h2, #contentLibraries h2{
|
||||||
background: url("../images/bt_next.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
padding: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
}
|
|
||||||
#alphaIndex .previous, #pageIndex .previous{
|
|
||||||
background: url("../images/bt_previous.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
padding: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
}
|
|
||||||
#alphaIndex .first, #pageIndex .first{
|
|
||||||
background: url("../images/bt_first.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
padding: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
}
|
|
||||||
#alphaIndex .last, #pageIndex .last{
|
|
||||||
background: url("../images/bt_last.jpg") no-repeat scroll 0 0 transparent;
|
|
||||||
padding: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
}
|
|
||||||
#content h1{
|
|
||||||
color: #696969;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 21px;
|
|
||||||
margin: 0 0 5px 0;
|
|
||||||
}
|
|
||||||
#content h2{
|
|
||||||
color: #000;
|
color: #000;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
@ -277,13 +381,13 @@ margin: 20px 0 15px 0;
|
|||||||
.inputs_login{
|
.inputs_login{
|
||||||
width: 256px;
|
width: 256px;
|
||||||
height: 64px;
|
height: 64px;
|
||||||
background: url("../images/fnd_inputs.jpg") no-repeat scroll 0 0 #FFF;
|
background: url("/images/fnd_inputs.jpg") no-repeat scroll 0 0 #FFF;
|
||||||
margin: 0 0 18px 0;
|
margin: 0 0 18px 0;
|
||||||
}
|
}
|
||||||
.username{
|
.username{
|
||||||
width: 200px;
|
width: 200px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
background: url("../images/fnd_input_username.jpg") no-repeat scroll 0 0 #2b2b2b;
|
background: url("/images/fnd_input_username.jpg") no-repeat scroll 0 0 #2b2b2b;
|
||||||
border: none;
|
border: none;
|
||||||
padding: 0 0 0 44px;
|
padding: 0 0 0 44px;
|
||||||
margin: 5px 0 6px 8px;
|
margin: 5px 0 6px 8px;
|
||||||
@ -293,7 +397,7 @@ margin: 20px 0 15px 0;
|
|||||||
.pass{
|
.pass{
|
||||||
width: 200px;
|
width: 200px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
background: url("../images/fnd_input_pass.jpg") no-repeat scroll 0 0 #2b2b2b;
|
background: url("/images/fnd_input_pass.jpg") no-repeat scroll 0 0 #2b2b2b;
|
||||||
border: none;
|
border: none;
|
||||||
padding: 0 0 0 44px;
|
padding: 0 0 0 44px;
|
||||||
margin: 0 0 0 8px;
|
margin: 0 0 0 8px;
|
||||||
@ -303,7 +407,7 @@ margin: 20px 0 15px 0;
|
|||||||
.button_sign{
|
.button_sign{
|
||||||
width: 86px;
|
width: 86px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
background: url("../images/bt_login.jpg") no-repeat scroll 0 0 transparent;
|
background: url("/images/bt_login.jpg") no-repeat scroll 0 0 transparent;
|
||||||
border: none;
|
border: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@ -319,12 +423,7 @@ margin: 20px 0 15px 0;
|
|||||||
margin: 0 0 0 8px;
|
margin: 0 0 0 8px;
|
||||||
line-height: 120%;
|
line-height: 120%;
|
||||||
}
|
}
|
||||||
.sombra{
|
|
||||||
background: url("../images/bottombox.jpg") no-repeat scroll bottom center #FFF;
|
|
||||||
width: 288px;
|
|
||||||
height: 14px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
.clear{
|
.clear{
|
||||||
height: 2px;
|
height: 2px;
|
||||||
clear: both;
|
clear: both;
|
||||||
@ -332,11 +431,33 @@ margin: 20px 0 15px 0;
|
|||||||
|
|
||||||
.title{
|
.title{
|
||||||
font-family: Arial;
|
font-family: Arial;
|
||||||
font-weight: bold;
|
font-size: 12px;
|
||||||
font-size: 14px;
|
|
||||||
margin: 0 0 0 6px;
|
margin: 0 0 0 6px;
|
||||||
color: #333;
|
color: #555555 ;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
height: 80px;
|
height: 65px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#indexalpha, #indexnumber{
|
||||||
|
|
||||||
|
-webkit-appearance: none;
|
||||||
|
background-color: rgba(255,255,255,0);
|
||||||
|
border-radius: 0px;
|
||||||
|
border: none;
|
||||||
|
color: #a3a3a3;
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: Arial, Helvetica;
|
||||||
|
height: 30px;
|
||||||
|
margin: 0 0 0 10px;
|
||||||
|
padding:0;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.comboIndicator {
|
||||||
|
float: right;
|
||||||
|
padding: 14px 0 0 0;
|
||||||
|
margin: 0 0 0 4px;
|
||||||
|
width: 5px;
|
||||||
}
|
}
|
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.5 KiB |
BIN
release/server/docroot/images/browse.png
Normal file
After Width: | Height: | Size: 134 B |
BIN
release/server/docroot/images/browse@2x.png
Normal file
After Width: | Height: | Size: 185 B |
Before Width: | Height: | Size: 716 B |
Before Width: | Height: | Size: 701 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 991 B |
Before Width: | Height: | Size: 957 B |
Before Width: | Height: | Size: 738 B |
Before Width: | Height: | Size: 727 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 763 B |
Before Width: | Height: | Size: 763 B |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 928 B |
Before Width: | Height: | Size: 928 B |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 720 B |
BIN
release/server/docroot/images/combo.png
Normal file
After Width: | Height: | Size: 120 B |
BIN
release/server/docroot/images/combo@2x.png
Normal file
After Width: | Height: | Size: 167 B |
BIN
release/server/docroot/images/download.png
Normal file
After Width: | Height: | Size: 155 B |
BIN
release/server/docroot/images/download@2x.png
Normal file
After Width: | Height: | Size: 203 B |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 7.5 KiB |
BIN
release/server/docroot/images/f@2x.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 546 B |
Before Width: | Height: | Size: 604 B |
Before Width: | Height: | Size: 1.4 KiB |
BIN
release/server/docroot/images/imported.png
Normal file
After Width: | Height: | Size: 158 B |
BIN
release/server/docroot/images/imported@2x.png
Normal file
After Width: | Height: | Size: 214 B |
BIN
release/server/docroot/images/indicator.png
Normal file
After Width: | Height: | Size: 118 B |
BIN
release/server/docroot/images/indicator@2x.png
Normal file
After Width: | Height: | Size: 220 B |
BIN
release/server/docroot/images/library.png
Normal file
After Width: | Height: | Size: 201 B |
BIN
release/server/docroot/images/library@2x.png
Normal file
After Width: | Height: | Size: 284 B |
BIN
release/server/docroot/images/next.png
Normal file
After Width: | Height: | Size: 137 B |
BIN
release/server/docroot/images/next@2x.png
Normal file
After Width: | Height: | Size: 339 B |
BIN
release/server/docroot/images/prev.png
Normal file
After Width: | Height: | Size: 154 B |
BIN
release/server/docroot/images/prev@2x.png
Normal file
After Width: | Height: | Size: 345 B |
BIN
release/server/docroot/images/read.png
Normal file
After Width: | Height: | Size: 152 B |
BIN
release/server/docroot/images/read@2x.png
Normal file
After Width: | Height: | Size: 201 B |
BIN
release/server/docroot/images/readMark.png
Normal file
After Width: | Height: | Size: 196 B |
BIN
release/server/docroot/images/readMark@2x.png
Normal file
After Width: | Height: | Size: 296 B |
BIN
release/server/docroot/images/readingMark.png
Normal file
After Width: | Height: | Size: 206 B |
BIN
release/server/docroot/images/readingMark@2x.png
Normal file
After Width: | Height: | Size: 296 B |
Before Width: | Height: | Size: 423 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 423 B |
BIN
release/server/docroot/images/up.png
Normal file
After Width: | Height: | Size: 163 B |
BIN
release/server/docroot/images/up@2x.png
Normal file
After Width: | Height: | Size: 271 B |
@ -7,23 +7,69 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="content">
|
<div id="content">
|
||||||
|
<div>
|
||||||
|
|
||||||
<h1>BROWSE AND IMPORT</h1>
|
<div id="folder-header">
|
||||||
<h2>{folder.name} {if pageIndex} - PAGE {page} OF {pages}{end pageIndex}</h2>
|
<div id="topIndex"> {if pageIndex} <a class="previous" href="{page.previous}">previous</a> <a class="next" href="{page.next}">next</a> {end pageIndex} <a class="up" href="{upurl}">up</a> </div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="folder-subheader1">
|
||||||
|
<h1>{folder.name}</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id ="folder-subheader2">
|
||||||
|
<a class="path" href="/">Libraries</a> <img class="indicator" src="/images/indicator.png" style="width: 5px"/> <a class="path" href="{library.url}">{library.name}</a> {loop path} <img class="indicator" src="/images/indicator.png" style="width: 5px"/> <a class="path" href="{path.url}">{path.name}</a> {end path}
|
||||||
|
</div>
|
||||||
|
<div id ="header-combos">
|
||||||
|
{if pageIndex}
|
||||||
|
<img class="comboIndicator" src="/images/combo.png"/>
|
||||||
|
<select name="indexnumber" id="indexnumber" onchange="navigateTo(this, 'window', false);">
|
||||||
|
<option value="" disabled selected>{page}/{pages}</option>
|
||||||
|
{loop page}
|
||||||
|
<option value="{page.url}">{page.number}</option>
|
||||||
|
{end page}
|
||||||
|
</select>
|
||||||
|
{end pageIndex}
|
||||||
|
|
||||||
|
{if alphaIndex}
|
||||||
|
<img class="comboIndicator" src="/images/combo.png"/>
|
||||||
|
<select name="indexalpha" id="indexalpha" onchange="navigateTo(this, 'window', false);">
|
||||||
|
<option value="" disabled selected>index</option>
|
||||||
|
{loop index}
|
||||||
|
<option value="{index.url}">{index.indexname}</option>
|
||||||
|
{end index}
|
||||||
|
</select>
|
||||||
|
{end alphaIndex}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="topIndex"> {if pageIndex} <a class="next" href="{page.next}">next</a> <a class="previous" href="{page.previous}">previous</a> {end pageIndex} <a class="up" href="{upurl}">up</a> <a class="libraries" href="/">Libraries</a> </div>
|
|
||||||
<!--<a href="javascript:javascript:history.go(-1)">up</a>-->
|
<!--<a href="javascript:javascript:history.go(-1)">up</a>-->
|
||||||
<div class="folderContent">
|
<div class="folderContent">
|
||||||
<ul id="itemContainer">
|
<ul id="itemContainer">
|
||||||
{loop element}
|
{loop element}
|
||||||
<li><div class="{element.class}"><img style="width: {element.image.width}" src="{element.image.url}"/></div> <div class="info"> <div class="title"><p>{element.name}</p> </div><div class="buttons"> {element.download} {element.browse} </div></div></li>
|
<li>
|
||||||
|
<div class="{element.class}">
|
||||||
|
<img style="width: 80px" src="{element.image.url}"/>
|
||||||
|
</div>
|
||||||
|
<div class="info">
|
||||||
|
<div class="title"><p>{element.name}</p>
|
||||||
|
</div>
|
||||||
|
<div class="elementInfo"> {element.pages} {element.size}
|
||||||
|
</div>
|
||||||
|
<div class="buttons"> {element.download} {element.read} {element.browse}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{element.status}
|
||||||
|
</li>
|
||||||
{end element}
|
{end element}
|
||||||
</ul>
|
</ul>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sombra"> </div>
|
|
||||||
|
|
||||||
|
{if index}
|
||||||
|
<div id="indexes">
|
||||||
{if alphaIndex}
|
{if alphaIndex}
|
||||||
|
|
||||||
<div class="index">
|
<div class="index">
|
||||||
@ -36,7 +82,6 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sombra"> </div>
|
|
||||||
|
|
||||||
{end alphaIndex}
|
{end alphaIndex}
|
||||||
|
|
||||||
@ -45,19 +90,25 @@
|
|||||||
|
|
||||||
<div class="index">
|
<div class="index">
|
||||||
<ul id="pageIndex">
|
<ul id="pageIndex">
|
||||||
<li> <a class="first" href="{page.first}">first</a> </li>
|
<!-- <li> <a class="first" href="{page.first}">first</a> </li>
|
||||||
<li> <a class="previous" href="{page.previous}">previous</a> </li>
|
<li> <a class="previous" href="{page.previous}">previous</a> </li>-->
|
||||||
|
|
||||||
{loop page} <li> <a class="{page.current}" href="{page.url}"> {page.number} </a> </li> {end page}
|
{loop page} <li> <a class="{page.current}" href="{page.url}"> {page.number} </a> </li> {end page}
|
||||||
|
|
||||||
<li> <a class="next" href="{page.next}">next</a> </li>
|
<!-- <li> <a class="next" href="{page.next}">next</a> </li>
|
||||||
<li> <a class="last" href="{page.last}">last</a> </li>
|
<li> <a class="last" href="{page.last}">last</a> </li>-->
|
||||||
</ul>
|
</ul>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sombra"> </div>
|
|
||||||
{end pageIndex}
|
{end pageIndex}
|
||||||
|
</div>
|
||||||
|
{end index}
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
function navigateTo(sel, target) {
|
||||||
|
window[target].location.href = sel.options[sel.selectedIndex].value;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -7,24 +7,70 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="content">
|
<div id="content">
|
||||||
|
<div>
|
||||||
|
|
||||||
<h1>BROWSE AND IMPORT</h1>
|
<div id="folder-header">
|
||||||
<h2>{folder.name} {if pageIndex} - PAGE {page} OF {pages} {end pageIndex}</h2>
|
<div id="topIndex"> {if pageIndex} <a class="previous" href="{page.previous}">previous</a> <a class="next" href="{page.next}">next</a> {end pageIndex} <a class="up" href="{upurl}">up</a> </div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="folder-subheader1">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id ="folder-subheader2">
|
||||||
|
<a class="path" href="/">Libraries</a> <!--<img class="indicator" src="/images/indicator.png" style="width: 5px"/> <a class="path" href="{library.url}">{library.name}</a> -->{loop path} <img class="indicator" src="/images/indicator.png" style="width: 5px"/> <a class="path" href="{path.url}">{path.name}</a> {end path}
|
||||||
|
</div>
|
||||||
|
<div id ="header-combos">
|
||||||
|
{if pageIndex}
|
||||||
|
<img class="comboIndicator" src="/images/combo.png"/>
|
||||||
|
<select name="indexnumber" id="indexnumber" onchange="navigateTo(this, 'window', false);">
|
||||||
|
<option value="" disabled selected>{page}/{pages}</option>
|
||||||
|
{loop page}
|
||||||
|
<option value="{page.url}">{page.number}</option>
|
||||||
|
{end page}
|
||||||
|
</select>
|
||||||
|
{end pageIndex}
|
||||||
|
|
||||||
|
{if alphaIndex}
|
||||||
|
<img class="comboIndicator" src="/images/combo.png"/>
|
||||||
|
<select name="indexalpha" id="indexalpha" onchange="navigateTo(this, 'window', false);">
|
||||||
|
<option value="" disabled selected>index</option>
|
||||||
|
{loop index}
|
||||||
|
<option value="{index.url}">{index.indexname}</option>
|
||||||
|
{end index}
|
||||||
|
</select>
|
||||||
|
{end alphaIndex}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="topIndex"> <a class="libraries" href="/">Libraries</a> <a class="up" href="{upurl}">up</a> {if pageIndex} <a class="previous" href="{page.previous}">previous</a><a class="next" href="{page.next}">next</a> {end pageIndex} </div>
|
|
||||||
<!--<a href="javascript:javascript:history.go(-1)">up</a>-->
|
<!--<a href="javascript:javascript:history.go(-1)">up</a>-->
|
||||||
<div class="folderContent">
|
<div class="folderContent">
|
||||||
<ul id="itemContainer">
|
<ul id="itemContainer">
|
||||||
{loop element}
|
{loop element}
|
||||||
<li><div class="{element.class}"><img style="width: {element.image.width}" src="{element.image.url}"/></div> <div class="info"> <div class="title" > <p>{element.name}</p> </div> <div class="buttons"> {element.download} {element.browse} </div></div></li>
|
<li>
|
||||||
|
<div class="{element.class}">
|
||||||
|
<img style="width: 80px" src="{element.image.url}"/>
|
||||||
|
</div>
|
||||||
|
<div class="info">
|
||||||
|
<div class="title"><p>{element.name}</p>
|
||||||
|
</div>
|
||||||
|
<div class="elementInfo"> {element.pages} {element.size}
|
||||||
|
</div>
|
||||||
|
<div class="buttons"> {element.download} {element.read} {element.browse}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{element.status}
|
||||||
|
</li>
|
||||||
{end element}
|
{end element}
|
||||||
</ul>
|
</ul>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sombra"> </div>
|
|
||||||
|
|
||||||
|
{if index}
|
||||||
|
<div id="indexes">
|
||||||
{if alphaIndex}
|
{if alphaIndex}
|
||||||
|
|
||||||
<div class="index">
|
<div class="index">
|
||||||
<ul id="alphaIndex">
|
<ul id="alphaIndex">
|
||||||
{loop index}
|
{loop index}
|
||||||
@ -35,7 +81,6 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sombra"> </div>
|
|
||||||
|
|
||||||
{end alphaIndex}
|
{end alphaIndex}
|
||||||
|
|
||||||
@ -44,19 +89,25 @@
|
|||||||
|
|
||||||
<div class="index">
|
<div class="index">
|
||||||
<ul id="pageIndex">
|
<ul id="pageIndex">
|
||||||
<li> <a class="first" href="{page.first}">first</a> </li>
|
<!-- <li> <a class="first" href="{page.first}">first</a> </li>
|
||||||
<li> <a class="previous" href="{page.previous}">previous</a> </li>
|
<li> <a class="previous" href="{page.previous}">previous</a> </li>-->
|
||||||
|
|
||||||
{loop page} <li> <a class="{page.current}" href="{page.url}"> {page.number} </a> </li> {end page}
|
{loop page} <li> <a class="{page.current}" href="{page.url}"> {page.number} </a> </li> {end page}
|
||||||
|
|
||||||
<li> <a class="next" href="{page.next}">next</a> </li>
|
<!-- <li> <a class="next" href="{page.next}">next</a> </li>
|
||||||
<li> <a class="last" href="{page.last}">last</a> </li>
|
<li> <a class="last" href="{page.last}">last</a> </li>-->
|
||||||
</ul>
|
</ul>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sombra"> </div>
|
|
||||||
|
|
||||||
{end pageIndex}
|
{end pageIndex}
|
||||||
|
</div>
|
||||||
|
{end index}
|
||||||
|
|
||||||
</body>
|
<script type="text/javascript">
|
||||||
</html>
|
function navigateTo(sel, target) {
|
||||||
|
window[target].location.href = sel.options[sel.selectedIndex].value;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
@ -3,20 +3,24 @@
|
|||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" href="/css/reset.css" type="text/css" />
|
<link rel="stylesheet" href="/css/reset.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="/css/styles.css" type="text/css" />
|
<link rel="stylesheet" href="/css/styles.css" type="text/css" />
|
||||||
<title>Login</title>
|
<title>Libraries</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="contentLibraries">
|
<div id="contentLibraries">
|
||||||
<h1>LIBRARIES</h1>
|
<h1>Libraries</h1>
|
||||||
<h2>Select a comic library</h2>
|
|
||||||
<p>
|
<p>
|
||||||
<ul id="librariesList">
|
<ul id="librariesList">
|
||||||
{loop library}
|
{loop library}
|
||||||
<li><a href="/library/{library.name}/folder/1">{library.label}</a></li>
|
<li>
|
||||||
|
<div class="library-icon"> <img width="14px" height="18px" src="../images/library.png" /> </div>
|
||||||
|
<div class="library-link"> {library.label} </div>
|
||||||
|
<div class="library-indicator"> <img width="5px" height="9px" src="../images/indicator.png" /> </div>
|
||||||
|
<a href="/library/{library.name}/folder/1"> </a>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
</li>
|
||||||
{end library}
|
{end library}
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="sombraLibraries"> </div>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -3,20 +3,24 @@
|
|||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" href="/css/reset.css" type="text/css" />
|
<link rel="stylesheet" href="/css/reset.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="/css/styles.css" type="text/css" />
|
<link rel="stylesheet" href="/css/styles.css" type="text/css" />
|
||||||
<title>Login</title>
|
<title>Libraries</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="content">
|
<div id="contentLibraries">
|
||||||
<h1>LIBRARIES</h1>
|
<h1>Libraries</h1>
|
||||||
<h2>Select a comic library</h2>
|
|
||||||
<p>
|
<p>
|
||||||
<ul id="librariesList">
|
<ul id="librariesList">
|
||||||
{loop library}
|
{loop library}
|
||||||
<li><a href="/library/{library.name}/folder/1">{library.label}</a></li>
|
<li>
|
||||||
|
<div class="library-icon"> <img width="14px" height="18px" src="../images/library.png" /> </div>
|
||||||
|
<div class="library-link"> {library.label} </div>
|
||||||
|
<div class="library-indicator"> <img width="5px" height="9px" src="../images/indicator.png" /> </div>
|
||||||
|
<a href="/library/{library.name}/folder/1"> </a>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
</li>
|
||||||
{end library}
|
{end library}
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="sombra"> </div>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|