This element houses rules for a particular project access section.
Here is the access hierarchy:
Project access
- Sections
  - Permissions <-- This is the component for this change
    - Rules
It has the ability to add new rules, or remove itself (with an undo
option).
Rules that already exist in a particular permission will not be present
in the autocomplete options.
Change-Id: I4db09d1a8bb7f738dff771867d25fce424a3ea3a
		
	
		
			
				
	
	
		
			129 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
Copyright (C) 2017 The Android Open Source Project
 | 
						|
 | 
						|
Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
you may not use this file except in compliance with the License.
 | 
						|
You may obtain a copy of the License at
 | 
						|
 | 
						|
http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
Unless required by applicable law or agreed to in writing, software
 | 
						|
distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
See the License for the specific language governing permissions and
 | 
						|
limitations under the License.
 | 
						|
-->
 | 
						|
 | 
						|
<link rel="import" href="../../../bower_components/polymer/polymer.html">
 | 
						|
 | 
						|
<link rel="import" href="../../../behaviors/gr-access-behavior/gr-access-behavior.html">
 | 
						|
<link rel="import" href="../../../styles/gr-form-styles.html">
 | 
						|
<link rel="import" href="../../../styles/shared-styles.html">
 | 
						|
<link rel="import" href="../../shared/gr-button/gr-button.html">
 | 
						|
<link rel="import" href="../../shared/gr-select/gr-select.html">
 | 
						|
 | 
						|
<dom-module id="gr-rule-editor">
 | 
						|
  <template>
 | 
						|
    <style include="shared-styles">
 | 
						|
      :host {
 | 
						|
        border-bottom: 1px solid #d1d2d3;
 | 
						|
        padding: .7em;
 | 
						|
        display: block;
 | 
						|
      }
 | 
						|
      .buttons {
 | 
						|
        display: flex;
 | 
						|
      }
 | 
						|
      .buttons gr-button {
 | 
						|
        margin-left: .3em;
 | 
						|
      }
 | 
						|
      #mainContainer {
 | 
						|
        align-items: baseline;
 | 
						|
        display: flex;
 | 
						|
        flex-wrap: nowrap;
 | 
						|
        justify-content: space-between;
 | 
						|
      }
 | 
						|
      .buttons gr-button {
 | 
						|
        float: left;
 | 
						|
        margin-left: .3em;
 | 
						|
      }
 | 
						|
      #undoBtn,
 | 
						|
      #force,
 | 
						|
      #deletedContainer,
 | 
						|
      #mainContainer.deleted {
 | 
						|
        display: none;
 | 
						|
      }
 | 
						|
      #undoBtn.modified,
 | 
						|
      #force.force,
 | 
						|
      #deletedContainer.deleted {
 | 
						|
        display: block;
 | 
						|
      }
 | 
						|
    </style>
 | 
						|
    <style include="gr-form-styles"></style>
 | 
						|
    <div id="mainContainer"
 | 
						|
        class$="gr-form-styles [[_computeDeletedClass(_deleted)]]">
 | 
						|
      <div id="options">
 | 
						|
        <gr-select id="action"
 | 
						|
            bind-value="{{rule.value.action}}"
 | 
						|
            on-change="_handleValueChange">
 | 
						|
          <select>
 | 
						|
            <template is="dom-repeat" items="[[_computeOptions(permission)]]">
 | 
						|
              <option value="[[item]]">[[item]]</option>
 | 
						|
            </template>
 | 
						|
          </select>
 | 
						|
        </gr-select>
 | 
						|
        <template is="dom-if" if="[[label]]">
 | 
						|
          <gr-select
 | 
						|
              id="labelMin"
 | 
						|
              bind-value="{{rule.value.min}}"
 | 
						|
              on-change="_handleValueChange">
 | 
						|
            <select>
 | 
						|
              <template is="dom-repeat" items="[[label.values]]">
 | 
						|
                <option value="[[item.value]]">[[item.value]]</option>
 | 
						|
              </template>
 | 
						|
            </select>
 | 
						|
          </gr-select>
 | 
						|
          <gr-select
 | 
						|
              id="labelMax"
 | 
						|
              bind-value="{{rule.value.max}}"
 | 
						|
              on-change="_handleValueChange">
 | 
						|
            <select>
 | 
						|
              <template is="dom-repeat" items="[[label.values]]">
 | 
						|
                <option value="[[item.value]]">[[item.value]]</option>
 | 
						|
              </template>
 | 
						|
            </select>
 | 
						|
          </gr-select>
 | 
						|
        </template>
 | 
						|
        [[group]]
 | 
						|
        <gr-select
 | 
						|
            id="force"
 | 
						|
            class$="[[_computeForceClass(permission)]]"
 | 
						|
            bind-value="{{rule.value.force}}"
 | 
						|
            on-change="_handleValueChange">
 | 
						|
          <select>
 | 
						|
            <template
 | 
						|
                is="dom-repeat"
 | 
						|
                items="[[_computeForceOptions(permission)]]">
 | 
						|
              <option value="[[item.value]]">[[item.name]]</option>
 | 
						|
            </template>
 | 
						|
          </select>
 | 
						|
        </gr-select>
 | 
						|
      </div>
 | 
						|
      <div class="buttons">
 | 
						|
        <gr-button
 | 
						|
            id="undoBtn"
 | 
						|
            on-tap="_handleUndoChange"
 | 
						|
            class$="[[_computeModifiedClass(_modified)]]">Undo</gr-button>
 | 
						|
        <gr-button id="removeBtn" on-tap="_handleRemoveRule">Remove</gr-button>
 | 
						|
      </div>
 | 
						|
    </div>
 | 
						|
    <div
 | 
						|
        id="deletedContainer"
 | 
						|
        class$="gr-form-styles [[_computeDeletedClass(_deleted)]]">
 | 
						|
      [[group]] was deleted
 | 
						|
      <gr-button id="undoRemoveBtn" on-tap="_handleUndoRemove">Undo</gr-button>
 | 
						|
    </div>
 | 
						|
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
 | 
						|
  </template>
 | 
						|
  <script src="gr-rule-editor.js"></script>
 | 
						|
</dom-module>
 |