diff --git a/CrudAsset.php b/CrudAsset.php index 2a58a57..d32130d 100644 --- a/CrudAsset.php +++ b/CrudAsset.php @@ -16,8 +16,11 @@ class CrudAsset extends AssetBundle public $css = [ ]; public $js = [ + //'jquery.fullscreen.js', //'ajaxcrud.js', + 'jquery.fullscreen.min.js', 'ajaxcrud.min.js', + ]; public $depends = [ 'yii\web\YiiAsset', diff --git a/assets/ajaxcrud.js b/assets/ajaxcrud.js index c688808..cbcb24f 100644 --- a/assets/ajaxcrud.js +++ b/assets/ajaxcrud.js @@ -2,6 +2,7 @@ * Ajax Crud * ================================= * Use for johnitvn/yii2-ajaxcrud extension + * @author John Martin john.itvn@gmail.com */ (function( $ ) { @@ -237,22 +238,22 @@ return false; } + function onToggleFullscreenAction(){ - if($(this).find("i").hasClass('glyphicon-resize-full')){ - launchIntoFullscreen(document.getElementById(dataTablePjaxId.substring(1))); // the whole page - $(this).find("i").removeClass('glyphicon-resize-full'); - $(this).find("i").addClass('glyphicon-resize-small'); - $(createActionButtonCls).addClass("hidden"); - }else{ - exitFullscreen(); - $(this).find("i").removeClass('glyphicon-resize-small'); - $(this).find("i").addClass('glyphicon-resize-full'); - $(createActionButtonCls).removeClass("hidden"); - } - + $(window).data('fullscreen-state')?exitFullscreen():launchIntoFullscreen(document.getElementById(dataTablePjaxId.substring(1))); } - + $(window).bind("fullscreen-on", function(e) { + $(toggleFullscreenActionButtonCls).find("i").removeClass('glyphicon-resize-full'); + $(toggleFullscreenActionButtonCls).find("i").addClass('glyphicon-resize-small'); + }); + + $(window).bind("fullscreen-off", function(e) { + $(toggleFullscreenActionButtonCls).find("i").removeClass('glyphicon-resize-small'); + $(toggleFullscreenActionButtonCls).find("i").addClass('glyphicon-resize-full'); + }); + + function onUpdatePositiveClick(e){ var form = $(modalId).find('form'); $.ajax({ @@ -342,8 +343,10 @@ $(modalId).on('hidden.bs.modal',clearModalData); + -}( jQuery )); +}( jQuery )); + diff --git a/assets/ajaxcrud.min.js b/assets/ajaxcrud.min.js index 6b33722..ebe6fe4 100644 --- a/assets/ajaxcrud.min.js +++ b/assets/ajaxcrud.min.js @@ -1,5 +1 @@ -/*! - * Ajax Crud - * ================================= - * Use for johnitvn/yii2-ajaxcrud extension - */!function(t){function e(){t(f).modal("toggle")}function a(a){var o=t.extend({type:"default",title:"",closeButton:!0,loading:!0,url:"create",method:"GET",positiveButton:null,negativeButton:null,onPositiveClick:null,onNegativeClick:null},a);t(f).find(".modal-dialog").addClass("modal-"+o.type),o.loading&&(t(f).find(".modal-header .modal-title").remove(),t(f).find(".modal-header").append(''),t(f).find(".modal-body").html('
')),o.closeButton||t(f).find(".modal-title button.close").remove(),t(f).modal(),t.ajax({url:o.url,method:o.method,success:function(a){t(f).find(".modal-header .modal-title").remove(),t(f).find(".modal-header").append('"),t(f).find(".modal-body").html(a.data),(null!=o.positiveButton||null!=o.negativeButton)&&(modalFooter=document.createElement("div"),modalFooter.setAttribute("class","modal-footer"),t(f).find(".modal-content").append(modalFooter),null!=o.positiveButton&&(positiveButtonElm=document.createElement("button"),positiveButtonElm.setAttribute("class","btn btn-primary"),positiveButtonElm.innerHTML=o.positiveButton,t(modalFooter).append(positiveButtonElm),null!=o.onPositiveClick&&t(positiveButtonElm).click(function(t){o.onPositiveClick(t)})),null!=o.negativeButton&&(negativeButtonElm=document.createElement("button"),negativeButtonElm.setAttribute("class","btn btn-default pull-left"),negativeButtonElm.innerHTML=o.negativeButton,t(modalFooter).append(negativeButtonElm),t(negativeButtonElm).click(function(t){e(),null!=o.onNegativeClick&&o.onNegativeClick(t)}))),t(this).find("form").submit(function(t){t.preventDefault()})}})}function o(){$modalDialog=t(f).find(".modal-dialog"),$modalDialog.attr("class",""),$modalDialog.addClass("modal-dialog"),t(f).find(".modal-footer").remove(),t(f).find(".modal-body").html(""),t(f).find(".modal-title").html("")}function i(){t.pjax.reload({container:p})}function l(t){t.requestFullscreen?t.requestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.msRequestFullscreen&&t.msRequestFullscreen()}function n(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()}function d(e){e.preventDefault(),a({url:t(b).attr("href"),title:t(b).hasAttr("data-modal-title")?t(b).attr("data-modal-title"):"Create new",positiveButton:t(b).hasAttr("data-modal-positive")?t(b).attr("data-modal-positive"):"Save",negativeButton:t(b).hasAttr("data-modal-negative")?t(b).attr("data-modal-negative"):"Cancel",onPositiveClick:h})}function s(a){return a.preventDefault(),confirm(t(this).attr("data-confirm-message"))&&(t(f).find(".modal-header .modal-title").remove(),t(f).find(".modal-header").append(''),t(f).find(".modal-body").html('
'),t(f).modal(),t.ajax({url:t(this).attr("href"),method:t(this).attr("data-method"),success:function(){i(),e()}})),!1}function r(e){e.preventDefault(),a({url:t(this).attr("href"),title:t(this).hasAttr("data-modal-title")?t(this).attr("data-modal-title"):"View",negativeButton:t(this).hasAttr("data-modal-negative")?t(this).attr("data-modal-negative"):"Close"})}function c(e){e.preventDefault(),a({url:t(this).attr("href"),title:t(this).hasAttr("data-modal-title")?t(this).attr("data-modal-title"):"Update",positiveButton:t(this).hasAttr("data-modal-positive")?t(this).attr("data-modal-positive"):"Save",negativeButton:t(this).hasAttr("data-modal-negative")?t(this).attr("data-modal-negative"):"Cancel",onPositiveClick:v})}function m(a){a.preventDefault();var o=[];return t('input:checkbox[name="selection[]"]').each(function(){this.checked&&o.push(t(this).val())}),0==o.length?!1:(confirm(t(k).attr("data-confirm-message"))&&(t(f).find(".modal-header .modal-title").remove(),t(f).find(".modal-header").append(''),t(f).find(".modal-body").html('
'),t(f).modal(),t.ajax({url:t(k).attr("href"),method:t(k).attr("data-method"),data:{pks:JSON.stringify(o)},success:function(){i(),e()}})),!1)}function u(){t(this).find("i").hasClass("glyphicon-resize-full")?(l(document.getElementById(p.substring(1))),t(this).find("i").removeClass("glyphicon-resize-full"),t(this).find("i").addClass("glyphicon-resize-small"),t(b).addClass("hidden")):(n(),t(this).find("i").removeClass("glyphicon-resize-small"),t(this).find("i").addClass("glyphicon-resize-full"),t(b).removeClass("hidden"))}function v(){var e=t(f).find("form");t.ajax({url:t(e).attr("action"),method:t(e).attr("method"),data:t(e).serialize(),success:function(e){200==e.code?(i(),t(f).find(".modal-dialog").addClass("modal-success"),t(f).find(".modal-body").html(e.message),$successNegativeButton=t(C).hasAttr("data-modal-negative-success")?t(this).attr("data-modal-negative-success"):"Close",t(f).find(".modal-footer .btn-default").html($successNegativeButton),t(f).find(".modal-footer .btn-primary").remove()):400==e.code&&t(f).find(".modal-body").html(e.data)}})}function h(){var e=t(f).find("form");t.ajax({url:t(e).attr("action"),method:t(e).attr("method"),data:t(e).serialize(),success:function(e){200==e.code?(i(),t(f).find(".modal-dialog").addClass("modal-success"),t(f).find(".modal-body").html(e.message),$successNegativeButton=t(b).hasAttr("data-modal-negative-success")?t(this).attr("data-modal-negative-success"):"Close",t(f).find(".modal-footer .btn-default").html($successNegativeButton),$successPositiveButton=t(b).hasAttr("data-modal-positive-success")?t(this).attr("data-modal-positive-success"):"Create other",t(f).find(".modal-footer .btn-primary").html($successPositiveButton),t(f).find(".modal-footer .btn-primary").click(function(t){o(),d(t)})):400==e.code&&t(f).find(".modal-body").html(e.data)}})}var f="#ajaxCrubModal",g="#ajaxCrudDatatable",p="#crud-datatable-pjax",b=".create-action-button",B=".delete-action-button",C=".update-action-button",y=".view-action-button",k=".btn-bulk-delete",F=".btn-toggle-fullscreen";t.fn.hasAttr=function(t){return void 0!==this.attr(t)},t(g).on("click",b,d),t(g).on("click",B,s),t(g).on("click",y,r),t(g).on("click",C,c),t(g).on("click",k,m),t(g).on("click",F,u),t(f).on("hidden.bs.modal",o)}(jQuery); +!function(t){function e(){t(h).modal("toggle")}function a(a){var o=t.extend({type:"default",title:"",closeButton:!0,loading:!0,url:"create",method:"GET",positiveButton:null,negativeButton:null,onPositiveClick:null,onNegativeClick:null},a);t(h).find(".modal-dialog").addClass("modal-"+o.type),o.loading&&(t(h).find(".modal-header .modal-title").remove(),t(h).find(".modal-header").append(''),t(h).find(".modal-body").html('
')),o.closeButton||t(h).find(".modal-title button.close").remove(),t(h).modal(),t.ajax({url:o.url,method:o.method,success:function(a){t(h).find(".modal-header .modal-title").remove(),t(h).find(".modal-header").append('"),t(h).find(".modal-body").html(a.data),(null!=o.positiveButton||null!=o.negativeButton)&&(modalFooter=document.createElement("div"),modalFooter.setAttribute("class","modal-footer"),t(h).find(".modal-content").append(modalFooter),null!=o.positiveButton&&(positiveButtonElm=document.createElement("button"),positiveButtonElm.setAttribute("class","btn btn-primary"),positiveButtonElm.innerHTML=o.positiveButton,t(modalFooter).append(positiveButtonElm),null!=o.onPositiveClick&&t(positiveButtonElm).click(function(t){o.onPositiveClick(t)})),null!=o.negativeButton&&(negativeButtonElm=document.createElement("button"),negativeButtonElm.setAttribute("class","btn btn-default pull-left"),negativeButtonElm.innerHTML=o.negativeButton,t(modalFooter).append(negativeButtonElm),t(negativeButtonElm).click(function(t){e(),null!=o.onNegativeClick&&o.onNegativeClick(t)}))),t(this).find("form").submit(function(t){t.preventDefault()})}})}function o(){$modalDialog=t(h).find(".modal-dialog"),$modalDialog.attr("class",""),$modalDialog.addClass("modal-dialog"),t(h).find(".modal-footer").remove(),t(h).find(".modal-body").html(""),t(h).find(".modal-title").html("")}function i(){t.pjax.reload({container:p})}function l(t){t.requestFullscreen?t.requestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.msRequestFullscreen&&t.msRequestFullscreen()}function n(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()}function d(e){e.preventDefault(),a({url:t(b).attr("href"),title:t(b).hasAttr("data-modal-title")?t(b).attr("data-modal-title"):"Create new",positiveButton:t(b).hasAttr("data-modal-positive")?t(b).attr("data-modal-positive"):"Save",negativeButton:t(b).hasAttr("data-modal-negative")?t(b).attr("data-modal-negative"):"Cancel",onPositiveClick:v})}function s(a){return a.preventDefault(),confirm(t(this).attr("data-confirm-message"))&&(t(h).find(".modal-header .modal-title").remove(),t(h).find(".modal-header").append(''),t(h).find(".modal-body").html('
'),t(h).modal(),t.ajax({url:t(this).attr("href"),method:t(this).attr("data-method"),success:function(){i(),e()}})),!1}function r(e){e.preventDefault(),a({url:t(this).attr("href"),title:t(this).hasAttr("data-modal-title")?t(this).attr("data-modal-title"):"View",negativeButton:t(this).hasAttr("data-modal-negative")?t(this).attr("data-modal-negative"):"Close"})}function c(e){e.preventDefault(),a({url:t(this).attr("href"),title:t(this).hasAttr("data-modal-title")?t(this).attr("data-modal-title"):"Update",positiveButton:t(this).hasAttr("data-modal-positive")?t(this).attr("data-modal-positive"):"Save",negativeButton:t(this).hasAttr("data-modal-negative")?t(this).attr("data-modal-negative"):"Cancel",onPositiveClick:f})}function m(a){a.preventDefault();var o=[];return t('input:checkbox[name="selection[]"]').each(function(){this.checked&&o.push(t(this).val())}),0==o.length?!1:(confirm(t(k).attr("data-confirm-message"))&&(t(h).find(".modal-header .modal-title").remove(),t(h).find(".modal-header").append(''),t(h).find(".modal-body").html('
'),t(h).modal(),t.ajax({url:t(k).attr("href"),method:t(k).attr("data-method"),data:{pks:JSON.stringify(o)},success:function(){i(),e()}})),!1)}function u(){t(window).data("fullscreen-state")?n():l(document.getElementById(p.substring(1)))}function f(){var e=t(h).find("form");t.ajax({url:t(e).attr("action"),method:t(e).attr("method"),data:t(e).serialize(),success:function(e){200==e.code?(i(),t(h).find(".modal-dialog").addClass("modal-success"),t(h).find(".modal-body").html(e.message),$successNegativeButton=t(y).hasAttr("data-modal-negative-success")?t(this).attr("data-modal-negative-success"):"Close",t(h).find(".modal-footer .btn-default").html($successNegativeButton),t(h).find(".modal-footer .btn-primary").remove()):400==e.code&&t(h).find(".modal-body").html(e.data)}})}function v(){var e=t(h).find("form");t.ajax({url:t(e).attr("action"),method:t(e).attr("method"),data:t(e).serialize(),success:function(e){200==e.code?(i(),t(h).find(".modal-dialog").addClass("modal-success"),t(h).find(".modal-body").html(e.message),$successNegativeButton=t(b).hasAttr("data-modal-negative-success")?t(this).attr("data-modal-negative-success"):"Close",t(h).find(".modal-footer .btn-default").html($successNegativeButton),$successPositiveButton=t(b).hasAttr("data-modal-positive-success")?t(this).attr("data-modal-positive-success"):"Create other",t(h).find(".modal-footer .btn-primary").html($successPositiveButton),t(h).find(".modal-footer .btn-primary").click(function(t){o(),d(t)})):400==e.code&&t(h).find(".modal-body").html(e.data)}})}var h="#ajaxCrubModal",g="#ajaxCrudDatatable",p="#crud-datatable-pjax",b=".create-action-button",B=".delete-action-button",y=".update-action-button",C=".view-action-button",k=".btn-bulk-delete",F=".btn-toggle-fullscreen";t.fn.hasAttr=function(t){return void 0!==this.attr(t)},t(window).bind("fullscreen-on",function(){t(F).find("i").removeClass("glyphicon-resize-full"),t(F).find("i").addClass("glyphicon-resize-small")}),t(window).bind("fullscreen-off",function(){t(F).find("i").removeClass("glyphicon-resize-small"),t(F).find("i").addClass("glyphicon-resize-full")}),t(g).on("click",b,d),t(g).on("click",B,s),t(g).on("click",C,r),t(g).on("click",y,c),t(g).on("click",k,m),t(g).on("click",F,u),t(h).on("hidden.bs.modal",o)}(jQuery); \ No newline at end of file diff --git a/assets/jquery.fullscreen.js b/assets/jquery.fullscreen.js new file mode 100644 index 0000000..0527664 --- /dev/null +++ b/assets/jquery.fullscreen.js @@ -0,0 +1,123 @@ +(function($, window, documentElement, height, width) { + + // browser detection code courtesy of quirksmode, http://www.quirksmode.org/js/detect.html + // slightly simplified, as well as minor changes for readability purposes + + var BrowserDetect = { + init: function () { + this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; + this.version = this.searchVersion(navigator.userAgent) + || this.searchVersion(navigator.appVersion) + || "an unknown version"; + this.OS = this.searchString(this.dataOS) || "an unknown OS"; + }, + + searchString: function (data) { + for (var i=0;i