Restore version to SNAPSHOT
[clamp.git] / src / main / resources / META-INF / resources / designer / partials / portfolios / stringMatch_properties.html
index 4b5d22b..49ac07d 100644 (file)
   limitations under the License.
   ============LICENSE_END============================================
   ===================================================================
-  ECOMP is a trademark and service mark of AT&T Intellectual Property.
+  ECOMP is a trademark and service mark of AT&T Intellectual Property.
   -->
-
 <style>
+#deleteStringMatch{
+       height:34px;
+       background-color:#dddd;
+}
+
+.disabled{
+       background-color: #dddd;
+}
 .fileUpload {
        position: relative;
        overflow: hidden;
 }
 
 .form-group {
-       /*      height:24px; */
-       /*      box-sizing:border-box; */
-       margin-bottom: 20px;
-       
+/*     height:24px; */
+/*     box-sizing:border-box; */
+       margin-bottom:20px;
+}
+
+.modelSearchBox{
+       position:absolute; 
+       padding: 25px 12px;
 }
- #paramsWarn {
-      display: none;
+
+label{
+       text-align:right;
+       vertical-align:middle;
+}
+
+.leftStringMatchPanel{
+       padding: 0 10px 0 0;
 }
 
-label{text-align:right;
- padding-top:8px;
- } 
+#createNewStringMatch{
+       height:34px;
+       width:120px; /*84*/
+       background-color:#f2bfab;
+}
+
+.idError{
+       color:red; 
+       padding:50px 0px; 
+       text-align:center; 
+       display:none;
+}
 
+#rgname{
+       height:28px; 
+       margin-left:-5px;
+}
+
+.stringMatchPanel{
+       background-color: #f5f5f5;
+       padding: 10px 5px;
+}
+
+#stringMatchSearch{
+       height: 33px;
+       font-size: 12px;
+       padding: 2px 2px 2px 30px;
+       margin-bottom: 5px;
+       width:100%;
+}
+#stringMatchTable{
+       cursor: pointer;
+       width:100%;
+}
+
+#stringMatchTable tr{
+       border-bottom: 1px solid #ddd;
+       border-collapse: collapse;
+       text-align: left;
+       font-size: 12px;
+       font-weight: normal;
+}
+
+#stringMatchTable td{
+       padding: 8px 10px;
+}
+
+#stringMatchTable tr.highlight{
+       background-color: #f5f5f5;
+       font-weight: bold;
+       font-size: 13px;
+}
+
+#stringMatchTableHolder{
+       height:200px; 
+       width: 100%; 
+       overflow:auto;
+}
+
+#timeout{
+       height:28px; 
+       margin-left:10px;
+}
 
 </style>
 
