Initial commit
This commit is contained in:
100
api-wiaas/server/components/v1/documents/DocumentsController.php
Normal file
100
api-wiaas/server/components/v1/documents/DocumentsController.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
/**
|
||||
* ShopController controlls the actions for docuemnts
|
||||
*/
|
||||
class DocumentsController{
|
||||
private $model;
|
||||
|
||||
function __construct(){
|
||||
$this->model = new DocumentsModel();
|
||||
}
|
||||
|
||||
/**
|
||||
* get documents for documents view
|
||||
* @return json list of documents
|
||||
*/
|
||||
public function getDocuments(){
|
||||
$idDocument = isset($_REQUEST['idDocument']) ? $_REQUEST['idDocument'] : 0;
|
||||
$idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0;
|
||||
echo json_encode($this->model->getDocuments($idDocument, $idPackage));
|
||||
}
|
||||
|
||||
/**
|
||||
* get documents and apckages for linking
|
||||
* @return json a list for documetns and one for packages
|
||||
*/
|
||||
public function getDocumentsAndPackages(){
|
||||
echo json_encode($this->model->getDocumentsAndPackages());
|
||||
}
|
||||
|
||||
/**
|
||||
* update linking between a package and docuemtns
|
||||
* @return json update message
|
||||
*/
|
||||
public function updatePackageDocuments(){
|
||||
$idPackage = isset($_REQUEST['idPackage']) ? $_REQUEST['idPackage'] : 0;
|
||||
$documents = isset($_REQUEST['documents']) ? $_REQUEST['documents'] : '[]';
|
||||
echo json_encode($this->model->updatePackageDocuments($idPackage, $documents));
|
||||
}
|
||||
|
||||
/**
|
||||
* get documents types
|
||||
* @return json a list for document types
|
||||
*/
|
||||
public function getDocumentTypes(){
|
||||
echo json_encode($this->model->getDocumentTypes());
|
||||
}
|
||||
|
||||
public function uploadNewDocument(){
|
||||
$idDocumentType = isset($_REQUEST['idDocumentType']) ? $_REQUEST['idDocumentType'] : 0;
|
||||
$documentName = isset($_REQUEST['documentName']) ? $_REQUEST['documentName'] : '';
|
||||
$file = isset($_FILES['file']) ? $_FILES['file'] : [];
|
||||
echo json_encode($this->model->uploadNewDocument($idDocumentType, $documentName, $file));
|
||||
}
|
||||
|
||||
public function addNewDocumnetType(){
|
||||
$documentNewType = isset($_REQUEST['documentNewType']) ? $_REQUEST['documentNewType'] : '';
|
||||
echo json_encode($this->model->addNewDocumnetType($documentNewType));
|
||||
}
|
||||
|
||||
public function removeDocument(){
|
||||
$idDocument = isset($_REQUEST['idDocument']) ? $_REQUEST['idDocument'] : 0;
|
||||
echo json_encode($this->model->removeDocument($idDocument));
|
||||
}
|
||||
|
||||
/**
|
||||
* include decouments template
|
||||
*/
|
||||
public function documentsTemplate(){
|
||||
global $user;
|
||||
require_once('templates/DocumentsTemplate.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* include decouments view template
|
||||
*/
|
||||
public function documentsViewTemplate(){
|
||||
require_once('templates/DocumentsViewTemplate.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* include decouments view template
|
||||
*/
|
||||
public function documentsLinkTemplate(){
|
||||
require_once('templates/DocumentsLinkTemplate.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* include decouments view template
|
||||
*/
|
||||
public function DocumentsAddTemplate(){
|
||||
require_once('templates/DocumentsAddTemplate.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* open documents page
|
||||
*/
|
||||
public function showPage(){
|
||||
require_once('DocumentsPage.php');
|
||||
}
|
||||
}
|
||||
332
api-wiaas/server/components/v1/documents/DocumentsModel.php
Normal file
332
api-wiaas/server/components/v1/documents/DocumentsModel.php
Normal file
@@ -0,0 +1,332 @@
|
||||
<?php
|
||||
/**
|
||||
* Data manipulation for the docuemnts
|
||||
*/
|
||||
class DocumentsModel{
|
||||
private $specialDocumentTypes = [2, 3, 5, 7, 10];
|
||||
//orderQuestionaire, configuration, customerAcceptance, OrderAgreement, installationProtocol
|
||||
|
||||
/**
|
||||
* get linked packages to a documnet
|
||||
* @param INT $idDocument id of the document
|
||||
* @return HashArray Array of packages for each document
|
||||
*/
|
||||
private function getLinkedPackages($idDocument = 0){
|
||||
global $database;
|
||||
$data = [];
|
||||
$whereSql = '';
|
||||
if(intval($idDocument) !== 0){
|
||||
$whereSql = " AND d.id=$idDocument";
|
||||
}
|
||||
|
||||
$sql = "SELECT d.id AS idDocument,
|
||||
p.name AS packageName
|
||||
FROM ".TABLES['documents']." d
|
||||
INNER JOIN ".TABLES['rel_package_documents']." rpd
|
||||
ON rpd.idDocument=d.id
|
||||
INNER JOIN ".TABLES['packages']." p
|
||||
ON p.id=rpd.idPackage
|
||||
WHERE d.uploadedBy IS NULL $whereSql";
|
||||
$query = $database->query($sql);
|
||||
|
||||
while($row = $database->fetchArray($query)){
|
||||
$data[$row['idDocument']][] = $row;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* get documents for view documetns
|
||||
* @param INT $idDocument id for the doceument
|
||||
* @param INT $idPackage id for the pacakge
|
||||
* @return Array array of documents
|
||||
*/
|
||||
public function getDocuments($idDocument, $idPackage){
|
||||
global $database;
|
||||
$data = [];
|
||||
$whereSql = '';
|
||||
$extraJoin = '';
|
||||
$idDocument = $database->escapeValue($idDocument);
|
||||
$idPackage = $database->escapeValue($idPackage);
|
||||
|
||||
if(intval($idDocument) !== 0){
|
||||
$whereSql = " AND d.id=$idDocument";
|
||||
}
|
||||
|
||||
if(intval($idPackage) !== 0){
|
||||
$extraJoin = " INNER JOIN ".TABLES['rel_package_documents']." rpd
|
||||
ON rpd.idDocument=d.id AND rpd.idPackage=$idPackage";
|
||||
}
|
||||
|
||||
$linkedPackages = $this->getLinkedPackages($idDocument, $idPackage);
|
||||
$specialDocumentTypesSql = implode(',', $this->specialDocumentTypes);
|
||||
|
||||
$sql = "SELECT d.id AS idDocument,
|
||||
d.documentName,
|
||||
d.documentPath,
|
||||
dt.type AS documentType,
|
||||
d.extension
|
||||
FROM ".TABLES['documents']." d
|
||||
INNER JOIN ".TABLES['document_types']." dt
|
||||
ON dt.id=d.idDocumentType
|
||||
$extraJoin
|
||||
WHERE dt.id NOT IN($specialDocumentTypesSql) $whereSql
|
||||
ORDER BY documentType, documentName";
|
||||
$query = $database->query($sql);
|
||||
|
||||
while($row = $database->fetchArray($query)){
|
||||
if(isset($linkedPackages[$row['idDocument']])){
|
||||
$row['packages'] = $linkedPackages[$row['idDocument']];
|
||||
}
|
||||
$data[$row['documentType']][] = $row;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* get packages to link to the documents
|
||||
* @return HashArray array of packages
|
||||
*/
|
||||
public function getPackages(){
|
||||
global $database;
|
||||
$data = [];
|
||||
$specialDocumentTypesSql = implode(',', $this->specialDocumentTypes);
|
||||
|
||||
$sql = "SELECT p.id AS idPackage,
|
||||
p.name AS packageName,
|
||||
c.code AS countryCode,
|
||||
docs.idDocument,
|
||||
docs.documentName,
|
||||
docs.extension,
|
||||
docs.documentType
|
||||
FROM ".TABLES['packages']." p
|
||||
INNER JOIN ".TABLES['countries']." c
|
||||
ON c.id=p.idCountry
|
||||
LEFT OUTER JOIN
|
||||
(
|
||||
SELECT
|
||||
rpd.idPackage,
|
||||
rpd.idDocument,
|
||||
d.documentName,
|
||||
d.extension,
|
||||
dt.type AS documentType
|
||||
FROM ".TABLES['rel_package_documents']." rpd
|
||||
INNER JOIN ".TABLES['documents']." d
|
||||
ON rpd.idDocument=d.id
|
||||
INNER JOIN ".TABLES['document_types']." dt
|
||||
ON dt.id=d.idDocumentType
|
||||
WHERE dt.id NOT IN($specialDocumentTypesSql)
|
||||
) docs
|
||||
ON p.id=docs.idPackage
|
||||
ORDER BY documentType, documentName";
|
||||
$query = $database->query($sql);
|
||||
while($row = $database->fetchArray($query)){
|
||||
$idPackage = $row['idPackage'];
|
||||
$packageDetails[$idPackage]['idPackage'] = $idPackage;
|
||||
$packageDetails[$idPackage]['packageName'] = $row['packageName'];
|
||||
$packageDetails[$idPackage]['countryCode'] = $row['countryCode'];
|
||||
unset($row['idPackage']);
|
||||
unset($row['packageName']);
|
||||
unset($row['countryCode']);
|
||||
|
||||
if(!isset($packageDetails[$idPackage]['documents'])){
|
||||
$packageDetails[$idPackage]['documents'] = [];
|
||||
}
|
||||
|
||||
if($row['idDocument']){
|
||||
$packageDetails[$idPackage]['documents'][] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
foreach($packageDetails as $details) {
|
||||
$data[] = $details;
|
||||
}
|
||||
usort($data, array($this, "comparePackNames"));
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* compare package names and sort them
|
||||
* @param Array $a first array from all packages with details
|
||||
* @param Array $b second array from all packages with details
|
||||
* @return Int < 0 if a is less than b; > 0 if a is greater than b, and 0 if they are equal
|
||||
*/
|
||||
private function comparePackNames($a, $b) {
|
||||
return strcmp($a['packageName'], $b['packageName']);
|
||||
}
|
||||
|
||||
/**
|
||||
* get documents and packages for link documents view
|
||||
* @return HashArray array containg the documents and the packages
|
||||
*/
|
||||
public function getDocumentsAndPackages(){
|
||||
global $database;
|
||||
$data = [];
|
||||
$specialDocumentTypesSql = implode(',', $this->specialDocumentTypes);
|
||||
|
||||
$sql = "SELECT d.id AS idDocument,
|
||||
d.documentName,
|
||||
d.extension,
|
||||
dt.type AS documentType
|
||||
FROM ".TABLES['documents']." d
|
||||
INNER JOIN ".TABLES['document_types']." dt
|
||||
ON d.idDocumentType=dt.id
|
||||
WHERE dt.id NOT IN ($specialDocumentTypesSql)
|
||||
ORDER BY documentType, d.documentName";
|
||||
|
||||
$data['documents'] = $database->fetchResultArray($sql);
|
||||
$data['packages'] = $this->getPackages();
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function updatePackageDocuments($idPackage, $documents){
|
||||
global $database;
|
||||
$data = [];
|
||||
$idPackage = $database->escapeValue($idPackage);
|
||||
$documents = json_decode($documents);
|
||||
|
||||
if(intval($idPackage) == 0){
|
||||
$data['messages'][] = [
|
||||
'code' => 'error',
|
||||
'message' => 'INVALID_PACKAGE'
|
||||
];
|
||||
}
|
||||
|
||||
$sql = "";
|
||||
$idsToNotDelete = "AND idDocument NOT IN(";
|
||||
foreach ($documents as $document) {
|
||||
$document->idDocument = $database->escapeValue($document->idDocument);
|
||||
$sql .= "($idPackage, ".$document->idDocument."),";
|
||||
$idsToNotDelete .= $document->idDocument.",";
|
||||
}
|
||||
$sql = rtrim($sql, ',');
|
||||
$idsToNotDelete = rtrim($idsToNotDelete, ','). ')';
|
||||
|
||||
if(!empty($sql)){
|
||||
$sql = "INSERT IGNORE INTO ".TABLES['rel_package_documents']."
|
||||
(idPackage, idDocument)
|
||||
VALUES $sql";
|
||||
$query = $database->query($sql);
|
||||
$inserted = $database->affectedRows();
|
||||
}else{
|
||||
$inserted = 0;
|
||||
$idsToNotDelete = "";
|
||||
}
|
||||
|
||||
$sqlDel ="DELETE FROM ".TABLES['rel_package_documents']."
|
||||
WHERE idPackage=$idPackage $idsToNotDelete";
|
||||
$query = $database->query($sqlDel);
|
||||
$deleted = $database->affectedRows();
|
||||
|
||||
if($inserted > 0 || $deleted >0){
|
||||
$data['messages'][] = [
|
||||
'code' => 'success',
|
||||
'message' => 'DOCUMENTS_LINKED_TO_PACKAGE'
|
||||
];
|
||||
}else{
|
||||
$data['messages'][] = [
|
||||
'code' => 'warning',
|
||||
'message' => 'NO_CHANGES'
|
||||
];
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function getDocumentTypes(){
|
||||
global $database;
|
||||
|
||||
$data = [];
|
||||
|
||||
$sql = "SELECT dt.id AS idDocumentType,
|
||||
dt.type,
|
||||
dt.isSpecialType
|
||||
FROM ".TABLES['document_types']." dt
|
||||
ORDER BY dt.type ASC";
|
||||
$query = $database->query($sql);
|
||||
while($row = $database->fetchArray($query)){
|
||||
$data[] = $row;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function uploadNewDocument($idDocumentType, $documentName, $file){
|
||||
global $database;
|
||||
$idDocumentType = $database->escapeValue($idDocumentType);
|
||||
$documentName = $database->escapeValue($documentName);
|
||||
|
||||
if(!$documentName){
|
||||
$data['messages'][] = [
|
||||
'code' => 'error',
|
||||
'message' => 'NO_NAME'
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
if(!$idDocumentType){
|
||||
$data['messages'][] = [
|
||||
'code' => 'error',
|
||||
'message' => 'NO_TYPE'
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
$specialDocTypes = implode(',', $this->specialDocumentTypes);
|
||||
$sql = "SELECT d.id
|
||||
FROM ".TABLES['documents']." d
|
||||
WHERE d.documentName='$documentName' AND d.id NOT IN($specialDocTypes)";
|
||||
$query = $database->query($sql);
|
||||
if($database->numRows($query) > 0){
|
||||
$data['messages'][] = [
|
||||
'code' => 'error',
|
||||
'message' => 'NAME_EXISTS'
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
$fileManager = new FileManager();
|
||||
$data = $fileManager->uploadFile($file, $idDocumentType, $documentName);
|
||||
|
||||
if(isset($data['messages'])){
|
||||
return $data;
|
||||
}
|
||||
|
||||
$data['messages'][] = [
|
||||
'code' => 'success',
|
||||
'message' => 'DOCUMENT_UPLOADED'
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function addNewDocumnetType($documentNewType){
|
||||
$fileManager = new FileManager();
|
||||
return $fileManager->addNewDocumnetType($documentNewType);
|
||||
}
|
||||
|
||||
public function removeDocument($idDocument){
|
||||
global $database;
|
||||
$fileManager = new FileManager();
|
||||
$data = $fileManager->removeDocument($idDocument);
|
||||
|
||||
foreach ($data['messages'] as $messageObj) {
|
||||
if ($messageObj['code'] === 'success') {
|
||||
$sqlUnlink = "
|
||||
DELETE
|
||||
FROM ".TABLES['rel_package_documents']."
|
||||
WHERE idDocument=$idDocument";
|
||||
$query = $database->query($sqlUnlink);
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<script src="<?php echo PATH_JS_COMPONENTS.'documents/documents.directive.js?v='.APPLICATION_VERSION;?>" type="text/javascript"></script>
|
||||
<script src="<?php echo PATH_JS_COMPONENTS.'documents/documents-view.directive.js?v='.APPLICATION_VERSION;?>" type="text/javascript"></script>
|
||||
<script src="<?php echo PATH_JS_COMPONENTS.'documents/documents-link.directive.js?v='.APPLICATION_VERSION;?>" type="text/javascript"></script>
|
||||
<script src="<?php echo PATH_JS_COMPONENTS.'documents/documents-add.directive.js?v='.APPLICATION_VERSION;?>" type="text/javascript"></script>
|
||||
|
||||
<div id="documents-module" class="container-fluid col-md-12">
|
||||
<h1>{{ 'documents.TITLE' | translate }}</h1>
|
||||
<documents ng-controller="documentsCtrl"></documents>
|
||||
</div>
|
||||
@@ -0,0 +1,5 @@
|
||||
<button type="button"
|
||||
id="documents-add"
|
||||
subModule="documentsAdd"
|
||||
class="btn btn-default"
|
||||
ng-click="setSubModule($event)">{{ 'documents.buttons.ADD_DOCUMENTS' | translate }}</button>
|
||||
@@ -0,0 +1,7 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12"
|
||||
id="documents-add-layer"
|
||||
ng-if="isSubmoduleVisible('documentsAdd')">
|
||||
<documents-add ng-controller="documentsAddCtrl" ng-init="getDocumentTypes()"></documents-add>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,56 @@
|
||||
<div class="documents-add-layer row">
|
||||
<div class="col-md-3">
|
||||
<div class="documetns-types">
|
||||
<div class="documents-header">
|
||||
{{'documents.headers.DOCUMENT_TYPES' | translate}}
|
||||
</div>
|
||||
<div class="document-types-list">
|
||||
<div class="document-type-row {{getTypeRowClass(docType)}}"
|
||||
ng-click="selectType(docType)"
|
||||
ng-repeat="docType in documentTypes">
|
||||
<span ng-if="hasInfo(docType)">*</span>
|
||||
{{docType.type}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="document-type-row add-type-layer">
|
||||
<input type="text"
|
||||
ng-model="documentNewType"
|
||||
placeholder="{{'documents.headers.TYPE' | translate}}"/>
|
||||
<div ng-click="addNewType()" class="btn btn-primary">
|
||||
{{'documents.buttons.ADD_TYPE' | translate}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form id="upload-new-doc-container" name="form" class="col-md-4">
|
||||
<div>
|
||||
<label>{{'documents.headers.DOCUMENT_NAME' | translate}}: </label>
|
||||
<input id="new-doc-name"
|
||||
type="text"
|
||||
placeholder="{{'documents.headers.DOCUMENT_NAME' | translate}}"
|
||||
ng-model="documentName" />
|
||||
</div>
|
||||
|
||||
<div ngf-drop="uploadFile($file)"
|
||||
ng-model="files"
|
||||
ngf-drag-over-class="'dragover'"
|
||||
ngf-select="uploadFile($file)"
|
||||
ngf-pattern="'.pdf,.docx,.doc,.xlsx,.xls,.odt,.ods'"
|
||||
ngf-max-size="20MB"
|
||||
class="drop-box">{{'documents.headers.SELECT_DOCUMENT' | translate}}</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div ng-if="hasInfo(selectedType)" class="alert alert-info doc-type-info">
|
||||
<span class="glyphicon glyphicon-info-sign"></span>
|
||||
{{selectedType.type}}: {{ 'documents.messages.TYPE_INFO_' + selectedType.idDocumentType | translate }}
|
||||
</div>
|
||||
<div class="alert alert-info doc-type-info">
|
||||
<span class="glyphicon glyphicon-info-sign"></span>
|
||||
{{ 'documents.messages.TYPE_INFO' | translate }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,71 @@
|
||||
<div class="documents-link-layer row">
|
||||
<div class="all-packages-layer col-md-4">
|
||||
<div class="documents-container">
|
||||
<div class="documents-header">{{ 'documents.headers.SELECT_PACKAGE' | translate }}</div>
|
||||
<div class="documents-list">
|
||||
<div ng-click="selectPackage(package)" class="package-layer {{getPackageClass(package)}}" ng-repeat="package in packages">
|
||||
<span class="flag-icon flag-icon-{{package.countryCode}}"></span> {{package.packageName}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="documents-link-area col-md-8">
|
||||
<div class="documents-big-container col-md-12">
|
||||
<div class="col-md-6">
|
||||
<div id="linked-documents"
|
||||
class="documents-container"
|
||||
data-drop="true"
|
||||
jqyoui-droppable="{onDrop:'documentDropped(\'linked-documents\')'}">
|
||||
<div class="documents-header">{{ 'documents.headers.LINKED_DOCUMENTS' | translate }}</div>
|
||||
<div id='linked-documents-list' class="documents-list">
|
||||
<div class="linked-documents-layer document-row linked"
|
||||
ng-repeat="document in selectedPackage.documents"
|
||||
data-drag="true"
|
||||
id-document="{{document.idDocument}}"
|
||||
drop-to="all-documents"
|
||||
jqyoui-draggable="{animate:true, onStart:'documentDragStart(\'linked-documents-list\')', onStop:'documentDragStop(\'linked-documents-list\')', scroll: false}"
|
||||
data-jqyoui-options="{revert: true}">
|
||||
<div class="document-icon-layer">
|
||||
<span class="{{document.extension}} document-icon glyphicon glyphicon-file"></span>
|
||||
<div class="document-icon-text">{{document.extension}}</div>
|
||||
</div>
|
||||
({{document.documentType}}) {{document.documentName}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div id="all-ducuments"
|
||||
class="documents-container"
|
||||
data-drop="true"
|
||||
jqyoui-droppable="{onDrop:'documentDropped(\'all-documents\')'}">
|
||||
<div class="documents-header">{{ 'documents.headers.ALL_DOCUMENTS' | translate }}</div>
|
||||
<div id='all-documents-list' class="documents-list">
|
||||
<div ng-if="document.isNotLinked"
|
||||
class="all-documents-layer document-row not-linked"
|
||||
ng-repeat="document in documents"
|
||||
data-drag="true"
|
||||
id-document="{{document.idDocument}}"
|
||||
drop-to="linked-documents"
|
||||
jqyoui-draggable="{animate:true, onStart:'documentDragStart(\'all-documents-list\')', onStop:'documentDragStop(\'all-documents-list\')', scroll: false}"
|
||||
data-jqyoui-options="{revert: true}">
|
||||
<div class="document-icon-layer">
|
||||
<span class="{{document.extension}} document-icon glyphicon glyphicon-file"></span>
|
||||
<div class="document-icon-text">{{document.extension}}</div>
|
||||
</div>
|
||||
({{document.documentType}}) {{document.documentName}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="documents-link-buttons col-md-12">
|
||||
<div class="btn btn-primary" ng-click="updatePackageDocuments()">
|
||||
{{ 'documents.buttons.SAVE' | translate }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,24 @@
|
||||
<button type="button"
|
||||
id="documents-view"
|
||||
subModule="documentsView"
|
||||
class="btn btn-default"
|
||||
ng-click="setSubModule($event)">{{ 'documents.buttons.VIEW_DOCUMENTS' | translate }}</button>
|
||||
<?php
|
||||
if($user->getUserType() === USER_TYPES['BROKER']){
|
||||
require_once('AddDocumentsButton.php');
|
||||
require_once('LinkDocumentsButton.php');
|
||||
}
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-md-12"
|
||||
id="documents-view-layer"
|
||||
ng-if="isSubmoduleVisible('documentsView')">
|
||||
<documents-view ng-controller="documentsViewCtrl" ng-init="getDocuments()"></documents-view>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
if($user->getUserType() === USER_TYPES['BROKER']){
|
||||
require_once('AddDocumentsLayer.php');
|
||||
require_once('LinkDocumentsLayer.php');
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,46 @@
|
||||
<div class="documents-view-layer row">
|
||||
<div class="document-categ col-md-12" ng-repeat="(category, categDocuments) in documents">
|
||||
<h3>{{category}}</h3>
|
||||
<div class="document-layer row" ng-repeat="document in categDocuments">
|
||||
<div class="document-icon-layer col-md-1 col-sm-1">
|
||||
<span class="{{document.extension}} document-icon glyphicon glyphicon-file"></span>
|
||||
<div class="document-icon-text">{{document.extension}}</div>
|
||||
</div>
|
||||
|
||||
<div class="document-name col-md-3 col-sm-3">
|
||||
{{document.documentName}}.{{document.extension}}
|
||||
</div>
|
||||
|
||||
<div class="packages-link col-md-6 col-sm-4">
|
||||
<div ng-if="document.packages.length">
|
||||
{{ 'documents.headers.LINKED_PACKAGES' | translate }} <span ng-repeat="package in document.packages">{{package.packageName}}, </span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="document-download col-md-1 col-sm-2">
|
||||
<a href="utils/api/downloadFile?idDocument={{document.idDocument}}&fileName={{document.documentName}}.{{document.extension}}">
|
||||
<div class="btn btn-primary">
|
||||
<span class="glyphicon glyphicon-download"></span> {{ 'documents.buttons.DOWNLOAD' | translate }}
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="document-delete col-md-1 col-sm-2">
|
||||
<div class="btn btn-danger" ng-click="showHideRemoveDialog(document)">
|
||||
<span class="glyphicon glyphicon-remove"></span> {{ 'documents.buttons.REMOVE' | translate }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="dialog-confirm-remove"
|
||||
dialog
|
||||
ng-if="isRemoveDialogVisible"
|
||||
on-confirmation="removeDocument"
|
||||
on-close="showHideRemoveDialog"
|
||||
is-modal="true"
|
||||
has-buttons="true"
|
||||
parameters="selectedDocument"
|
||||
title="{{'documents.headers.REMOVE_DOCUMENT' | translate}}">
|
||||
<p><span class="glyphicon glyphicon-warning-sign"></span>{{'documents.messages.REMOVE_DOCUMENT' | translate}} {{selectedDocument.documentName}}.{{selectedDocument.extension}}?</p>
|
||||
</div>
|
||||
@@ -0,0 +1,5 @@
|
||||
<button type="button"
|
||||
id="documents-link"
|
||||
subModule="documentsLink"
|
||||
class="btn btn-default"
|
||||
ng-click="setSubModule($event)">{{ 'documents.buttons.LINK_DOCUMENT' | translate }}</button>
|
||||
@@ -0,0 +1,7 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12"
|
||||
id="documents-link-layer"
|
||||
ng-if="isSubmoduleVisible('documentsLink')">
|
||||
<documents-link ng-controller="documentsLinkCtrl" ng-init="getDocumentsAndPackages()"></documents-link>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user