123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467 |
- function supportstorage() {
- if (typeof window.localStorage=='object')
- return true;
- else
- return false;
- }
- function handleSaveLayout() {
- var e = $(".demo").html();
- if (!stopsave && e != window.demoHtml) {
- stopsave++;
- window.demoHtml = e;
- saveLayout();
- stopsave--;
- }
- }
- var layouthistory;
- function saveLayout(){
- var data = layouthistory;
- if (!data) {
- data={};
- data.count = 0;
- data.list = [];
- }
- if (data.list.length>data.count) {
- for (i=data.count;i<data.list.length;i++)
- data.list[i]=null;
- }
- data.list[data.count] = window.demoHtml;
- data.count++;
- if (supportstorage()) {
- localStorage.setItem("layoutdata",JSON.stringify(data));
- }
- layouthistory = data;
-
-
- }
- function downloadLayout(){
-
- $.ajax({
- type: "POST",
- url: "/build/downloadLayout",
- data: { layout: $('#download-layout').html() },
- success: function(data) { window.location.href = 'download-2.html'; }
- });
- }
- function downloadHtmlLayout(){
- $.ajax({
- type: "POST",
- url: "/build/downloadLayout",
- data: { layout: $('#download-layout').html() },
- success: function(data) { window.location.href = 'downloadhtml-2.html'; }
- });
- }
- function undoLayout() {
- var data = layouthistory;
-
- if (data) {
- if (data.count<2) return false;
- window.demoHtml = data.list[data.count-2];
- data.count--;
- $('.demo').html(window.demoHtml);
- if (supportstorage()) {
- localStorage.setItem("layoutdata",JSON.stringify(data));
- }
- return true;
- }
- return false;
-
- }
- function redoLayout() {
- var data = layouthistory;
- if (data) {
- if (data.list[data.count]) {
- window.demoHtml = data.list[data.count];
- data.count++;
- $('.demo').html(window.demoHtml);
- if (supportstorage()) {
- localStorage.setItem("layoutdata",JSON.stringify(data));
- }
- return true;
- }
- }
- return false;
-
- }
- function handleJsIds() {
- handleModalIds();
- handleAccordionIds();
- handleCarouselIds();
- handleTabsIds()
- }
- function handleAccordionIds() {
- var e = $(".demo #myAccordion");
- var t = randomNumber();
- var n = "accordion-" + t;
- var r;
- e.attr("id", n);
- e.find(".accordion-group").each(function(e, t) {
- r = "accordion-element-" + randomNumber();
- $(t).find(".accordion-toggle").each(function(e, t) {
- $(t).attr("data-parent", "#" + n);
- $(t).attr("href", "#" + r)
- });
- $(t).find(".accordion-body").each(function(e, t) {
- $(t).attr("id", r)
- })
- })
- }
- function handleCarouselIds() {
- var e = $(".demo #myCarousel");
- var t = randomNumber();
- var n = "carousel-" + t;
- e.attr("id", n);
- e.find(".carousel-indicators li").each(function(e, t) {
- $(t).attr("data-target", "#" + n)
- });
- e.find(".left").attr("href", "#" + n);
- e.find(".right").attr("href", "#" + n)
- }
- function handleModalIds() {
- var e = $(".demo #myModalLink");
- var t = randomNumber();
- var n = "modal-container-" + t;
- var r = "modal-" + t;
- e.attr("id", r);
- e.attr("href", "#" + n);
- e.next().attr("id", n)
- }
- function handleTabsIds() {
- var e = $(".demo #myTabs");
- var t = randomNumber();
- var n = "tabs-" + t;
- e.attr("id", n);
- e.find(".tab-pane").each(function(e, t) {
- var n = $(t).attr("id");
- var r = "panel-" + randomNumber();
- $(t).attr("id", r);
- $(t).parent().parent().find("a[href=#" + n + "]").attr("href", "#" + r)
- })
- }
- function randomNumber() {
- return randomFromInterval(1, 1e6)
- }
- function randomFromInterval(e, t) {
- return Math.floor(Math.random() * (t - e + 1) + e)
- }
- function gridSystemGenerator() {
- $(".lyrow .preview input").bind("keyup", function() {
- var e = 0;
- var t = "";
- var n = $(this).val().split(" ", 12);
- $.each(n, function(n, r) {
- e = e + parseInt(r);
- t += '<div class="span' + r + ' column"></div>'
- });
- if (e == 12) {
- $(this).parent().next().children().html(t);
- $(this).parent().prev().show()
- } else {
- $(this).parent().prev().hide()
- }
- })
- }
- function configurationElm(e, t) {
- $(".demo").delegate(".configuration > a", "click", function(e) {
- e.preventDefault();
- var t = $(this).parent().next().next().children();
- $(this).toggleClass("active");
- t.toggleClass($(this).attr("rel"))
- });
- $(".demo").delegate(".configuration .dropdown-menu a", "click", function(e) {
- e.preventDefault();
- var t = $(this).parent().parent();
- var n = t.parent().parent().next().next().children();
- t.find("li").removeClass("active");
- $(this).parent().addClass("active");
- var r = "";
- t.find("a").each(function() {
- r += $(this).attr("rel") + " "
- });
- t.parent().removeClass("open");
- n.removeClass(r);
- n.addClass($(this).attr("rel"))
- })
- }
- function removeElm() {
- $(".demo").delegate(".remove", "click", function(e) {
- e.preventDefault();
- $(this).parent().remove();
- if (!$(".demo .lyrow").length > 0) {
- clearDemo()
- }
- })
- }
- function clearDemo() {
- $(".demo").empty();
- layouthistory = null;
- if (supportstorage())
- localStorage.removeItem("layoutdata");
- }
- function removeMenuClasses() {
- $("#menu-layoutit li button").removeClass("active")
- }
- function changeStructure(e, t) {
- $("#download-layout ." + e).removeClass(e).addClass(t)
- }
- function cleanHtml(e) {
- $(e).parent().append($(e).children().html())
- }
- function downloadLayoutSrc() {
- var e = "";
- $("#download-layout").children().html($(".demo").html());
- var t = $("#download-layout").children();
- t.find(".preview, .configuration, .drag, .remove").remove();
- t.find(".lyrow").addClass("removeClean");
- t.find(".box-element").addClass("removeClean");
- t.find(".lyrow .lyrow .lyrow .lyrow .lyrow .removeClean").each(function() {
- cleanHtml(this)
- });
- t.find(".lyrow .lyrow .lyrow .lyrow .removeClean").each(function() {
- cleanHtml(this)
- });
- t.find(".lyrow .lyrow .lyrow .removeClean").each(function() {
- cleanHtml(this)
- });
- t.find(".lyrow .lyrow .removeClean").each(function() {
- cleanHtml(this)
- });
- t.find(".lyrow .removeClean").each(function() {
- cleanHtml(this)
- });
- t.find(".removeClean").each(function() {
- cleanHtml(this)
- });
- t.find(".removeClean").remove();
- $("#download-layout .column").removeClass("ui-sortable");
- $("#download-layout .row-fluid").removeClass("clearfix").children().removeClass("column");
- if ($("#download-layout .container").length > 0) {
- changeStructure("row-fluid", "row")
- }
- formatSrc = $.htmlClean($("#download-layout").html(), {
- format: true,
- allowedAttributes: [
- ["id"],
- ["class"],
- ["data-toggle"],
- ["data-target"],
- ["data-parent"],
- ["role"],
- ["data-dismiss"],
- ["aria-labelledby"],
- ["aria-hidden"],
- ["data-slide-to"],
- ["data-slide"]
- ]
- });
- $("#download-layout").html(formatSrc);
- $("#downloadModal textarea").empty();
- $("#downloadModal textarea").val(formatSrc)
- }
- var currentDocument = null;
- var timerSave = 1000;
- var stopsave = 0;
- var startdrag = 0;
- var demoHtml = $(".demo").html();
- var currenteditor = null;
- $(window).resize(function() {
- $("body").css("min-height", $(window).height() - 90);
- $(".demo").css("min-height", $(window).height() - 160)
- });
- function restoreData(){
- if (supportstorage()) {
- layouthistory = JSON.parse(localStorage.getItem("layoutdata"));
- if (!layouthistory) return false;
- window.demoHtml = layouthistory.list[layouthistory.count-1];
- if (window.demoHtml) $(".demo").html(window.demoHtml);
- }
- }
- function initContainer(){
- $(".demo, .demo .column").sortable({
- connectWith: ".column",
- opacity: .35,
- handle: ".drag",
- start: function(e,t) {
- if (!startdrag) stopsave++;
- startdrag = 1;
- },
- stop: function(e,t) {
- if(stopsave>0) stopsave--;
- startdrag = 0;
- }
- });
- configurationElm();
- }
- $(document).ready(function() {
- CKEDITOR.disableAutoInline = true;
- restoreData();
- var contenthandle = CKEDITOR.replace( 'contenteditor' ,{
- language: 'zh-cn',
- contentsCss: ['css/bootstrap-combined.min.css'],
- allowedContent: true
- });
- $("body").css("min-height", $(window).height() - 90);
- $(".demo").css("min-height", $(window).height() - 160);
- $(".sidebar-nav .lyrow").draggable({
- connectToSortable: ".demo",
- helper: "clone",
- handle: ".drag",
- start: function(e,t) {
- if (!startdrag) stopsave++;
- startdrag = 1;
- },
- drag: function(e, t) {
- t.helper.width(400)
- },
- stop: function(e, t) {
- $(".demo .column").sortable({
- opacity: .35,
- connectWith: ".column",
- start: function(e,t) {
- if (!startdrag) stopsave++;
- startdrag = 1;
- },
- stop: function(e,t) {
- if(stopsave>0) stopsave--;
- startdrag = 0;
- }
- });
- if(stopsave>0) stopsave--;
- startdrag = 0;
- }
- });
- $(".sidebar-nav .box").draggable({
- connectToSortable: ".column",
- helper: "clone",
- handle: ".drag",
- start: function(e,t) {
- if (!startdrag) stopsave++;
- startdrag = 1;
- },
- drag: function(e, t) {
- t.helper.width(400)
- },
- stop: function() {
- handleJsIds();
- if(stopsave>0) stopsave--;
- startdrag = 0;
- }
- });
- initContainer();
- $('body.edit .demo').on("click","[data-target=#editorModal]",function(e) {
- e.preventDefault();
- currenteditor = $(this).parent().parent().find('.view');
- var eText = currenteditor.html();
- contenthandle.setData(eText);
- });
- $("#savecontent").click(function(e) {
- e.preventDefault();
- currenteditor.html(contenthandle.getData());
- });
- $("[data-target=#downloadModal]").click(function(e) {
- e.preventDefault();
- downloadLayoutSrc();
- });
- $("[data-target=#shareModal]").click(function(e) {
- e.preventDefault();
- handleSaveLayout();
- });
- $("#download").click(function() {
- downloadLayout();
- return false
- });
- $("#downloadhtml").click(function() {
- downloadHtmlLayout();
- return false
- });
- $("#edit").click(function() {
- $("body").removeClass("devpreview sourcepreview");
- $("body").addClass("edit");
- removeMenuClasses();
- $(this).addClass("active");
- return false
- });
- $("#clear").click(function(e) {
- e.preventDefault();
- clearDemo()
- });
- $("#devpreview").click(function() {
- $("body").removeClass("edit sourcepreview");
- $("body").addClass("devpreview");
- removeMenuClasses();
- $(this).addClass("active");
- return false
- });
- $("#sourcepreview").click(function() {
- $("body").removeClass("edit");
- $("body").addClass("devpreview sourcepreview");
- removeMenuClasses();
- $(this).addClass("active");
- return false
- });
- $("#fluidPage").click(function(e) {
- e.preventDefault();
- changeStructure("container", "container-fluid");
- $("#fixedPage").removeClass("active");
- $(this).addClass("active");
- downloadLayoutSrc()
- });
- $("#fixedPage").click(function(e) {
- e.preventDefault();
- changeStructure("container-fluid", "container");
- $("#fluidPage").removeClass("active");
- $(this).addClass("active");
- downloadLayoutSrc()
- });
- $(".nav-header").click(function() {
- $(".sidebar-nav .boxes, .sidebar-nav .rows").hide();
- $(this).next().slideDown()
- });
- $('#undo').click(function(){
- stopsave++;
- if (undoLayout()) initContainer();
- stopsave--;
- });
- $('#redo').click(function(){
- stopsave++;
- if (redoLayout()) initContainer();
- stopsave--;
- });
- removeElm();
- gridSystemGenerator();
- setInterval(function() {
- handleSaveLayout()
- }, timerSave)
- })
|