girder-large-image 1.22.1.dev3__tar.gz → 1.22.1.dev7__tar.gz
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.
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/PKG-INFO +1 -1
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/stylesheets/itemList.styl +3 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/templates/itemList.pug +8 -5
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/itemList.js +37 -1
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image.egg-info/PKG-INFO +1 -1
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image.egg-info/requires.txt +2 -2
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/LICENSE +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/README.rst +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/__init__.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/constants.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/girder_tilesource.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/loadmodelcache.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/models/__init__.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/models/image_item.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/rest/__init__.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/rest/large_image_resource.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/rest/tiles.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/eventStream.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/extra/.gitignore +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/index.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/main.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/package.json +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/routes.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/stylesheets/fileList.styl +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/stylesheets/imageViewerSelectWidget.styl +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/stylesheets/itemView.styl +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/stylesheets/itemViewCodemirror.styl +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/stylesheets/largeImageConfig.styl +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/templates/imageViewerSelectWidget.pug +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/templates/itemView.pug +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/templates/itemViewCodemirror.pug +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/templates/largeImageConfig.pug +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/templates/largeImage_fileAction.pug +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/configView.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/fileList.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/imageViewerSelectWidget.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/imageViewerWidget/base.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/imageViewerWidget/geojs.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/imageViewerWidget/index.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/imageViewerWidget/leaflet.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/imageViewerWidget/openlayers.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/imageViewerWidget/openseadragon.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/imageViewerWidget/setFrameQuad.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/imageViewerWidget/slideatlas.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/index.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/itemView.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/itemViewCodemirror.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/views/itemViewWidget.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/vue/colors.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/vue/components/CompositeLayers.vue +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/vue/components/DualInput.vue +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/vue/components/FrameSelector.vue +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/web_client/webpack.helper.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image.egg-info/SOURCES.txt +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image.egg-info/dependency_links.txt +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image.egg-info/entry_points.txt +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image.egg-info/not-zip-safe +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image.egg-info/top_level.txt +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/setup.cfg +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/setup.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/__init__.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/conftest.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/girder_utilities.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/test_large_image.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/test_tiles_rest.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/test_web_client.py +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/web_client_specs/.eslintrc +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/web_client_specs/imageViewerSpec.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/web_client_specs/largeImageSpec.js +0 -0
- {girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/web_client_specs/otherFeatures.js +0 -0
|
@@ -46,13 +46,16 @@ ul.g-item-list.li-item-list
|
|
|
46
46
|
- var imageName = column.value === 'thumbnail' ? column.value : `images/${column.value}`;
|
|
47
47
|
img.waiting(deferred-src=`${apiRoot}/item/${item.id}/tiles/${imageName}?width=${column.width || 160}&height=${column.height || 100}`)
|
|
48
48
|
else if column.type === 'metadata'
|
|
49
|
+
-
|
|
50
|
+
let value = item.get('meta') || {}
|
|
51
|
+
column.value.split('.').forEach((part) => {
|
|
52
|
+
value = (value || {})[part];
|
|
53
|
+
})
|
|
49
54
|
span.large_image_metadata
|
|
50
|
-
-
|
|
51
|
-
let value = item.get('meta') || {}
|
|
52
|
-
column.value.split('.').forEach((part) => {
|
|
53
|
-
value = (value || {})[part];
|
|
54
|
-
})
|
|
55
55
|
= value
|
|
56
|
+
if value
|
|
57
|
+
span.li-item-list-cell-filter(title="Only show items that match this metadata value exactly", filter-value=value, column-value=column.value)
|
|
58
|
+
i.icon-filter
|
|
56
59
|
if (hasMore && !paginated)
|
|
57
60
|
li.g-show-more
|
|
58
61
|
a.g-show-more-items
|
|
@@ -87,6 +87,7 @@ wrap(ItemListWidget, 'initialize', function (initialize, settings) {
|
|
|
87
87
|
this.render();
|
|
88
88
|
});
|
|
89
89
|
this.events['click .li-item-list-header.sortable'] = (evt) => sortColumn.call(this, evt);
|
|
90
|
+
this.events['click .li-item-list-cell-filter'] = (evt) => itemListCellFilter.call(this, evt);
|
|
90
91
|
this.delegateEvents();
|
|
91
92
|
this.setFlatten = (flatten) => {
|
|
92
93
|
if (!!flatten !== !!this._recurse) {
|
|
@@ -219,6 +220,12 @@ wrap(ItemListWidget, 'render', function (render) {
|
|
|
219
220
|
addToRoute({filter: this._generalFilter});
|
|
220
221
|
};
|
|
221
222
|
|
|
223
|
+
this._clearFilter = (evt) => {
|
|
224
|
+
this._generalFilter = '';
|
|
225
|
+
this._setFilter();
|
|
226
|
+
addToRoute({filter: this._generalFilter});
|
|
227
|
+
};
|
|
228
|
+
|
|
222
229
|
this._unescapePhrase = (val) => {
|
|
223
230
|
if (val !== undefined) {
|
|
224
231
|
val = val.replace('\\\'', '\'').replace('\\"', '"').replace('\\\\', '\\');
|
|
@@ -292,6 +299,9 @@ wrap(ItemListWidget, 'render', function (render) {
|
|
|
292
299
|
}
|
|
293
300
|
if (key && exact) {
|
|
294
301
|
clause.push({[key]: {$regex: '^' + phrase + '$', $options: 'i'}});
|
|
302
|
+
if (!_.isNaN(numval)) {
|
|
303
|
+
clause.push({[key]: {$eq: numval}});
|
|
304
|
+
}
|
|
295
305
|
} else if (key) {
|
|
296
306
|
clause.push({[key]: {$regex: phrase, $options: 'i'}});
|
|
297
307
|
if (!_.isNaN(numval)) {
|
|
@@ -352,12 +362,18 @@ wrap(ItemListWidget, 'render', function (render) {
|
|
|
352
362
|
'Column and value names can be quoted to include spaces (single quotes for substring match, double quotes for exact value match). ' +
|
|
353
363
|
'If <column>:-<value1>[,<value2>...] is specified, matches will exclude the list of values. ' +
|
|
354
364
|
'Non-exact matches without a column specifier will also match columns that start with the specified value. ' +
|
|
355
|
-
'"></input
|
|
365
|
+
'"></input>' +
|
|
366
|
+
'<span class="li-item-list-filter-clear"><i class="icon-cancel"></i></span>' +
|
|
367
|
+
'</span>');
|
|
356
368
|
if (this._generalFilter) {
|
|
357
369
|
root.find('.li-item-list-filter-input').val(this._generalFilter);
|
|
358
370
|
}
|
|
359
371
|
this.parentView.events['change .li-item-list-filter-input'] = this._updateFilter;
|
|
360
372
|
this.parentView.events['input .li-item-list-filter-input'] = this._updateFilter;
|
|
373
|
+
this.parentView.events['click .li-item-list-filter-clear'] = (evt) => {
|
|
374
|
+
this.parentView.$el.find('.li-item-list-filter-input').val('');
|
|
375
|
+
this._clearFilter();
|
|
376
|
+
};
|
|
361
377
|
this.parentView.delegateEvents();
|
|
362
378
|
}
|
|
363
379
|
}
|
|
@@ -481,4 +497,24 @@ function sortColumn(evt) {
|
|
|
481
497
|
}
|
|
482
498
|
}
|
|
483
499
|
|
|
500
|
+
function itemListCellFilter(evt) {
|
|
501
|
+
evt.preventDefault();
|
|
502
|
+
const cell = $(evt.target).closest('.li-item-list-cell-filter');
|
|
503
|
+
let filter = this._generalFilter || '';
|
|
504
|
+
let val = cell.attr('filter-value');
|
|
505
|
+
let col = cell.attr('column-value');
|
|
506
|
+
if (/[ '\\]/.exec(col)) {
|
|
507
|
+
col = "'" + col.replace('\\', '\\\\').replace("'", "\\'") + "'";
|
|
508
|
+
}
|
|
509
|
+
val = val.replace('\\', '\\\\').replace('"', '\\"');
|
|
510
|
+
filter += ` ${col}:"${val}"`;
|
|
511
|
+
filter = filter.trim();
|
|
512
|
+
this.$el.closest('.g-hierarchy-widget').find('.li-item-list-filter-input').val(filter);
|
|
513
|
+
this._generalFilter = filter;
|
|
514
|
+
this._setFilter();
|
|
515
|
+
addToRoute({filter: this._generalFilter});
|
|
516
|
+
this._setSort();
|
|
517
|
+
return false;
|
|
518
|
+
}
|
|
519
|
+
|
|
484
520
|
export default ItemListWidget;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
girder>=3.1.18
|
|
2
2
|
girder-jobs>=3.0.3
|
|
3
|
-
large_image>=1.22.1.
|
|
3
|
+
large_image>=1.22.1.dev7
|
|
4
4
|
|
|
5
5
|
[:python_version < "3.8"]
|
|
6
6
|
importlib-metadata<5
|
|
7
7
|
|
|
8
8
|
[tasks]
|
|
9
|
-
large-image-tasks[girder]>=1.22.1.
|
|
9
|
+
large-image-tasks[girder]>=1.22.1.dev7
|
|
10
10
|
girder-worker[girder]>=0.6.0
|
|
File without changes
|
|
File without changes
|
{girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/__init__.py
RENAMED
|
File without changes
|
{girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/girder_large_image/rest/tiles.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/girder_utilities.py
RENAMED
|
File without changes
|
{girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/test_large_image.py
RENAMED
|
File without changes
|
{girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/test_tiles_rest.py
RENAMED
|
File without changes
|
{girder-large-image-1.22.1.dev3 → girder-large-image-1.22.1.dev7}/test_girder/test_web_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|