mirror of https://github.com/perkeep/perkeep.git
Merge "Render containers with the camliContentImage attr as folders for now."
This commit is contained in:
commit
6c78cb5c22
|
@ -103,6 +103,7 @@ cam.BlobItemGenericContent.Handler.prototype.getAspectRatio = function() {
|
|||
};
|
||||
|
||||
cam.BlobItemGenericContent.Handler.prototype.createContent = function(size) {
|
||||
// TODO(aa): In the case of a permanode that is a container (cam.permanodeUtils.isContainer()) and has a camliContentImage, it would be nice to show that image somehow along with the folder icon.
|
||||
return cam.BlobItemGenericContent({
|
||||
href: this.href_,
|
||||
size: size,
|
||||
|
@ -127,6 +128,7 @@ cam.BlobItemGenericContent.Handler.prototype.getThumbType_ = function() {
|
|||
}
|
||||
|
||||
// Using the directory icon for any random permanode is a bit weird. Ideally we'd use file for that. The problem is that we can't tell the difference between a permanode that is representing an empty dynamic set and a permanode that is representing something else entirely.
|
||||
// And unfortunately, the UI has a big prominent button that says 'new set', and it looks funny if the new set is shown as a file icon :(
|
||||
if (m.camliType == 'permanode') {
|
||||
return 'folder';
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ goog.provide('cam.BlobItemImageContent');
|
|||
goog.require('goog.math.Size');
|
||||
|
||||
goog.require('cam.math');
|
||||
goog.require('cam.permanodeUtils');
|
||||
goog.require('cam.PyramidThrobber');
|
||||
goog.require('cam.Thumber');
|
||||
|
||||
|
@ -110,13 +111,20 @@ cam.BlobItemImageContent.getHandler = function(blobref, searchSession, href) {
|
|||
}
|
||||
|
||||
var m = searchSession.getMeta(blobref);
|
||||
if (m.camliType == 'permanode') {
|
||||
var cci = cam.permanodeUtils.getSingleAttr(m.permanode, 'camliContentImage');
|
||||
if (cci) {
|
||||
var ccim = searchSession.getResolvedMeta(cci);
|
||||
if (ccim) {
|
||||
return new cam.BlobItemImageContent.Handler(ccim, href, searchSession.getTitle(blobref));
|
||||
}
|
||||
if (m.camliType != 'permanode') {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Sets can have the camliContentImage attr to indicate a user-chosen "cover image" for the entire set. Until we have some rendering for those, the folder in the generic handler is a better fit than the single image.
|
||||
if (cam.permanodeUtils.isContainer(m.permanode)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var cci = cam.permanodeUtils.getSingleAttr(m.permanode, 'camliContentImage');
|
||||
if (cci) {
|
||||
var ccim = searchSession.getResolvedMeta(cci);
|
||||
if (ccim) {
|
||||
return new cam.BlobItemImageContent.Handler(ccim, href, searchSession.getTitle(blobref));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ cam.ContainerDetail.getAspect = function(detailURL, handlers, history, getSearch
|
|||
}
|
||||
|
||||
// TODO(aa): Also handle directories and static sets.
|
||||
if (!goog.object.some(m.permanode.attr, function(v, k) { return k == 'camliMember' || goog.string.startsWith(k, 'camliPath:'); })) {
|
||||
if (!cam.permanodeUtils.isContainer(m.permanode)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -25,3 +25,7 @@ cam.permanodeUtils.getSingleAttr = function(permanode, name) {
|
|||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
cam.permanodeUtils.isContainer = function(permanode) {
|
||||
return goog.object.some(permanode.attr, function(v, k) { return k == 'camliMember' || goog.string.startsWith(k, 'camliPath:'); });
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue