forked from 0x2620/pandora
parse document position
This commit is contained in:
parent
af0affb7bf
commit
a7d70c15ea
3 changed files with 23 additions and 6 deletions
|
@ -254,7 +254,7 @@ pandora.URL = (function() {
|
||||||
set[!state.item ? 'collectionView' : 'documentView'] = state.view;
|
set[!state.item ? 'collectionView' : 'documentView'] = state.view;
|
||||||
}
|
}
|
||||||
if (state.span) {
|
if (state.span) {
|
||||||
if (Ox.isNumber(state.pan)) {
|
if (Ox.isNumber(state.span)) {
|
||||||
set['documents.' + state.item] = {position: state.span};
|
set['documents.' + state.item] = {position: state.span};
|
||||||
} else {
|
} else {
|
||||||
set['documents.' + state.item] = {name: state.span};
|
set['documents.' + state.item] = {name: state.span};
|
||||||
|
|
|
@ -393,8 +393,17 @@ pandora.ui.textHTML = function(text) {
|
||||||
if (settings.name) {
|
if (settings.name) {
|
||||||
element = that.find('*[data-name="' + settings.name + '"]');
|
element = that.find('*[data-name="' + settings.name + '"]');
|
||||||
if (element.length) {
|
if (element.length) {
|
||||||
scrollTop = Math.max(that[0].scrollTop + element.offset().top - 48, 0);
|
scrollTop = that[0].scrollTop + element.offset().top;
|
||||||
position = 100 * scrollTop / that[0].scrollHeight;
|
if (pandora.user.ui.page == 'document') {
|
||||||
|
scrollTop -= 48;
|
||||||
|
} else {
|
||||||
|
scrollTop -= 80;
|
||||||
|
if (pandora.user.ui.showBrowser) {
|
||||||
|
scrollTop -= (112 + Ox.UI.SCROLLBAR_SIZE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
position = 100 * Math.max(scrollTop, 0) / that[0].scrollHeight;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
scrollTo(position);
|
scrollTo(position);
|
||||||
|
|
|
@ -1994,9 +1994,11 @@ pandora.getSpan = function(state, val, callback) {
|
||||||
if (Ox.contains(['epub', 'pdf', 'txt'], extension)) {
|
if (Ox.contains(['epub', 'pdf', 'txt'], extension)) {
|
||||||
state.span = Ox.limit(parseInt(val), 1, dimensions);
|
state.span = Ox.limit(parseInt(val), 1, dimensions);
|
||||||
} else if (Ox.contains(['html'], extension)) {
|
} else if (Ox.contains(['html'], extension)) {
|
||||||
//fixme: allow numbers or check names?
|
if (pandora.isNumericalSpan(val)) {
|
||||||
//state.span = Ox.limit(parseInt(val), 0, 100);
|
state.span = Ox.limit(parseInt(val), 0, 100);
|
||||||
state.span = val
|
} else {
|
||||||
|
state.span = val;
|
||||||
|
}
|
||||||
} else if (Ox.contains(['gif', 'jpg', 'png'], extension)) {
|
} else if (Ox.contains(['gif', 'jpg', 'png'], extension)) {
|
||||||
values = val.split(',');
|
values = val.split(',');
|
||||||
if (values.length == 4) {
|
if (values.length == 4) {
|
||||||
|
@ -2443,6 +2445,12 @@ pandora.isLicensed = function() {
|
||||||
return !pandora.site.license || pandora.site.license > +new Date();
|
return !pandora.site.license || pandora.site.license > +new Date();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pandora.isNumericalSpan = function(str) {
|
||||||
|
return str.split(',').every(function(str) {
|
||||||
|
return /^[0-9-\.:]+$/.test(str);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
pandora.isPrintURL = function(url) {
|
pandora.isPrintURL = function(url) {
|
||||||
url = url || document.location.href;
|
url = url || document.location.href;
|
||||||
var hash = Ox.parseURL(url).hash;
|
var hash = Ox.parseURL(url).hash;
|
||||||
|
|
Loading…
Reference in a new issue