@@ -76,14 +152,12 @@ label{text-align:right;
        }
 
        function disableSVN() {
-               var selectLength =  document.querySelectorAll(".disabled-block-container .tab-close-popup");
+               var selectLength = document.querySelectorAll(".disabled-block-container .tab-close-popup");
                if(selectLength && selectLength.length>0){
                        for(var i = 0; i< selectLength.length ; i++){
                                selectLength[i].disabled = true;
                        }       
                }
-                       
-
 
                document.getElementById("schemaLocation").disabled = true;
                document.getElementById("userID").disabled = true;
@@ -93,296 +167,354 @@ label{text-align:right;
 </script>
 
 
-<div attribute-test="stringmatchproperties" id="configure-widgets"  class="disabled-block-container">
-       <div attribute-test="stringmatchpropertiesh" class="modal-header">
+<div attribute-test="stringMatchwindowproperties" id="configure-widgets" class="disabled-block-container">
+       <div attribute-test="stringMatchwindowpropertiesh" class="modal-header">
                <button type="button" class="close" ng-click="close(false)"
                        aria-hidden="true" style="margin-top: -3px">&times;</button>
                <h4>String Matching Micro Service</h4>
        </div>
-       <div attribute-test="stringmatchpropertiesb" class="modal-body">
-       <div class="alert alert-danger" role="alert" id='paramsWarn'> 
-                                                       <strong>Ooops!</strong> Unable to load properties for <span id='servName'>. Would you like to</span>
-                                                       <a href="javascript:void(0);" class="btn-link"  id='paramsRetry'>Retry </a> /
-                                                       <a href="javascript:void(0);" class="btn-link" id='paramsCancel'>Cancel</a>
-                                               </div>
-               <div style="height: 10px"></div>
-               <div class="panel panel-default">
-                       <form id="topicPublish" class="form-horizontal">
-                               <div>
-
-                                       <div class="form-group">
-                                               <label for="userID" class="col-sm-4 control-label"> Topic
-                                                       Publishes</label>
-
-                                               <div class="col-sm-8">
-                                                       <select class="form-control" id="topicPublishes"
-                                                               name="topicPublishes">
-                                                       </select>
-                                               </div>
+
+
+       <div class="modal-body">
+               <div attribute-test="stringMatchwindowpropertiesb" class="modal-body row">
+
+                       <div class="leftStringMatchPanel">
+                               <div class="panel panel-default">
+                                       <i class="modelSearchBox"></i> <input type="text"
+                                               id="stringMatchSearch" onkeyup="searchStringMatchList()"
+                                               placeholder="Search ...">
+                                       <div id="stringMatchTableHolder">
+                                               <table id="stringMatchTable"></table>
                                        </div>
                                </div>
-                       </form>
-                       <div class="panel-heading">
-                               <ul id="nav_Tabs" class="nav nav-tabs">
-                                       <li class><a id="add_one_more" href="#desc_tab"><span
-                                                       class="glyphicon glyphicon-plus" aria-hidden="true"></span></a></li>
-                               </ul>
-                       </div>
-                       <div class="panel-body">
-                               <div class="tab-content">
-                                       <div id="properties_tab" class="tab-pane fade in active"></div>
-
+                               <div style="float: left">
+                                       <button type="button" id="createNewStringMatch" class="btn btn-sm">New Group</button>
+                                       </span>
                                </div>
-
+                               <div style="float: right">
+                                       <button type="button" id="deleteStringMatch" class="btn btn-sm glyphicon glyphicon-trash" disabled></button>
+                                       </span>
+                               </div>
+                               <div id="repeatIdError" class="idError">Error: This Group name is already taken.</div>
+                               <div id="newIdError" class="idError">Error: Please rename your new Group.</div>
                        </div>
-               </div>
-               <span id="formSpan" style="display: none">
-                       <form class="saveProps" class="form-horizontal clearfix">
-                               <div>
-                                       <div class="form-group clearfix">
-                                               <label for="aaiMatchingFields" class="col-sm-4 control-label">AAI
-                                                       Fields Matching </label>
-                                               <div class="col-sm-8">
-                                                       <select type="text" class="form-control "
-                                                               name="aaiMatchingFields" id="aaiMatchingFields" multiple="" size=2></select>
 
-                                               </div>
+                       <div class="panel panel-default col-sm-9 stringMatchPanel"
+                               style="display: none;">
+                               <form id="topicPublish" class="form-horizontal">
+                                       <div>
+<!--                                           As per the last minute new requirements for 1707 the ID needs to be hidden and we need to have a friendly name instead -->
+                                                       <div style="display: none;">
+                                                               <div class="form-group clearfix">
+                                                                       <label class="col-sm-4 control-label">Resource Group Id</label>
+                                                                       <div class="col-sm-8">
+                                                                               <input class="form-control" id="rgname" name="rgname" readOnly> </input>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
+                                                       
+                                                       <div>
+                                                               <div class="form-group clearfix">
+                                                                       <label class="col-sm-4 control-label">Resource Group</label>
+                                                                       <div class="col-sm-8">
+                                                                               <input class="form-control" maxlength="48" placeholder="Enter Unique Name" id="rgfriendlyname" name="rgfriendlyname"> </input>
+                                                                       </div>
+                                                               </div>
+                                                       </div>                                                  
+                                                       
+                                                       <!--Policy's drop down box -->
+                                                       <div class="form-group clearfix">
+                                                               <label class="col-sm-4 control-label">Ops Policy:</label>
+                                                               <div class="col-sm-8">
+                                                                       <select class="form-control" id="policyName" name="policyName"
+                                                                               autofocus="autofocus" required ng-trim="true" enableFilter="true">
+                                                                               <option ng-repeat="x in policyNames" value="{{x}}">{{x}}</option>
+                                                                       </select>
+                                                               </div>
+                                                       </div>
+                                                       
                                        </div>
-                                       <div class="form-group clearfix">
-                                               <label for="aaiSendFields" class="col-sm-4 control-label">
-                                                       AAI Fields Send (Select Multiple)</label>
-
-                                               <div class="col-sm-8 ">
-                                                       <select class="form-control"
-                                                               id="aaiSendFields" name="aaiSendFields" multiple size=2>
+                               </form>
+                               
+                               <div class="panel-heading" style="background-color: white;">
+                                       <ul id="nav_Tabs" class="nav nav-tabs">
+                                               <li class><a id="add_one_more" href="#desc_tab"><span
+                                                               class="glyphicon glyphicon-plus" aria-hidden="true"></span></a></li>
+                                       </ul>
+                               </div>
+                               <div class="panel-body">
+                                       <div class="tab-content">
+                                               <div id="properties_tab" class="tab-pane fade in active"></div>
+                                       </div>
+                               </div>
+                       </div>
 
-                                                       </select>
+                       <span id="formSpan" style="display: none">
+                               <form class="saveProps" class="form-horizontal">
 
+                                       <div>
+                                               <div class="form-group clearfix">
+                                                       <label for="aaiMatchingFields" class="col-sm-4 control-label">AAI Fields Matching </label>
+                                                       <div class="col-sm-8">
+                                                               <select class="form-control" name="aaiMatchingFields" id="aaiMatchingFields" multiple size=2></select>
+                                                       </div>
+                                                                                                       
                                                </div>
-                                       </div>
-                                       <div class="form-group clearfix">
-                                               <label for="groupNumber" class="col-sm-4 control-label">
-                                                       Resource-Group</label>
-
-                                               <div class="col-sm-8">
-                                                       <input type="number" class="form-control" id="groupNumber" name="groupNumber" min="0" >
+                                               <div class="form-group clearfix">
+                                                       <label for="aaiSendFields" class="col-sm-4 control-label">AAI Fields Send (Select Multiple)</label>
 
-                                                       </input>
+                                                       <div class="col-sm-8 ">
+                                                               <select class="form-control" id="aaiSendFields"
+                                                                       name="aaiSendFields" multiple size=2>
+                                                               </select>
 
+                                                       </div>
                                                </div>
-                                       </div>
-                                       <div class="form-group clearfix">
-                                               <label for="vfc" class="col-sm-4 control-label">
-                                                       Resource-VFC</label>
+<!--                                           <div class="form-group clearfix"> -->
+<!--                                                   <label for="groupNumber" class="col-sm-4 control-label"> -->
+<!--                                                           Resource-Group</label> -->
 
-                                               <div class="col-sm-8">
-                                                       <select class="form-control" id="vfc" name="vfc">
+<!--                                                   <div class="col-sm-8"> -->
+<!--                                                           <input type="number" class="form-control" id="groupNumber" -->
+<!--                                                                   name="groupNumber" min="0"> </input> -->
 
-                                                       </select>
+<!--                                                   </div> -->
+<!--                                           </div> -->
+                                               <div class="form-group clearfix">
+                                                       <label for="vfc" class="col-sm-4 control-label">Resource-VFC</label>
+                                                       <div class="col-sm-8">
+                                                               <select class="form-control" id="vfc" name="vfc" enableFilter="true">
 
-                                               </div>
-                                       </div>
-                                       <div class="form-group clearfix">
-                                               <label for="alarmCondition" class="col-sm-4 control-label">
-                                                       Alarm Condition</label>
+                                                               </select>
 
-                                               <div class="col-sm-8">
-                                                       <select class="form-control" id="alarmCondition"
-                                                               name="alarmCondition"></select>
+                                                       </div>
                                                </div>
-                                       </div>
-                                       <div class="form-group clearfix">
-                                               <label for="eventSeverity" class="col-sm-4 control-label">
-                                                       Event Severity</label>
-                                               <div class="col-sm-8">
-                                                       <select class="form-control" id="eventSeverity"
-                                                               name="eventSeverity" enableFilter="false"></select>
+                                               <div class="form-group clearfix">
+                                                       <label for="alarmCondition" class="col-sm-4 control-label">Alarm Condition</label>
+                                                       <div class="col-sm-8">
+                                                               <select class="form-control" id="alarmCondition" name="alarmCondition" enableFilter="true">
+                                                               
+                                                               </select>
+                                                       </div>
                                                </div>
-                                       </div>
-                                       <div class="form-group clearfix">
-                                               <label for="eventSourceType" class="col-sm-4 control-label">
-                                                       Event Source Type</label>
-                                               <div class="col-sm-8">
-                                                       <input type="text" class="form-control" id="eventSourceType"
-                                                               name="eventSourceType" readOnly  ></input>
+                                               <div class="form-group clearfix">
+                                                       <label for="eventSeverity" class="col-sm-4 control-label">Event Severity</label>
+                                                       <div class="col-sm-8">
+                                                               <select class="form-control" id="eventSeverity"
+                                                                       name="eventSeverity" enableFilter="false"></select>
+                                                       </div>
+                                               </div>
+                                               <div class="form-group clearfix">
+                                                       <label for="eventSourceType" class="col-sm-4 control-label">
+                                                               Event Source Type</label>
+                                                       <div class="col-sm-8">
+                                                               <input type="text" class="form-control" id="eventSourceType"
+                                                                       name="eventSourceType" readOnly></input>
+                                                       </div>
                                                </div>
-                                       </div>
-
-                                       <div class="form-group clearfix">
-                                               <label for="timeWindow" class="col-sm-4 control-label">
-                                                       Time Window</label>
-
-                                               <div class="col-sm-8">
-                                                       <input type="number" min="0" class="form-control" id="timeWindow"
-                                                               name="timeWindow" />
 
+                                               <div class="form-group clearfix">
+                                                       <label for="timeWindow" class="col-sm-4 control-label">
+                                                               Time Window</label>
 
+                                                       <div class="col-sm-8">
+                                                               <input type="text" maxlength="5" class="form-control"
+                                                                       onkeypress="return isNumberKey(event)"
+                                                                       id="timeWindow" name="timeWindow" />
+                                                       </div>
                                                </div>
-                                       </div>
-                                       <div class="form-group clearfix">
-                                               <label for="ageLimit" class="col-sm-4 control-label"> Age
-                                                       Limit</label>
-
-                                               <div class="col-sm-8">
-                                                       <input type="number" min="0" class="form-control" id="ageLimit"
-                                                               name="ageLimit" />
+                                               <div class="form-group clearfix">
+                                                       <label for="ageLimit" class="col-sm-4 control-label"> Age
+                                                               Limit</label>
+
+                                                       <div class="col-sm-8">
+                                                               <input type="text" maxlength="5" class="form-control" id="ageLimit"
+                                                                       onkeypress="return isNumberKey(event)"
+                                                                       name="ageLimit" />
+                                                       </div>
                                                </div>
-                                       </div>
-                                       <div class="form-group clearfix">
-                                               <label for="createClosedLoopEventId"
-                                                       class="col-sm-4 control-label"> Create CL Event ID</label>
-                                               <div class="col-sm-8">
-                                                       <select class="form-control" id="createClosedLoopEventId"
-                                                               name="createClosedLoopEventId" enableFilter="false">
-                                                       </select>
-
+                                               <div class="form-group clearfix">
+                                                       <label for="createClosedLoopEventId"
+                                                               class="col-sm-4 control-label"> Create CL Event ID</label>
+                                                       <div class="col-sm-8">
+                                                               <select class="form-control" id="createClosedLoopEventId"
+                                                                       name="createClosedLoopEventId" enableFilter="false">
+                                                               </select>
+
+                                                       </div>
                                                </div>
-                                       </div>
 
-                                       <div class="form-group clearfix">
-                                               <label for="outputEventName" class="col-sm-4 control-label">
-                                                       Output Event Name</label>
+                                               <div class="form-group clearfix">
+                                                       <label for="outputEventName" class="col-sm-4 control-label">
+                                                               Output Event Name</label>
 
-                                               <div class="col-sm-8">
-                                                       <select class="form-control" id="outputEventName" 
-                                                               name="outputEventName" enableFilter="false"></select>
+                                                       <div class="col-sm-8">
+                                                               <select class="form-control" id="outputEventName"
+                                                                       name="outputEventName" enableFilter="true"></select>
 
+                                                       </div>
                                                </div>
                                        </div>
-                               </div>
-                       </form>
-               </span>
+
+
+
+                               </form>
+                       </span>
+               </div>
        </div>
 
-       <div attribute-test="stringmatchpropertiesf" class="modal-footer">
+       <div attribute-test="stringMatchwindowpropertiesf" class="modal-footer">
                <!--<button ng-click="reset()" class="btn btn-primary" style="float:left">Reset</button>-->
                <button id="savePropsBtn" class="btn btn-primary">Close</button>
                <button ng-click="close(true)" id="close_button"
                        class="btn btn-primary">Cancel</button>
-
        </div>
+
        <script>
+
                //Basically this method will add a new form. All forms share the same class. When you want one form to show(active form) the other forms get the 
                // css attribute display:none
-               $("#paramsRetry").on('click', function () {
-                       $("#paramsWarn").hide();
-                       $("#ridinSpinners").css("display","")
-                       var bool=loadSharedPropertyByService();
-                       $("#ridinSpinners").css("display","none")
-               });
-               $("#paramsCancel").on('click', function () {
-                       loadSharedPropertyByServiceProperties();
-                       $("#paramsWarn").hide();
-                       
-               });
-
-
-
                $("#add_one_more").click(function(event) {
-                       //alert("lol");
                        event.preventDefault();
-                       add_one_more();
-                       //I have uncomment the below code becoz there is no refreshItems method.
-                       
-                       //refreshItems();
+                       num = add_one_more();
                        setMultiSelect();
-       
-               })
-               loadPropertyWindow("string_match")
+                       addSelectListen(num);
+               });
+               
+               
+               //This method will load the existing Strin Match onto the screen
+               loadPropertyWindow("string_match");
                setASDCFields();
