Index: reference/jquery-plugins/select2-4.0.13/src/scss/theme/default/layout.scss
===================================================================
diff -u -rf0caaeebb2cb9ef347bdc8cd45af94e974026888 -rb00dcbf29f2b09005c0bf2eed9463c79db077651
--- reference/jquery-plugins/select2-4.0.13/src/scss/theme/default/layout.scss (.../layout.scss) (revision f0caaeebb2cb9ef347bdc8cd45af94e974026888)
+++ reference/jquery-plugins/select2-4.0.13/src/scss/theme/default/layout.scss (.../layout.scss) (revision b00dcbf29f2b09005c0bf2eed9463c79db077651)
@@ -55,6 +55,7 @@
function 로드_완료_이후_실행_함수() {
laddaBtnSetting();
+ 톱니바퀴_초기설정();
}
////////////////////////////////////////////////////////////////////////////////////////
@@ -1165,4 +1166,263 @@
//지정된 투어가이드(gta) 의 설정이 없을 때, on으로 설정
setTourGuide("on");
}
+}
+
+////////////////////////////////////////////////////////////////////////////////////////
+// 헤더 :: 톱니바퀴 대응함수
+////////////////////////////////////////////////////////////////////////////////////////
+function 톱니바퀴_초기설정() {
+ //settings
+ var $settings = $("#settings"),
+ $sidebarSettings = $("#sidebar-settings"),
+ settingsState = JSON.parse(localStorage.getItem("settings-state")) || {
+ sidebar: 'left',
+ sidebarState: 'auto',
+ displaySidebar: true
+ },
+ $pageHeader = $(".page-header"),
+ $body = $("body"),
+ popoverReallyHide = function(){
+ $settings.data('bs.popover').hoverState = 'out'; //yeah. cool BS3 fix. popover programmatic APi works only on HOVER
+ $settings.popover('hide');
+ },
+ popoverClose = function(e){
+ var $popover = $settings.siblings(".popover");
+ if($popover.length && !$.contains($popover[0], e.target)){
+ popoverReallyHide();
+ $(document).off("click", popoverClose);
+ }
+ },
+ sidebarSide = function(side){
+ if (side == "right"){
+ $body.addClass("sidebar-on-right")
+ } else {
+ $body.removeClass("sidebar-on-right")
+ }
+ },
+ sidebarState = function(state, triggerResize){
+ var $template = $('#sidebar-settings-template');
+ triggerResize = triggerResize == undefined ? true : false;
+ if (!$template[0]){
+ return;
+ }
+ $sidebarSettings.html(_.template($template.html())({sidebarState: state}));
+ if (state == "auto"){
+ $(".sidebar, .side-nav, .wrap, .logo").removeClass("sidebar-icons");
+ } else {
+ $(".sidebar, .side-nav, .wrap, .logo").addClass("sidebar-icons");
+ }
+ if (triggerResize){
+ triggerChartsResize();
+ }
+
+ },
+ displaySidebar = function(display, triggerResize){
+ triggerResize = triggerResize == undefined ? true : false;
+ if (display == true){
+ $body.removeClass("sidebar-hidden")
+ } else {
+ $body.addClass("sidebar-hidden")
+ }
+ if (triggerResize){
+ triggerChartsResize();
+ }
+ };
+
+ sidebarSide(settingsState.sidebar);
+ sidebarState(settingsState.sidebarState, false);
+ displaySidebar(settingsState.displaySidebar, false);
+
+ if (!$settings[0]){
+ return;
+ }
+
+ $settings.popover({
+ template: '
',
+ html: true,
+ animation: false,
+ placement: 'bottom',
+ content: function(){
+ return _.template($('#settings-template').html())(settingsState);
+ }
+ }).click(function(e){
+ //close all open dropdowns
+ $('.page-header .dropdown.open .dropdown-toggle').dropdown('toggle');
+ // need to remove popover on anywhere-click
+ $(document).on("click", popoverClose);
+ $(this).focus();
+ return false;
+ });
+
+ $(".page-header .dropdown-toggle").click(function(){
+ popoverReallyHide()
+ $(document).off("click", popoverClose);
+ });
+ //sidevar left/right
+ $pageHeader.on("click", ".popover #sidebar-toggle .btn", function(){
+ var $this = $(this),
+ side = $this.data("value");
+ sidebarSide(side);
+ settingsState.sidebar = side;
+ localStorage.setItem("settings-state", JSON.stringify(settingsState));
+ });
+
+ //sidebar visibility
+ $pageHeader.on("click", ".popover #display-sidebar-toggle .btn", function(){
+ var $this = $(this),
+ display = $this.data("value");
+ displaySidebar(display);
+ settingsState.displaySidebar = display;
+ localStorage.setItem("settings-state", JSON.stringify(settingsState));
+ });
+
+ //sidebar state {active, icons}
+ $sidebarSettings.on("click", ".btn", function(){
+ var $this = $(this),
+ state = $this.data("value");
+ if (state == 'icons'){
+ closeNavigation();
+ }
+ sidebarState(state);
+ settingsState.sidebarState = state;
+ localStorage.setItem("settings-state", JSON.stringify(settingsState));
+ });
+
+ //close navigation if sidebar in icons state
+ if (($("#sidebar").is(".sidebar-icons") || $(window).width() < 1049) && $(window).width() > 767){
+ closeNavigation();
+ }
+
+ //imitate buttons radio behavior
+ $pageHeader.on("click", ".popover [data-toggle='buttons-radio'] .btn:not(.active)", function(){
+ var $this = $(this),
+ $buttons = $this.parent().find('.btn');
+ $buttons.removeClass('active');
+ setTimeout(function(){
+ $this.addClass('active');
+ }, 0)
+ });
+}
+
+/**
+ * A global object containing theme specific colors, screen variables & color functions.
+ * @type Object
+ */
+window.LightBlue = {
+ screens: {
+ 'xs-max': 767,
+ 'sm-min': 768,
+ 'sm-max': 991,
+ 'md-min': 992,
+ 'md-max': 1199,
+ 'lg-min': 1200
+ },
+
+ isScreen: function(size){
+ var screenPx = window.innerWidth;
+ return (screenPx >= this.screens[size + '-min'] || size == 'xs') && (screenPx <= this.screens[size + '-max'] || size == 'lg');
+ },
+
+ getScreenSize: function(){
+ var screenPx = window.innerWidth;
+ if (screenPx <= this.screens['xs-max']) return 'xs';
+ if ((screenPx >= this.screens['sm-min']) && (screenPx <= this.screens['sm-max'])) return 'sm';
+ if ((screenPx >= this.screens['md-min']) && (screenPx <= this.screens['md-max'])) return 'md';
+ if (screenPx >= this.screens['lg-min']) return 'lg';
+ },
+
+ //credit http://stackoverflow.com/questions/1507931/generate-lighter-darker-color-in-css-using-javascript
+ changeColor: function(color, ratio, darker) {
+ var pad = function(num, totalChars) {
+ var pad = '0';
+ num = num + '';
+ while (num.length < totalChars) {
+ num = pad + num;
+ }
+ return num;
+ };
+ // Trim trailing/leading whitespace
+ color = color.replace(/^\s*|\s*$/, '');
+
+ // Expand three-digit hex
+ color = color.replace(
+ /^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i,
+ '#$1$1$2$2$3$3'
+ );
+
+ // Calculate ratio
+ var difference = Math.round(ratio * 256) * (darker ? -1 : 1),
+ // Determine if input is RGB(A)
+ rgb = color.match(new RegExp('^rgba?\\(\\s*' +
+ '(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])' +
+ '\\s*,\\s*' +
+ '(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])' +
+ '\\s*,\\s*' +
+ '(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])' +
+ '(?:\\s*,\\s*' +
+ '(0|1|0?\\.\\d+))?' +
+ '\\s*\\)$'
+ , 'i')),
+ alpha = !!rgb && rgb[4] != null ? rgb[4] : null,
+
+ // Convert hex to decimal
+ decimal = !!rgb? [rgb[1], rgb[2], rgb[3]] : color.replace(
+ /^#?([a-f0-9][a-f0-9])([a-f0-9][a-f0-9])([a-f0-9][a-f0-9])/i,
+ function() {
+ return parseInt(arguments[1], 16) + ',' +
+ parseInt(arguments[2], 16) + ',' +
+ parseInt(arguments[3], 16);
+ }
+ ).split(/,/),
+ returnValue;
+
+ // Return RGB(A)
+ return !!rgb ?
+ 'rgb' + (alpha !== null ? 'a' : '') + '(' +
+ Math[darker ? 'max' : 'min'](
+ parseInt(decimal[0], 10) + difference, darker ? 0 : 255
+ ) + ', ' +
+ Math[darker ? 'max' : 'min'](
+ parseInt(decimal[1], 10) + difference, darker ? 0 : 255
+ ) + ', ' +
+ Math[darker ? 'max' : 'min'](
+ parseInt(decimal[2], 10) + difference, darker ? 0 : 255
+ ) +
+ (alpha !== null ? ', ' + alpha : '') +
+ ')' :
+ // Return hex
+ [
+ '#',
+ pad(Math[darker ? 'max' : 'min'](
+ parseInt(decimal[0], 10) + difference, darker ? 0 : 255
+ ).toString(16), 2),
+ pad(Math[darker ? 'max' : 'min'](
+ parseInt(decimal[1], 10) + difference, darker ? 0 : 255
+ ).toString(16), 2),
+ pad(Math[darker ? 'max' : 'min'](
+ parseInt(decimal[2], 10) + difference, darker ? 0 : 255
+ ).toString(16), 2)
+ ].join('');
+ },
+ lighten: function(color, ratio) {
+ return this.changeColor(color, ratio, false);
+ },
+ darken: function(color, ratio) {
+ return this.changeColor(color, ratio, true);
+ }
+}
+function triggerChartsResize(){
+ try {
+ if (window.onresize){
+ window.onresize();
+ }
+ } catch (e){
+ //just swallow it
+ }
+ $(window).trigger('resize');
}
\ No newline at end of file
Index: arms/template.html
===================================================================
diff -u -r3f3ae75f1780077cb8261b665d332beec7d02bd5 -rb00dcbf29f2b09005c0bf2eed9463c79db077651
--- arms/template.html (.../template.html) (revision 3f3ae75f1780077cb8261b665d332beec7d02bd5)
+++ arms/template.html (.../template.html) (revision b00dcbf29f2b09005c0bf2eed9463c79db077651)
@@ -133,14 +133,13 @@
-
-
+
@@ -192,6 +191,25 @@
alt="맨위로" />
+
+
+