function setWidgetConfig(id,name,path,wdgvar,area) { $('[data-role="widgetConfig"] [data-role="form"]').html(''); $.post(rooturl+'/?r='+raccount+'&m=site&a=get_widgetConfig',{ name : name, widget : path, wdgvar : wdgvar, area : area },function(response,status){ if(status=='success'){ var result = $.parseJSON(response); var page=result.page; var widget=result.widget; if (!page) { $.notify({message: '위젯설정을 확인해주세요.'},{type: 'danger'}); resetPage() return false } $('[data-role="widgetConfig"]').attr('data-id',id); $('[data-role="widgetConfig"]').attr('data-name',name); $('[data-role="widgetConfig"]').attr('data-path',path); $('[data-role="widgetConfig"] [data-role="form"]').html(page); $('[data-role="widgetConfig"]').removeClass('d-none'); $('[data-role="widgetConfig"] [data-toggle="tooltip"]').tooltip(); setTimeout(function(){ $('[data-role="widgetConfig"] [data-role="form"]').find('.form-control')[0].focus(); }, 100); //게시판 선택시 $('[data-role="widgetConfig"]').find('[name="bid"]').change(function(){ var name = $(this).find('option:selected').attr('data-name'); var link = $(this).find('option:selected').attr('data-link'); var id = $(this).find('option:selected').val(); if (id) { $('[data-role="widgetConfig"]').find('[name="title"]').val(name); $('[data-role="widgetConfig"]').find('[name="link"]').val(link); } else { $('[data-role="widgetConfig"]').find('[name="title"]').val(''); $('[data-role="widgetConfig"]').find('[name="link"]').val(''); } }); } else { $.notify({message: '위젯설정을 확인해주세요.'},{type: 'danger'}); return false } }); } function resetPage() { $('[data-role="widgetConfig"]').addClass('d-none'); $('[data-role="addWidget"]').removeClass('active'); $('[name="widget_selector"]').prop('selectedIndex',0); $('[data-role="widgetPage"] [data-role="item"]').removeClass('active shadow-sm') } var layout_settings_tab = Cookies.get('layout-settings-tab')?Cookies.get('layout-settings-tab'):'01'; $('#layout-settings-tab [data-order="'+layout_settings_tab+'"]').tab('show') $('a[data-toggle="pill"]').on('shown.bs.tab', function (e) { var order = $(e.target).attr('data-order'); Cookies.set('layout-settings-tab', order) }) $('[data-act="submit"]').click(function(e){ var form = $(this).closest('form'); $(this).attr('disabled',true) setTimeout(function(){ form.submit(); }, 300); }); $('[data-act="reset"]').click(function(){ var page = $(this).attr('data-page'); $.post(rooturl+'/?r='+raccount+'&m=site&a=deletelayoutpage',{ page : page },function(response,status){ if(status=='success'){ var result = $.parseJSON(response); var error=result.error; if (!error) location.reload(); } else { alert('다시시도 해주세요.') return false } }); }); $('[data-role="widgetPage"]').on('click','[data-act="edit"]',function(e) { e.preventDefault(); var item = $(this).closest('[data-role="item"]') var id = item.attr('id'); var name = item.attr('data-name'); var path = item.attr('data-path'); var wdgvar = item.find('[name="widget_members[]"]').val(); var area; if (!wdgvar) wdgvar = 'blank'; setWidgetConfig(id,name,path,wdgvar,area) $('[data-role="widgetPage"] [data-role="item"]').removeClass('active shadow-sm'); $('[data-role="widgetConfig"]').attr('data-id',id); $('[data-role="addWidget"]').removeClass('active'); item.addClass('active shadow-sm'); }); $('[name="settingMain"] [data-act="submit"]').click(function(){ $(this).attr('disabled', true); var top_widgets=$(document).find('[data-area="top"] input[name="widget_members[]"]').map(function(){return $(this).val()}).get(); var left_widgets=$(document).find('[data-area="left"] input[name="widget_members[]"]').map(function(){return $(this).val()}).get(); var right_widgets=$(document).find('[data-area="right"] input[name="widget_members[]"]').map(function(){return $(this).val()}).get(); var new_widgets=''; if(top_widgets){ for(var i=0;i'+ ''+ ''+ ''+ '
'+title+'
'+ ''; $('[data-role="widgetPage"][data-area="'+area+'"] .dd-list').append(box); $('[data-role="widgetPage"] [data-toggle="tooltip"]').tooltip(); } else { $(document).find('#'+id+' [name="widget_members[]"]').val('['+widget_var+']'); $(document).find('#'+id+'').addClass('animated fadeInUp'); $(document).find('#'+id+' [data-role="title"]').text(title); $('[data-role="widgetPage"] [data-role="item"]').removeClass('active shadow-sm') } $('[name="settingMain"] [data-act="submit"]').click(); }, 600); }); $('[data-role="widgetConfig"]').on('click','[data-act="code"]',function() { var name = $('[data-role="widgetConfig"]').attr('data-name'); var title = $('[data-role="widgetConfig"] [name="title"]').val(); var path = $('[data-role="widgetConfig"]').attr('data-path'); if (!title) title = name; var widget_var = ''; $('[data-role="widgetConfig"] [name]').each(function(index){ var _name = $(this).attr('name'); var _var = $(this).val()?$(this).val():''; widget_var += "'"+_name+"'=>'"+_var+"',"; }); var code = ""; $('[data-role="widgetPage"] [data-toggle="tooltip"]').tooltip(); $('#widgetCode').val(code); var clipboard = new ClipboardJS('.js-clipboard'); clipboard.on('success', function (e) { $(e.trigger) .attr('title', '클립보드 복사완료!') .tooltip('_fixTitle') .tooltip('show') .attr('title', '클립보드 복사') .tooltip('_fixTitle') e.clearSelection() }) clipboard.on('error', function (e) { var modifierKey = /Mac/i.test(navigator.userAgent) ? '\u2318' : 'Ctrl-' var fallbackMsg = 'Press ' + modifierKey + 'C to copy' $(e.trigger) .attr('title', fallbackMsg) .tooltip('_fixTitle') .tooltip('show') .attr('title', 'Copy to clipboard') .tooltip('_fixTitle') }) }); $('[data-role="widgetConfig"]').on('click','[data-act="cancel"]',function(e) { e.preventDefault(); resetPage(); }); $('[data-role="widgetPage"]').on('click','[data-act="remove"]',function(e){ e.preventDefault(); $(this).closest('.card').remove(); resetPage(); }); $(document).on('click','[data-role="widgetConfig"] [data-act="make"]',function() { var button = $(this); var mod = button.attr('data-mod') if (mod=='bbs') modal = $('#modal-widget-makebbs'); if (mod=='postlist') modal = $('#modal-widget-makelist'); if (!mod) return false; modal.modal('show'); }) $('#modal-widget-makebbs').on('shown.bs.modal', function (event) { var modal = $(this) modal.find('[name="id"]').trigger('focus') }) $('#modal-widget-makebbs').on('hidden.bs.modal', function (event) { var modal = $(this) modal.find('input').val('').removeClass('is-invalid'); modal.find('[data-act="submit"]').attr('disabled',false); modal.find('.invalid-tooltip').text('') }) $('#modal-widget-makebbs').find('input').keyup(function() { $(this).removeClass('is-invalid'); $('#modal-widget-makebbs').find('.invalid-feedback').text('') }); $('#modal-widget-makebbs').on('click','[data-act="submit"]',function() { var modal = $('#modal-widget-makebbs'); var button = $(this); var id = modal.find('[name="id"]').val(); var name = modal.find('[name="name"]').val(); if (!id) { modal.find('[name="id"]').focus().addClass('is-invalid'); modal.find('[name="id"]').nextAll('.invalid-feedback').text('게시판 아이디를 입력해주세요.') return false } //아이디 유용성 체크 if (!chkIdValue(id)) { modal.find('[name="id"]').focus().addClass('is-invalid'); modal.find('[name="id"]').nextAll('.invalid-feedback').text('영문 또는 숫자를 사용해주세요.') return false } if (!name) { modal.find('[name="name"]').focus().addClass('is-invalid'); modal.find('[name="name"]').nextAll('.invalid-feedback').text('게시판 이름을 입력해주세요.') return false } button.attr('disabled',true); setTimeout(function(){ $.post(rooturl+'/?r='+raccount+'&m=bbs&a=makebbs',{ id : id, name : name, send_mod : 'ajax' },function(response,status){ if(status=='success'){ var result = $.parseJSON(response); var error=result.error; if (error=='id_exists') { modal.find('[name="id"]').focus().addClass('is-invalid'); modal.find('[name="id"]').nextAll('.invalid-feedback').text('이미 같은 아이디의 게시판이 존재합니다.'); button.attr('disabled',false); return false } modal.modal('hide'); $('[data-role="widgetConfig"]').find('[name="bid"]').append(''); $('[data-role="widgetConfig"]').find('[name="bid"]').val(id).attr('selected','selected'); $('[data-role="widgetConfig"]').find('[name="title"]').val(name); $('[data-role="widgetConfig"]').find('[name="link"]').val('/b/'+id); } else { button.attr('disabled',false); alert('다시 시도해 주세요.') return false } }); }, 500); }) $('#modal-widget-makelist').on('shown.bs.modal', function (event) { var modal = $(this) modal.find('[name="name"]').trigger('focus') }) $('#modal-widget-makelist').on('hidden.bs.modal', function (event) { var modal = $(this) modal.find('input').val('').removeClass('is-invalid'); modal.find('[data-act="submit"]').attr('disabled',false); modal.find('.invalid-tooltip').text('') }) $('#modal-widget-makelist').find('input').keyup(function() { $(this).removeClass('is-invalid'); $('#modal-widget-makelist').find('.invalid-feedback').text('') }); $('#modal-widget-makelist').on('click','[data-act="submit"]',function() { var modal = $('#modal-widget-makelist'); var button = $(this); var name = modal.find('[name="name"]').val(); if (!name) { modal.find('[name="name"]').focus().addClass('is-invalid'); modal.find('[name="name"]').nextAll('.invalid-feedback').text('리스트명을 입력해주세요.') return false } button.attr('disabled',true); setTimeout(function(){ $.post(rooturl+'/?r='+raccount+'&m=post&a=regis_list',{ display : 3, name : name, send_mod : 'ajax' },function(response,status){ if(status=='success'){ var result = $.parseJSON(response); var error=result.error; var id=result.id; if (error=='name_exists') { modal.find('[name="name"]').focus().addClass('is-invalid'); modal.find('[name="name"]').nextAll('.invalid-feedback').text('이미 같은 이름의 리스트가 존재합니다.'); button.attr('disabled',false); return false } modal.modal('hide'); $('[data-role="widgetConfig"]').find('[name="listid"]').append(''); $('[data-role="widgetConfig"]').find('[name="listid"]').val(id).attr('selected','selected'); } else { button.attr('disabled',false); alert('다시 시도해 주세요.') return false } }); }, 500); }) });