-               var arr = elementMap[lastElementSelected];
+
+               // By default, parentStringMatchConditions is disabled
+               $("#parentStringMatchConditions").prop('disabled', 'disabled');
+               
+               
+               var parent_stringMatch = {}
+               var stringMatch_ids = {}
+               var loadingId = false;
+               var allSMatch = {};
                var vfc_temp=""
                var alarm_conditions_temp=""
                var event_severity_temp=""
-               var event_type_source_temp=""
-               if (arr !== undefined && arr[1]!==undefined) {
-                       var el = arr[1]['serviceConfigurations']
-                       for (var i = 0; i < el.length; i++) {
-                               var num = add_one_more();
-                               for (var j = 0; j < el[i].length; j++) {
-                                       if (el[i][j]["stringSet"] !== undefined) {
-                                               var ss = el[i][j]["stringSet"]
-                                               for (var o = 0; o < ss.length; o++) {
-                                                       if(ss[o].hasOwnProperty("name")){
-                                                               if(ss[o].name==="alarmCondition"){
-                                                                       alarm_conditions_temp=ss[o].value
-                                                               }else if(ss[o].name==="eventSeverity"){
-                                                                       event_severity_temp=ss[o].value;
-                                                               }else if(ss[o].name==="eventSourceType"){
-                                                                       event_type_source_temp=ss[o].value;
+               var event_type_source_temp=""           
+
+               //Grab saved values for dropdowns
+               var obj = elementMap[lastElementSelected];
+
+               if (!($.isEmptyObject(obj))) {
+                       allSMatch = jQuery.extend({}, obj);
+                       for ( var x in allSMatch) {
+                               $("#stringMatchTable").prepend(
+                                               "<tr><td>" + x + "</td></tr>");
+                       }
+               }
+
+               
+               //Load properties_tab for a chosen String Match
+               function disperseConfig(stringMatchObj, id) {                   
+                       //remove old gui forms
+                       for (var i = 1; i < ($(".formId").length + 1); i++) {
+                               $("#go_properties_tab" + i).parent().remove();
+                       }
+                       $(".formId").remove();
+
+                       if (stringMatchObj !== undefined) {
+                               var el = stringMatchObj[id][4]['serviceConfigurations']
+                               for (var i = 0; i < el.length; i++) {
+                                       loadingId = true;
+                                       var num = add_one_more();
+                                       loadingId = false;
+                                       for (var j = 0; j < el[i].length; j++) {
+                                               if (el[i][j]["stringSet"] !== undefined) {
+                                                       var ss = el[i][j]["stringSet"]
+                                                       for (var o = 0; o < ss.length; o++) {
+                                                               if(ss[o].hasOwnProperty("name")){
+                                                                       if(ss[o].name==="alarmCondition"){
+                                                                               alarm_conditions_temp=ss[o].value
+                                                                       }else if(ss[o].name==="eventSeverity"){
+                                                                               event_severity_temp=ss[o].value;
+                                                                       }else if(ss[o].name==="eventSourceType"){
+                                                                               event_type_source_temp=ss[o].value;
+                                                                       }
+                                                                       else 
+                                                                       $("#formId" + num + " #" + ss[o].name).val(ss[o].value);        
                                                                }
-                                                               else 
-                                                               $("#formId" + num + " #" + ss[o].name).val(ss[o].value);        
+                                                               
+                                                       }
+                                               }else if(el[i][j].hasOwnProperty("name") && el[i][j].name==="vfc"){
+                                                       vfc_temp=el[i][j].value
+                                               }
+                                               else if (el[i][j].name === 'outputEventName' && el[i][j].value.toString() !== '') {
+                                                       $("#go_properties_tab" + num).text(el[i][j].value);
+                                                       $("#formId" + num + " #" + el[i][j].name).val(el[i][j].value);
+                                               }
+                                               else {
+                                                       if(el[i][j].hasOwnProperty("name")){
+                                                               $("#formId" + num + " #" + el[i][j].name).val(
+                                                                               el[i][j].value);
                                                        }
-                                                       
                                                }
-                                       }else if(el[i][j].hasOwnProperty("name") && el[i][j].name==="vfc"){
-                                               //alert(el[i][j].value)
-                                               vfc_temp=el[i][j].value
                                        }
-                                       else {
-                                               if(el[i][j].hasOwnProperty("name")){
-                                                       $("#formId" + num + " #" + el[i][j].name).val(
-                                                                       el[i][j].value);
+                                       set_vfc_alarm_event(num);
+                                       vfc_temp="";
+                                       alarm_conditions_temp="";
+                                       event_severity_temp="";
+                                       event_type_source_temp="";
+
+                                       addSelectListen(num);
+                               }
+
+                               //Adding all the ids for parent String options
+                               for (var i = 1; i <= $(".formId").length; i++) {
+                                       for (k in stringMatch_ids) {
+                                               if ($("#formId" + i + " #_id").val() !== stringMatch_ids[k].toString() && $(k + " #recipe").val() !== undefined && $(k + " #recipe").val() !== "") {
+                                                       $("#formId" + i + " #parentStringMatch").append("<option value=\""+stringMatch_ids[k]+"\">"+ $(k + " #recipe").val()+ "</option>");
                                                }
                                        }
                                }
-                               changeTab(num);
-                               set_vfc_alarm_event(num)
-                               vfc_temp=""
-                               alarm_conditions_temp=""
-                               event_severity_temp=""
-                               event_type_source_temp=""
 
-                       }
-                       if(arr[0] &&  arr[0][0] &&  arr[0][0].name){
-                               $("#" + arr[0][0].name).val(arr[0][0].value);
-                       }
+                               for (k in parent_stringMatch) {
+                                       $("#formId" + k + " #parentStringMatch").val(parent_stringMatch[k]);
+                                       // force the change event
+                                       $("#formId" + k + " #parentStringMatch").change();
+                               }
 
-               }
-               
-               //this will populate alarmcondition,vfc,eventtypesource if they are saved in elementmap
-               function set_vfc_alarm_event (count){
-                       //alert("lol")
-                       //alert(alarm_conditions_temp)
-                       //alert(alarm_conditions_temp!=="" && alarm_conditions_temp!==undefined)
-                       if(vfc_temp!=="" && vfc_temp!==undefined){
-                               $("#formId"+count+" #vfc").val(vfc_temp)
+                               if (stringMatchObj[id][0]) {
+                                       $("#" + stringMatchObj[id][0].name).val(stringMatchObj[id][0].value);
+                               }
                                
-                               if(alarm_conditions_temp!=="" && alarm_conditions_temp!==undefined){
-                                       setAlarmConditions(vfc_temp,count)
-                                       $("#formId"+count+" #alarmCondition").val(alarm_conditions_temp)
-                                       
-                                       if(event_severity_temp!=="" && event_severity_temp!==undefined){
-                                               setEventSourceType(alarm_conditions_temp,count)
-                                               $("#formId"+count+" #eventSeverity").val(event_severity_temp)
-                                               if(event_type_source_temp!=="" && event_type_source_temp!==undefined){
-                                                       $("#formId"+count+" #eventSourceType").val(event_type_source_temp)
-                                               }
-                                       }
-                                       if(event_type_source_temp!=="" && event_type_source_temp!==undefined){
-                                               setEventSourceType(alarm_conditions_temp,count)
-                                               $("#formId"+count+" #eventSourceType").val(event_type_source_temp)
-                                               if(event_severity_temp!=="" && event_severity_temp!==undefined){
-                                                       $("#formId"+count+" #eventSeverity").val(event_severity_temp)
-                                               }
-                                       }
+                               if (stringMatchObj[id][1]) {
+                                       $("#" + stringMatchObj[id][1].name).val(stringMatchObj[id][1].value);
+                               }               
+                               
+                               if (stringMatchObj[id][2]) {
+                                       $("#" + stringMatchObj[id][2].name).val(stringMatchObj[id][2].value);
                                }
                        }
+
+                       setMultiSelect();
                        
-                       
+                       if (readOnly||readMOnly){
+                               $('select[multiple] option').each(function() {
+                         var input = $('input[value="' + $(this).val() + '"]');
+                         input.prop('disabled', true);
+                         input.parent('li').addClass('disabled');
+                       });
+                               $('input[value="multiselect-all"]').prop('disabled', true).parent('li').addClass('disabled');
+                       }
                }
-               
-               
+
+
+               //This is ensure there are no repeated keys in the map
                function noRepeats(form) {
+                       //triggered per String.
                        var select = {};
                        for (var i = 0; i < form.length; i++) {
-                               if(form[i].hasOwnProperty("name")){
                                if (select[form[i].name] === undefined)
                                        select[form[i].name] = []
                                select[form[i].name].push(form[i].value);
                        }
-                       }
                        var arr = []
                        for (s in select) {
                                var f = {}
@@ -392,84 +524,69 @@ label{text-align:right;
                        }
                        return arr
                }
-               function setStringSet(form) {
-                       var arr = []
-                       var alarmCondition = {}
-                       var eventSeverity = {}
-                       var eventSourceType = {}
-                       for (var i = 0; i < form.length; i++) {
-                               if (form[i].name === "alarmCondition") {
-                                       alarmCondition = form[i]
-                               } else if (form[i].name === "eventSeverity") {
-                                       eventSeverity = form[i];
-                               } else if (form[i].name === "eventSourceType") {
-                                       eventSourceType = form[i];
-                               } else {
 
-                                       arr.push(form[i])
+               $("#savePropsBtn").click(function(event) {
+                       $(".idError").hide();
+                       if ($("#stringMatchTable .highlight td").html() !== $("#rgfriendlyname").val()){
+                               //repeated name
+                               if ($.inArray($("#rgfriendlyname").val(), Object.keys(allSMatch)) > -1){
+                                       $("#repeatIdError").show();
+                                       return;
+                               } else { //not repeated
+                                       delete allSMatch[$("#stringMatchTable .highlight td").html()];
                                }
-
                        }
-                       var stringSet = {};
-                       stringSet['stringSet'] = []
-                       stringSet['stringSet'].push(alarmCondition);
-                       stringSet['stringSet'].push(eventSeverity);
-                       stringSet['stringSet'].push(eventSourceType);
-                       arr.push(stringSet)
-
-                       return arr;
-               }
-               $("#savePropsBtn").click(function(event) {
-
-                       var form = []
-                       var properties = $(".saveProps").not("#formSpan .saveProps")
-                       var topicP = $("#topicPublish").serializeArray()
-                       form.push(topicP)
-                       var d = {}
-                       d["serviceConfigurations"] = [];
-
-                       for (var i = 0; i < properties.length; i++) {
-                               var ser = $(properties[i]).serializeArray();
-                               var s = noRepeats(ser)
-                               var newSer = setStringSet(s)
-
-                               d["serviceConfigurations"].push(newSer)
+                       /* //Saves edits
+                       if ($("#stringMatchTable .highlight").length > 0) {
+                               saveLastStringMatchLocally($("#stringMatchTable .highlight td").html());
+                       } */
+                       if ($("#rgfriendlyname").val().trim() == "New_Group"){
+                               $("#newIdError").show();
+                               return;
                        }
-                       form.push(d)
-                       saveProperties(form)
+                       startNextItem();
+                       //Removes outdated (deleted) resource Groups by checking against left menu
+                       var finalSaveList = {};
+                       $("#stringMatchTable td").each(function() {
+                               var tableVal = $(this).text();
+                               if (tableVal in allSMatch) {
+                                       finalSaveList[tableVal] = allSMatch[tableVal];
+                               }
+                       });
 
+                       saveProperties(finalSaveList);
                        $("#close_button").click();
-
                })
-               
-               
-               
-               
-               
+
                function add_one_more() {
                        $("#nav_Tabs li").removeClass("active");
+
+                       //FormSpan contains a block of the form that is not being displayed. We will create clones of that and add them to tabs
                        var form = $($("#formSpan").children()[0]).clone()
                        var count = 0;
-                       //alert($(".formId").length>0)
+                       //Each new tab will have the formId class attached to it. This way we can track how many forms we currently have out there and assign listeners to them
                        if ($(".formId").length > 0) {
                                var greatest = 0;
                                var s = $(".formId");
-                               //alert("here1")
                                for (var i = 0; i < s.length; i++) {
                                        if (parseInt($(s[i]).attr("id").substring(6)) > greatest) {
                                                greatest = parseInt($(s[i]).attr("id").substring(6))
                                        }
                                }
                                count = greatest + 1;
-                               //alert(count)
                                $("#properties_tab").append(
                                                ('<span class="formId" id="formId'+count+'"></span>'));
                        } else {
-                               //alert("here2")
                                count++;
                                $("#properties_tab").append(
                                                '<span class="formId" id="formId1"></span>');
                        }
+
+                       //$(form).find("#stringMatchName").val("Recipe "+makid(2))
+                       //TODO change up how we auto assign stringMatchName. There could be the case where we do this and it will have repeats
+                       //alert($(form).find("#_id").val())
+                       //stringMatchNameChangeListener(form)
+                       
                        $("#add_one_more")
                                        .parent()
                                        .before(
@@ -477,12 +594,124 @@ label{text-align:right;
                        $("#formId" + count).append(form);
                        $(".formId").not($("#formId" + count)).css("display", "none")
                        addCustListen(count)
-                       addEventNameList(count)
-                       add_vfc_alarm_event_listener(count);
+                       addTabListen(count)
+                       
+                       // This is for when the process is not loading from map but being created
+                       if (!loadingId) {
+                               var l = makeid()
+                               $(form).find("#_id").val(l)
+                               stringMatch_ids["#formId" + count] = l
+                               var answers = {}
+
+                               for (k in answers) {
+                                       $(k).val(answers[k])
+                               }
+                       }
                        return count;
                }
 
-               function addCustListen(count) {
+               function add_new_stringMatch(issueNewNames) {
+                       //remove old gui forms
+                       for (var i = 1; i < ($(".formId").length + 1); i++) {
+                               $("#go_properties_tab" + i).parent().remove();
+                       }
+                       $(".formId").remove();
+
+                       //Reset header
+                       var ms = new Date().getTime();
+                       var defSMatch = ms;
+                       $("#rgname").val(defSMatch);
+                       
+                       $("#rgfriendlyname").val("New_Group");
+
+                       $("#add_one_more").click();
+                       return defSMatch;
+               }
+
+               //listener will change the tab name to the recipe
+               function addTabListen(count) {
+                       $("#formId" + count + " #recipe").on("change",function() {
+                               if ($("#formId" + count + " #recipe").val().toString() !== "") {
+                                       $('#go_properties_tab' + count).text($("#formId" + count + " #recipe").val())
+                               } else
+                                       $('#go_properties_tab' + count).text("String");
+
+                               var answers = {}
+
+                               for (var i = 1; i <= greatestIdNum(); i++) {
+                                       if ($("#formId" + i).length > 0) {
+
+                                               answers["#formId" + i + " #parentStringMatch"] = $("#formId" + i + " #parentStringMatch").val()
+                                               $("#formId" + i + " #parentStringMatch").empty();
+
+                                               for (k in stringMatch_ids) {
+                                                       if ($("#formId" + i + " #_id").val().toString() !== stringMatch_ids[k] && $(k + " #recipe").val() !== 'undefined' && $(k + " #recipe").val() !== "") {
+                                                               $("#formId" + i + " #parentStringMatch").append("<option value='"+stringMatch_ids[k]+"''> "+ $(k+ " #recipe").val()+ "</option>")
+                                                       }
+                                               }
+                                               $("#formId" + i + " #parentStringMatch").prepend("<option value=''></option>")
+                                       }
+                               }
+                               for (k in answers) {
+                                       $(k).val(answers[k])
+                               }
+                       })
+
+                       // disable parentStringMatchConditions when a parentStringMatch is not selected
+                       $("#formId" + count + " #parentStringMatch").on("change",function() {
+                               if ($("#formId" + count + " #parentStringMatch").val().toString() == "") {
+                                       // deselect all options
+                                       $("#formId"+ count+ " #parentStringMatchConditions option:selected").prop("selected", false);
+                                       // disable the select box
+                                       $("#formId"+ count+ " #parentStringMatchConditions").prop('disabled', 'disabled');
+                               } else {
+                                       $("#formId"+ count+ " #parentStringMatchConditions").prop('disabled', false);
+                               }
+                       })
+               }
+
+                       function addSelectListen(count) {
+                               var onSelectChange = function() {
+                                       var opselected = this.selectedOptions[0].text;
+
+                                       if (this.id=="outputEventName"){
+                                               if(opselected!==""){
+                                                       var stringMatchCount = $(this).closest("[id^='formId']").attr("id").substring(6);
+                                                       $(this).closest(".stringMatchPanel").find("#go_properties_tab"+stringMatchCount).text(opselected);
+                                               } else {
+                                                       $(this).closest("[id^='go_properties_tab']").text("Condition");
+                                               }
+                                       }
+
+                                       if (this.id=="vfc"){
+                                               var vfcCount = $(this).closest("[id^='formId']").attr("id").substring(6);
+                                               if(opselected!==""){
+                                                       setAlarmConditions(opselected, vfcCount);
+                                                       setAlertDescription(opselected, vfcCount);
+                                               } else {
+                                                       $(this).closest(".formId").find("#eventSourceType").val("");
+                                                       $(this).closest(".formId").find("#eventSeverity").val("");
+                                               }
+                                       }
+
+                                       if (this.id=="alarmCondition"){
+                                               var alarmCount = $(this).closest("[id^='formId']").attr("id").substring(6);
+                                               if(opselected!==""){
+                                                       setEventSourceType(opselected.toString(), alarmCount, "alarm");
+                                               } else {
+                                                       $(this).closest(".formId").find("#eventSourceType").val("");
+                                                       $(this).closest(".formId").find("#eventSeverity").val("");
+                                               }
+                                       }
+
+                               };
+
+                               $("#formId"+count+" select").each( function () {
+                                       this.change = onSelectChange;
+                               });
+                       }
+
+               function addCustListen(count) {                 
                        $('#go_properties_tab' + count).click(function(event) {
                                $("#nav_Tabs li").removeClass("active");
                                $(this).parent().addClass("active");
@@ -491,95 +720,300 @@ label{text-align:right;
 
                        })
                        $('#tab_close' + count).click(function(event) {
-                               if(document.getElementById("topicPublishes").disabled){
-                                       return false;
-                               }
+
                                $(this).parent().remove();
+                               delete stringMatch_ids["#formId" + count + " #_id"]
                                $("#formId" + count).remove();
                        })
                }
+               
+               function setStringSet(form) {
+                       var arr = []
+                       var alarmCondition = {}
+                       var eventSeverity = {}
+                       var eventSourceType = {}
+                       for (var i = 0; i < form.length; i++) {
+                               if (form[i].name === "alarmCondition") {
+                                       alarmCondition = form[i]
+                               } else if (form[i].name === "eventSeverity") {
+                                       eventSeverity = form[i];
+                               } else if (form[i].name === "eventSourceType") {
+                                       eventSourceType = form[i];
+                               } else {
 
-               function changeTab(count){
-                       var output = $('#formId' + count + " #outputEventName");
-                       var group = $('#formId' + count + " #groupNumber");
-                       var outputValue="";
-                       var groupValue="";
-                       if(output.val()!=="")
-                               outputValue=output.val();
-                       if(output.val()!=="" && group.val()!=="")
-                               groupValue=group.val()+":";
-                       else if(group.val()!=="")
-                               groupValue=group.val();
-                       
-                       var tabText="Condition"
-                       if(groupValue+outputValue!=="")
-                               tabText=groupValue+outputValue;
-                       $("#go_properties_tab" + count).text(tabText);  
+                                       arr.push(form[i])
+                               }
+
+                       }
+                       var stringSet = {};
+                       stringSet['stringSet'] = []
+                       stringSet['stringSet'].push(alarmCondition);
+                       stringSet['stringSet'].push(eventSeverity);
+                       stringSet['stringSet'].push(eventSourceType);
+                       arr.push(stringSet)
+
+                       return arr;
                }
                
-               function addEventNameList(count) {
+               //this will populate alarmcondition,vfc,eventtypesource if they are saved in elementmap
+               function set_vfc_alarm_event (count){
+                       if(vfc_temp!=="" && vfc_temp!==undefined){
+                               $("#formId"+count+" #vfc").val(vfc_temp)
+                               
+                               if(alarm_conditions_temp!=="" && alarm_conditions_temp!==undefined){
+                                       setAlarmConditions(vfc_temp,count)
+                                       $("#formId"+count+" #alarmCondition").val(alarm_conditions_temp);
+                                       
+                                       if(event_severity_temp!=="" && event_severity_temp!==undefined){
+                                               setEventSourceType(alarm_conditions_temp,count)
+                                               $("#formId"+count+" #eventSeverity").val(event_severity_temp)
+                                               if(event_type_source_temp!=="" && event_type_source_temp!==undefined){
+                                                       $("#formId"+count+" #eventSourceType").val(event_type_source_temp)
+                                               }
+                                       }
+                                       if(event_type_source_temp!=="" && event_type_source_temp!==undefined){
+                                               setEventSourceType(alarm_conditions_temp,count)
+                                               $("#formId"+count+" #eventSourceType").val(event_type_source_temp)
+                                               if(event_severity_temp!=="" && event_severity_temp!==undefined){
+                                                       $("#formId"+count+" #eventSeverity").val(event_severity_temp)
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               function setAlarmConditions(vfcID, count){
+                       var alarmCondition={}
+                       
+                       if($("#formId"+count+" #vfc").val()!==""){
+                               if(vf_Services['shared'] && vf_Services['shared']['byVfc'] && vf_Services['shared']['byVfc'][vfcID]){
+                                       alarmCondition=vf_Services['shared']['byVfc'][vfcID]['alarmCondition']  
+                               }
+                       }
                        
-                       $('#formId' + count + " #outputEventName").on('change',function(){changeTab(count)})
-                       $('#formId' + count + " #groupNumber").on('change',function(){changeTab(count)});
+                       $("#formId"+count+" #alarmCondition").empty();
+                       $("#formId"+count+" #alarmCondition").append("<option value=\"\"></opton>");
+                        if(alarmCondition && _.keys(alarmCondition).length>0){
+                               for(key in alarmCondition){
+                                       var safestring = $('<div>').text(key).html();
+                                       $("#formId"+count+" #alarmCondition").append("<option value='"+safestring+"'>"+alarmCondition[key]+"</opton>"); 
+                               }
+                               $("#formId"+count+" #alarmCondition").multiselect("rebuild");
+                       }
+               }
 
+               function setEventSourceType(alarm, count){
+                       var eventSourceTypSeverity={}
+                       if($("#formId"+count+" #alarmCondition").val()!==""){
+                               if(vf_Services && vf_Services['shared'] && vf_Services['shared']['byAlarmCondition'] && vf_Services['shared']['byAlarmCondition'][alarm]){
+                                       eventSourceTypSeverity=vf_Services['shared']['byAlarmCondition'][alarm] 
+                               }
+                               
+                       }
+                       
+                       $("#formId"+count+" #eventSourceType").val(eventSourceTypSeverity.eventSourceType);
+                       $("#formId"+count+" #eventSeverity").val(eventSourceTypSeverity.eventSeverity);
+                       $("#formId"+count+" #eventSeverity").multiselect("rebuild");
+               }               
+
+               function greatestIdNum() {
+                       var greatest = 0;
+                       var s = $(".formId");
+                       for (var i = 0; i < s.length; i++) {
+                               if (parseInt($(s[i]).attr("id").substring(6)) > greatest) {
+                                       greatest = parseInt($(s[i]).attr("id").substring(6))
+                               }
+                       }
+                       return greatest;
                }
-               
-               
-function setAlarmConditions(vfcID, count){
-       var alarmCondition={}
-       
-       if($("#formId"+count+" #vfc").val()!==""){
-               if(vf_Services['shared'] && vf_Services['shared']['byVfc'] && vf_Services['shared']['byVfc'][vfcID]){
-                       alarmCondition=vf_Services['shared']['byVfc'][vfcID]['alarmCondition']  
+
+               //Generate random id for each String
+               //Also made sure ids couldnt be repeated
+               function makeid(num) {
+
+                       var text = "";
+                       var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+                       if (num == null)
+                               num = 7;
+                       for (var i = 0; i < 7; i++)
+                               text += possible.charAt(Math.floor(Math.random()
+                                               * possible.length));
+                       var hasValue = false;
+                       for (k in stringMatch_ids) {
+                               if (text === stringMatch_ids[k])
+                                       hasValue = true
+                       }
+                       if (hasValue)
+                               return makeid(num);
+                       else
+                               return text
                }
-               
-       }
-       
-       $("#formId"+count+" #alarmCondition").empty();
-       $("#formId"+count+" #alarmCondition").append("<option value=\"\"></opton>")
-        if(alarmCondition && _.keys(alarmCondition).length>0){
-               for(key in alarmCondition){
-                       var safestring = $('<div>').text(key).html();
-                       $("#formId"+count+" #alarmCondition").append("<option value='"+safestring+"'>"+alarmCondition[key]+"</opton>")          
+
+               var ParentStringMatch = function(id, name) {
+                       this.id = id
+                       this.name = name
                }
-       }
-}
 
-function setEventSourceType(alarm, count){
-       var eventSourceTypSeverity={}
-       if($("#formId"+count+" #alarmCondition").val()!==""){
-               if(vf_Services && vf_Services['shared'] && vf_Services['shared']['byAlarmCondition'] && vf_Services['shared']['byAlarmCondition'][alarm]){
-                       eventSourceTypSeverity=vf_Services['shared']['byAlarmCondition'][alarm] 
+               //String table search filter
+               function searchStringMatchList() {
+                       var search = document.getElementById("stringMatchSearch");
+                       var row = document.getElementsByTagName("td");
+                       for (var i = 0; i < row.length; i++) {
+                               if (row[i].innerHTML.toUpperCase().indexOf(
+                                               search.value.toUpperCase()) > -1) {
+                                       row[i].style.display = "";
+                               } else {
+                                       row[i].style.display = "none";
+                               }
+                       }
                }
-               
-       }
-       
-       $("#formId"+count+" #eventSourceType").val(eventSourceTypSeverity.eventSourceType);
-       $("#formId"+count+" #eventSeverity").val(eventSourceTypSeverity.eventSeverity);
-       
-}
-function add_vfc_alarm_event_listener(count) {
+
+               function saveLastStringMatchLocally(lastStringMatchId) {
+                       var polForm = []
+
+                       var properties = $(".saveProps").not("#formSpan .saveProps")
+                       
+                       var topicPublish = $("#topicPublish").serializeArray();
                        
-        $("#formId"+count+" #vfc").on('focus', function () {
-               // Store the current value on focus and on change
-               previous = this.value;
-           }).change(function(){
+                       for (var i = 0; i < topicPublish.length; i++) {
+                               polForm.push(topicPublish[i]);
+                       }
                        
-                       setAlarmConditions($("#formId"+count+" #vfc").val(), count);
-                       $("#formId"+count+" #eventSourceType").val("");
-                       $("#formId"+count+" #eventSeverity").val("")
+                       //The below three lines are added to make sure resource group can be save correctly even if the policy is not present 
+                       if (topicPublish.length == 2){
+                               var pname = {name:"policyName", value:""};
+                               polForm.push(pname);
+                               var pid = {name:"policyId", value:""};
+                               polForm.push(pid);
+                       }else{
+                               var selectedPName = topicPublish[2]["value"];
+                               var pid = {name:"policyId", value:allPolicies[selectedPName][1]["value"]};
+                               polForm.push(pid);
+                       }
 
+                       var d = {}
+                       d["serviceConfigurations"] = [];
+                       for (var i = 0; i < properties.length; i++) {
+                               var ser = $(properties[i]).serializeArray();
+                               var s = noRepeats(ser)
+                               var newSer = setStringSet(s);
+                               d["serviceConfigurations"].push(newSer);
+                       }
+                       polForm.push(d);
+                       allSMatch[lastStringMatchId] = polForm;
+               }
+
+               $("#deleteStringMatch").on('click', function() {
+                       $(".idError").hide();
+                       var deleteId = $("#stringMatchTable .highlight td").html();
+                       delete allSMatch.deleteId;
+                       $("#stringMatchTable .highlight").remove();
+                       $("#rgfriendlyname").val('');
+                       expandTable();
                });
-        
-        $("#formId"+count+" #alarmCondition").on('focus', function () {
-               // Store the current value on focus and on change
-               previous = this.value;
-           }).change(function(){
-                       
+
+               $('#stringMatchTable').on('click', 'tr', function(event) {
+                       $(".idError").hide();
+                       //edited name
+                       if ($("#stringMatchTable .highlight td").html() !== $("#rgfriendlyname").val()){
+                               //repeated name
+                               if ($.inArray($("#rgfriendlyname").val(), Object.keys(allSMatch)) > -1){
+                                       $("#repeatIdError").show();
+                                       return;
+                               } else { //not repeated
+                                       $("#repeatIdError").hide();
+                                       delete allSMatch[$("#stringMatchTable .highlight td").html()];
+                               }
+                       }
+                       if ($("#rgfriendlyname").val().trim() == "New_Group"){
+                               $("#newIdError").show();
+                               return;
+                       }
+                       if (!(readOnly||readMOnly)){
+                               startNextItem();
+                       } else {
+                               if ($("#stringMatchTable .highlight").length == 0){
+                                       collapseTable();                
+                               }
+                       }
+
+                       $(this).addClass('highlight').siblings().removeClass('highlight');
+                       disperseConfig(allSMatch, $(this).find("td").html());
+               });
+
+               
+               $('#createNewStringMatch').on('click',  function() {
+                       $(".idError").hide();
+                       //edited name
+                       if ($("#stringMatchTable .highlight td").html() !== $("#rgfriendlyname").val()){
+                               //repeated name
+                               if ($.inArray($("#rgfriendlyname").val(), Object.keys(allSMatch)) > -1){
+                                       $("#repeatIdError").show();
+                                       return;
+                               } else { //not repeated
+                                       $("#repeatIdError").hide();
+                                       delete allSMatch[$("#stringMatchTable .highlight td").html()];
+                               }
+                       }
+                       if ($("#rgfriendlyname").val().trim() == "New_Group"){
+                               $("#newIdError").show();
+                               return;
+                       }
+                       startNextItem();
+                       var defSMatch = add_new_stringMatch();
+
+                       if (("#stringMatchTable .highlight").length > 0) {
+                               $('#stringMatchTable tr.highlight').removeClass('highlight');
+                       }
+                       //$("#stringMatchTable").prepend("<tr class='highlight' id='" +defSMatch+ "''><td>"+ defSMatch + "</td></tr>");
+                       $("#stringMatchTable").prepend("<tr class='highlight'><td>New_Group</td></tr>");
                        
-               setEventSourceType($("#formId"+count+" #alarmCondition").val().toString(),count);
                });
+
+               function isNumberKey(event){
+                       var charCode = (event.which) ? event.which : event.keyCode
+                       if (charCode > 31 && (charCode < 48 || charCode > 57)){
+                               return false;
+                       }
+                       return true;
                };
+               
+               function startNextItem() {
+                       //save last item before transitioning
+                       var lastItem = $("#stringMatchTable .highlight");
+                       
+                       
+                       if (lastItem.length > 0) {
+                               saveLastStringMatchLocally($("#rgfriendlyname").val());
+                               //lastItem.attr("id", $("#rgfriendlyname").val());
+                               if($("#rgfriendlyname").val() != ''){
+                                       lastItem.find("td").html($("#rgfriendlyname").val());
+                               }
+                       } else {
+                               collapseTable();
+                       }
+
+                       //allow deleting
+                       if ($("#deleteStringMatch").prop("disabled")) {
+                               $("#deleteStringMatch").prop("disabled", false);
+                       }
+               }
+
+               //Show table panel only
+               function expandTable() {
+                       $(".stringMatchPanel").css("display", "none");
+                       $(".leftStringMatchPanel").removeClass("col-sm-3");
+                       $(".modelSearchBox").css("padding", "25px 12px");
+                       if (!($("#deleteStringMatch").prop("disabled"))) {
+                               $("#deleteStringMatch").prop("disabled", true);
+                       }
+               }
+
+               //Show both menus
+               function collapseTable() {
+                       $(".leftStringMatchPanel").addClass("col-sm-3");
+                       $(".glyphicon-search").css("padding", "10px 12px");
+                       $(".stringMatchPanel").css("display", "unset");
+               }
        </script>
 </div>
-