fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel/**
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * The contents of this file are subject to the terms of the Common Development and
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * Distribution License (the License). You may not use this file except in compliance with the
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * License.
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel *
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * specific language governing permission and limitations under the License.
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel *
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * When distributing Covered Software, include this CDDL Header Notice in each file and include
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * Header, with the fields enclosed by brackets [] replaced by your own identifying
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * information: "Portions copyright [year] [name of copyright owner]".
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel *
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * Copyright 2015 ForgeRock AS.
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel */
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
e26e5073e1266868172d72453c97f413fe2fb603Jake Feasel/*global define */
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feaseldefine("org/forgerock/openidm/ui/admin/util/FilterEditor", [
e26e5073e1266868172d72453c97f413fe2fb603Jake Feasel "jquery",
e26e5073e1266868172d72453c97f413fe2fb603Jake Feasel "underscore",
e26e5073e1266868172d72453c97f413fe2fb603Jake Feasel "handlebars",
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "org/forgerock/commons/ui/common/main/AbstractView",
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "org/forgerock/commons/ui/common/main/Configuration",
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "org/forgerock/commons/ui/common/util/UIUtils"
e26e5073e1266868172d72453c97f413fe2fb603Jake Feasel], function ($, _, Handlebars, AbstractView, conf, uiUtils) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel var FilterEditor = AbstractView.extend({
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel template: "templates/admin/util/SetupFilter.html",
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel data: {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel config: {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel ops: ["and","or","not","expr"],
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel tags: ["equalityMatch","greaterOrEqual","lessOrEqual"]
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel },
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel showSubmitButton: true
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel },
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel events: {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "change .expressionTree :input": "updateNodeValue",
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "click .expressionTree .add-btn": "addNode",
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "click .expressionTree .remove-btn": "removeNode"
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel },
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel getExpressionContext: function (e) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel e.preventDefault();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel var objectPath = _.map(
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel $(e.target).parentsUntil(".expressionTree fieldset>div", ".node[index]"),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel function(li) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel return $(li).attr("index");
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel ).reverse(),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel previousNode = null,
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node = this.data.filter;
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel _.each(objectPath, function (index) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel if (index.length) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel previousNode = node;
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node = node.children[index];
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel });
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel return {current: node, parent: previousNode, path: objectPath};
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel },
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne removeNode: function (e, callback) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel var context = this.getExpressionContext(e);
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel if (!_.isNull(context.parent)) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel context.parent.children = _.reject(context.parent.children, function (c) { return c === context.current; });
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel if (context.parent.children.length !== 0) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel this.data.filterString = this.getFilterString();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel e.target = $(":input:first", $(e.target).parents(".node[index]")[1])[0];
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel return this.removeNode(e);
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel this.data.filter = { "op": "none", "children": []};
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel this.data.filterString = "";
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne this.renderExpressionTree(callback);
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel },
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne addNode: function (e, callback) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel var context = this.getExpressionContext(e),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node = context.current;
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.children.push({name: "", value: "", tag: "equalityMatch", children: [], op: "expr"});
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel this.data.filterString = this.getFilterString();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne this.renderExpressionTree(callback);
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel },
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne updateNodeValue: function (e, callback) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel var context = this.getExpressionContext(e),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node = context.current,
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel field = $(e.target),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel redrawContainer = false;
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel if (field.hasClass("op")) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel redrawContainer = true;
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.op = field.val();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel if (node.op === "expr") {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.name = "";
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.value = "";
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.tag = "equalityMatch";
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.children = [];
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else if (node.op === "none") {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.children = [];
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else if (!node.children || !node.children.length) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.children = [{name: "", value: "", tag: "equalityMatch", children: [], op: "expr"}];
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else if (field.hasClass("name")) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
d051e6ec673461c44fca5836dd9333d639249d21Jason Browne if (field.parent().siblings(".tag-body").find(".tag").val() === "extensibleMatchAND") {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.extensible.matchType=field.val();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.name = field.val() + ":1.2.840.113556.1.4.803";
d051e6ec673461c44fca5836dd9333d639249d21Jason Browne } else if (field.parent().siblings(".tag-body").find(".tag").val() === "extensibleMatchOR") {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.extensible.matchType = field.val();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.name = field.val() + ":1.2.840.113556.1.4.804";
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.name = field.val();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else if (field.hasClass("tag")) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel switch (field.val()) {
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel case "extensibleMatchAND":
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel node.tag = "extensibleMatch";
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel node.extensible = {
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel matchType: field.parent().siblings(".name-body").find(".name").val(),
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel rule: "1.2.840.113556.1.4.803",
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel value: field.parent().siblings(".value-body").find(".value").val(),
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel type: 169 // comes from ldapjs protocol definition for FILTER_EXT
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel };
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel node.name = field.parent().siblings(".name-body").find(".name").val() + ":1.2.840.113556.1.4.803";
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel break;
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel case "extensibleMatchOR":
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel node.tag = "extensibleMatch";
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel node.extensible = {
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel matchType: field.parent().siblings(".name-body").find(".name").val(),
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel rule: "1.2.840.113556.1.4.804",
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel value: field.parent().siblings(".value-body").find(".value").val(),
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel type: 169 // comes from ldapjs protocol definition for FILTER_EXT
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel };
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel node.name = field.parent().siblings(".name-body").find(".name").val() + ":1.2.840.113556.1.4.804";
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel break;
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel case "pr":
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel delete node.extensible;
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel field.parent().siblings(".value-body").css("display", "none");
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel node.name = field.parent().siblings(".name-body").find(".name").val();
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel node.tag = field.val();
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel break;
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel default:
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel delete node.extensible;
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel field.parent().siblings(".value-body").css("display", "");
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel node.name = field.parent().siblings(".name-body").find(".name").val();
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel node.tag = field.val();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else if (field.hasClass("value")) {
d051e6ec673461c44fca5836dd9333d639249d21Jason Browne if (field.parent().siblings(".tag-body").find(".tag").val().match(/^extensibleMatch/)) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.extensible.value = field.val();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel node.value = field.val();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel if (node.op !== "none") {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel this.data.filterString = this.getFilterString();
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel this.data.filterString = "";
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel if (redrawContainer) {
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne this.renderExpressionTree(callback);
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel this.$el.find(".filter").text(this.getFilterString());
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel },
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne renderExpressionTree: function (callback) {
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne if(callback) {
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne uiUtils.renderTemplate(this.template, this.$el, _.extend({}, conf.globalData, this.data), callback, "replace");
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne } else {
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne uiUtils.renderTemplate(this.template, this.$el, _.extend({}, conf.globalData, this.data), $.noop(), "replace");
15b38efb2ff497ce4f3efd3bd89d2c0e8e8eca1eJason Browne }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel filterDisplayClosure;
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel Handlebars.registerHelper("filterDisplay", function (rules, config, options) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel var returnVal = '',
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel ops = _.clone(config.ops),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel tags = _.clone(config.tags);
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel if (options.fn !== undefined) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel ops.unshift("none");
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel filterDisplayClosure = options.fn;
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel if (rules.children && rules.children.length) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel rules.children = _.map(rules.children, function (c, index) { return _.extend(c, {index: index, lastChild: false, hasMultiple: (rules.children.length > 1)}); });
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel rules.children[rules.children.length-1].lastChild = true;
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel returnVal += filterDisplayClosure(_.extend(rules, {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "options":_.map(ops, function (o) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel return {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "value": o,
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "label": $.t("templates.util.filter.options." + o),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "selected": rules.op === o
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel };
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "tags": _.map(tags, function (o) {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel if (o === "extensibleMatchAND") {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel return {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "value": o,
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "label": $.t("templates.util.filter.tags.extensible.rules.bitAnd"),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "selected": rules.extensible && rules.extensible.rule === "1.2.840.113556.1.4.803"
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel };
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else if (o === "extensibleMatchOR") {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel return {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "value": o,
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "label": $.t("templates.util.filter.tags.extensible.rules.bitOr"),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "selected": rules.extensible && rules.extensible.rule === "1.2.840.113556.1.4.804"
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel };
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel } else {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel return {
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "value": o,
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "label": $.t("templates.util.filter.tags." + o),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "selected": rules.tag === o
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel };
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "delimiter": $.t($.t("templates.util.filter.delimiters." + rules.op)), // will only be valid for and and or
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "isExpr": rules.op === "expr",
ed0275b8afae4493429a8ca30f103455f51bc421Jake Feasel "unary": rules.tag === "pr", // there might be other unary tags later
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "isMultiValueType": (rules.op === "and" || rules.op === "or"),
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel "config": config
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel }));
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel return returnVal;
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel });
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel return FilterEditor;
fdebc40814f6eedc66253bf2a1cd5355bdc16bc2Jake Feasel
e26e5073e1266868172d72453c97f413fe2fb603Jake Feasel});