sagacity/inc/excelConditionalStyles.inc
2018-09-27 14:27:57 -04:00

382 lines
16 KiB
PHP

<?php
/**
* File: excelConditionalStyles.inc
* Author: Ryan Prather
* Purpose: The purpose of this file is hold any constants or variables that will be used in creating an eChecklist for export
* Created: 6 Jan 2014
*
* Portions Copyright 2016-2017: Cyber Perspectives, All rights reserved
* Released under the Apache v2.0 License
*
* Portions Copyright (c) 2012-2015, Salient Federal Solutions
* Portions Copyright (c) 2008-2011, Science Applications International Corporation (SAIC)
* Released under Modified BSD License
*
* See license.txt for details
*
* Change Log:
* - Jan 6, 2014 - File created
* - Mar 10, 2017 - Formatting, added Cyber Perspectives copyright, and added $light_gray variable color
* - May 13, 2017 - Updated to use new PHPSpreadsheet library
* - Dec 27, 2017 - Syntax updates
*/
$conditions = array(
'unclass_classification' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'fouo_classification' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'secret_classification' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'exception' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'false_positive' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'nf_na_conflict' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'open_conflict' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'open_cat_1_count' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'open_cat_2_count' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'open_cat_3_count' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'not_a_finding' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'true' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'not_applicable' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'not_reviewed' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'no_data' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'open' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'false' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'cat_1' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'cat_2' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'cat_3' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'not_a_finding_count' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'not_applicable_count' => new \PhpOffice\PhpSpreadsheet\Style\Conditional(),
'not_reviewed_count' => new \PhpOffice\PhpSpreadsheet\Style\Conditional()
);
$styles = array(
'header' => array(
'bold' => true
),
'right' => array(
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT
),
'yellow_fill' => array(
'fill' => array(
'type' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
'startcolor' => array(
'rgb' => 'FFFF00'
)
)
)
);
$validation = array(
'host_status' => new \PhpOffice\PhpSpreadsheet\Cell\DataValidation(),
'true_false' => new \PhpOffice\PhpSpreadsheet\Cell\DataValidation()
);
$red = new \PhpOffice\PhpSpreadsheet\Style\Color();
$red->setARGB('FFFF0000');
$green = new \PhpOffice\PhpSpreadsheet\Style\Color();
$green->setARGB('FF92D050');
$light_blue = new \PhpOffice\PhpSpreadsheet\Style\Color();
$light_blue->setARGB('FFC5D9F1');
$yellow = new \PhpOffice\PhpSpreadsheet\Style\Color();
$yellow->setARGB('FFFFFF00');
$light_yellow = new \PhpOffice\PhpSpreadsheet\Style\Color();
$light_yellow->setARGB('FFFFFF66');
$orange = new \PhpOffice\PhpSpreadsheet\Style\Color();
$orange->setARGB('FFFFC000');
$black = new \PhpOffice\PhpSpreadsheet\Style\Color();
$black->setARGB('00000000');
$white = new \PhpOffice\PhpSpreadsheet\Style\Color();
$white->setARGB('FFFFFFFF');
$light_brown = new \PhpOffice\PhpSpreadsheet\Style\Color();
$light_brown->setRGB('DDD9C4');
$light_gray = new \PhpOffice\PhpSpreadsheet\Style\Color();
$light_gray->setRGB('D6D4CA');
$conditions['unclass_classification']->setConditionType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['unclass_classification']->setOperatorType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['unclass_classification']->setText('UNCLASSIFIED');
$conditions['unclass_classification']->getStyle()
->getFont()
->setColor($green)
->setBold(true);
$conditions['fouo_classification']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['fouo_classification']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['fouo_classification']->setText('UNCLASSIFIED//FOUO');
$conditions['fouo_classification']->getStyle()
->getFont()
->setColor($orange)
->setBold(true);
$conditions['secret_classification']->setConditionType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['secret_classification']->setOperatorType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['secret_classification']->setText('SECRET');
$conditions['secret_classification']->getStyle()
->getFont()
->setColor($red)
->setBold(true);
$conditions['open']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['open']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['open']->setText('Open');
$conditions['open']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['open']->getStyle()
->getFill()
->setEndColor($red);
$conditions['open']->getStyle()
->getFont()
->setColor($white);
$conditions['false']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['false']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['false']->setText('FALSE');
$conditions['false']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['false']->getStyle()
->getFill()
->setEndColor($red);
$conditions['exception']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['exception']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['exception']->setText('Exception');
$conditions['exception']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['exception']->getStyle()
->getFill()
->setEndColor($red);
$conditions['exception']->getStyle()
->getFont()
->setColor($white);
$conditions['cat_1']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS);
$conditions['cat_1']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_EQUAL);
$conditions['cat_1']->addCondition('"I"');
$conditions['cat_1']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['cat_1']->getStyle()
->getFill()
->setEndColor($red);
$conditions['cat_1']->getStyle()
->getFont()
->setColor($white);
$conditions['cat_2']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS);
$conditions['cat_2']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_EQUAL);
$conditions['cat_2']->addCondition('"II"');
$conditions['cat_2']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['cat_2']->getStyle()
->getFill()
->setEndColor($light_yellow);
$conditions['cat_3']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS);
$conditions['cat_3']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_EQUAL);
$conditions['cat_3']->addCondition('"III"');
$conditions['cat_3']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['cat_3']->getStyle()
->getFill()
->setEndColor($orange);
$conditions['no_data']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['no_data']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['no_data']->setText('No Data');
$conditions['no_data']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['no_data']->getStyle()
->getFill()
->setEndColor($black);
$conditions['no_data']->getStyle()
->getFont()
->setColor($white);
$conditions['nf_na_conflict']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['nf_na_conflict']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['nf_na_conflict']->setText('NF/NA CONFLICT:');
$conditions['nf_na_conflict']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['nf_na_conflict']->getStyle()
->getFill()
->setEndColor($light_blue);
$conditions['open_conflict']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['open_conflict']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['open_conflict']->setText('OPEN CONFLICT:');
$conditions['open_conflict']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['open_conflict']->getStyle()
->getFill()
->setEndColor($red);
$conditions['open_conflict']->getStyle()
->getFont()
->setColor($white);
$conditions['not_a_finding']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['not_a_finding']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['not_a_finding']->setText('Not a Finding');
$conditions['not_a_finding']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['not_a_finding']->getStyle()
->getFill()
->setEndColor($green);
$conditions['true']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['true']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['true']->setText('TRUE');
$conditions['true']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['true']->getStyle()
->getFill()
->setEndColor($green);
$conditions['false_positive']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['false_positive']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['false_positive']->setText('False Positive');
$conditions['false_positive']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['false_positive']->getStyle()
->getFill()
->setEndColor($green);
$conditions['not_applicable']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['not_applicable']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['not_applicable']->setText('Not Applicable');
$conditions['not_applicable']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['not_applicable']->getStyle()
->getFill()
->setEndColor($light_blue);
$conditions['not_reviewed']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT);
$conditions['not_reviewed']->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT);
$conditions['not_reviewed']->setText('Not Reviewed');
$conditions['not_reviewed']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['not_reviewed']->getStyle()
->getFill()
->setEndColor($yellow);
$conditions['open_cat_1_count']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION);
$conditions['open_cat_1_count']->setOperatorType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL);
$conditions['open_cat_1_count']->setText('1');
$conditions['open_cat_1_count']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['open_cat_1_count']->getStyle()
->getFill()
->setEndColor($red);
$conditions['open_cat_1_count']->getStyle()
->getFont()
->setColor($white);
$conditions['open_cat_2_count']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION);
$conditions['open_cat_2_count']->setOperatorType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL);
$conditions['open_cat_2_count']->setText('1');
$conditions['open_cat_2_count']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['open_cat_2_count']->getStyle()
->getFill()
->setEndColor($yellow);
$conditions['open_cat_3_count']->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION);
$conditions['open_cat_3_count']->setOperatorType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL);
$conditions['open_cat_3_count']->setText('1');
$conditions['open_cat_3_count']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['open_cat_3_count']->getStyle()
->getFill()
->setEndColor($orange);
$conditions['not_a_finding_count']->setConditionType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION);
$conditions['not_a_finding_count']->setOperatorType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL);
$conditions['not_a_finding_count']->setText('1');
$conditions['not_a_finding_count']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['not_a_finding_count']->getStyle()
->getFill()
->setEndColor($green);
$conditions['not_applicable_count']->setConditionType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION);
$conditions['not_applicable_count']->setOperatorType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL);
$conditions['not_applicable_count']->setText('1');
$conditions['not_applicable_count']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['not_applicable_count']->getStyle()
->getFill()
->setEndColor($light_blue);
$conditions['not_reviewed_count']->setConditionType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION);
$conditions['not_reviewed_count']->setOperatorType(
\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL);
$conditions['not_reviewed_count']->setText('1');
$conditions['not_reviewed_count']->getStyle()
->getFill()
->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$conditions['not_reviewed_count']->getStyle()
->getFill()
->setEndColor($yellow);
$validation['host_status']->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST);
$validation['host_status']->setAllowBlank(false);
$validation['host_status']->setFormula1('"Not Reviewed,Not a Finding,Open,Not Applicable,No Data,Exception,False Positive"');
$validation['host_status']->setShowDropDown(true);
$validation['host_status']->setShowErrorMessage(true);
$validation['host_status']->setError("Selected value not valid");
$validation['host_status']->setErrorTitle("Invalid selection");
$validation['host_status']->setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_STOP);
$validation['true_false']->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST);
$validation['true_false']->setAllowBlank(false);
$validation['true_false']->setFormula1("=TRUE,FALSE");
$validation['true_false']->setShowDropDown(true);
/**
* Add borders to cells
*/
$borders = [
'borders' => [
'allborders' => [
'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
'color' => [
'rgb' => '000000'
]
]
]
];