Index: arms/js/analysisTime.js
===================================================================
diff -u -r74de6df651f26570833fc55a872c7922131b6419 -r788aeafe69a4719e241d2b2e7ae378dc4a6becbb
--- arms/js/analysisTime.js (.../analysisTime.js) (revision 74de6df651f26570833fc55a872c7922131b6419)
+++ arms/js/analysisTime.js (.../analysisTime.js) (revision 788aeafe69a4719e241d2b2e7ae378dc4a6becbb)
@@ -1,13 +1,494 @@
-/*
- Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
-*/
-CKEDITOR.plugins.setLang("specialchar","en-au",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
-not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
-Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
-Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
-Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
-aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
-ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
-yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
-trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
+///////////////////
+//Page 전역 변수
+///////////////////
+// 필요시 작성
+
+////////////////////////////////////////////////////////////////////////////////////////
+//Document Ready
+////////////////////////////////////////////////////////////////////////////////////////
+function execDocReady() {
+
+ var pluginGroups = [
+ [ "../reference/light-blue/lib/vendor/jquery.ui.widget.js",
+ "../reference/light-blue/lib/vendor/http_blueimp.github.io_JavaScript-Templates_js_tmpl.js",
+ "../reference/light-blue/lib/vendor/http_blueimp.github.io_JavaScript-Load-Image_js_load-image.js",
+ "../reference/light-blue/lib/vendor/http_blueimp.github.io_JavaScript-Canvas-to-Blob_js_canvas-to-blob.js",
+ "../reference/light-blue/lib/jquery.iframe-transport.js",
+ "../reference/light-blue/lib/jquery.fileupload.js",
+ "../reference/light-blue/lib/jquery.fileupload-fp.js",
+ "../reference/light-blue/lib/jquery.fileupload-ui.js"],
+
+ [ "../reference/lightblue4/docs/lib/slimScroll/jquery.slimscroll.min.js",
+ "../reference/jquery-plugins/unityping-0.1.0/dist/jquery.unityping.min.js",
+ "../reference/light-blue/lib/bootstrap-datepicker.js",
+ "../reference/jquery-plugins/datetimepicker-2.5.20/build/jquery.datetimepicker.min.css",
+ "../reference/jquery-plugins/datetimepicker-2.5.20/build/jquery.datetimepicker.full.min.js",
+ "../reference/lightblue4/docs/lib/widgster/widgster.js"],
+
+ [ "../reference/jquery-plugins/select2-4.0.2/dist/css/select2_lightblue4.css",
+ "../reference/jquery-plugins/lou-multi-select-0.9.12/css/multiselect-lightblue4.css",
+ "../reference/jquery-plugins/multiple-select-1.5.2/dist/multiple-select-bluelight.css",
+ "../reference/jquery-plugins/select2-4.0.2/dist/js/select2.min.js",
+ "../reference/jquery-plugins/lou-multi-select-0.9.12/js/jquery.quicksearch.js",
+ "../reference/jquery-plugins/lou-multi-select-0.9.12/js/jquery.multi-select.js",
+ "../reference/jquery-plugins/multiple-select-1.5.2/dist/multiple-select.min.js"],
+
+ [ "../reference/jquery-plugins/dataTables-1.10.16/media/css/jquery.dataTables_lightblue4.css",
+ "../reference/jquery-plugins/dataTables-1.10.16/extensions/Responsive/css/responsive.dataTables_lightblue4.css",
+ "../reference/jquery-plugins/dataTables-1.10.16/extensions/Select/css/select.dataTables_lightblue4.css",
+ "../reference/jquery-plugins/dataTables-1.10.16/media/js/jquery.dataTables.min.js",
+ "../reference/jquery-plugins/dataTables-1.10.16/extensions/Responsive/js/dataTables.responsive.min.js",
+ "../reference/jquery-plugins/dataTables-1.10.16/extensions/Select/js/dataTables.select.min.js",
+ "../reference/jquery-plugins/dataTables-1.10.16/extensions/RowGroup/js/dataTables.rowsGroup.min.js",
+ "../reference/jquery-plugins/dataTables-1.10.16/extensions/Buttons/js/dataTables.buttons.min.js",
+ "../reference/jquery-plugins/dataTables-1.10.16/extensions/Buttons/js/buttons.html5.js",
+ "../reference/jquery-plugins/dataTables-1.10.16/extensions/Buttons/js/buttons.print.js",
+ "../reference/jquery-plugins/dataTables-1.10.16/extensions/Buttons/js/jszip.min.js",
+ "../reference/jquery-plugins/dataTables-1.10.16/extensions/Buttons/js/pdfmake.min.js"]
+ // 추가적인 플러그인 그룹들을 이곳에 추가하면 됩니다.
+ ];
+
+ loadPluginGroupsParallelAndSequential(pluginGroups)
+ .then(function() {
+ //vfs_fonts 파일이 커서 defer 처리 함.
+ setTimeout(function() {
+ var script = document.createElement("script");
+ script.src = "../reference/jquery-plugins/dataTables-1.10.16/extensions/Buttons/js/vfs_fonts.js";
+ script.defer = true; // defer 속성 설정
+ document.head.appendChild(script);
+ }, 3000); // 2초 후에 실행됩니다.
+ console.log('모든 플러그인 로드 완료');
+
+ // 사이드 메뉴 처리
+ $('.widget').widgster();
+ setSideMenu("sidebar_menu_analysis", "sidebar_menu_analysis_time");
+
+ //제품(서비스) 셀렉트 박스 이니시에이터
+ makePdServiceSelectBox();
+ //버전 멀티 셀렉트 박스 이니시에이터
+ makeVersionMultiSelectBox();
+
+ //박스별 차트 호출
+
+
+
+ })
+ .catch(function() {
+ console.error('플러그인 로드 중 오류 발생');
+ });
+
+}
+
+///////////////////////
+//제품 서비스 셀렉트 박스
+//////////////////////
+function makePdServiceSelectBox() {
+ //제품 서비스 셀렉트 박스 이니시에이터
+ $(".chzn-select").each(function () {
+ $(this).select2($(this).data());
+ });
+
+ //제품 서비스 셀렉트 박스 데이터 바인딩
+ $.ajax({
+ url: "/auth-user/api/arms/pdService/getPdServiceMonitor.do",
+ type: "GET",
+ contentType: "application/json;charset=UTF-8",
+ dataType: "json",
+ progress: true,
+ statusCode: {
+ 200: function (data) {
+
+ for (var k in data.response) {
+ var obj = data.response[k];
+ var newOption = new Option(obj.c_title, obj.c_id, false, false);
+ $("#selected_pdService").append(newOption).trigger("change");
+ }
+
+ }
+ }
+ });
+
+ $("#selected_pdService").on("select2:open", function () {
+ //슬림스크롤
+ makeSlimScroll(".select2-results__options");
+ });
+
+ // --- select2 ( 제품(서비스) 검색 및 선택 ) 이벤트 --- //
+ $("#selected_pdService").on("select2:select", function (e) {
+ // 제품( 서비스 ) 선택했으니까 자동으로 버전을 선택할 수 있게 유도
+ // 디폴트는 base version 을 선택하게 하고 ( select all )
+ //~> 이벤트 연계 함수 :: Version 표시 jsTree 빌드
+ bind_VersionData_By_PdService();
+
+ var checked = $("#checkbox1").is(":checked");
+ var endPointUrl = "";
+
+ // if (checked) {
+ // endPointUrl = "/T_ARMS_REQSTATUS_" + $("#selected_pdService").val() + "/getStatusMonitor.do?disable=true";
+ // } else {
+ // endPointUrl = "/T_ARMS_REQSTATUS_" + $("#selected_pdService").val() + "/getStatusMonitor.do?disable=false";
+ // }
+
+ //이슈리스트 데이터테이블
+ //dataTableLoad($("#selected_pdService").val(), endPointUrl);
+ //통계로드
+ //statisticsLoad($("#selected_pdService").val(), null);
+ //진행상태 가져오기
+ //progressLoad($("#selected_pdService").val(), null);
+
+ });
+} // end makePdServiceSelectBox()
+
+////////////////////
+//버전 멀티 셀렉트 박스
+////////////////////
+function makeVersionMultiSelectBox() {
+ //버전 선택시 셀렉트 박스 이니시에이터
+ $(".multiple-select").multipleSelect({
+ filter: true,
+ onClose: function () {
+ console.log("onOpen event fire!\n");
+
+ var checked = $("#checkbox1").is(":checked");
+ var endPointUrl = "";
+ var versionTag = $(".multiple-select").val();
+
+ if (checked) {
+ endPointUrl =
+ "/T_ARMS_REQSTATUS_" + $("#selected_pdService").val() + "/getStatusMonitor.do?disable=true&versionTag=" + versionTag;
+ //dataTableLoad($("#selected_pdService").val(), endPointUrl);
+ } else {
+ endPointUrl =
+ "/T_ARMS_REQSTATUS_" + $("#selected_pdService").val() + "/getStatusMonitor.do?disable=false&versionTag=" + versionTag;
+ //dataTableLoad($("#selected_pdService").val(), endPointUrl);
+ }
+ }
+ });
+}
+
+function bind_VersionData_By_PdService() {
+ $(".multiple-select option").remove();
+ $.ajax({
+ url: "/auth-user/api/arms/pdService/getVersionList.do?c_id=" + $("#selected_pdService").val(),
+ type: "GET",
+ dataType: "json",
+ progress: true,
+ statusCode: {
+ 200: function (data) {
+ //////////////////////////////////////////////////////////
+ for (var k in data.response) {
+ var obj = data.response[k];
+ var $opt = $("", {
+ value: obj.c_id,
+ text: obj.c_title
+ });
+ $(".multiple-select").append($opt);
+ }
+
+ if (data.length > 0) {
+ console.log("display 재설정.");
+ }
+ //$('#multiversion').multipleSelect('refresh');
+ //$('#edit_multi_version').multipleSelect('refresh');
+ $(".multiple-select").multipleSelect("refresh");
+ //////////////////////////////////////////////////////////
+ }
+ }
+ });
+}
+
+// 데이터 테이블 구성 이후 꼭 구현해야 할 메소드 : 열 클릭시 이벤트
+function dataTableClick(tempDataTable, selectedData) {
+ console.log(selectedData);
+}
+
+//데이터 테이블 그리고 난 후 시퀀스 이벤트
+function dataTableCallBack(settings, json) {
+ console.log("check");
+}
+
+//데이터 테이블 그리고 난 후 시퀀스 이벤트
+function dataTableDrawCallback(tableInfo) {
+ /*$("#" + tableInfo.sInstance)
+ .DataTable()
+ .columns.adjust()
+ .responsive.recalc();*/
+}
+
+// -------------------- 데이터 테이블을 만드는 템플릿으로 쓰기에 적당하게 리팩토링 함. ------------------ //
+function dataTableLoad(selectId, endPointUrl) {
+ var columnList = [
+ { name: "c_pdservice_link", title: "제품(서비스) 아이디", data: "c_pdservice_link", visible: false },
+ {
+ name: "c_pdservice_name",
+ title: "제품(서비스)",
+ data: "c_pdservice_name",
+ render: function (data, type, row, meta) {
+ if (isEmpty(data) || data === "unknown") {
+ return "