kamishibai 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/LICENSE +29 -0
- data/README.md +91 -0
- data/bin/kamishibai +59 -0
- data/changelogs.txt +6 -0
- data/images/reading.jpg +0 -0
- data/images/settings.jpg +0 -0
- data/images/view_browse.jpg +0 -0
- data/images/view_dir.jpg +0 -0
- data/kamishibai.gemspec +31 -0
- data/lib/kamishibai.rb +35 -0
- data/lib/kamishibai/book.rb +97 -0
- data/lib/kamishibai/config.rb +90 -0
- data/lib/kamishibai/database.rb +330 -0
- data/lib/kamishibai/functions.rb +332 -0
- data/lib/kamishibai/patches.rb +58 -0
- data/lib/kamishibai/version.rb +7 -0
- data/lib/kamishibai/webserver.rb +502 -0
- data/lib/kamishibai/webserver_cmds.rb +26 -0
- data/lib/kamishibai/webserver_config.rb +91 -0
- data/lib/kamishibai/webserver_filemanager.rb +29 -0
- data/lib/kamishibai/webserver_tablet.rb +259 -0
- data/lib/kamishibai/workers.rb +39 -0
- data/public/css/browse.css +390 -0
- data/public/css/config.css +3 -0
- data/public/css/reader.css +119 -0
- data/public/css/styles.css +30 -0
- data/public/css/tablet_browse.css +247 -0
- data/public/css/tablet_reader.css +323 -0
- data/public/css/tablet_reader_input.css +191 -0
- data/public/images/ajax-loader.gif +0 -0
- data/public/images/delete.png +0 -0
- data/public/images/folder-mini-up.png +0 -0
- data/public/images/folder-mini.png +0 -0
- data/public/images/spinner.gif +0 -0
- data/public/images/trash-empty-mini.png +0 -0
- data/public/images/trash-full-mini.png +0 -0
- data/public/js/browse.js +391 -0
- data/public/js/config.js +190 -0
- data/public/js/reader.js +497 -0
- data/public/js/swipeview-k.js +478 -0
- data/public/js/tablet3.js +241 -0
- data/public/js/tablet3_browse.js +173 -0
- data/public/js/tablet3_reader.js +534 -0
- data/public/js/utilities.js +170 -0
- data/public/lang/k-cn.json +82 -0
- data/public/lang/k-en.json +82 -0
- data/public/lang/k-ja.json +82 -0
- data/public/vendor/css/bootstrap-slider.css +252 -0
- data/public/vendor/css/bootstrap-theme.css +476 -0
- data/public/vendor/css/bootstrap-theme.css.map +1 -0
- data/public/vendor/css/bootstrap-theme.min.css +5 -0
- data/public/vendor/css/bootstrap.css +6584 -0
- data/public/vendor/css/bootstrap.css.map +1 -0
- data/public/vendor/css/bootstrap.min.css +5 -0
- data/public/vendor/css/jquery-ui-1.10.0.custom.css +1614 -0
- data/public/vendor/css/jquery.mobile-1.3.1.min.css +3 -0
- data/public/vendor/css/jqueryFileTree.css +91 -0
- data/public/vendor/fonts/glyphicons-halflings-regular.eot +0 -0
- data/public/vendor/fonts/glyphicons-halflings-regular.svg +288 -0
- data/public/vendor/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/public/vendor/fonts/glyphicons-halflings-regular.woff +0 -0
- data/public/vendor/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/public/vendor/images/application.png +0 -0
- data/public/vendor/images/code.png +0 -0
- data/public/vendor/images/css.png +0 -0
- data/public/vendor/images/db.png +0 -0
- data/public/vendor/images/dim.png +0 -0
- data/public/vendor/images/directory.png +0 -0
- data/public/vendor/images/doc.png +0 -0
- data/public/vendor/images/file.png +0 -0
- data/public/vendor/images/film.png +0 -0
- data/public/vendor/images/flash.png +0 -0
- data/public/vendor/images/folder_open.png +0 -0
- data/public/vendor/images/grey.png +0 -0
- data/public/vendor/images/html.png +0 -0
- data/public/vendor/images/icons-18-black.png +0 -0
- data/public/vendor/images/icons-18-white.png +0 -0
- data/public/vendor/images/icons-36-black.png +0 -0
- data/public/vendor/images/icons-36-white.png +0 -0
- data/public/vendor/images/java.png +0 -0
- data/public/vendor/images/linux.png +0 -0
- data/public/vendor/images/music.png +0 -0
- data/public/vendor/images/pdf.png +0 -0
- data/public/vendor/images/php.png +0 -0
- data/public/vendor/images/picture.png +0 -0
- data/public/vendor/images/ppt.png +0 -0
- data/public/vendor/images/psd.png +0 -0
- data/public/vendor/images/ruby.png +0 -0
- data/public/vendor/images/script.png +0 -0
- data/public/vendor/images/spinner.gif +0 -0
- data/public/vendor/images/txt.png +0 -0
- data/public/vendor/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/public/vendor/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/public/vendor/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/vendor/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/public/vendor/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
- data/public/vendor/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
- data/public/vendor/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/public/vendor/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/public/vendor/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_20_555555_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_40_0078a3_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_40_ffc73d_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/public/vendor/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/public/vendor/images/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
- data/public/vendor/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/public/vendor/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/public/vendor/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/public/vendor/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/public/vendor/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/public/vendor/images/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
- data/public/vendor/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/public/vendor/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/public/vendor/images/ui-bg_inset-soft_25_000000_1x100.png +0 -0
- data/public/vendor/images/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
- data/public/vendor/images/ui-icons_217bc0_256x240.png +0 -0
- data/public/vendor/images/ui-icons_222222_256x240.png +0 -0
- data/public/vendor/images/ui-icons_228ef1_256x240.png +0 -0
- data/public/vendor/images/ui-icons_2e83ff_256x240.png +0 -0
- data/public/vendor/images/ui-icons_454545_256x240.png +0 -0
- data/public/vendor/images/ui-icons_469bdd_256x240.png +0 -0
- data/public/vendor/images/ui-icons_4b8e0b_256x240.png +0 -0
- data/public/vendor/images/ui-icons_6da8d5_256x240.png +0 -0
- data/public/vendor/images/ui-icons_888888_256x240.png +0 -0
- data/public/vendor/images/ui-icons_a83300_256x240.png +0 -0
- data/public/vendor/images/ui-icons_cccccc_256x240.png +0 -0
- data/public/vendor/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/vendor/images/ui-icons_d8e7f3_256x240.png +0 -0
- data/public/vendor/images/ui-icons_ef8c08_256x240.png +0 -0
- data/public/vendor/images/ui-icons_f9bd01_256x240.png +0 -0
- data/public/vendor/images/ui-icons_ffd27a_256x240.png +0 -0
- data/public/vendor/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/vendor/images/xls.png +0 -0
- data/public/vendor/images/zip.png +0 -0
- data/public/vendor/js/bootstrap-slider.js +1550 -0
- data/public/vendor/js/bootstrap.js +2317 -0
- data/public/vendor/js/bootstrap.min.js +7 -0
- data/public/vendor/js/jquery-2.1.4.js +9210 -0
- data/public/vendor/js/jquery-2.1.4.min.js +4 -0
- data/public/vendor/js/jquery-2.1.4.min.map +1 -0
- data/public/vendor/js/jquery-ui-1.10.2.custom.min.js +7 -0
- data/public/vendor/js/jquery.cookie.js +72 -0
- data/public/vendor/js/jquery.hammer.min.js +7 -0
- data/public/vendor/js/jquery.lazyload.min.js +15 -0
- data/public/vendor/js/jquery.localize.js +180 -0
- data/public/vendor/js/jquery.mobile-1.3.1.min.js +7 -0
- data/public/vendor/js/jquery.scrollTo-1.4.3.1.js +218 -0
- data/public/vendor/js/jqueryFileTree.js +95 -0
- data/public/vendor/js/swipeview.js +471 -0
- data/views/browse.haml +97 -0
- data/views/config.haml +115 -0
- data/views/layout.haml +12 -0
- data/views/login.haml +51 -0
- data/views/reader.haml +70 -0
- data/views/statistics.haml +108 -0
- data/views/tablet3.haml +80 -0
- metadata +334 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
License: refer to LICENSE file
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// function to format the hash to object
|
|
6
|
+
// example: #book=abc.zip&page=7 -> $['book']='abc.zip', $['page']=7
|
|
7
|
+
function getHashParams() {
|
|
8
|
+
var hashParams = {};
|
|
9
|
+
var e,
|
|
10
|
+
a = /\+/g, // Regex for replacing addition symbol with a space
|
|
11
|
+
r = /([^&;=]+)=?([^&;]*)/g,
|
|
12
|
+
// d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
|
|
13
|
+
d = function (s) { return decodeURIComponent(s); },
|
|
14
|
+
q = window.location.hash.substring(1);
|
|
15
|
+
|
|
16
|
+
while (e = r.exec(q))
|
|
17
|
+
hashParams[d(e[1])] = d(e[2]);
|
|
18
|
+
|
|
19
|
+
return hashParams;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// return fully formatted hash
|
|
23
|
+
function fullhash(page) {
|
|
24
|
+
return 'book=' + getHashParams()['book'] + '&page=' + page;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// a queue that will make the browser run more responsively
|
|
28
|
+
// renamed $.queue to $.jobqueue, because of name conflict with scrollTo jquery plug-in
|
|
29
|
+
$.jobqueue = {
|
|
30
|
+
_timer: null,
|
|
31
|
+
_queue: [],
|
|
32
|
+
add: function(fn, context, time) {
|
|
33
|
+
var setTimer = function(time) {
|
|
34
|
+
$.jobqueue._timer = setTimeout(function() {
|
|
35
|
+
time = $.jobqueue.add();
|
|
36
|
+
if ($.jobqueue._queue.length) {
|
|
37
|
+
setTimer(time);
|
|
38
|
+
}
|
|
39
|
+
}, time || 2);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (fn) {
|
|
43
|
+
$.jobqueue._queue.push([fn, context, time]);
|
|
44
|
+
if ($.jobqueue._queue.length == 1) {
|
|
45
|
+
setTimer(time);
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var next = $.jobqueue._queue.shift();
|
|
51
|
+
if (!next) {
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
next[0].call(next[1] || window);
|
|
55
|
+
return next[2];
|
|
56
|
+
},
|
|
57
|
+
clear: function() {
|
|
58
|
+
clearTimeout($.jobqueue._timer);
|
|
59
|
+
$.jobqueue._queue = [];
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
function reload_locale() {
|
|
64
|
+
// load the text localization for corresponding language i18n
|
|
65
|
+
var opts = { pathPrefix: "/lang" };
|
|
66
|
+
$("[data-localize]").localize("k", opts);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// set screen resolution on the session
|
|
70
|
+
function setScreenSize() {
|
|
71
|
+
$.post('/screen', { width: window.innerWidth, height: window.innerHeight }, function(json) {
|
|
72
|
+
if (json.outcome == 'success') {
|
|
73
|
+
// do something with the knowledge possibly?
|
|
74
|
+
} else {
|
|
75
|
+
alert('Unable to let server know what the screen resolution is!');
|
|
76
|
+
}
|
|
77
|
+
},'json');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function uport() {
|
|
81
|
+
// get the url port
|
|
82
|
+
var port = window.location.port || '80';
|
|
83
|
+
return port;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
/*
|
|
88
|
+
full screen functions
|
|
89
|
+
*/
|
|
90
|
+
function goFullScreen(i) {
|
|
91
|
+
var elem;
|
|
92
|
+
|
|
93
|
+
// if out what i is
|
|
94
|
+
if (typeof i == 'object' || i instanceof Object) {
|
|
95
|
+
// i is a DOM element
|
|
96
|
+
elem = i;
|
|
97
|
+
}
|
|
98
|
+
else if (typeof i == 'string' || i instanceof String) {
|
|
99
|
+
// i is an ID of DOM element
|
|
100
|
+
elem = document.getElementById(i);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
alert('goFullScreen(): unknown i');
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// go full screen
|
|
107
|
+
if (elem.mozRequestFullScreen) {
|
|
108
|
+
elem.mozRequestFullScreen();
|
|
109
|
+
}
|
|
110
|
+
else if (elem.webkitRequestFullScreen) {
|
|
111
|
+
elem.webkitRequestFullScreen();
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
alert('cannot go full screen');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function exitFullScreen() {
|
|
119
|
+
if (document.mozCancelFullScreen) {
|
|
120
|
+
document.mozCancelFullScreen();
|
|
121
|
+
}
|
|
122
|
+
else if (document.webkitCancelFullScreen) {
|
|
123
|
+
document.webkitCancelFullScreen();
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
alert('cannot exit full screen');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function toggleFullScreen(id) {
|
|
131
|
+
if (isFullScreen()) {
|
|
132
|
+
exitFullScreen();
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
goFullScreen(id);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function isFullScreen() {
|
|
140
|
+
if (typeof document.mozFullScreen != 'undefined') {
|
|
141
|
+
return document.mozFullScreen;
|
|
142
|
+
}
|
|
143
|
+
else if (typeof document.webkitIsFullScreen != 'undefined') {
|
|
144
|
+
return document.webkitIsFullScreen;
|
|
145
|
+
}
|
|
146
|
+
else if (screen.width == window.innerWidth && screen.height == window.innerHeight) {
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function isImageCached(src) {
|
|
155
|
+
var image = new Image();
|
|
156
|
+
image.src = src;
|
|
157
|
+
|
|
158
|
+
return image.complete;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function updateBatteryLevel() {
|
|
162
|
+
if (navigator.battery) {
|
|
163
|
+
// firefox support
|
|
164
|
+
battery_level = Math.floor(navigator.battery.level * 100) + '%';
|
|
165
|
+
}
|
|
166
|
+
else if (navigator.getBattery()) {
|
|
167
|
+
// chrome support
|
|
168
|
+
navigator.getBattery().then(function(battery) { battery_level = Math.floor(battery.level * 100) + '%' });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Kamishibai": "Kamishibai",
|
|
3
|
+
"yes": "是",
|
|
4
|
+
"no": "否",
|
|
5
|
+
"username": "用戶名",
|
|
6
|
+
"password": "密碼",
|
|
7
|
+
"cancel": "取消",
|
|
8
|
+
"save": "儲存",
|
|
9
|
+
"close": "關閉",
|
|
10
|
+
"orderby": "排序方式",
|
|
11
|
+
"filename": "檔案名",
|
|
12
|
+
"filesize": "檔案大小",
|
|
13
|
+
"filedate": "檔案日期",
|
|
14
|
+
"folder": "文件夾",
|
|
15
|
+
"folders": "文件夾",
|
|
16
|
+
"preferences": "設定",
|
|
17
|
+
"toggleFullScreen": "全屏切換",
|
|
18
|
+
|
|
19
|
+
"login": {
|
|
20
|
+
"header": "Kamishibai 登錄",
|
|
21
|
+
"LogIn": "登錄"
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
"browse":
|
|
25
|
+
{
|
|
26
|
+
"Path": "路徑",
|
|
27
|
+
"All": "全",
|
|
28
|
+
"New": "新",
|
|
29
|
+
"Reading": "閱讀中",
|
|
30
|
+
"Finished": "閱讀完",
|
|
31
|
+
"Author": "作者",
|
|
32
|
+
"Search": "搜索",
|
|
33
|
+
"Action": "動作",
|
|
34
|
+
"Bookmarks": "書籤",
|
|
35
|
+
"Menu": "菜單",
|
|
36
|
+
"SimpleMode": "簡單模式",
|
|
37
|
+
"Preferences": "設定",
|
|
38
|
+
"Restart": "重啟程序",
|
|
39
|
+
"RestartMsg": "重啟中。請稍候。",
|
|
40
|
+
"LogOut": "登出",
|
|
41
|
+
"Edit": "編輯",
|
|
42
|
+
"Delete": "刪除",
|
|
43
|
+
"DeleteDisable": "刪除結束"
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
"reader":
|
|
47
|
+
{
|
|
48
|
+
"Single": "單頁(s)",
|
|
49
|
+
"Double": "雙頁",
|
|
50
|
+
"ReadToLeft": "L←R (e)",
|
|
51
|
+
"ReadToRight": "L→R",
|
|
52
|
+
"Normal": "norm<u>a</u>l",
|
|
53
|
+
"Full": "full",
|
|
54
|
+
"NoBlackBar": "no <u>b</u>lack bar",
|
|
55
|
+
"BlackBar": "black bar",
|
|
56
|
+
"Even": "e<u>v</u>en",
|
|
57
|
+
"Odd": "odd",
|
|
58
|
+
"Home": "Home (␛)",
|
|
59
|
+
"Close": "Close (↵)"
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
"config":
|
|
63
|
+
{
|
|
64
|
+
"Browse": "瀏覽",
|
|
65
|
+
"SaveFolders": "Save Folders",
|
|
66
|
+
"Path": "Path",
|
|
67
|
+
"AddFolder": "Add Folder",
|
|
68
|
+
"RemoveFolder": "X",
|
|
69
|
+
"Action": "Action",
|
|
70
|
+
"Books": "Books",
|
|
71
|
+
"Port": "Port",
|
|
72
|
+
"NewBookDays": "新書(天)",
|
|
73
|
+
"ResizeImage": "Resize Image",
|
|
74
|
+
"ImageQuality": "Image Quality (%)",
|
|
75
|
+
"SavePreferences": "Save Preferences",
|
|
76
|
+
"alertPort": "端口只能在1025和65535之間",
|
|
77
|
+
"alertImageQuality": "Image quality can only be between 0 and 100",
|
|
78
|
+
"Saving": "Saving",
|
|
79
|
+
"SavingMsg": "Saving preferences/folders...",
|
|
80
|
+
"Statistics": "統計"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Kamishibai": "Kamishibai",
|
|
3
|
+
"yes": "yes",
|
|
4
|
+
"no": "no",
|
|
5
|
+
"username": "Username",
|
|
6
|
+
"password": "Password",
|
|
7
|
+
"cancel": "Cancel",
|
|
8
|
+
"save": "Save",
|
|
9
|
+
"close": "Close",
|
|
10
|
+
"orderby": "Order By",
|
|
11
|
+
"filename": "Name",
|
|
12
|
+
"filesize": "Size",
|
|
13
|
+
"filedate": "Date",
|
|
14
|
+
"folder": "Folder",
|
|
15
|
+
"folders": "Folders",
|
|
16
|
+
"preferences": "Preferences",
|
|
17
|
+
"toggleFullScreen": "Toggle Full Screen",
|
|
18
|
+
|
|
19
|
+
"login": {
|
|
20
|
+
"header": "Kamishibai log in",
|
|
21
|
+
"LogIn": "Log In"
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
"browse":
|
|
25
|
+
{
|
|
26
|
+
"Path": "Path",
|
|
27
|
+
"All": "All",
|
|
28
|
+
"New": "New",
|
|
29
|
+
"Reading": "Reading",
|
|
30
|
+
"Finished": "Finished",
|
|
31
|
+
"Author": "Author",
|
|
32
|
+
"Search": "Search",
|
|
33
|
+
"Action": "Action",
|
|
34
|
+
"Bookmarks": "Bookmarks",
|
|
35
|
+
"Menu": "Menu",
|
|
36
|
+
"SimpleMode": "Simple Mode",
|
|
37
|
+
"Preferences": "Preferences",
|
|
38
|
+
"Restart": "Restart",
|
|
39
|
+
"RestartMsg": "Restarting... Please wait, the page will auto refresh in few seconds.",
|
|
40
|
+
"LogOut": "Log out",
|
|
41
|
+
"Edit": "Edit",
|
|
42
|
+
"Delete": "Delete",
|
|
43
|
+
"DeleteDisable": "Disable Delete"
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
"reader":
|
|
47
|
+
{
|
|
48
|
+
"Single": "<u>s</u>ingle",
|
|
49
|
+
"Double": "double",
|
|
50
|
+
"ReadToLeft": "L←R (e)",
|
|
51
|
+
"ReadToRight": "L→R",
|
|
52
|
+
"Normal": "norm<u>a</u>l",
|
|
53
|
+
"Full": "full",
|
|
54
|
+
"NoBlackBar": "no <u>b</u>lack bar",
|
|
55
|
+
"BlackBar": "black bar",
|
|
56
|
+
"Even": "e<u>v</u>en",
|
|
57
|
+
"Odd": "odd",
|
|
58
|
+
"Home": "Home (␛)",
|
|
59
|
+
"Close": "Close (↵)"
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
"config":
|
|
63
|
+
{
|
|
64
|
+
"Browse": "Browse",
|
|
65
|
+
"SaveFolders": "Save Folders",
|
|
66
|
+
"Path": "Path",
|
|
67
|
+
"AddFolder": "Add Folder",
|
|
68
|
+
"RemoveFolder": "X",
|
|
69
|
+
"Action": "Action",
|
|
70
|
+
"Books": "Books",
|
|
71
|
+
"Port": "Port",
|
|
72
|
+
"NewBookDays": "New Book (Days)",
|
|
73
|
+
"ResizeImage": "Resize Image",
|
|
74
|
+
"ImageQuality": "Image Quality (%)",
|
|
75
|
+
"SavePreferences": "Save Preferences",
|
|
76
|
+
"alertPort": "Port number can only be between 1025 and 65535",
|
|
77
|
+
"alertImageQuality": "Image quality can only be between 0 and 100",
|
|
78
|
+
"Saving": "Saving",
|
|
79
|
+
"SavingMsg": "Saving preferences/folders...",
|
|
80
|
+
"Statistics": "Statistics"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Kamishibai": "カミシバイ",
|
|
3
|
+
"yes": "はい",
|
|
4
|
+
"no": "いいえ",
|
|
5
|
+
"username": "ユーザ",
|
|
6
|
+
"password": "パスワード",
|
|
7
|
+
"cancel": "キャンセル",
|
|
8
|
+
"save": "セーブ",
|
|
9
|
+
"close": "閉じる",
|
|
10
|
+
"orderby": "並び",
|
|
11
|
+
"filename": "名",
|
|
12
|
+
"filesize": "サイズ",
|
|
13
|
+
"filedate": "日付",
|
|
14
|
+
"folder": "フォルダ",
|
|
15
|
+
"folders": "フォルダ",
|
|
16
|
+
"preferences": "設定",
|
|
17
|
+
"toggleFullScreen": "フルスクリーン",
|
|
18
|
+
|
|
19
|
+
"login": {
|
|
20
|
+
"header": "カミシバイ ログイン",
|
|
21
|
+
"LogIn": "ログイン"
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
"browse":
|
|
25
|
+
{
|
|
26
|
+
"Path": "フォルダ",
|
|
27
|
+
"All": "全",
|
|
28
|
+
"New": "新",
|
|
29
|
+
"Reading": "読む中",
|
|
30
|
+
"Finished": "既読",
|
|
31
|
+
"Author": "作家",
|
|
32
|
+
"Search": "捜索",
|
|
33
|
+
"Action": "行動",
|
|
34
|
+
"Bookmarks": "ブックマーク",
|
|
35
|
+
"Menu": "メニュー",
|
|
36
|
+
"SimpleMode": "簡単モード",
|
|
37
|
+
"Preferences": "設定",
|
|
38
|
+
"Restart": "再起動",
|
|
39
|
+
"RestartMsg": "再起動中、少々お待ちください。",
|
|
40
|
+
"LogOut": "ログアウト",
|
|
41
|
+
"Edit": "編集",
|
|
42
|
+
"Delete": "削除",
|
|
43
|
+
"DeleteDisable": "削除終了"
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
"reader":
|
|
47
|
+
{
|
|
48
|
+
"Single": "単ページ(s)",
|
|
49
|
+
"Double": "双ページ",
|
|
50
|
+
"ReadToLeft": "左←右(e)",
|
|
51
|
+
"ReadToRight": "左→右",
|
|
52
|
+
"Normal": "普通(a)",
|
|
53
|
+
"Full": "フルスクリーン",
|
|
54
|
+
"NoBlackBar": "黒バー無し(b)",
|
|
55
|
+
"BlackBar": "黒バー有り",
|
|
56
|
+
"Even": "偶数頁(v)",
|
|
57
|
+
"Odd": "奇数頁",
|
|
58
|
+
"Home": "戻る (␛)",
|
|
59
|
+
"Close": "閉じる (↵)"
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
"config":
|
|
63
|
+
{
|
|
64
|
+
"Browse": "戻る",
|
|
65
|
+
"SaveFolders": "セーブ",
|
|
66
|
+
"Path": "ディレクトリ",
|
|
67
|
+
"AddFolder": "フォルダ追加",
|
|
68
|
+
"RemoveFolder": "外す",
|
|
69
|
+
"Action": "行動",
|
|
70
|
+
"Books": "本",
|
|
71
|
+
"Port": "ポート",
|
|
72
|
+
"NewBookDays": "新刊(日付)",
|
|
73
|
+
"ResizeImage": "画像再圧縮",
|
|
74
|
+
"ImageQuality": "画質(%)",
|
|
75
|
+
"SavePreferences": "セーブ",
|
|
76
|
+
"alertPort": "ポートの有効な設定は1025-65535です。",
|
|
77
|
+
"alertImageQuality": "画質の有効な設定は0-100です。",
|
|
78
|
+
"Saving": "セーブ",
|
|
79
|
+
"SavingMsg": "セーブ中、少々お待ちください。",
|
|
80
|
+
"Statistics": "統計"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/*! =========================================================
|
|
2
|
+
* bootstrap-slider.js
|
|
3
|
+
*
|
|
4
|
+
* Maintainers:
|
|
5
|
+
* Kyle Kemp
|
|
6
|
+
* - Twitter: @seiyria
|
|
7
|
+
* - Github: seiyria
|
|
8
|
+
* Rohit Kalkur
|
|
9
|
+
* - Twitter: @Rovolutionary
|
|
10
|
+
* - Github: rovolution
|
|
11
|
+
*
|
|
12
|
+
* =========================================================
|
|
13
|
+
*
|
|
14
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
+
* you may not use this file except in compliance with the License.
|
|
16
|
+
* You may obtain a copy of the License at
|
|
17
|
+
*
|
|
18
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
*
|
|
20
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
21
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
22
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
23
|
+
* See the License for the specific language governing permissions and
|
|
24
|
+
* limitations under the License.
|
|
25
|
+
* ========================================================= */
|
|
26
|
+
.slider {
|
|
27
|
+
display: inline-block;
|
|
28
|
+
vertical-align: middle;
|
|
29
|
+
position: relative;
|
|
30
|
+
}
|
|
31
|
+
.slider.slider-horizontal {
|
|
32
|
+
width: 210px;
|
|
33
|
+
height: 20px;
|
|
34
|
+
}
|
|
35
|
+
.slider.slider-horizontal .slider-track {
|
|
36
|
+
height: 10px;
|
|
37
|
+
width: 100%;
|
|
38
|
+
margin-top: -5px;
|
|
39
|
+
top: 50%;
|
|
40
|
+
left: 0;
|
|
41
|
+
}
|
|
42
|
+
.slider.slider-horizontal .slider-selection,
|
|
43
|
+
.slider.slider-horizontal .slider-track-low,
|
|
44
|
+
.slider.slider-horizontal .slider-track-high {
|
|
45
|
+
height: 100%;
|
|
46
|
+
top: 0;
|
|
47
|
+
bottom: 0;
|
|
48
|
+
}
|
|
49
|
+
.slider.slider-horizontal .slider-tick,
|
|
50
|
+
.slider.slider-horizontal .slider-handle {
|
|
51
|
+
margin-left: -10px;
|
|
52
|
+
margin-top: -5px;
|
|
53
|
+
}
|
|
54
|
+
.slider.slider-horizontal .slider-tick.triangle,
|
|
55
|
+
.slider.slider-horizontal .slider-handle.triangle {
|
|
56
|
+
border-width: 0 10px 10px 10px;
|
|
57
|
+
width: 0;
|
|
58
|
+
height: 0;
|
|
59
|
+
border-bottom-color: #0480be;
|
|
60
|
+
margin-top: 0;
|
|
61
|
+
}
|
|
62
|
+
.slider.slider-horizontal .slider-tick-label-container {
|
|
63
|
+
white-space: nowrap;
|
|
64
|
+
margin-top: 20px;
|
|
65
|
+
}
|
|
66
|
+
.slider.slider-horizontal .slider-tick-label-container .slider-tick-label {
|
|
67
|
+
padding-top: 4px;
|
|
68
|
+
display: inline-block;
|
|
69
|
+
text-align: center;
|
|
70
|
+
}
|
|
71
|
+
.slider.slider-vertical {
|
|
72
|
+
height: 210px;
|
|
73
|
+
width: 20px;
|
|
74
|
+
}
|
|
75
|
+
.slider.slider-vertical .slider-track {
|
|
76
|
+
width: 10px;
|
|
77
|
+
height: 100%;
|
|
78
|
+
margin-left: -5px;
|
|
79
|
+
left: 50%;
|
|
80
|
+
top: 0;
|
|
81
|
+
}
|
|
82
|
+
.slider.slider-vertical .slider-selection {
|
|
83
|
+
width: 100%;
|
|
84
|
+
left: 0;
|
|
85
|
+
top: 0;
|
|
86
|
+
bottom: 0;
|
|
87
|
+
}
|
|
88
|
+
.slider.slider-vertical .slider-track-low,
|
|
89
|
+
.slider.slider-vertical .slider-track-high {
|
|
90
|
+
width: 100%;
|
|
91
|
+
left: 0;
|
|
92
|
+
right: 0;
|
|
93
|
+
}
|
|
94
|
+
.slider.slider-vertical .slider-tick,
|
|
95
|
+
.slider.slider-vertical .slider-handle {
|
|
96
|
+
margin-left: -5px;
|
|
97
|
+
margin-top: -10px;
|
|
98
|
+
}
|
|
99
|
+
.slider.slider-vertical .slider-tick.triangle,
|
|
100
|
+
.slider.slider-vertical .slider-handle.triangle {
|
|
101
|
+
border-width: 10px 0 10px 10px;
|
|
102
|
+
width: 1px;
|
|
103
|
+
height: 1px;
|
|
104
|
+
border-left-color: #0480be;
|
|
105
|
+
margin-left: 0;
|
|
106
|
+
}
|
|
107
|
+
.slider.slider-vertical .slider-tick-label-container {
|
|
108
|
+
white-space: nowrap;
|
|
109
|
+
}
|
|
110
|
+
.slider.slider-vertical .slider-tick-label-container .slider-tick-label {
|
|
111
|
+
padding-left: 4px;
|
|
112
|
+
}
|
|
113
|
+
.slider.slider-disabled .slider-handle {
|
|
114
|
+
background-image: -webkit-linear-gradient(top, #dfdfdf 0%, #bebebe 100%);
|
|
115
|
+
background-image: -o-linear-gradient(top, #dfdfdf 0%, #bebebe 100%);
|
|
116
|
+
background-image: linear-gradient(to bottom, #dfdfdf 0%, #bebebe 100%);
|
|
117
|
+
background-repeat: repeat-x;
|
|
118
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdfdfdf', endColorstr='#ffbebebe', GradientType=0);
|
|
119
|
+
}
|
|
120
|
+
.slider.slider-disabled .slider-track {
|
|
121
|
+
background-image: -webkit-linear-gradient(top, #e5e5e5 0%, #e9e9e9 100%);
|
|
122
|
+
background-image: -o-linear-gradient(top, #e5e5e5 0%, #e9e9e9 100%);
|
|
123
|
+
background-image: linear-gradient(to bottom, #e5e5e5 0%, #e9e9e9 100%);
|
|
124
|
+
background-repeat: repeat-x;
|
|
125
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe5e5e5', endColorstr='#ffe9e9e9', GradientType=0);
|
|
126
|
+
cursor: not-allowed;
|
|
127
|
+
}
|
|
128
|
+
.slider input {
|
|
129
|
+
display: none;
|
|
130
|
+
}
|
|
131
|
+
.slider .tooltip.top {
|
|
132
|
+
margin-top: -36px;
|
|
133
|
+
}
|
|
134
|
+
.slider .tooltip-inner {
|
|
135
|
+
white-space: nowrap;
|
|
136
|
+
}
|
|
137
|
+
.slider .hide {
|
|
138
|
+
display: none;
|
|
139
|
+
}
|
|
140
|
+
.slider-track {
|
|
141
|
+
position: absolute;
|
|
142
|
+
cursor: pointer;
|
|
143
|
+
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #f9f9f9 100%);
|
|
144
|
+
background-image: -o-linear-gradient(top, #f5f5f5 0%, #f9f9f9 100%);
|
|
145
|
+
background-image: linear-gradient(to bottom, #f5f5f5 0%, #f9f9f9 100%);
|
|
146
|
+
background-repeat: repeat-x;
|
|
147
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
|
|
148
|
+
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
|
149
|
+
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
|
150
|
+
border-radius: 4px;
|
|
151
|
+
}
|
|
152
|
+
.slider-selection {
|
|
153
|
+
position: absolute;
|
|
154
|
+
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
|
155
|
+
background-image: -o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
|
156
|
+
background-image: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%);
|
|
157
|
+
background-repeat: repeat-x;
|
|
158
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0);
|
|
159
|
+
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
|
160
|
+
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
|
161
|
+
-webkit-box-sizing: border-box;
|
|
162
|
+
-moz-box-sizing: border-box;
|
|
163
|
+
box-sizing: border-box;
|
|
164
|
+
border-radius: 4px;
|
|
165
|
+
}
|
|
166
|
+
.slider-selection.tick-slider-selection {
|
|
167
|
+
background-image: -webkit-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
|
168
|
+
background-image: -o-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
|
169
|
+
background-image: linear-gradient(to bottom, #89cdef 0%, #81bfde 100%);
|
|
170
|
+
background-repeat: repeat-x;
|
|
171
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff89cdef', endColorstr='#ff81bfde', GradientType=0);
|
|
172
|
+
}
|
|
173
|
+
.slider-track-low,
|
|
174
|
+
.slider-track-high {
|
|
175
|
+
position: absolute;
|
|
176
|
+
background: transparent;
|
|
177
|
+
-webkit-box-sizing: border-box;
|
|
178
|
+
-moz-box-sizing: border-box;
|
|
179
|
+
box-sizing: border-box;
|
|
180
|
+
border-radius: 4px;
|
|
181
|
+
}
|
|
182
|
+
.slider-handle {
|
|
183
|
+
position: absolute;
|
|
184
|
+
width: 20px;
|
|
185
|
+
height: 20px;
|
|
186
|
+
background-color: #337ab7;
|
|
187
|
+
background-image: -webkit-linear-gradient(top, #149bdf 0%, #0480be 100%);
|
|
188
|
+
background-image: -o-linear-gradient(top, #149bdf 0%, #0480be 100%);
|
|
189
|
+
background-image: linear-gradient(to bottom, #149bdf 0%, #0480be 100%);
|
|
190
|
+
background-repeat: repeat-x;
|
|
191
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
|
|
192
|
+
filter: none;
|
|
193
|
+
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
|
|
194
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
|
|
195
|
+
border: 0px solid transparent;
|
|
196
|
+
}
|
|
197
|
+
.slider-handle.round {
|
|
198
|
+
border-radius: 50%;
|
|
199
|
+
}
|
|
200
|
+
.slider-handle.triangle {
|
|
201
|
+
background: transparent none;
|
|
202
|
+
}
|
|
203
|
+
.slider-handle.custom {
|
|
204
|
+
background: transparent none;
|
|
205
|
+
}
|
|
206
|
+
.slider-handle.custom::before {
|
|
207
|
+
line-height: 20px;
|
|
208
|
+
font-size: 20px;
|
|
209
|
+
content: '\2605';
|
|
210
|
+
color: #726204;
|
|
211
|
+
}
|
|
212
|
+
.slider-tick {
|
|
213
|
+
position: absolute;
|
|
214
|
+
width: 20px;
|
|
215
|
+
height: 20px;
|
|
216
|
+
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
|
217
|
+
background-image: -o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%);
|
|
218
|
+
background-image: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%);
|
|
219
|
+
background-repeat: repeat-x;
|
|
220
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0);
|
|
221
|
+
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
|
222
|
+
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
|
223
|
+
-webkit-box-sizing: border-box;
|
|
224
|
+
-moz-box-sizing: border-box;
|
|
225
|
+
box-sizing: border-box;
|
|
226
|
+
filter: none;
|
|
227
|
+
opacity: 0.8;
|
|
228
|
+
border: 0px solid transparent;
|
|
229
|
+
}
|
|
230
|
+
.slider-tick.round {
|
|
231
|
+
border-radius: 50%;
|
|
232
|
+
}
|
|
233
|
+
.slider-tick.triangle {
|
|
234
|
+
background: transparent none;
|
|
235
|
+
}
|
|
236
|
+
.slider-tick.custom {
|
|
237
|
+
background: transparent none;
|
|
238
|
+
}
|
|
239
|
+
.slider-tick.custom::before {
|
|
240
|
+
line-height: 20px;
|
|
241
|
+
font-size: 20px;
|
|
242
|
+
content: '\2605';
|
|
243
|
+
color: #726204;
|
|
244
|
+
}
|
|
245
|
+
.slider-tick.in-selection {
|
|
246
|
+
background-image: -webkit-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
|
247
|
+
background-image: -o-linear-gradient(top, #89cdef 0%, #81bfde 100%);
|
|
248
|
+
background-image: linear-gradient(to bottom, #89cdef 0%, #81bfde 100%);
|
|
249
|
+
background-repeat: repeat-x;
|
|
250
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff89cdef', endColorstr='#ff81bfde', GradientType=0);
|
|
251
|
+
opacity: 1;
|
|
252
|
+
}
|