From de9eb9cf10e377303ca272b3e27f4c53318bc690 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 11:08:46 -0400 Subject: [PATCH 01/22] Add a document slots component. --- front/current/components/project/slots.component.html | 0 front/current/components/project/slots.component.ts | 10 ++++++++++ 2 files changed, 10 insertions(+) create mode 100644 front/current/components/project/slots.component.html create mode 100644 front/current/components/project/slots.component.ts diff --git a/front/current/components/project/slots.component.html b/front/current/components/project/slots.component.html new file mode 100644 index 0000000..e69de29 diff --git a/front/current/components/project/slots.component.ts b/front/current/components/project/slots.component.ts new file mode 100644 index 0000000..3304e1a --- /dev/null +++ b/front/current/components/project/slots.component.ts @@ -0,0 +1,10 @@ +import { Component } from 'angular2/core'; +import { config } from '../../config'; + + +@Component({ + selector: 'document-slots', + templateUrl: config.static_url + '/components/project/slots.component.html' +}) +export class SlotsComponent { +}; -- GitLab From ab997012c6e04f4f7cf337233c8d9f9f08141abe Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 11:09:32 -0400 Subject: [PATCH 02/22] Use the document slots component in the project details component. --- front/current/components/project/detail.component.html | 1 + front/current/components/project/detail.component.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/front/current/components/project/detail.component.html b/front/current/components/project/detail.component.html index 78dc2f9..4269783 100644 --- a/front/current/components/project/detail.component.html +++ b/front/current/components/project/detail.component.html @@ -28,3 +28,4 @@ + diff --git a/front/current/components/project/detail.component.ts b/front/current/components/project/detail.component.ts index a18e00f..05bc6fd 100644 --- a/front/current/components/project/detail.component.ts +++ b/front/current/components/project/detail.component.ts @@ -11,12 +11,13 @@ import { ContactMethodService } from '../../services/project/contact-method.serv import { AddressComponent } from './address.component'; import { ContactsComponent } from './contacts.component'; +import { SlotsComponent } from './slots.component'; @Component({ selector: 'project', templateUrl: config.static_url + '/components/project/detail.component.html', - directives: [ROUTER_DIRECTIVES, AddressComponent, ContactsComponent] + directives: [ROUTER_DIRECTIVES, AddressComponent, ContactsComponent, SlotsComponent] }) export class ProjectDetailComponent implements OnInit { constructor( -- GitLab From 74e960367dcdeb3ae208339aed910b309a371f1b Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 11:36:45 -0400 Subject: [PATCH 03/22] Fetch document slots in the project detail component. --- front/current/components/project/detail.component.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/front/current/components/project/detail.component.ts b/front/current/components/project/detail.component.ts index 05bc6fd..9fd2c0e 100644 --- a/front/current/components/project/detail.component.ts +++ b/front/current/components/project/detail.component.ts @@ -8,6 +8,7 @@ import { ProjectService } from '../../services/project/project.service'; import { AddressService } from '../../services/project/address.service'; import { ContactService } from '../../services/project/contact.service'; import { ContactMethodService } from '../../services/project/contact-method.service'; +import { DocumentSlotService } from '../../services/project/document-slot.service'; import { AddressComponent } from './address.component'; import { ContactsComponent } from './contacts.component'; @@ -26,7 +27,8 @@ export class ProjectDetailComponent implements OnInit { public projectService:ProjectService, public addressService:AddressService, public contactService:ContactService, - public contactMethodService:ContactMethodService + public contactMethodService:ContactMethodService, + public documentSlotService:DocumentSlotService ) {}; project:Model; @@ -34,6 +36,7 @@ export class ProjectDetailComponent implements OnInit { address:Model; contacts:Collection; contact_methods:Collection; + document_slots:Collection; ngOnInit() { let project_id = this._routeParams.get('id'); @@ -45,6 +48,8 @@ export class ProjectDetailComponent implements OnInit { .setFilters({'project_id': project_id})); this.contact_methods = (this._restService.Collection(this.contactMethodService, []) .setFilters({'project_id': project_id})); + this.document_slots = (this._restService.Collection(this.documentSlotService, []) + .setFilters({'project_id': project_id})); this.fetch(); }; @@ -57,5 +62,6 @@ export class ProjectDetailComponent implements OnInit { }); this.contacts.fetch(); this.contact_methods.fetch(); + this.document_slots.fetch(); }; }; -- GitLab From 753e4fcb777fa96e93500e8f47d44180c09efb16 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 11:38:27 -0400 Subject: [PATCH 04/22] Pass document slots into the document slots component as an input. --- front/current/components/project/detail.component.html | 2 +- front/current/components/project/slots.component.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/front/current/components/project/detail.component.html b/front/current/components/project/detail.component.html index 4269783..a979964 100644 --- a/front/current/components/project/detail.component.html +++ b/front/current/components/project/detail.component.html @@ -28,4 +28,4 @@ - + diff --git a/front/current/components/project/slots.component.ts b/front/current/components/project/slots.component.ts index 3304e1a..be10c7e 100644 --- a/front/current/components/project/slots.component.ts +++ b/front/current/components/project/slots.component.ts @@ -1,10 +1,13 @@ import { Component } from 'angular2/core'; import { config } from '../../config'; +import { Collection } from '../../services/rest.service'; @Component({ selector: 'document-slots', - templateUrl: config.static_url + '/components/project/slots.component.html' + templateUrl: config.static_url + '/components/project/slots.component.html', + inputs: ['document_slots'] }) export class SlotsComponent { + document_slots:Collection; }; -- GitLab From 4839f7178adc15cfd4aca96ca2789c11efb55e01 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 15:47:06 -0400 Subject: [PATCH 05/22] Display titles of document slots. --- .../components/project/slots.component.html | 10 ++++++++++ .../components/project/slots.component.ts | 20 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/front/current/components/project/slots.component.html b/front/current/components/project/slots.component.html index e69de29..5d9c9f8 100644 --- a/front/current/components/project/slots.component.html +++ b/front/current/components/project/slots.component.html @@ -0,0 +1,10 @@ +

