* Builds one row in the channel or experiments table. * @param {!ExperimentDef} experiment * @return {*} TODO(#23582): Specify return type
(experiment)
| 166 | * @return {*} TODO(#23582): Specify return type |
| 167 | */ |
| 168 | function buildExperimentRow(experiment) { |
| 169 | const tr = document.createElement('tr'); |
| 170 | tr.id = 'exp-tr-' + experiment.id; |
| 171 | |
| 172 | const tdId = document.createElement('td'); |
| 173 | tdId.appendChild(buildLinkMaybe(experiment.id, experiment.spec)); |
| 174 | tr.appendChild(tdId); |
| 175 | |
| 176 | const tdName = document.createElement('td'); |
| 177 | tdName.appendChild(buildLinkMaybe(experiment.name, experiment.spec)); |
| 178 | tr.appendChild(tdName); |
| 179 | |
| 180 | const tdOn = document.createElement('td'); |
| 181 | tdOn.classList.add('button-cell'); |
| 182 | tr.appendChild(tdOn); |
| 183 | |
| 184 | const button = document.createElement('button'); |
| 185 | tdOn.appendChild(button); |
| 186 | |
| 187 | const buttonOn = document.createElement('div'); |
| 188 | buttonOn.classList.add('on'); |
| 189 | buttonOn.textContent = 'On'; |
| 190 | button.appendChild(buttonOn); |
| 191 | |
| 192 | const buttonDefault = document.createElement('div'); |
| 193 | buttonDefault.classList.add('default'); |
| 194 | buttonDefault.textContent = 'Default on'; |
| 195 | button.appendChild(buttonDefault); |
| 196 | |
| 197 | const buttonOff = document.createElement('div'); |
| 198 | buttonOff.classList.add('off'); |
| 199 | buttonOff.textContent = 'Off'; |
| 200 | button.appendChild(buttonOff); |
| 201 | |
| 202 | button.addEventListener( |
| 203 | 'click', |
| 204 | toggleExperiment_.bind(null, experiment.id, experiment.name, undefined) |
| 205 | ); |
| 206 | |
| 207 | return tr; |
| 208 | } |
| 209 | |
| 210 | /** |
| 211 | * If link is available, builds the anchor. Otherwise, it'd return a basic span. |
no test coverage detected