Add BCF Thumbnail column

(cherry picked from commit e86fffecb6)
pull/7476/head
Wieland Lindenthal 5 years ago
parent 2b45ee2a51
commit 141a5bf645
  1. 39
      frontend/src/app/modules/bcf/fields/display/bcf-display-field.initializer.ts
  2. 45
      frontend/src/app/modules/bcf/fields/display/bcf-thumbnail-field.module.ts
  3. 5
      frontend/src/app/modules/bcf/openproject-bcf.module.ts
  4. 1
      modules/bcf/lib/open_project/bcf/engine.rb

@ -0,0 +1,39 @@
// -- copyright
// OpenProject is a project management system.
// Copyright (C) 2012-2015 the OpenProject Foundation (OPF)
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License version 3.
//
// OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
// Copyright (C) 2006-2013 Jean-Philippe Lang
// Copyright (C) 2010-2013 the ChiliProject Team
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// See doc/COPYRIGHT.rdoc for more details.
// ++
import {DisplayFieldService} from "core-app/modules/fields/display/display-field.service";
import {BcfThumbnailDisplayField} from "core-app/modules/bcf/fields/display/bcf-thumbnail-field.module";
export function initializeBcfDisplayFields(displayFieldService:DisplayFieldService) {
return () => {
displayFieldService
.addFieldType(BcfThumbnailDisplayField, 'bcfThumbnail', [
'Thumbnail'
]);
};
}

@ -0,0 +1,45 @@
// -- copyright
// OpenProject is a project management system.
// Copyright (C) 2012-2015 the OpenProject Foundation (OPF)
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License version 3.
//
// OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
// Copyright (C) 2006-2013 Jean-Philippe Lang
// Copyright (C) 2010-2013 the ChiliProject Team
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// See doc/COPYRIGHT.rdoc for more details.
// ++
import {DisplayField} from "core-app/modules/fields/display/display-field.module";
import {PathHelperService} from "core-app/modules/common/path-helper/path-helper.service";
export class BcfThumbnailDisplayField extends DisplayField {
protected pathHelper:PathHelperService = this.$injector.get(PathHelperService);
public render(element:HTMLElement, displayText:string):void {
if (_.get(this, 'resource.bcf.viewpoints[0]')) {
let vp = this.resource.bcf.viewpoints[0];
element.innerHTML = `
<img src="${this.pathHelper.attachmentDownloadPath(vp.id, vp.file_name)}" style="height: 40px;">
`;
} else {
element.innerHTML = '';
}
}
}

@ -26,10 +26,12 @@
// See doc/COPYRIGHT.rdoc for more details.
// ++
import {NgModule} from '@angular/core';
import {APP_INITIALIZER, NgModule} from '@angular/core';
import {OpenprojectCommonModule} from "core-app/modules/common/openproject-common.module";
import {BcfWpSingleViewComponent} from "core-app/modules/bcf/bcf-wp-single-view/bcf-wp-single-view.component";
import {NgxGalleryModule} from "ngx-gallery";
import {DisplayFieldService} from "core-app/modules/fields/display/display-field.service";
import {initializeBcfDisplayFields} from "core-app/modules/bcf/fields/display/bcf-display-field.initializer";
@NgModule({
@ -38,6 +40,7 @@ import {NgxGalleryModule} from "ngx-gallery";
NgxGalleryModule,
],
providers: [
{ provide: APP_INITIALIZER, useFactory: initializeBcfDisplayFields, deps: [DisplayFieldService], multi: true },
],
declarations: [
BcfWpSingleViewComponent,

@ -124,5 +124,6 @@ module OpenProject::Bcf
::Queries::Register.filter ::Query, OpenProject::Bcf::BcfIssueAssociatedFilter
::Queries::Register.column ::Query, OpenProject::Bcf::QueryBcfThumbnailColumn
end
end
end

Loading…
Cancel
Save