Documents

+ +
+

+
+
+
+
{{ slot.title }}
+
+
diff --git a/front/current/components/project/slots.component.ts b/front/current/components/project/slots.component.ts index be10c7e..85e0513 100644 --- a/front/current/components/project/slots.component.ts +++ b/front/current/components/project/slots.component.ts @@ -9,5 +9,25 @@ import { Collection } from '../../services/rest.service'; inputs: ['document_slots'] }) export class SlotsComponent { + slots:any[] = [ + {name: 'utility-bills', title: 'Utility Bills'}, + {name: 'sceep-forms', title: 'SCEEP Forms'}, + {name: 'pea-reports', title: 'PEA Reports'}, + {name: 'balance-sheets', title: 'Balance Sheets'}, + {name: 'income-statements', title: 'Income Statements'}, + {name: 'financial-reports', title: 'Financial Reports'}, + {name: 'taxes', title: 'Taxes'}, + {name: 'credit-reports', title: 'Credit Reports'}, + {name: 'certificate-of-incorporation', title: 'Certificate of Incorporation'}, + {name: 'bank-statements', title: 'Bank Statements'}, + {name: '501(c)3-confirmation', title: '501(c)3 Confirmation'}, + {name: 'proof-of-insurance', title: 'Proof of Property and Liability Insurance'}, + {name: 'property-appraisal', title: 'Property Appraisal'}, + {name: 'title-of-location', title: 'Title of Location'}, + {name: 'nyserda', title: 'NYSERDA Request for Financing Form'}, + {name: 'loan-application', title: 'Loan Application'}, + {name: 'contractor-quotes', title: 'Contractor Quotes'}, + {name: 'misc', title: 'Miscellaneous'} + ] document_slots:Collection; }; -- GitLab From e4f3fbf70986de9d17002bd44fd0160c96e23e66 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 16:05:41 -0400 Subject: [PATCH 06/22] Add a document slot component. --- .../current/components/project/slot.component.html | 0 front/current/components/project/slot.component.ts | 14 ++++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 front/current/components/project/slot.component.html create mode 100644 front/current/components/project/slot.component.ts diff --git a/front/current/components/project/slot.component.html b/front/current/components/project/slot.component.html new file mode 100644 index 0000000..e69de29 diff --git a/front/current/components/project/slot.component.ts b/front/current/components/project/slot.component.ts new file mode 100644 index 0000000..704ce34 --- /dev/null +++ b/front/current/components/project/slot.component.ts @@ -0,0 +1,14 @@ +import { Component } from 'angular2/core'; +import { config } from '../../config'; +import { Collection } from '../../services/rest.service'; + + +@Component({ + selector: 'document-slot', + templateUrl: config.static_url + '/components/project/slot.component.html', + inputs: ['slot', 'document_slots'] +}) +export class SlotComponent { + slot:any; + document_slots:Collection; +}; -- GitLab From 63fb56c36be3c684b9fe5167ebb6d8fb248bbe94 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 16:06:15 -0400 Subject: [PATCH 07/22] Tie the individual document slot component into its list. --- .../components/project/slots.component.html | 4 +++ .../components/project/slots.component.ts | 29 +++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/front/current/components/project/slots.component.html b/front/current/components/project/slots.component.html index 5d9c9f8..07fa54f 100644 --- a/front/current/components/project/slots.component.html +++ b/front/current/components/project/slots.component.html @@ -6,5 +6,9 @@
{{ slot.title }}
+
diff --git a/front/current/components/project/slots.component.ts b/front/current/components/project/slots.component.ts index 85e0513..1236e74 100644 --- a/front/current/components/project/slots.component.ts +++ b/front/current/components/project/slots.component.ts @@ -1,14 +1,25 @@ import { Component } from 'angular2/core'; + import { config } from '../../config'; -import { Collection } from '../../services/rest.service'; + +import { RestService, Collection } from '../../services/rest.service'; +import { DocumentSlotService } from '../../services/project/document-slot.service'; + +import { SlotComponent } from './slot.component'; @Component({ selector: 'document-slots', templateUrl: config.static_url + '/components/project/slots.component.html', - inputs: ['document_slots'] + inputs: ['document_slots'], + directives: [SlotComponent] }) export class SlotsComponent { + constructor( + private _restService:RestService, + public documentSlotService:DocumentSlotService + ) {}; + slots:any[] = [ {name: 'utility-bills', title: 'Utility Bills'}, {name: 'sceep-forms', title: 'SCEEP Forms'}, @@ -30,4 +41,18 @@ export class SlotsComponent { {name: 'misc', title: 'Miscellaneous'} ] document_slots:Collection; + + public getDocumentSlots(slot:any) { + // Gets a subset of document slots for the given slot description. + let documentSlots = []; + let collection = this._restService.Collection(this.documentSlotService, []); + + for (let documentSlot of this.document_slots.models) { + if (documentSlot.data['role'] == slot.name) + documentSlots.push(documentSlot); + } + + collection.models = documentSlots; + return collection; + } }; -- GitLab From 565e1514dfc99a78eb2af734dd35d84c038a25bc Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 16:08:14 -0400 Subject: [PATCH 08/22] Move document slot title to the individual component. --- front/current/components/project/slot.component.html | 1 + front/current/components/project/slots.component.html | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/front/current/components/project/slot.component.html b/front/current/components/project/slot.component.html index e69de29..6f285e1 100644 --- a/front/current/components/project/slot.component.html +++ b/front/current/components/project/slot.component.html @@ -0,0 +1 @@ +
{{ slot.title }}
diff --git a/front/current/components/project/slots.component.html b/front/current/components/project/slots.component.html index 07fa54f..fe3cdb0 100644 --- a/front/current/components/project/slots.component.html +++ b/front/current/components/project/slots.component.html @@ -5,7 +5,6 @@
-
{{ slot.title }}
Date: Fri, 22 Apr 2016 16:13:40 -0400 Subject: [PATCH 09/22] Fetch documents in the project detail component. --- .../components/project/detail.component.ts | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/front/current/components/project/detail.component.ts b/front/current/components/project/detail.component.ts index 9fd2c0e..c2c0812 100644 --- a/front/current/components/project/detail.component.ts +++ b/front/current/components/project/detail.component.ts @@ -9,6 +9,7 @@ import { AddressService } from '../../services/project/address.service'; import { ContactService } from '../../services/project/contact.service'; import { ContactMethodService } from '../../services/project/contact-method.service'; import { DocumentSlotService } from '../../services/project/document-slot.service'; +import { DocumentService } from '../../services/document/document.service'; import { AddressComponent } from './address.component'; import { ContactsComponent } from './contacts.component'; @@ -28,7 +29,8 @@ export class ProjectDetailComponent implements OnInit { public addressService:AddressService, public contactService:ContactService, public contactMethodService:ContactMethodService, - public documentSlotService:DocumentSlotService + public documentSlotService:DocumentSlotService, + public documentService:DocumentService ) {}; project:Model; @@ -37,6 +39,7 @@ export class ProjectDetailComponent implements OnInit { contacts:Collection; contact_methods:Collection; document_slots:Collection; + documents:Collection; ngOnInit() { let project_id = this._routeParams.get('id'); @@ -50,6 +53,7 @@ export class ProjectDetailComponent implements OnInit { .setFilters({'project_id': project_id})); this.document_slots = (this._restService.Collection(this.documentSlotService, []) .setFilters({'project_id': project_id})); + this.documents = this._restService.Collection(this.documentService, []); this.fetch(); }; @@ -62,6 +66,20 @@ export class ProjectDetailComponent implements OnInit { }); this.contacts.fetch(); this.contact_methods.fetch(); - this.document_slots.fetch(); + this.document_slots.fetch(this.fetchDocuments.bind(this)); + }; + + fetchDocuments() { + // Filter the documents collection by an array of keys from the document slots. + let keys = []; + + for (let document_slot of this.document_slots.models) { + let key = document_slot.data['document_key']; + keys.push(key); + } + + if (!keys.length) return; + + this.documents.setFilters({keys: keys}).fetch(); }; }; -- GitLab From 8032ead3285d8d92365520caf53900d7b90d8c97 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 16:35:04 -0400 Subject: [PATCH 10/22] Add document bindings to project detail components. --- .../components/project/detail.component.html | 5 +++- .../components/project/slot.component.ts | 4 ++- .../components/project/slots.component.html | 2 ++ .../components/project/slots.component.ts | 28 +++++++++++++++++-- 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/front/current/components/project/detail.component.html b/front/current/components/project/detail.component.html index a979964..fe5bf33 100644 --- a/front/current/components/project/detail.component.html +++ b/front/current/components/project/detail.component.html @@ -28,4 +28,7 @@
- + diff --git a/front/current/components/project/slot.component.ts b/front/current/components/project/slot.component.ts index 704ce34..ecc866a 100644 --- a/front/current/components/project/slot.component.ts +++ b/front/current/components/project/slot.component.ts @@ -6,9 +6,11 @@ import { Collection } from '../../services/rest.service'; @Component({ selector: 'document-slot', templateUrl: config.static_url + '/components/project/slot.component.html', - inputs: ['slot', 'document_slots'] + inputs: ['slot', 'document_slots', 'documents', 'parent_documents'] }) export class SlotComponent { slot:any; document_slots:Collection; + documents:Collection; + parent_documents:Collection; }; diff --git a/front/current/components/project/slots.component.html b/front/current/components/project/slots.component.html index fe3cdb0..a0ebfec 100644 --- a/front/current/components/project/slots.component.html +++ b/front/current/components/project/slots.component.html @@ -7,6 +7,8 @@
diff --git a/front/current/components/project/slots.component.ts b/front/current/components/project/slots.component.ts index 1236e74..f10a543 100644 --- a/front/current/components/project/slots.component.ts +++ b/front/current/components/project/slots.component.ts @@ -4,6 +4,7 @@ import { config } from '../../config'; import { RestService, Collection } from '../../services/rest.service'; import { DocumentSlotService } from '../../services/project/document-slot.service'; +import { DocumentService } from '../../services/document/document.service'; import { SlotComponent } from './slot.component'; @@ -11,13 +12,14 @@ import { SlotComponent } from './slot.component'; @Component({ selector: 'document-slots', templateUrl: config.static_url + '/components/project/slots.component.html', - inputs: ['document_slots'], + inputs: ['document_slots', 'documents'], directives: [SlotComponent] }) export class SlotsComponent { constructor( private _restService:RestService, - public documentSlotService:DocumentSlotService + public documentSlotService:DocumentSlotService, + public documentService:DocumentService ) {}; slots:any[] = [ @@ -41,6 +43,7 @@ export class SlotsComponent { {name: 'misc', title: 'Miscellaneous'} ] document_slots:Collection; + documents:Collection; public getDocumentSlots(slot:any) { // Gets a subset of document slots for the given slot description. @@ -54,5 +57,26 @@ export class SlotsComponent { collection.models = documentSlots; return collection; + }; + + public getDocuments(slot:any) { + // Gets a subset of documents for the given slot description. + let documents = []; + let collection = this._restService.Collection(this.documentService, []); + let document_slots = this.getDocumentSlots(slot); + let keys = []; + + for (let document_slot of document_slots.models) { + let key = document_slot.data['document_key']; + keys.push(key); + } + + for (let document_ of this.documents.models) { + if (keys.indexOf(document_.data['key']) > -1) + documents.push(document_); + } + + collection.models = documents; + return collection; } }; -- GitLab From 425e93b6c3f96554e9cf953f87a9a47bfa07fcff Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 16:42:39 -0400 Subject: [PATCH 11/22] Add documents to the slot component. --- front/current/components/project/slot.component.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/front/current/components/project/slot.component.html b/front/current/components/project/slot.component.html index 6f285e1..061b508 100644 --- a/front/current/components/project/slot.component.html +++ b/front/current/components/project/slot.component.html @@ -1 +1,8 @@
{{ slot.title }}
+ + -- GitLab From 751fbe9e00a551ab09ad4494083410268ddad19a Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 17:02:07 -0400 Subject: [PATCH 12/22] Add new document slot component to the project detail component. --- .../components/project/detail.component.html | 1 + .../project/new-document-slot.component.html | 1 + .../project/new-document-slot.component.ts | 64 +++++++++++++++++++ .../components/project/slot.component.html | 8 +++ .../components/project/slot.component.ts | 10 ++- .../components/project/slots.component.html | 2 + .../components/project/slots.component.ts | 5 +- 7 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 front/current/components/project/new-document-slot.component.html create mode 100644 front/current/components/project/new-document-slot.component.ts diff --git a/front/current/components/project/detail.component.html b/front/current/components/project/detail.component.html index fe5bf33..08e5f39 100644 --- a/front/current/components/project/detail.component.html +++ b/front/current/components/project/detail.component.html @@ -29,6 +29,7 @@
diff --git a/front/current/components/project/new-document-slot.component.html b/front/current/components/project/new-document-slot.component.html new file mode 100644 index 0000000..974682d --- /dev/null +++ b/front/current/components/project/new-document-slot.component.html @@ -0,0 +1 @@ + diff --git a/front/current/components/project/new-document-slot.component.ts b/front/current/components/project/new-document-slot.component.ts new file mode 100644 index 0000000..739c11d --- /dev/null +++ b/front/current/components/project/new-document-slot.component.ts @@ -0,0 +1,64 @@ +import { Component, OnInit } from 'angular2/core'; + +import { config } from '../../config'; +import { RestService, Model, Collection } from '../../services/rest.service'; + +import { DocumentSlotService } from '../../services/project/document-slot.service'; +import { DocumentService } from '../../services/document/document.service'; + +@Component({ + selector: 'new-document-slot', + inputs: ['project', 'document_slots', 'documents', 'role'], + templateUrl: config.static_url + '/components/project/new-document-slot.component.html' +}) +export class NewDocumentSlotComponent implements OnInit { + constructor( + private _restService:RestService, + + public documentSlotService:DocumentSlotService, + public documentService:DocumentService + ) {}; + + public project:Model; + public document_slots:Collection; + public documents:Collection; + public role:string; + + public documentSlot:Model; + public document_:Model + + ngOnInit() { + this.documentSlot = this._restService.Model(this.documentSlotService, { + project_id: this.project.data['id'], + role: this.role + }); + this.document_ = this._restService.Model(this.documentService, {}); + }; + + public upload(e) { + let self = this; + + let el = e.currentTarget; + let file = el.files[0]; + let reader = new FileReader(); + + reader.addEventListener('load', () => { + self.document_ + .set({ + data: reader.result, + name: el.value.split(/(\\|\/)/g).pop() + }) + .save(() => { + self.documentSlot + .set({document_key: self.document_.data['key']}) + .save(() => { + self.documents.models.push(self.document_); + self.document_slots.models.push(self.documentSlot); + self.ngOnInit(); + }); + }); + }, false); + if (file) + reader.readAsDataURL(file); + }; +}; diff --git a/front/current/components/project/slot.component.html b/front/current/components/project/slot.component.html index 061b508..1d8eaa3 100644 --- a/front/current/components/project/slot.component.html +++ b/front/current/components/project/slot.component.html @@ -5,4 +5,12 @@ {{ document.data['name'] }} {{ document.data['created'] }} +
  • + +
  • diff --git a/front/current/components/project/slot.component.ts b/front/current/components/project/slot.component.ts index ecc866a..d26c46f 100644 --- a/front/current/components/project/slot.component.ts +++ b/front/current/components/project/slot.component.ts @@ -1,16 +1,22 @@ import { Component } from 'angular2/core'; import { config } from '../../config'; -import { Collection } from '../../services/rest.service'; +import { Model, Collection } from '../../services/rest.service'; +import { NewDocumentSlotComponent } from './new-document-slot.component'; @Component({ selector: 'document-slot', templateUrl: config.static_url + '/components/project/slot.component.html', - inputs: ['slot', 'document_slots', 'documents', 'parent_documents'] + inputs: [ + 'project', 'slot', 'document_slots', 'documents', 'parent_documents', + 'parent_document_slots'], + directives: [NewDocumentSlotComponent] }) export class SlotComponent { + project:Model; slot:any; document_slots:Collection; documents:Collection; parent_documents:Collection; + parent_document_slots:Collection; }; diff --git a/front/current/components/project/slots.component.html b/front/current/components/project/slots.component.html index a0ebfec..b94ea91 100644 --- a/front/current/components/project/slots.component.html +++ b/front/current/components/project/slots.component.html @@ -6,9 +6,11 @@
    diff --git a/front/current/components/project/slots.component.ts b/front/current/components/project/slots.component.ts index f10a543..00fcc4f 100644 --- a/front/current/components/project/slots.component.ts +++ b/front/current/components/project/slots.component.ts @@ -2,7 +2,7 @@ import { Component } from 'angular2/core'; import { config } from '../../config'; -import { RestService, Collection } from '../../services/rest.service'; +import { RestService, Model, Collection } from '../../services/rest.service'; import { DocumentSlotService } from '../../services/project/document-slot.service'; import { DocumentService } from '../../services/document/document.service'; @@ -12,7 +12,7 @@ import { SlotComponent } from './slot.component'; @Component({ selector: 'document-slots', templateUrl: config.static_url + '/components/project/slots.component.html', - inputs: ['document_slots', 'documents'], + inputs: ['project', 'document_slots', 'documents'], directives: [SlotComponent] }) export class SlotsComponent { @@ -42,6 +42,7 @@ export class SlotsComponent { {name: 'contractor-quotes', title: 'Contractor Quotes'}, {name: 'misc', title: 'Miscellaneous'} ] + project:Model document_slots:Collection; documents:Collection; -- GitLab From 15d62a8c694b79c3d2ca548d2c662061adddb652 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 17:07:29 -0400 Subject: [PATCH 13/22] Add download link to the document links in the project detail page. --- front/current/components/project/slot.component.html | 10 ++++++++-- front/current/components/project/slot.component.ts | 9 +++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/front/current/components/project/slot.component.html b/front/current/components/project/slot.component.html index 1d8eaa3..5fe5155 100644 --- a/front/current/components/project/slot.component.html +++ b/front/current/components/project/slot.component.html @@ -2,8 +2,14 @@
    -
    - -
    +
    -- GitLab From 2a5b959d43e1e8deda0806df46df43e4064e30c0 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 17:39:51 -0400 Subject: [PATCH 18/22] Add some spacing in the document slots section. --- .../assets/styles/components/_project.scss | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/front/current/assets/styles/components/_project.scss b/front/current/assets/styles/components/_project.scss index 3996cda..413adc9 100644 --- a/front/current/assets/styles/components/_project.scss +++ b/front/current/assets/styles/components/_project.scss @@ -14,7 +14,8 @@ project { header { display: flex; border-bottom: 1px solid $light-gray; - flex-basis: 220px; + flex-basis: 300px; + flex-grow: 0; .project-details, .project-contacts { padding: 10px; } .project-details { @@ -46,11 +47,20 @@ project { display: block; flex-grow: 1; overflow: auto; + padding: 10px; - ul.document-list { - list-style-type: none; + document-slot { + display: block; + margin: 10px; - li { margin-left: 10px; } + ul.document-list { + list-style-type: none; + + li { + margin-left: 10px; + margin-top: 5px; + } + } } } } -- GitLab From 9e83b4377420fd6df2a942c4f7c2902f8eb0ea0b Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 17:43:19 -0400 Subject: [PATCH 19/22] Add an upload icon. --- front/current/assets/fontello/config.json | 6 ++++++ .../assets/fontello/css/blocpower-codes.css | 3 ++- .../fontello/css/blocpower-embedded.css | 15 ++++++++------- .../fontello/css/blocpower-ie7-codes.css | 3 ++- .../assets/fontello/css/blocpower-ie7.css | 3 ++- .../current/assets/fontello/css/blocpower.css | 17 +++++++++-------- .../assets/fontello/font/blocpower.eot | Bin 8004 -> 8260 bytes .../assets/fontello/font/blocpower.svg | 2 ++ .../assets/fontello/font/blocpower.ttf | Bin 7832 -> 8088 bytes .../assets/fontello/font/blocpower.woff | Bin 4752 -> 4948 bytes .../assets/fontello/font/blocpower.woff2 | Bin 4008 -> 4124 bytes 11 files changed, 31 insertions(+), 18 deletions(-) diff --git a/front/current/assets/fontello/config.json b/front/current/assets/fontello/config.json index f560a3e..7785853 100644 --- a/front/current/assets/fontello/config.json +++ b/front/current/assets/fontello/config.json @@ -65,6 +65,12 @@ "css": "fax", "code": 59401, "src": "fontawesome" + }, + { + "uid": "128d63150a41800e0beff55235269542", + "css": "upload", + "code": 59402, + "src": "fontawesome" } ] } \ No newline at end of file diff --git a/front/current/assets/fontello/css/blocpower-codes.css b/front/current/assets/fontello/css/blocpower-codes.css index c206aaf..d35dd5d 100644 --- a/front/current/assets/fontello/css/blocpower-codes.css +++ b/front/current/assets/fontello/css/blocpower-codes.css @@ -8,4 +8,5 @@ .icon-handset:before { content: '\e806'; } /* '' */ .icon-mobile:before { content: '\e807'; } /* '' */ .icon-envelope:before { content: '\e808'; } /* '' */ -.icon-fax:before { content: '\e809'; } /* '' */ \ No newline at end of file +.icon-fax:before { content: '\e809'; } /* '' */ +.icon-upload:before { content: '\e80a'; } /* '' */ \ No newline at end of file diff --git a/front/current/assets/fontello/css/blocpower-embedded.css b/front/current/assets/fontello/css/blocpower-embedded.css index 4794422..64bac37 100644 --- a/front/current/assets/fontello/css/blocpower-embedded.css +++ b/front/current/assets/fontello/css/blocpower-embedded.css @@ -1,15 +1,15 @@ @font-face { font-family: 'blocpower'; - src: url('../font/blocpower.eot?54828926'); - src: url('../font/blocpower.eot?54828926#iefix') format('embedded-opentype'), - url('../font/blocpower.svg?54828926#blocpower') format('svg'); + src: url('../font/blocpower.eot?944541'); + src: url('../font/blocpower.eot?944541#iefix') format('embedded-opentype'), + url('../font/blocpower.svg?944541#blocpower') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'blocpower'; - src: url('data:application/octet-stream;base64,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') format('woff'), - url('data:application/octet-stream;base64,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RSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKyAAEAKrEABUKzCgIBCCqxAAVCsw4AAQgqsQAGQroCwAABAAkqsQAHQroAQAABAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbMMAgEMKrgB/4WwBI2xAgBEAAA=') format('truetype'); + src: url('data:application/octet-stream;base64,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') format('woff'), + url('data:application/octet-stream;base64,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') format('truetype'); } /* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ /* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ @@ -17,7 +17,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'blocpower'; - src: url('../font/blocpower.svg?54828926#blocpower') format('svg'); + src: url('../font/blocpower.svg?944541#blocpower') format('svg'); } } */ @@ -61,4 +61,5 @@ .icon-handset:before { content: '\e806'; } /* '' */ .icon-mobile:before { content: '\e807'; } /* '' */ .icon-envelope:before { content: '\e808'; } /* '' */ -.icon-fax:before { content: '\e809'; } /* '' */ \ No newline at end of file +.icon-fax:before { content: '\e809'; } /* '' */ +.icon-upload:before { content: '\e80a'; } /* '' */ \ No newline at end of file diff --git a/front/current/assets/fontello/css/blocpower-ie7-codes.css b/front/current/assets/fontello/css/blocpower-ie7-codes.css index 1371cb1..52046ba 100644 --- a/front/current/assets/fontello/css/blocpower-ie7-codes.css +++ b/front/current/assets/fontello/css/blocpower-ie7-codes.css @@ -8,4 +8,5 @@ .icon-handset { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-mobile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-envelope { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-fax { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file +.icon-fax { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file diff --git a/front/current/assets/fontello/css/blocpower-ie7.css b/front/current/assets/fontello/css/blocpower-ie7.css index 161ff92..f8e2262 100644 --- a/front/current/assets/fontello/css/blocpower-ie7.css +++ b/front/current/assets/fontello/css/blocpower-ie7.css @@ -19,4 +19,5 @@ .icon-handset { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-mobile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-envelope { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-fax { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file +.icon-fax { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-upload { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file diff --git a/front/current/assets/fontello/css/blocpower.css b/front/current/assets/fontello/css/blocpower.css index be81987..c755445 100644 --- a/front/current/assets/fontello/css/blocpower.css +++ b/front/current/assets/fontello/css/blocpower.css @@ -1,11 +1,11 @@ @font-face { font-family: 'blocpower'; - src: url('../font/blocpower.eot?92066164'); - src: url('../font/blocpower.eot?92066164#iefix') format('embedded-opentype'), - url('../font/blocpower.woff2?92066164') format('woff2'), - url('../font/blocpower.woff?92066164') format('woff'), - url('../font/blocpower.ttf?92066164') format('truetype'), - url('../font/blocpower.svg?92066164#blocpower') format('svg'); + src: url('../font/blocpower.eot?52046343'); + src: url('../font/blocpower.eot?52046343#iefix') format('embedded-opentype'), + url('../font/blocpower.woff2?52046343') format('woff2'), + url('../font/blocpower.woff?52046343') format('woff'), + url('../font/blocpower.ttf?52046343') format('truetype'), + url('../font/blocpower.svg?52046343#blocpower') format('svg'); font-weight: normal; font-style: normal; } @@ -15,7 +15,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'blocpower'; - src: url('../font/blocpower.svg?92066164#blocpower') format('svg'); + src: url('../font/blocpower.svg?52046343#blocpower') format('svg'); } } */ @@ -64,4 +64,5 @@ .icon-handset:before { content: '\e806'; } /* '' */ .icon-mobile:before { content: '\e807'; } /* '' */ .icon-envelope:before { content: '\e808'; } /* '' */ -.icon-fax:before { content: '\e809'; } /* '' */ \ No newline at end of file +.icon-fax:before { content: '\e809'; } /* '' */ +.icon-upload:before { content: '\e80a'; } /* '' */ \ No newline at end of file diff --git a/front/current/assets/fontello/font/blocpower.eot b/front/current/assets/fontello/font/blocpower.eot index cb1ef8ba62713411ab528cdf8fce4da3721e8ceb..38c80942c5fed9690229a7e7769c0519e2194646 100644 GIT binary patch delta 707 zcmXX@T}V_x6h7z9o!Pth-u9-hzYp%VZvLQ{i7W?JL3i@!tR#1c3gbh-rPf^0AljD#f3n*{D}+=VXAA1=78v)>!23%JKl= zhX9&2W=>ngA0!;3Ss5Fj8~wzN%>b|mq;G^q%wgx94|M=WH|c>85snT<^~NG$e<%`- z)yFR8ei8A6h?eomA+u=FwL|zl;i`xkvoNmD5#A;2oiHOK>4BTi=uS6)l(r_Pqu*z1 z-vJc=AbrW28nHf~Y}^9y*pD!Qs@)>hHG}|31h@vQuxg@NrT2wEh5+$0b=r|p?FH#D z*GLienzU!Xker5IsHE2vnr3gZc{M}D`2a21CU2{8mdobW*dWuO9Q<$;x`StBM8Gq^ z=x7EJi2z*@2IMmGFgO&HnM1w`TnOF=oQq2!xah8|IMUou@2RfvSNhA`HHVzMq7g+S zmbxkVYCEvTSKD?11Faq`V?LKujjf&79GB4TLSM7giLKQrSzHgRN?1{8h;`xON##{< z;)2w-^z?SWeEuF@o_d*iJt5||b~kU~buFc+s*+L-vCjFr6RUa>j}twG^!Lq7DjH3F z&8LEKWKw%kIy-0_{|Oq)7%Uv$|`MosA+`?l|Qp8nr-d)R1_*+4F9FB|3B v4NgB?*rX?)8|AE0M+q5{Hz?473OZ3m4Rt(V?-ZYQh#6~q(i~3uN__f1@9&&W delta 448 zcmXw!-z!657{|Zwd5^K3+2*&TSw@o8T*ws~QSPKrqBzaYrW{TzZOV_7k`(K8;ZiBN zkYXj8aIwFDD7mGSxD$$acJRDCJ&6z-xHVW zYRq7B_Bin;v1eS>L%032dw{bXkZz5Mspv_(bPmXSCx70U3>gotb*F$^Y_nBn74=e0 ztp-LWFbr;XKB_j_PlJpG(q%d{@n{tbQZ-@ipa+kO0i$DE+o{@h;5j`%S+w3*wV22W<2I+{m@qM{0 bYt$T9k~^*v&J=N0P%Lf=IvA3bg_ZUn)w^Vj diff --git a/front/current/assets/fontello/font/blocpower.svg b/front/current/assets/fontello/font/blocpower.svg index ad79828..5bbd3fb 100644 --- a/front/current/assets/fontello/font/blocpower.svg +++ b/front/current/assets/fontello/font/blocpower.svg @@ -25,6 +25,8 @@ + + \ No newline at end of file diff --git a/front/current/assets/fontello/font/blocpower.ttf b/front/current/assets/fontello/font/blocpower.ttf index 01a9b73af54b2978ea1c83b3d7cf58abecb39035..6473b344e6e8f02df119bb36d8eb8145e9a03003 100644 GIT binary patch delta 706 zcmXYuT}V_x6vxk*xifqB-rHTZ_47e(cUu+3OhgLuqa-4d2sKF}?B>_jx_Z%7R-x7h zDTyVN+k=li^biq2yAUEiF4bdDQbzR_Z1qqN_CciE+0B_dXXf|+&$+{#S#4YGSoX(% z17Ifr^bbWW`}3s_y~L|D{tnGXtL0`^0ocDle)Xt57P-B$JV1O8K)1)NX`A!{;uy{9 z*!bM&M}Bk$fZrv5Ei_^cyKlX#0q}H_-x?yp)y65`vq&5WMWV6V*!k>F5+0DyG(I_G z6)u|ZiQf`eM68&Nabu2no49(yii~UxTz^DodI8v$JvklyHXD2cQ1qSrC3|Yb{&c*4 z1E6Z5o_u~faC#O0iItq(5%t*LZCn^=?Zn)k=APguJ6k%|w zsBo8Z8HALg4}_2xKnmGiUUsOluC}VOEKnXO@%j(AMOi({dMx%*@CDn@?+dncU~6*~ zmT;fRDzUj88{-VUCi)s#J2qD$vxO1X)Uc}2CzH|?DfM}8;vDN+dU&&6IeP~$PCd)K zn2_@u+v_**s-9LgO-*YanG_=F#)_WA{X|bb?7o~yN2BR4xsWd#mFP&}*3O{k*bmTo zCRdVIooC!#dy6h-!SomZ;a~Tvos<7J!&x&Mf_xymljl)1G0A|nu&4Y4f2>r9Yl0p; rpJt?(r<9i)$dDsd3njWxMK@}wqk;RJrlONBIb)AcTEnT?BA@XOItQ7Y delta 448 zcmXw!%PT~26vw~k{;uKPJLY;MlE!36n6iXB8>G1_RNr8O*aJo(a#e`4&g0oo z(ZagQi#r}P_loMc#j{Ham9XK>o&ryj3*9XebD3>%tp~IB@jgX!&xqOf0z*7xTQ0*p z=l|K2X0Yr_JpR3%m4Cx<_soz#SKH*HLj_8UawNLMfm)e2o@+NUA7;5IH~1TZRLUa{ WG^q?18jx3RRFkeMy5@%{jQ=3Sux diff --git a/front/current/assets/fontello/font/blocpower.woff b/front/current/assets/fontello/font/blocpower.woff index 194edbf3ecd4474427e49eb22132969d1c5582d7..e7244bcc25a1078ad263198bf58ccb0ff2efbf32 100644 GIT binary patch delta 2806 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 S(~~m!NbNK&K|;nTH}-!*)X2>M diff --git a/front/current/assets/fontello/font/blocpower.woff2 b/front/current/assets/fontello/font/blocpower.woff2 index fb2ebe0904e0c31bbc80e27ed9172821ebf0d737..76bbea9abca85683a65482596f2805a980c7317c 100644 GIT binary patch literal 4124 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 a>gwuef~4Rq8+})pibem_oP~eoYoh>5?(fb3 literal 4008 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 OwDv*nq6ac)2LJ#t_n2`2 -- GitLab From ccdda631d4333b0dea4ac5a39a79a6d28d7be930 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 17:47:23 -0400 Subject: [PATCH 20/22] Add a lable wrapper for file inputs. --- front/current/assets/styles/components/_global.scss | 13 +++++++++++++ .../project/new-document-slot.component.html | 5 ++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/front/current/assets/styles/components/_global.scss b/front/current/assets/styles/components/_global.scss index f5821e7..56cbb25 100644 --- a/front/current/assets/styles/components/_global.scss +++ b/front/current/assets/styles/components/_global.scss @@ -85,6 +85,9 @@ a { } } +/* Inputs */ +label { cursor: pointer; } + /* Tables */ table { border-spacing: 0px; @@ -102,6 +105,16 @@ code { /* Addresses */ address { font-style: normal; } +/* Hidden */ +input[type=file].hidden { + width: 0.1px; + height: 0.1px; + position: absolute; + opacity: 0; + overflow: hidden; + z-index: -1; +} + /* Leading paragraph text */ .lead { font-size: $scale * 1rem; diff --git a/front/current/components/project/new-document-slot.component.html b/front/current/components/project/new-document-slot.component.html index 974682d..d4ad172 100644 --- a/front/current/components/project/new-document-slot.component.html +++ b/front/current/components/project/new-document-slot.component.html @@ -1 +1,4 @@ - + -- GitLab From d80056cd66e8cebed4bb2fa2adfceca4e91a6086 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 17:50:26 -0400 Subject: [PATCH 21/22] Hide overflow on the body. --- front/current/assets/styles/components/_global.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/front/current/assets/styles/components/_global.scss b/front/current/assets/styles/components/_global.scss index 56cbb25..900bc13 100644 --- a/front/current/assets/styles/components/_global.scss +++ b/front/current/assets/styles/components/_global.scss @@ -33,6 +33,7 @@ html { body { margin: 0; height: 100%; + overflow: hidden; } my-app { -- GitLab From a279867430b69faaec52db4ec08285e95ab558f4 Mon Sep 17 00:00:00 2001 From: astex <0astex@gmail.com> Date: Fri, 22 Apr 2016 18:02:45 -0400 Subject: [PATCH 22/22] Add basic auth to the nginx configuration. --- config/htpasswd | 1 + config/nginx.conf | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 config/htpasswd diff --git a/config/htpasswd b/config/htpasswd new file mode 100644 index 0000000..b0182b2 --- /dev/null +++ b/config/htpasswd @@ -0,0 +1 @@ +admin:Tb2N/R.D.JEf6 diff --git a/config/nginx.conf b/config/nginx.conf index b8cb9b9..0ce74ee 100644 --- a/config/nginx.conf +++ b/config/nginx.conf @@ -22,6 +22,9 @@ http { listen [::]:80; server_name $DOMAIN www.$DOMAIN; location / { + auth_basic "Please log in."; + auth_basic_user_file $CODEROOT/config/htpasswd; + root $CODEROOT/front; try_files $uri$args $uri$args/ $uri/ /index.html =404; } -- GitLab