remove outdated examples
This commit is contained in:
parent
3134c0be46
commit
08f4b7e528
|
@ -1,163 +0,0 @@
|
||||||
#indexedDBViewer {
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
font-family: Courier;
|
|
||||||
font-size: 12px;
|
|
||||||
width: 100%;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0px;
|
|
||||||
right: 0px;
|
|
||||||
height: 100%;
|
|
||||||
z-index: 999999;
|
|
||||||
background-color: lightgray;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewer li {
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewer ul {
|
|
||||||
list-style: none;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 0px 0px 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewer h1 {
|
|
||||||
padding: 0px 0px 5px 0px;
|
|
||||||
margin: 0px;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerHeader {
|
|
||||||
height: 15px;
|
|
||||||
width: 100%;
|
|
||||||
cursor: row-resize;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerHeader span {
|
|
||||||
cursor: pointer;
|
|
||||||
height: 13px;
|
|
||||||
width: 13px;
|
|
||||||
padding-left: 0px;
|
|
||||||
padding-right: 0px;
|
|
||||||
border: 1px solid black;
|
|
||||||
display: inline-block;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerNavigation {
|
|
||||||
display: inline-block;
|
|
||||||
height: 100%;
|
|
||||||
width: auto;
|
|
||||||
min-width: 200px;
|
|
||||||
vertical-align: top;
|
|
||||||
padding: 2px 2px 2px 2px;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContent {
|
|
||||||
display: inline-block;
|
|
||||||
height: 100%;
|
|
||||||
width: auto;
|
|
||||||
min-width: 400px;
|
|
||||||
vertical-align: top;
|
|
||||||
padding: 2px 2px 2px 12px;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentObjectStoresTable {
|
|
||||||
width: 100%
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentObjectStoresRowHeaderName {
|
|
||||||
width: auto;
|
|
||||||
min-width: 100px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentObjectStoresRowHeaderKeyPath {
|
|
||||||
width: 100px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentObjectStoresRowHeaderAutoIncrement {
|
|
||||||
width: 100px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentIndexTable {
|
|
||||||
width: 100%
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentIndexRowHeaderName {
|
|
||||||
width: auto;
|
|
||||||
min-width: 150px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentIndexRowHeaderKeyPath {
|
|
||||||
width: auto;
|
|
||||||
min-width: 100px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentIndexRowHeaderObjectStore {
|
|
||||||
width: auto;
|
|
||||||
min-width: 100px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentIndexRowHeaderMultiEntry {
|
|
||||||
width: 100px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentIndexRowHeaderUnique {
|
|
||||||
width: 100px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentObjectStoreRowHeaderKey {
|
|
||||||
width: auto;
|
|
||||||
min-width: 100px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentObjectStoreRowHeaderValue {
|
|
||||||
width: auto;
|
|
||||||
min-width: 400px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentIndexRowHeaderKey {
|
|
||||||
width: auto;
|
|
||||||
min-width: 100px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentIndexRowHeaderPrimaryKey {
|
|
||||||
width: auto;
|
|
||||||
min-width: 100px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentIndexRowHeaderValue {
|
|
||||||
width: auto;
|
|
||||||
min-width: 400px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewerContentObjectStoreTable td, #indexedDBViewerContentIndexTable td {
|
|
||||||
vertical-align: top;
|
|
||||||
text-align: left;
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#indexedDBViewer .clickable {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
|
@ -1,317 +0,0 @@
|
||||||
/// <reference path="jquery-1.7.2.js" />
|
|
||||||
/// <reference path="Linq2IndexedDB.js" />
|
|
||||||
|
|
||||||
$(function () {
|
|
||||||
function initializeViewer() {
|
|
||||||
var placeholder = $("#indexedDBViewer");
|
|
||||||
var dbName = placeholder.attr("data-dbName");
|
|
||||||
createHeader('indexedDBViewerHeader', placeholder);
|
|
||||||
var navigation = retrieveOrCreateElement('indexedDBViewerNavigation', 'div', placeholder);
|
|
||||||
var menu = retrieveOrCreateElement('indexedDBViewerMenu', 'ul', navigation);
|
|
||||||
var menuOverview = expandableListItem('indexedDBViewerMenuOverview', dbName, menu, viewDb, { dbName: dbName, objectStore: null, index: null });
|
|
||||||
|
|
||||||
navigation.addClass('nav');
|
|
||||||
|
|
||||||
linq2indexedDB.prototype.core.db(dbName).then(function () {
|
|
||||||
var connection = arguments[0][0];
|
|
||||||
|
|
||||||
linq2indexedDB.prototype.core.dbStructureChanged.addListener(linq2indexedDB.prototype.core.databaseEvents.databaseBlocked, function () {
|
|
||||||
connection.close();
|
|
||||||
});
|
|
||||||
|
|
||||||
var menuObjectStores = retrieveOrCreateElement('indexedDBViewerMenuObjectStores', 'ul', menuOverview);
|
|
||||||
|
|
||||||
for (var i = 0; i < connection.objectStoreNames.length; i++) {
|
|
||||||
var storeName = connection.objectStoreNames[i];
|
|
||||||
var menuObjectStore = expandableListItem('indexedDBViewerMenuObjectStore' + storeName, storeName, menuObjectStores, viewDb, { dbName: dbName, objectStore: storeName, index: null });
|
|
||||||
|
|
||||||
linq2indexedDB.prototype.core.objectStore(linq2indexedDB.prototype.core.transaction(connection, storeName, linq2indexedDB.prototype.core.transactionTypes.READ_ONLY, false), storeName).then(function (args) {
|
|
||||||
var store = args[1];
|
|
||||||
|
|
||||||
var menuObjectStore = retrieveOrCreateElement('indexedDBViewerMenuObjectStore' + storeName, 'li', menuObjectStores);
|
|
||||||
var menuIndexes = retrieveOrCreateElement('indexedDBViewerMenuObjectStore' + store.name + 'Indexes', 'ul', menuObjectStore);
|
|
||||||
|
|
||||||
for (var j = 0; j < store.indexNames.length; j++) {
|
|
||||||
var indexName = store.indexNames[i];
|
|
||||||
expandableListItem('indexedDBViewerMenuObjectStore' + store.name + 'Index' + indexName, indexName, menuIndexes, viewDb, { dbName: dbName, objectStore: store.name, index: indexName });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, null, function (args) {
|
|
||||||
if (args[1].type == "upgradeneeded") {
|
|
||||||
args[0].abort();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function viewDb(e) {
|
|
||||||
var dbName = e.data.dbName;
|
|
||||||
var objectStore = e.data.objectStore;
|
|
||||||
var index = e.data.index;
|
|
||||||
var content = retrieveOrCreateElement('indexedDBViewerContent', 'div', $("#indexedDBViewer"));
|
|
||||||
content.empty();
|
|
||||||
|
|
||||||
if (objectStore != null) {
|
|
||||||
if (index != null) {
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentGeneral', 'h1', content).text(index);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentGeneral', 'h1', content).text(objectStore);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
linq2indexedDB.prototype.core.db(dbName).then(function () {
|
|
||||||
var connection = arguments[0][0];
|
|
||||||
|
|
||||||
if (objectStore == null) {
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentGeneral', 'h1', content).text("General");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentGeneralName', 'span', content).text("Name: " + connection.name);
|
|
||||||
content.append("<br/>");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentGeneralVersion', 'span', content).text("Version: " + connection.version);
|
|
||||||
content.append("<br/>");
|
|
||||||
content.append("<br/>");
|
|
||||||
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentObjectStores', 'h1', content).text("Object stores");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentObjectStoresTable', 'table', content);
|
|
||||||
content.append("<br/>");
|
|
||||||
content.append("<br/>");
|
|
||||||
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndex', 'h1', content).text("Indexes");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexTable', 'table', content);
|
|
||||||
content.append("<br/>");
|
|
||||||
}
|
|
||||||
|
|
||||||
linq2indexedDB.prototype.core.dbStructureChanged.addListener(linq2indexedDB.prototype.core.databaseEvents.databaseBlocked, function () {
|
|
||||||
connection.close();
|
|
||||||
});
|
|
||||||
|
|
||||||
for (var i = 0; i < connection.objectStoreNames.length; i++) {
|
|
||||||
var storeName = connection.objectStoreNames[i];
|
|
||||||
linq2indexedDB.prototype.core.objectStore(linq2indexedDB.prototype.core.transaction(connection, storeName, linq2indexedDB.prototype.core.transactionTypes.READ_ONLY, false), storeName).then(function (args) {
|
|
||||||
var store = args[1];
|
|
||||||
if (objectStore == null) {
|
|
||||||
viewObjectStoreDefinition(store.name, store.keyPath, store.autoIncrement, content);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (index == null && store.name == objectStore) {
|
|
||||||
linq2indexedDB.prototype.core.cursor(store).then(function () {
|
|
||||||
|
|
||||||
}, function () {
|
|
||||||
}, function (args1) {
|
|
||||||
var keyValue = args1[0];
|
|
||||||
viewObjectStoreData(keyValue.key, keyValue.data, content);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (var j = 0; j < store.indexNames.length; j++) {
|
|
||||||
linq2indexedDB.prototype.core.index(store, store.indexNames[j], false).then(function (args1) {
|
|
||||||
var ix = args1[1];
|
|
||||||
if (objectStore == null) {
|
|
||||||
viewIndexDefinition(ix.name, ix.keyPath, ix.objectStore.name, ix.multiEntry || ix.multiRow, ix.unique, content);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (index != null && ix.name == index) {
|
|
||||||
linq2indexedDB.prototype.core.cursor(ix).then(function () {
|
|
||||||
var x = 1;
|
|
||||||
}, function () {
|
|
||||||
}, function (args1) {
|
|
||||||
var keyValue = args1[0];
|
|
||||||
viewIndexData(args1[1].key, args1[1].primaryKey, keyValue.data, content);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function viewObjectStoreDefinition(name, keyPath, autoIncrement, parent) {
|
|
||||||
var table = retrieveOrCreateElement('indexedDBViewerContentObjectStoresTable', 'table', parent);
|
|
||||||
var headerRow = retrieveOrCreateElement('indexedDBViewerContentObjectStoresRowHeader', 'tr', table);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentObjectStoresRowHeaderName', 'th', headerRow).text("name");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentObjectStoresRowHeaderKeyPath', 'th', headerRow).text("keyPath");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentObjectStoresRowHeaderAutoIncrement', 'th', headerRow).text("autoIncrement");
|
|
||||||
|
|
||||||
|
|
||||||
var dataRow = retrieveOrCreateElement('indexedDBViewerContentObjectStoresRow' + name, 'tr', table);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentObjectStoresRow' + name + 'Name', 'td', dataRow).text(name);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentObjectStoresRow' + name + 'KeyPath', 'td', dataRow).text(keyPath);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentObjectStoresRow' + name + 'AutoIncrement', 'td', dataRow).text(autoIncrement);
|
|
||||||
}
|
|
||||||
|
|
||||||
function viewIndexDefinition(name, keyPath, objectStore, multiEntry, unique, parent) {
|
|
||||||
var table = retrieveOrCreateElement('indexedDBViewerContentIndexTable', 'table', parent);
|
|
||||||
var headerRow = retrieveOrCreateElement('indexedDBViewerContentIndexRowHeader', 'tr', table);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRowHeaderName', 'th', headerRow).text("name");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRowHeaderKeyPath', 'th', headerRow).text("keyPath");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRowHeaderObjectStore', 'th', headerRow).text("objectStore");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRowHeaderMultiEntry', 'th', headerRow).text("multiEntry");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRowHeaderUnique', 'th', headerRow).text("unique");
|
|
||||||
|
|
||||||
|
|
||||||
var dataRow = retrieveOrCreateElement('indexedDBViewerContentIndexRow' + name, 'tr', table);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRow' + name + 'Name', 'td', dataRow).text(name);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRow' + name + 'KeyPath', 'td', dataRow).text(keyPath);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRow' + name + 'ObjectStore', 'td', dataRow).text(objectStore);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRow' + name + 'MultiEntry', 'td', dataRow).text(multiEntry);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRow' + name + 'Unique', 'td', dataRow).text(unique);
|
|
||||||
}
|
|
||||||
|
|
||||||
function viewObjectStoreData(key, value, parent) {
|
|
||||||
var table = retrieveOrCreateElement('indexedDBViewerContentObjectStoreTable', 'table', parent);
|
|
||||||
var headerRow = retrieveOrCreateElement('indexedDBViewerContentObjectStoreRowHeader', 'tr', table);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentObjectStoreRowHeaderKey', 'th', headerRow).text("key");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentObjectStoreRowHeaderValue', 'th', headerRow).text("value");
|
|
||||||
|
|
||||||
|
|
||||||
var dataRow = retrieveOrCreateElement('indexedDBViewerContentObjectStoreRow' + key, 'tr', table);
|
|
||||||
viewData(key, retrieveOrCreateElement('indexedDBViewerContentObjectStoreRow' + key + 'Key', 'td', dataRow));
|
|
||||||
viewData(value, retrieveOrCreateElement('indexedDBViewerContentObjectStoreRow' + key + 'Value', 'td', dataRow));
|
|
||||||
}
|
|
||||||
|
|
||||||
function viewIndexData(key, primaryKey, value, parent) {
|
|
||||||
var table = retrieveOrCreateElement('indexedDBViewerContentIndexTable', 'table', parent);
|
|
||||||
var headerRow = retrieveOrCreateElement('indexedDBViewerContentIndexRowHeader', 'tr', table);
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRowHeaderKey', 'th', headerRow).text("key");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRowHeaderPrimaryKey', 'th', headerRow).text("primary key");
|
|
||||||
retrieveOrCreateElement('indexedDBViewerContentIndexRowHeaderValue', 'th', headerRow).text("value");
|
|
||||||
|
|
||||||
|
|
||||||
var dataRow = retrieveOrCreateElement('indexedDBViewerContentIndexRow' + primaryKey, 'tr', table);
|
|
||||||
viewData(key, retrieveOrCreateElement('indexedDBViewerContentIndexRow' + primaryKey + 'Key', 'td', dataRow));
|
|
||||||
viewData(primaryKey, retrieveOrCreateElement('indexedDBViewerContentIndexRow' + primaryKey + 'PrimaryKey', 'td', dataRow));
|
|
||||||
viewData(value, retrieveOrCreateElement('indexedDBViewerContentIndexRow' + primaryKey + 'Value', 'td', dataRow));
|
|
||||||
}
|
|
||||||
|
|
||||||
function viewData(value, parent, propName) {
|
|
||||||
var text;
|
|
||||||
|
|
||||||
if (propName) {
|
|
||||||
text = propName + value;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
parent = retrieveOrCreateElement(null, 'ul', parent);
|
|
||||||
text = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof (value) === "object" && !(value instanceof Date)) {
|
|
||||||
var object = expandableListItem(null, text, parent);
|
|
||||||
var properties = retrieveOrCreateElement(null, 'ul', object);
|
|
||||||
for (prop in value) {
|
|
||||||
viewData(value[prop], properties, prop + ": ");
|
|
||||||
}
|
|
||||||
object.find('.expendable')[0].click();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
retrieveOrCreateElement(null, 'li', parent).text(text);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function expandableListItem(id, text, parent, clickEvent, clickEventData) {
|
|
||||||
var li = retrieveOrCreateElement(id, 'li', parent);
|
|
||||||
var col = retrieveOrCreateElement(null, 'span', li);
|
|
||||||
col.text(' - ');
|
|
||||||
col.data('status', 'open');
|
|
||||||
col.click(function () {
|
|
||||||
if ($(this).data('status') == 'closed') {
|
|
||||||
$($($(this)[0].parentElement).find('ul')[0]).show();
|
|
||||||
col.text(' - ');
|
|
||||||
col.data('status', 'open');
|
|
||||||
}
|
|
||||||
else if ($(this).data('status') == 'open') {
|
|
||||||
$($($(this)[0].parentElement).find('ul')[0]).hide();
|
|
||||||
col.text(' + ');
|
|
||||||
col.data('status', 'closed');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
col.addClass("clickable");
|
|
||||||
col.addClass("expendable");
|
|
||||||
|
|
||||||
var item = retrieveOrCreateElement(null, 'span', li);
|
|
||||||
item.text(text);
|
|
||||||
|
|
||||||
if (clickEvent) {
|
|
||||||
item.click(clickEventData, clickEvent);
|
|
||||||
item.addClass("clickable");
|
|
||||||
}
|
|
||||||
|
|
||||||
return li;
|
|
||||||
}
|
|
||||||
|
|
||||||
function createHeader(id, parent) {
|
|
||||||
var header = retrieveOrCreateElement(id, 'div', parent);
|
|
||||||
var col = retrieveOrCreateElement(null, 'span', header);
|
|
||||||
col.text(' - ');
|
|
||||||
col.data('status', 'open');
|
|
||||||
col.addClass("clickable");
|
|
||||||
col.addClass("expendable");
|
|
||||||
col.click(function () {
|
|
||||||
if ($(this).data('status') == 'closed') {
|
|
||||||
$('#indexedDBViewer').height(170);
|
|
||||||
$('#indexedDBViewer').width('100%');
|
|
||||||
$('#indexedDBViewerNavigation').show();
|
|
||||||
$('#indexedDBViewerContent').show();
|
|
||||||
col.text(' - ');
|
|
||||||
col.data('status', 'open');
|
|
||||||
}
|
|
||||||
else if ($(this).data('status') == 'open') {
|
|
||||||
$('#indexedDBViewer').height($(this).outerHeight());
|
|
||||||
$('#indexedDBViewer').width($(this).outerWidth());
|
|
||||||
$('#indexedDBViewerNavigation').hide();
|
|
||||||
$('#indexedDBViewerContent').hide();
|
|
||||||
col.text(' + ');
|
|
||||||
col.data('status', 'closed');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function retrieveOrCreateElement(id, element, parent) {
|
|
||||||
var el;
|
|
||||||
|
|
||||||
if (id && id != null && id != '') {
|
|
||||||
if ($('#' + id).length > 0) {
|
|
||||||
el = $('#' + id);
|
|
||||||
} else {
|
|
||||||
el = $('<' + element + ' id="' + id + '"></' + element + '>');
|
|
||||||
parent.append(el);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
el = $('<' + element + '></' + element + '>');
|
|
||||||
parent.append(el);
|
|
||||||
}
|
|
||||||
|
|
||||||
return el;
|
|
||||||
}
|
|
||||||
|
|
||||||
initializeViewer();
|
|
||||||
|
|
||||||
// mousedown, mousemove, mouseup and mouseleave for resizing the placeholder
|
|
||||||
$(window).bind('mousedown', function (event) {
|
|
||||||
var location = $(window).height() - $("#indexedDBViewer").height();
|
|
||||||
if ((location - 2) <= event.pageY && event.pageY <= (location + 5)) {
|
|
||||||
$(window).bind('mousemove', resize);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window).bind('mouseup', function () {
|
|
||||||
$(window).unbind('mousemove', resize);
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window).bind('mouseleave', function () {
|
|
||||||
$(window).unbind('mousemove', resize);
|
|
||||||
});
|
|
||||||
|
|
||||||
function resize(event) {
|
|
||||||
var pageHeight = $(window).height();
|
|
||||||
if (pageHeight - event.pageY >= 50) {
|
|
||||||
$("#indexedDBViewer").height(pageHeight - event.pageY);
|
|
||||||
var height = $("#indexedDBViewer").height() - $("#indexedDBViewerHeader").height();
|
|
||||||
$("#indexedDBViewerNavigation").height(height);
|
|
||||||
$("#indexedDBViewerContent").height(height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -1,149 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<progress id="progress" value=0></progress>
|
|
||||||
<div id="output"></div>
|
|
||||||
<div id="stderr"></div>
|
|
||||||
</body>
|
|
||||||
<script src="../dist/filer.js"></script>
|
|
||||||
<script type="text/javascript" src="https://rawgithub.com/tmcw/simple-statistics/master/src/simple_statistics.js"></script>
|
|
||||||
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js"></script>
|
|
||||||
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
|
|
||||||
<script src="../lib/require.js"></script>
|
|
||||||
<script>
|
|
||||||
|
|
||||||
require.config({
|
|
||||||
baseUrl: "../lib",
|
|
||||||
paths: {
|
|
||||||
"src": "../src",
|
|
||||||
"tests": "../tests",
|
|
||||||
"Filer": "../src/index",
|
|
||||||
"util": "../tests/lib/test-utils"
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
function nextTick(cb) {
|
|
||||||
setTimeout(cb, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
function parse_query() {
|
|
||||||
var query = window.location.search.substring(1);
|
|
||||||
var parsed = {};
|
|
||||||
query.split('&').forEach(function(pair) {
|
|
||||||
pair = pair.split('=');
|
|
||||||
var key = decodeURIComponent(pair[0]);
|
|
||||||
var value = decodeURIComponent(pair[1]);
|
|
||||||
parsed[key] = value;
|
|
||||||
});
|
|
||||||
return parsed;
|
|
||||||
}
|
|
||||||
|
|
||||||
require(["Filer", "util"], function(Filer, util) {
|
|
||||||
|
|
||||||
function time(test, cb) {
|
|
||||||
var start = performance.now();
|
|
||||||
function done() {
|
|
||||||
var end = performance.now();
|
|
||||||
cb(end - start);
|
|
||||||
}
|
|
||||||
test(done);
|
|
||||||
}
|
|
||||||
|
|
||||||
var random_data = new Uint8Array(1024); // 1kB buffer
|
|
||||||
var read_buffer = new Uint8Array(1024);
|
|
||||||
|
|
||||||
function run(iter) {
|
|
||||||
iter = (undefined == iter) ? 0 : iter;
|
|
||||||
|
|
||||||
function before() {
|
|
||||||
util.setup(function() {
|
|
||||||
nextTick(during);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function during() {
|
|
||||||
var fs = util.fs();
|
|
||||||
|
|
||||||
window.crypto.getRandomValues(random_data);
|
|
||||||
time(function(done) {
|
|
||||||
fs.mkdir('/tmp', function(err) {
|
|
||||||
fs.stat('/tmp', function(err, stats) {
|
|
||||||
fs.open('/tmp/test', 'w', function(err, fd) {
|
|
||||||
fs.write(fd, random_data, null, null, null, function(err, nbytes) {
|
|
||||||
fs.close(fd, function(err) {
|
|
||||||
fs.stat('/tmp/test', function(err, stats) {
|
|
||||||
fs.open('/tmp/test', 'r', function(err, fd) {
|
|
||||||
fs.read(fd, read_buffer, null, null, null, function(err, nbytes) {
|
|
||||||
fs.close(fd, function(err) {
|
|
||||||
fs.unlink('/tmp/test', function(err) {
|
|
||||||
done();
|
|
||||||
});});});});});});});});});});
|
|
||||||
}, after);
|
|
||||||
}
|
|
||||||
|
|
||||||
function after(dt) {
|
|
||||||
util.cleanup(complete.bind(null, iter, dt));
|
|
||||||
}
|
|
||||||
|
|
||||||
before();
|
|
||||||
}
|
|
||||||
|
|
||||||
var results = [];
|
|
||||||
function complete(iter, result) {
|
|
||||||
results.push(result);
|
|
||||||
|
|
||||||
if(++iter < iterations) {
|
|
||||||
nextTick(run.bind(null, iter));
|
|
||||||
} else {
|
|
||||||
do_stats();
|
|
||||||
}
|
|
||||||
|
|
||||||
progress.value = iter;
|
|
||||||
}
|
|
||||||
|
|
||||||
function do_stats() {
|
|
||||||
var output = document.getElementById("output");
|
|
||||||
var stats = {
|
|
||||||
mean: ss.mean(results) + " ms",
|
|
||||||
min: ss.min(results),
|
|
||||||
max: ss.max(results),
|
|
||||||
med_abs_dev: ss.median_absolute_deviation(results),
|
|
||||||
};
|
|
||||||
|
|
||||||
var t = document.createElement("table");
|
|
||||||
var tbody = document.createElement("tbody");
|
|
||||||
var keys = Object.keys(stats);
|
|
||||||
keys.forEach(function(key) {
|
|
||||||
var row = document.createElement("tr");
|
|
||||||
|
|
||||||
var key_cell = document.createElement("td");
|
|
||||||
var key_cell_text = document.createTextNode(key);
|
|
||||||
key_cell.appendChild(key_cell_text);
|
|
||||||
row.appendChild(key_cell);
|
|
||||||
|
|
||||||
var val_cell = document.createElement("td");
|
|
||||||
var val_cell_text = document.createTextNode(stats[key]);
|
|
||||||
val_cell.appendChild(val_cell_text);
|
|
||||||
row.appendChild(val_cell);
|
|
||||||
|
|
||||||
tbody.appendChild(row);
|
|
||||||
});
|
|
||||||
|
|
||||||
t.appendChild(tbody);
|
|
||||||
output.appendChild(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
var query = parse_query();
|
|
||||||
var iterations = query.iterations || 10;
|
|
||||||
var progress = document.getElementById("progress");
|
|
||||||
progress.max = iterations;
|
|
||||||
|
|
||||||
run();
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
</html>
|
|
|
@ -1,31 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="stdout"></div>
|
|
||||||
</body>
|
|
||||||
<script src="../dist/filer.js"></script>
|
|
||||||
<script>
|
|
||||||
window.Filer = Filer;
|
|
||||||
var fs = new Filer.FileSystem({
|
|
||||||
name: 'local',
|
|
||||||
flags: ['FORMAT']
|
|
||||||
});
|
|
||||||
|
|
||||||
//var buffer = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
|
|
||||||
//console.log('buffer', buffer);
|
|
||||||
//var data = new Uint8Array(buffer.length);
|
|
||||||
|
|
||||||
try {
|
|
||||||
fs.readdir('\u0000', function(error, files) {
|
|
||||||
if(error) throw error;
|
|
||||||
console.log('contents:', files);
|
|
||||||
});
|
|
||||||
} catch(e) {
|
|
||||||
console.error(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
</html>
|
|
|
@ -1,35 +0,0 @@
|
||||||
var write_buffer = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]);
|
|
||||||
var read_buffer = new Uint8Array(16);
|
|
||||||
|
|
||||||
var fs = new Filer.FileSystem('local');
|
|
||||||
fs.mkdir('/tmp');
|
|
||||||
fs.open('/tmp/', 'w+', function(error, fd) {
|
|
||||||
if(error) return console.error(error);
|
|
||||||
fs.write(fd, ...);
|
|
||||||
fs.read(fd, ...);
|
|
||||||
});
|
|
||||||
|
|
||||||
fs.then(
|
|
||||||
function() {
|
|
||||||
return this.mkdir('/tmp');
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
var fd = fs.open('/myfile.txt', fs.RW);
|
|
||||||
|
|
||||||
fd.then(
|
|
||||||
function() {
|
|
||||||
return this.write(write_buffer);
|
|
||||||
}
|
|
||||||
).then(
|
|
||||||
function(nbytes) {
|
|
||||||
this.seek(-nbytes);
|
|
||||||
return this.read(read_buffer);
|
|
||||||
}
|
|
||||||
).then(
|
|
||||||
function(nbytes) {
|
|
||||||
console.log(read_buffer);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
});
|
|
|
@ -1,14 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<link rel='stylesheet' href='IndexedDBViewer.css'></link>
|
|
||||||
</head>
|
|
||||||
<script src="jquery-1.10.0.min.js"></script>
|
|
||||||
<script src="Linq2IndexedDB.js"></script>
|
|
||||||
<script src="IndexedDBViewer.js"></script>
|
|
||||||
<body>
|
|
||||||
<div id="stdout"></div>
|
|
||||||
<div id="indexedDBViewer" data-dbName="local"></div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Loading…
Reference in New Issue