tagItDialog: function()

in enginframe/hydrogen.manage-users.js [309:376]


    tagItDialog: function (dialogTitle, inputLabel, buttonLabel, oldValue, check, autocompleteServiceUri, actionfunc) {
        var dialog, dialogId, inputId, entry, button, dialogButtons, warningBox;

        if (/^[a-zA-Z0-9- ]*$/.test(oldValue) && jQuery(oldValue).is("div")) {
            oldValue = jQuery(oldValue).text();
        }
        dialogId = Math.floor(Math.random() * 1000) + 1;
        inputId = 'input_' + dialogId;
        dialog = jQuery('<div class="hy-tagit-dialog" id="' + dialogId + '"/>').appendTo(jQuery('body'));
        jQuery('<label for="' + inputId + '" style="display:block">' + inputLabel + ':</label>').appendTo(dialog);
        entry = jQuery('<input type="text" name="value" id="' + inputId + '"/>').appendTo(dialog);
        entry.val(oldValue);
        manageUsers.tagIt("#" + inputId, "tags", "", false, autocompleteServiceUri);

        warningBox = jQuery('<div class="ui-state-error ui-corner-all ef-ugm-reserved-group ui-helper-hidden"><table width="100%"><tbody><tr><td><span class="ui-icon ui-icon-alert"/></td><td width="99%"><span class="msgErr"/></td></tr></tbody></table></div>').appendTo(dialog);

        jQuery("#" + inputId).tagit({
            beforeTagAdded: function (event, ui) {
                if (ui.tagLabel === "admin" || ui.tagLabel === "all-users") {
                    jQuery(".ef-ugm-reserved-group span.msgErr").text("Group " + ui.tagLabel + " is reserved!");
                    jQuery(".ef-ugm-reserved-group").removeClass("ui-helper-hidden");
                    return false;
                }
                else if (!(new RegExp('^[\\w.-]+$')).test(ui.tagLabel)) {
                    jQuery(".ef-ugm-reserved-group span.msgErr").text("Invalid character for group name!");
                    jQuery(".ef-ugm-reserved-group").removeClass("ui-helper-hidden");
                    return false;
                }
                else {
                    jQuery(".ef-ugm-reserved-group").addClass("ui-helper-hidden");
                }
            }
        });

        dialogButtons = {
            Cancel: function () {
                jQuery(this).dialog("close");
            }
        };
        dialogButtons[buttonLabel] = function () {
            var newValue = entry.val();
            if (check === true) {
                if (newValue.length <= 0) {
                    return false;
                }
            }
            jQuery(this).dialog("close");
            actionfunc(newValue);
        };

        dialog.dialog({
            title: dialogTitle,
            resizable: false,
            buttons: dialogButtons,
            modal: true,
            width: "450px"
        });

        button = jQuery('button:contains(' + buttonLabel + ')', dialog.parent('div.ui-dialog'));
        button.addClass('ui-priority-primary');
        entry.keypress(function (e) {
            if (e.which === 13) {
                button.click();
                return false;
            }
            return true;
        });
    },