<commit_before><div>
   <div v-if="!moveSuccessful" class="ui warning message">
      <div class="header">Your Work Items are not moved yet.</div>
      <p>You have to provide at least the required values in order to be able to move the selected work items.</p>
      <p v-if="serverError !== null">{{serverError}}</p>
   </div>

   <h3>Value Mappings</h3>
   <fieldset class="attr-mappings" v-for="attrDef in attributeDefinitions">
      <legend :title="attrDef.identifier" :id="attrDef.identifier">{{ attrDef.displayName }}</legend>
      <table class="ui celled table">
         <thead>
            <tr>
               <th></th>
               <th>New Value</th>
               <th>Old Value</th>
               <th>Affected Work Items</th>
            </tr>
         </thead>
         <tbody>
            <template v-for="valMap in attrDef.valueMappings">
               <tr>
                  <td style="width: 4%">
                     <span v-if="valMap.showDetails && valMap.affectedWorkItems.length > 1" data-tooltip="Click to collapse list" data-position="top left">
                        <i class="remove icon link" v-on:click="valMap.showDetails = false;"></i>
                     </span>
                     <span v-if="!valMap.showDetails && valMap.affectedWorkItems.length > 1" :data-tooltip="'Click to specify ' + attrDef.displayName + ' for each affected Work Item'" data-position="top left">
                        <i class="add icon link" v-on:click="valMap.showDetails = true;"></i>
                     </span>
                  </td>
                  <td style="width: 44%">
                     <select style="width: 86%" @change="topChanged(valMap.oldValue.identifier, valMap.chosen)" v-model="valMap.chosen">
                        <option selected value="nothing"></option>
                        <option v-if="valMap.affectedWorkItems.length > 1" disabled value="multiple">[Multiple Values Selected...]</option>
                        <option :value="val.identifier" :id="val.identifier" v-for="val in valMap.allowedValues">
                           {{hierarchify(val.displayName)}}
                        </option>
                     </select>
                     <span v-if="isApplyAllAllowed(valMap.chosen, attrDef.valueMappings.length)" :data-tooltip="'Apply this value to all new ' + attrDef.displayName + ' values'">
                        <i style="cursor: pointer;" class="world icon" v-on:click="applyToAll(attrDef.identifier, valMap.chosen)"></i>
                     </span>
                     <i v-else class="world icon disabled"></i>
                     <span v-if="hasRequiredChild(valMap.affectedWorkItems)" data-tooltip="At least one of the child items requires this value to be specified.">
                        <i style="color: red;" class="warning icon" ></i>
                     </span>
                  </td>
                  <td style="width: 26%" :title="valMap.oldValue.identifier">
                     {{ valMap.oldValue.displayName }}
                  </td>
                  <td style="width: 26%" v-html="valMap.affectedWorkItems.length === 1 ? getTitledLink(valMap.affectedWorkItems[0].workItem) : getLinkList(valMap.affectedWorkItems)"></td>
               </tr>
               <tr v-if="valMap.showDetails">
                  <td></td>
                  <td colspan="3">
                     <table class="ui celled table">
                        <thead>
                           <tr>
                              <th>New Value</th>
                              <th>Affected Work Item</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr v-for="affected in valMap.affectedWorkItems">
                              <td style="width: 46%">
                                 <select @change="subChanged(valMap.oldValue.identifier, affected.workItem.id, affected.chosen)" v-model="affected.chosen">
                                    <option selected value="nothing"></option>
                                    <option style="width: 90%" :value="val.identifier" :id="val.identifier" v-for="val in valMap.allowedValues">
                                       {{hierarchify(val.displayName)}}
                                    </option>
                                 </select>
                                 <span v-if="affected.isRequired" data-tooltip="This attribute is required by the target project area.">
                                    <i style="color: red;" class="warning icon"></i>
                                 </span>
                                 <span v-else data-tooltip="It is up to your decision if you want to map this attribute. Unless specified here, the default value will be used.">
                                    <i style="color: blue;" class="info icon"></i>
                                 </span>
                              </td>
                              <td v-html="getTitledLink(affected.workItem)"></td>
                           </tr><commit_msg>consistent and improved (non)required attribute handling<commit_after><div>
   <div v-if="!moveSuccessful" class="ui warning message">
      <div class="header">Your Work Items are not moved yet.</div>
      <p>You have to provide at least the required values in order to be able to move the selected work items.</p>
      <p v-if="serverError !== null">{{serverError}}</p>
   </div>

   <h3>Value Mappings</h3>
   <fieldset class="attr-mappings" v-for="attrDef in attributeDefinitions">
      <legend :title="attrDef.identifier" :id="attrDef.identifier">{{ attrDef.displayName }}</legend>
      <table class="ui celled table">
         <thead>
            <tr>
               <th></th>
               <th>New Value</th>
               <th>Old Value</th>
               <th>Affected Work Item(s)</th>
            </tr>
         </thead>
         <tbody>
            <template v-for="valMap in attrDef.valueMappings">
               <tr>
                  <td style="width: 4%">
                     <span v-if="valMap.showDetails && valMap.affectedWorkItems.length > 1" data-tooltip="Click to collapse list" data-position="top left">
                        <i class="remove icon link" v-on:click="valMap.showDetails = false;"></i>
                     </span>
                     <span v-if="!valMap.showDetails && valMap.affectedWorkItems.length > 1" :data-tooltip="'Click to specify ' + attrDef.displayName + ' for each affected Work Item'" data-position="top left">
                        <i class="add icon link" v-on:click="valMap.showDetails = true;"></i>
                     </span>
                  </td>
                  <td style="width: 44%">
                     <select style="width: 86%" @change="topChanged(valMap.oldValue.identifier, valMap.chosen)" v-model="valMap.chosen">
                        <option selected value="nothing"></option>
                        <option v-if="valMap.affectedWorkItems.length > 1" disabled value="multiple">[Multiple Values Selected...]</option>
                        <option :value="val.identifier" :id="val.identifier" v-for="val in valMap.allowedValues">
                           {{hierarchify(val.displayName)}}
                        </option>
                     </select>
                     <span v-if="isApplyAllAllowed(valMap.chosen, attrDef.valueMappings.length)" :data-tooltip="'Apply this value to all new ' + attrDef.displayName + ' values'">
                        <i style="cursor: pointer; font-weight: bold;" class="world icon" v-on:click="applyToAll(attrDef.identifier, valMap.chosen)"></i>
                     </span>
                     <i v-else class="world icon disabled"></i>
                     <span v-if="hasRequiredChild(valMap.affectedWorkItems)" data-tooltip="At least one of the items requires this value to be specified.">
                        <i style="color: red;" class="warning icon" ></i>
                     </span>
                     <span v-else data-tooltip="It is up to your decision if you want to map this attribute. Unless specified here, the default value will be used.">
                        <i class="warning icon disabled"></i>
                     </span>
                  </td>
                  <td style="width: 26%" :title="valMap.oldValue.identifier">
                     {{ valMap.oldValue.displayName }}
                  </td>
                  <td style="width: 26%" v-html="valMap.affectedWorkItems.length === 1 ? getTitledLink(valMap.affectedWorkItems[0].workItem) : getLinkList(valMap.affectedWorkItems)"></td>
               </tr>
               <tr v-if="valMap.showDetails">
                  <td></td>
                  <td colspan="3">
                     <table class="ui celled table">
                        <thead>
                           <tr>
                              <th>New Value</th>
                              <th>Affected Work Item</th>
                           </tr>
                        </thead>
                        <tbody>
                           <tr v-for="affected in valMap.affectedWorkItems">
                              <td style="width: 46%">
                                 <select @change="subChanged(valMap.oldValue.identifier, affected.workItem.id, affected.chosen)" v-model="affected.chosen">
                                    <option selected value="nothing"></option>
                                    <option style="width: 90%" :value="val.identifier" :id="val.identifier" v-for="val in valMap.allowedValues">
                                       {{hierarchify(val.displayName)}}
                                    </option>
                                 </select>
                                 <span v-if="affected.isRequired" data-tooltip="This attribute is required by the target project area.">
                                    <i style="color: red;" class="warning icon"></i>
                                 </span>
                                 <span v-else data-tooltip="It is up to your decision if you want to map this attribute. Unless specified here, the default value will be used.">
                                    <i class="warning icon disabled"></i>
                                 </span>
                              </td>
                              <td v-html="getTitledLink(affected.workItem)"></td>
                           </tr>
{'fraction_non_alphanumeric': 0.12722232842668707, 'fraction_numerical': 0.004014528770789524, 'mean_word_length': 1.4618823529411764, 'pattern_counts': {'":': 0, '<': 205, '<?xml version=': 0, '>': 211, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 28, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2391289', 'n_tokens_mistral': 2775, 'n_tokens_neox': 2561, 'n_words': 633}