PHP Classes
elePHPant
Icontem

File: src/Cabin/Bridge/public/cabin_settings.js

Recommend this page to a friend!
  Classes of Scott Arciszewski  >  CMS Airship  >  src/Cabin/Bridge/public/cabin_settings.js  >  Download  
File: src/Cabin/Bridge/public/cabin_settings.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: CMS Airship
Content management system with security features
Author: By
Last change: Merge remote-tracking branch 'origin/master'
Date: 10 months ago
Size: 4,278 bytes
 

Contents

Class file image Download
var counters = {};

/**
 * Format
 *
 * @param id
 * @param i
 * @param config
 * @param idPrefix
 * @returns {string}
 */
window.formatDynamicLink = function(id, i, config, idPrefix) {
    id = Airship.filter(String(id), Airship.FILTER_ID);
    i = Airship.filter(String(i), Airship.FILTER_ID);
    idPrefix = Airship.filter(idPrefix, Airship.FILTER_ID);

    var elem = $("#" + id);
    var dataName = elem.data('name');
    if (typeof config === 'undefined') {
        var config = {};
    }

    return "<li>" + "\n" +
        "<button type=\"button\" id=\"" + idPrefix + "_delete_link_" + i + "\" class=\"" + idPrefix + "_delete_link\" data-id=\"" + id + "\" title=\"Delete this Link\"> " +
        "<i class=\"fa fa-remove\"></i>" +
        "</button> " + "\n" +

        "<label>URL:</label> " +
        "<input type=\"text\" name=\"" + dataName + "[" + i + "][url]\" value=\"" +
        ('url' in config
            ? config['url']
            : '') +
        "\" /> " + "\n" +

        "<label>Label:</label> " +
        "<input type=\"text\" name=\"" + dataName + "[" + i + "][label]\" value=\"" + ('label' in config
                ? config['label']
                : ''
        ) + "\" /> " + "\n" +
        "<input id=\"" + idPrefix +"_translate_" + i + "\" type='checkbox' name='" + dataName + "[" + i + "][translate]' value='1'" +
        (config.translate
                ? " checked='checked'"
                : ""
        ) + " />" +
        "<label for=\"" + idPrefix +"_translate_" + i + "\">Translate?</label>" +
        "</li>" + "\n";
};

window.addDynamicNavLink = function() {
    var id = $(this).data('id');
    var idPrefix = $(this).data('idprefix');
    counters[id]++;
    var formatted = formatDynamicLink(id, counters[id], {}, idPrefix);
    console.log(formatted);
    $("#" + idPrefix + "_filler").append(formatted);
    $("#" + idPrefix + "_delete_link_" + counters[id]).click(window.delDynamicNavLink);
};
window.delDynamicNavLink = function() {
    $(this).parent().remove();
};

/**
 * @param id
 * @param config
 */
window.setupDynamicNavigationEditor = function (id, config) {
    var elem = $("#" + id);

    var dataName = Airship.filter(elem.data('name'), Airship.FILTER_ID);
    var idPrefix = Airship.filter(elem.data('idprefix'), Airship.FILTER_ID);
    var filled = elem.append("<ol id=\"" + idPrefix + "_filler\"></ol>")
        .append(
            "<button " +
                "type=\"button\" " +
                "data-idprefix=\"" + idPrefix + "\" " +
                "id=\"" + idPrefix + "_add_link\" " +
                "data-id=\"" + Airship.e(id) + "\" " +
                "class=\"pure-button pure-button-secondary\"" +
            ">Add Link</button>" + "\n"
        );
    var fillerHTML = "";
    var n = 0;
    for (var i in config) {
        fillerHTML += window.formatDynamicLink(id, i, config[i], idPrefix);
        n++;
    }
    counters[id] = n;
    $("#" + idPrefix + "_filler").html(fillerHTML);
    $("#" + idPrefix + "_add_link").click(window.addDynamicNavLink);
    $("." + idPrefix + "_delete_link").click(window.delDynamicNavLink);
};

window.hpkpAdd = function () {
    var addHash = $("#add-hpkp-hash");
    var num = parseInt(addHash.data('numhashes'), 10);
    $("#hpkp-hashes").append(
        "<li><input class=\"full-width\" type=\"text\" name=\"config[hpkp][hashes][" + num + "][hash]\"/></li>"
    );
    addHash.data('numhashes', (num + 1));
};

$(document).ready(function() {
    $("#cabin_accordion").accordion({
        heightStyle: "content"
    });
    $(".dynamic_navigation").each(function() {
        var config = $(this).html();
        $(this).html('');
        return window.setupDynamicNavigationEditor(
            $(this).attr('id'),
            $.parseJSON(config)
        );
    });
    $("#add-hpkp-hash").on('click', function() {
        return window.hpkpAdd();
    });

    $("#clear-cache-button").on('click', function() {
        var base_url = $("#clear_cache").data('baseurl');
        var val = $("#clear_cache").data('saved');
        $.get(
            base_url + 'ajax/clear_cache/' + val,
            function (result) {
                if (result.status !== "OK") {
                    alert(result.message);
                }
            }
        );
    });
});