You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by pr...@apache.org on 2018/03/20 11:03:49 UTC

[2/2] ranger git commit: RANGER-2030: UI updates to accommodate policy effective dates

RANGER-2030: UI updates to accommodate policy effective dates

Signed-off-by: pradeep <pr...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/ab2a7df9
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/ab2a7df9
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/ab2a7df9

Branch: refs/heads/master
Commit: ab2a7df91736451fe0c1d0e43287b740394f169c
Parents: 5c39c21
Author: ni3galave <ni...@gmail.com>
Authored: Tue Mar 20 14:50:27 2018 +0530
Committer: pradeep <pr...@apache.org>
Committed: Tue Mar 20 16:33:06 2018 +0530

----------------------------------------------------------------------
 security-admin/src/main/webapp/index.html       |   3 +-
 .../css/bootstrap-datetimepicker.min.css        |   9 +
 .../js/bootstrap-datetimepicker.min.js          |   1 +
 security-admin/src/main/webapp/scripts/Init.js  |  11 +-
 .../main/webapp/scripts/models/RangerPolicy.js  |   8 +
 .../scripts/modules/globalize/message/en.js     |  12 +-
 .../src/main/webapp/scripts/utils/XAGlobals.js  |   3 +
 .../src/main/webapp/scripts/utils/XAUtils.js    |  10 +-
 .../scripts/views/policies/PolicyTimeList.js    | 166 +++++++++++++++++++
 .../views/policies/RangerPolicyCreate.js        |  13 +-
 .../scripts/views/policies/RangerPolicyForm.js  |  62 +++++--
 .../scripts/views/policies/RangerPolicyRO.js    |   4 +
 .../views/policies/RangerPolicyTableLayout.js   |  19 ++-
 security-admin/src/main/webapp/styles/xa.css    |  37 ++++-
 .../main/webapp/templates/helpers/XAHelpers.js  |   3 +
 .../templates/policies/PolicyTimeItem_tmpl.html |  38 +++++
 .../templates/policies/PolicyTimeList_tmpl.html |  40 +++++
 .../policies/RangerPolicyCreate_tmpl.html       |   4 +
 .../policies/RangerPolicyForm_tmpl.html         |  11 +-
 .../templates/policies/RangerPolicyRO_tmpl.html |  29 ++++
 20 files changed, 449 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/ab2a7df9/security-admin/src/main/webapp/index.html
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/index.html b/security-admin/src/main/webapp/index.html
index d8a5d98..909dbeb 100644
--- a/security-admin/src/main/webapp/index.html
+++ b/security-admin/src/main/webapp/index.html
@@ -41,9 +41,10 @@
 		<link href="libs/bower/tag-it/css/jquery.tagit.css" rel="stylesheet">
 		<link href="libs/other/datepicker/css/datepicker.css" media="all" rel="stylesheet" type="text/css">
 		<link href="libs/bower/x-editable/css/bootstrap-editable.css" media="all" rel="stylesheet" type="text/css">
+                <link href="libs/other/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" media="all" rel="stylesheet" type="text/css">
 		<link href="libs/other/jquery-ui/css/jquery-ui-1.10.3.custom.min.css" rel="stylesheet">
 		<link href="libs/other/visualsearch/css/workspace.css" rel="stylesheet">
-		<link href="libs/other/visualsearch/css/icons.css" rel="stylesheet">   
+                <link href="libs/other/visualsearch/css/icons.css" rel="stylesheet">
 		<link href="styles/xa.css" media="all" rel="stylesheet" type="text/css" >
 	</head>
 

http://git-wip-us.apache.org/repos/asf/ranger/blob/ab2a7df9/security-admin/src/main/webapp/libs/other/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/libs/other/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css b/security-admin/src/main/webapp/libs/other/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css
new file mode 100644
index 0000000..78485fe
--- /dev/null
+++ b/security-admin/src/main/webapp/libs/other/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css
@@ -0,0 +1,9 @@
+/*!
+ * Datetimepicker for Bootstrap
+ *
+ * Copyright 2012 Stefan Petre
+ * Improvements by Andrew Rowls
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ */.datetimepicker{padding:4px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datetimepicker-inline{width:220px}.datetimepicker.datetimepicker-rtl{direction:rtl}.datetimepicker.datetimepicker-rtl table tr td span{float:right}.datetimepicker-dropdown,.datetimepicker-dropdown-left{top:0;left:0}[class*=" datetimepicker-dropdown"]:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute}[class*=" datetimepicker-dropdown"]:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute}[class*=" datetimepicker-dropdown-top"]:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);border-bottom:0}[class*=" date
 timepicker-dropdown-top"]:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;border-bottom:0}.datetimepicker-dropdown-bottom-left:before{top:-7px;right:6px}.datetimepicker-dropdown-bottom-left:after{top:-6px;right:7px}.datetimepicker-dropdown-bottom-right:before{top:-7px;left:6px}.datetimepicker-dropdown-bottom-right:after{top:-6px;left:7px}.datetimepicker-dropdown-top-left:before{bottom:-7px;right:6px}.datetimepicker-dropdown-top-left:after{bottom:-6px;right:7px}.datetimepicker-dropdown-top-right:before{bottom:-7px;left:6px}.datetimepicker-dropdown-top-right:after{bottom:-6px;left:7px}.datetimepicker>div{display:none}.datetimepicker.minutes div.datetimepicker-minutes{display:block}.datetimepicker.hours div.datetimepicker-hours{display:block}.datetimepicker.days div.datetimepicker-days{display:block}.datetimepicker.months div.datetimepicker-months{display:block}.datetimepicker.years div.datetimepicker-
 years{display:block}.datetimepicker table{margin:0}.datetimepicker td,.datetimepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0}.table-striped .datetimepicker table tr td,.table-striped .datetimepicker table tr th{background-color:transparent}.datetimepicker table tr td.minute:hover{background:#eee;cursor:pointer}.datetimepicker table tr td.hour:hover{background:#eee;cursor:pointer}.datetimepicker table tr td.day:hover{background:#eee;cursor:pointer}.datetimepicker table tr td.old,.datetimepicker table tr td.new{color:#999}.datetimepicker table tr td.disabled,.datetimepicker table tr td.disabled:hover{background:0;color:#999;cursor:default}.datetimepicker table tr td.today,.datetimepicker table tr td.today:hover,.datetimepicker table tr td.today.disabled,.datetimepicker table tr td.today.disabled:hover{background-color:#fde19a;background-image:-moz-linear-gradient(top,#fdd49a,#fdf59a);background-image:-ms-
 linear-gradient(top,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(top,#fdd49a,#fdf59a);background-image:-o-linear-gradient(top,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a',endColorstr='#fdf59a',GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.datetimepicker table tr td.today:hover,.datetimepicker table tr td.today:hover:hover,.datetimepicker table tr td.today.disabled:hover,.datetimepicker table tr td.today.disabled:hover:hover,.datetimepicker table tr td.today:active,.datetimepicker table tr td.today:hover:active,.datetimepicker table tr td.today.disabled:active,.datetimepicker table tr td.today.disabled:hover:active,.datetimepicker
  table tr td.today.active,.datetimepicker table tr td.today:hover.active,.datetimepicker table tr td.today.disabled.active,.datetimepicker table tr td.today.disabled:hover.active,.datetimepicker table tr td.today.disabled,.datetimepicker table tr td.today:hover.disabled,.datetimepicker table tr td.today.disabled.disabled,.datetimepicker table tr td.today.disabled:hover.disabled,.datetimepicker table tr td.today[disabled],.datetimepicker table tr td.today:hover[disabled],.datetimepicker table tr td.today.disabled[disabled],.datetimepicker table tr td.today.disabled:hover[disabled]{background-color:#fdf59a}.datetimepicker table tr td.today:active,.datetimepicker table tr td.today:hover:active,.datetimepicker table tr td.today.disabled:active,.datetimepicker table tr td.today.disabled:hover:active,.datetimepicker table tr td.today.active,.datetimepicker table tr td.today:hover.active,.datetimepicker table tr td.today.disabled.active,.datetimepicker table tr td.today.disabled:hover.acti
 ve{background-color:#fbf069}.datetimepicker table tr td.active,.datetimepicker table tr td.active:hover,.datetimepicker table tr td.active.disabled,.datetimepicker table tr td.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc',endColorstr='#0044cc',GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.datetimepicker table tr td.active:hover,.datetimepicker table tr td.active:hover:hover,.
 datetimepicker table tr td.active.disabled:hover,.datetimepicker table tr td.active.disabled:hover:hover,.datetimepicker table tr td.active:active,.datetimepicker table tr td.active:hover:active,.datetimepicker table tr td.active.disabled:active,.datetimepicker table tr td.active.disabled:hover:active,.datetimepicker table tr td.active.active,.datetimepicker table tr td.active:hover.active,.datetimepicker table tr td.active.disabled.active,.datetimepicker table tr td.active.disabled:hover.active,.datetimepicker table tr td.active.disabled,.datetimepicker table tr td.active:hover.disabled,.datetimepicker table tr td.active.disabled.disabled,.datetimepicker table tr td.active.disabled:hover.disabled,.datetimepicker table tr td.active[disabled],.datetimepicker table tr td.active:hover[disabled],.datetimepicker table tr td.active.disabled[disabled],.datetimepicker table tr td.active.disabled:hover[disabled]{background-color:#04c}.datetimepicker table tr td.active:active,.datetimepicker 
 table tr td.active:hover:active,.datetimepicker table tr td.active.disabled:active,.datetimepicker table tr td.active.disabled:hover:active,.datetimepicker table tr td.active.active,.datetimepicker table tr td.active:hover.active,.datetimepicker table tr td.active.disabled.active,.datetimepicker table tr td.active.disabled:hover.active{background-color:#039}.datetimepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datetimepicker .datetimepicker-hours span{height:26px;line-height:26px}.datetimepicker .datetimepicker-hours table tr td span.hour_am,.datetimepicker .datetimepicker-hours table tr td span.hour_pm{width:14.6%}.datetimepicker .datetimepicker-hours fieldset legend,.datetimepicker .datetimepicker-minutes fieldset legend{margin-bottom:inherit;line-height:30px}.datetimepicker .datetimepicker-minutes span{height:26px;line-height:26px}.datetimepicker
  table tr td span:hover{background:#eee}.datetimepicker table tr td span.disabled,.datetimepicker table tr td span.disabled:hover{background:0;color:#999;cursor:default}.datetimepicker table tr td span.active,.datetimepicker table tr td span.active:hover,.datetimepicker table tr td span.active.disabled,.datetimepicker table tr td span.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc',endColorstr='#0044cc',GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.g
 radient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.datetimepicker table tr td span.active:hover,.datetimepicker table tr td span.active:hover:hover,.datetimepicker table tr td span.active.disabled:hover,.datetimepicker table tr td span.active.disabled:hover:hover,.datetimepicker table tr td span.active:active,.datetimepicker table tr td span.active:hover:active,.datetimepicker table tr td span.active.disabled:active,.datetimepicker table tr td span.active.disabled:hover:active,.datetimepicker table tr td span.active.active,.datetimepicker table tr td span.active:hover.active,.datetimepicker table tr td span.active.disabled.active,.datetimepicker table tr td span.active.disabled:hover.active,.datetimepicker table tr td span.active.disabled,.datetimepicker table tr td span.active:hover.disabled,.datetimepicker table tr td span.active.disabled.disabled,.datetimepicker table tr td span.active.disabled:hover.disabled,.datetimepicker table tr td span.active[disabled]
 ,.datetimepicker table tr td span.active:hover[disabled],.datetimepicker table tr td span.active.disabled[disabled],.datetimepicker table tr td span.active.disabled:hover[disabled]{background-color:#04c}.datetimepicker table tr td span.active:active,.datetimepicker table tr td span.active:hover:active,.datetimepicker table tr td span.active.disabled:active,.datetimepicker table tr td span.active.disabled:hover:active,.datetimepicker table tr td span.active.active,.datetimepicker table tr td span.active:hover.active,.datetimepicker table tr td span.active.disabled.active,.datetimepicker table tr td span.active.disabled:hover.active{background-color:#039}.datetimepicker table tr td span.old{color:#999}.datetimepicker th.switch{width:145px}.datetimepicker th span.glyphicon{pointer-events:none}.datetimepicker thead tr:first-child th,.datetimepicker tfoot th{cursor:pointer}.datetimepicker thead tr:first-child th:hover,.datetimepicker tfoot th:hover{background:#eee}.input-append.date .add
 -on i,.input-prepend.date .add-on i,.input-group.date .input-group-addon span{cursor:pointer;width:14px;height:14px}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ranger/blob/ab2a7df9/security-admin/src/main/webapp/libs/other/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/libs/other/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js b/security-admin/src/main/webapp/libs/other/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js
new file mode 100644
index 0000000..eba15ce
--- /dev/null
+++ b/security-admin/src/main/webapp/libs/other/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js
@@ -0,0 +1 @@
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof exports==="object"){a(require("jquery"))}else{a(jQuery)}}}(function(d,f){if(!("indexOf" in Array.prototype)){Array.prototype.indexOf=function(k,j){if(j===f){j=0}if(j<0){j+=this.length}if(j<0){j=0}for(var l=this.length;j<l;j++){if(j in this&&this[j]===k){return j}}return -1}}function a(){var q,k,p,l,j,n,m,o;k=(new Date()).toString();p=((m=k.split("(")[1])!=null?m.slice(0,-1):0)||k.split(" ");if(p instanceof Array){n=[];for(var l=0,j=p.length;l<j;l++){o=p[l];if((q=(m=o.match(/\b[A-Z]+\b/))!==null)?m[0]:0){n.push(q)}}p=n.pop()}return p}function h(){return new Date(Date.UTC.apply(Date,arguments))}var g=function(k,j){var m=this;this.element=d(k);this.container=j.container||"body";this.language=j.language||this.element.data("date-language")||"en";this.language=this.language in e?this.language:this.language.split("-")[0];this.language=this.language in e?this.language:"en";this.isRTL=e[this.language]
 .rtl||false;this.formatType=j.formatType||this.element.data("format-type")||"standard";this.format=c.parseFormat(j.format||this.element.data("date-format")||e[this.language].format||c.getDefaultFormat(this.formatType,"input"),this.formatType);this.isInline=false;this.isVisible=false;this.isInput=this.element.is("input");this.fontAwesome=j.fontAwesome||this.element.data("font-awesome")||false;this.bootcssVer=j.bootcssVer||(this.isInput?(this.element.is(".form-control")?3:2):(this.bootcssVer=this.element.is(".input-group")?3:2));this.component=this.element.is(".date")?(this.bootcssVer===3?this.element.find(".input-group-addon .glyphicon-th, .input-group-addon .glyphicon-time, .input-group-addon .glyphicon-remove, .input-group-addon .glyphicon-calendar, .input-group-addon .fa-calendar, .input-group-addon .fa-clock-o").parent():this.element.find(".add-on .icon-th, .add-on .icon-time, .add-on .icon-calendar, .add-on .fa-calendar, .add-on .fa-clock-o").parent()):false;this.componentReset=
 this.element.is(".date")?(this.bootcssVer===3?this.element.find(".input-group-addon .glyphicon-remove, .input-group-addon .fa-times").parent():this.element.find(".add-on .icon-remove, .add-on .fa-times").parent()):false;this.hasInput=this.component&&this.element.find("input").length;if(this.component&&this.component.length===0){this.component=false}this.linkField=j.linkField||this.element.data("link-field")||false;this.linkFormat=c.parseFormat(j.linkFormat||this.element.data("link-format")||c.getDefaultFormat(this.formatType,"link"),this.formatType);this.minuteStep=j.minuteStep||this.element.data("minute-step")||5;this.pickerPosition=j.pickerPosition||this.element.data("picker-position")||"bottom-right";this.showMeridian=j.showMeridian||this.element.data("show-meridian")||false;this.initialDate=j.initialDate||new Date();this.zIndex=j.zIndex||this.element.data("z-index")||f;this.title=typeof j.title==="undefined"?false:j.title;this.timezone=j.timezone||a();this.icons={leftArrow:this.
 fontAwesome?"fa-arrow-left":(this.bootcssVer===3?"glyphicon-arrow-left":"icon-arrow-left"),rightArrow:this.fontAwesome?"fa-arrow-right":(this.bootcssVer===3?"glyphicon-arrow-right":"icon-arrow-right")};this.icontype=this.fontAwesome?"fa":"glyphicon";this._attachEvents();this.clickedOutside=function(n){if(d(n.target).closest(".datetimepicker").length===0){m.hide()}};this.formatViewType="datetime";if("formatViewType" in j){this.formatViewType=j.formatViewType}else{if("formatViewType" in this.element.data()){this.formatViewType=this.element.data("formatViewType")}}this.minView=0;if("minView" in j){this.minView=j.minView}else{if("minView" in this.element.data()){this.minView=this.element.data("min-view")}}this.minView=c.convertViewMode(this.minView);this.maxView=c.modes.length-1;if("maxView" in j){this.maxView=j.maxView}else{if("maxView" in this.element.data()){this.maxView=this.element.data("max-view")}}this.maxView=c.convertViewMode(this.maxView);this.wheelViewModeNavigation=false;if(
 "wheelViewModeNavigation" in j){this.wheelViewModeNavigation=j.wheelViewModeNavigation}else{if("wheelViewModeNavigation" in this.element.data()){this.wheelViewModeNavigation=this.element.data("view-mode-wheel-navigation")}}this.wheelViewModeNavigationInverseDirection=false;if("wheelViewModeNavigationInverseDirection" in j){this.wheelViewModeNavigationInverseDirection=j.wheelViewModeNavigationInverseDirection}else{if("wheelViewModeNavigationInverseDirection" in this.element.data()){this.wheelViewModeNavigationInverseDirection=this.element.data("view-mode-wheel-navigation-inverse-dir")}}this.wheelViewModeNavigationDelay=100;if("wheelViewModeNavigationDelay" in j){this.wheelViewModeNavigationDelay=j.wheelViewModeNavigationDelay}else{if("wheelViewModeNavigationDelay" in this.element.data()){this.wheelViewModeNavigationDelay=this.element.data("view-mode-wheel-navigation-delay")}}this.startViewMode=2;if("startView" in j){this.startViewMode=j.startView}else{if("startView" in this.element.d
 ata()){this.startViewMode=this.element.data("start-view")}}this.startViewMode=c.convertViewMode(this.startViewMode);this.viewMode=this.startViewMode;this.viewSelect=this.minView;if("viewSelect" in j){this.viewSelect=j.viewSelect}else{if("viewSelect" in this.element.data()){this.viewSelect=this.element.data("view-select")}}this.viewSelect=c.convertViewMode(this.viewSelect);this.forceParse=true;if("forceParse" in j){this.forceParse=j.forceParse}else{if("dateForceParse" in this.element.data()){this.forceParse=this.element.data("date-force-parse")}}var l=this.bootcssVer===3?c.templateV3:c.template;while(l.indexOf("{iconType}")!==-1){l=l.replace("{iconType}",this.icontype)}while(l.indexOf("{leftArrow}")!==-1){l=l.replace("{leftArrow}",this.icons.leftArrow)}while(l.indexOf("{rightArrow}")!==-1){l=l.replace("{rightArrow}",this.icons.rightArrow)}this.picker=d(l).appendTo(this.isInline?this.element:this.container).on({click:d.proxy(this.click,this),mousedown:d.proxy(this.mousedown,this)});if
 (this.wheelViewModeNavigation){if(d.fn.mousewheel){this.picker.on({mousewheel:d.proxy(this.mousewheel,this)})}else{console.log("Mouse Wheel event is not supported. Please include the jQuery Mouse Wheel plugin before enabling this option")}}if(this.isInline){this.picker.addClass("datetimepicker-inline")}else{this.picker.addClass("datetimepicker-dropdown-"+this.pickerPosition+" dropdown-menu")}if(this.isRTL){this.picker.addClass("datetimepicker-rtl");var i=this.bootcssVer===3?".prev span, .next span":".prev i, .next i";this.picker.find(i).toggleClass(this.icons.leftArrow+" "+this.icons.rightArrow)}d(document).on("mousedown touchend",this.clickedOutside);this.autoclose=false;if("autoclose" in j){this.autoclose=j.autoclose}else{if("dateAutoclose" in this.element.data()){this.autoclose=this.element.data("date-autoclose")}}this.keyboardNavigation=true;if("keyboardNavigation" in j){this.keyboardNavigation=j.keyboardNavigation}else{if("dateKeyboardNavigation" in this.element.data()){this.ke
 yboardNavigation=this.element.data("date-keyboard-navigation")}}this.todayBtn=(j.todayBtn||this.element.data("date-today-btn")||false);this.clearBtn=(j.clearBtn||this.element.data("date-clear-btn")||false);this.todayHighlight=(j.todayHighlight||this.element.data("date-today-highlight")||false);this.weekStart=0;if(typeof j.weekStart!=="undefined"){this.weekStart=j.weekStart}else{if(typeof this.element.data("date-weekstart")!=="undefined"){this.weekStart=this.element.data("date-weekstart")}else{if(typeof e[this.language].weekStart!=="undefined"){this.weekStart=e[this.language].weekStart}}}this.weekStart=this.weekStart%7;this.weekEnd=((this.weekStart+6)%7);this.onRenderDay=function(n){var p=(j.onRenderDay||function(){return[]})(n);if(typeof p==="string"){p=[p]}var o=["day"];return o.concat((p?p:[]))};this.onRenderHour=function(n){var p=(j.onRenderHour||function(){return[]})(n);var o=["hour"];if(typeof p==="string"){p=[p]}return o.concat((p?p:[]))};this.onRenderMinute=function(n){var p=
 (j.onRenderMinute||function(){return[]})(n);var o=["minute"];if(typeof p==="string"){p=[p]}if(n<this.startDate||n>this.endDate){o.push("disabled")}else{if(Math.floor(this.date.getUTCMinutes()/this.minuteStep)===Math.floor(n.getUTCMinutes()/this.minuteStep)){o.push("active")}}return o.concat((p?p:[]))};this.onRenderYear=function(o){var q=(j.onRenderYear||function(){return[]})(o);var p=["year"];if(typeof q==="string"){q=[q]}if(this.date.getUTCFullYear()===o.getUTCFullYear()){p.push("active")}var n=o.getUTCFullYear();var r=this.endDate.getUTCFullYear();if(o<this.startDate||n>r){p.push("disabled")}return p.concat((q?q:[]))};this.onRenderMonth=function(n){var p=(j.onRenderMonth||function(){return[]})(n);var o=["month"];if(typeof p==="string"){p=[p]}return o.concat((p?p:[]))};this.startDate=new Date(-8639968443048000);this.endDate=new Date(8639968443048000);this.datesDisabled=[];this.daysOfWeekDisabled=[];this.setStartDate(j.startDate||this.element.data("date-startdate"));this.setEndDate(
 j.endDate||this.element.data("date-enddate"));this.setDatesDisabled(j.datesDisabled||this.element.data("date-dates-disabled"));this.setDaysOfWeekDisabled(j.daysOfWeekDisabled||this.element.data("date-days-of-week-disabled"));this.setMinutesDisabled(j.minutesDisabled||this.element.data("date-minute-disabled"));this.setHoursDisabled(j.hoursDisabled||this.element.data("date-hour-disabled"));this.fillDow();this.fillMonths();this.update();this.showMode();if(this.isInline){this.show()}};g.prototype={constructor:g,_events:[],_attachEvents:function(){this._detachEvents();if(this.isInput){this._events=[[this.element,{focus:d.proxy(this.show,this),keyup:d.proxy(this.update,this),keydown:d.proxy(this.keydown,this)}]]}else{if(this.component&&this.hasInput){this._events=[[this.element.find("input"),{focus:d.proxy(this.show,this),keyup:d.proxy(this.update,this),keydown:d.proxy(this.keydown,this)}],[this.component,{click:d.proxy(this.show,this)}]];if(this.componentReset){this._events.push([this.co
 mponentReset,{click:d.proxy(this.reset,this)}])}}else{if(this.element.is("div")){this.isInline=true}else{this._events=[[this.element,{click:d.proxy(this.show,this)}]]}}}for(var j=0,k,l;j<this._events.length;j++){k=this._events[j][0];l=this._events[j][1];k.on(l)}},_detachEvents:function(){for(var j=0,k,l;j<this._events.length;j++){k=this._events[j][0];l=this._events[j][1];k.off(l)}this._events=[]},show:function(i){this.picker.show();this.height=this.component?this.component.outerHeight():this.element.outerHeight();if(this.forceParse){this.update()}this.place();d(window).on("resize",d.proxy(this.place,this));if(i){i.stopPropagation();i.preventDefault()}this.isVisible=true;this.element.trigger({type:"show",date:this.date})},hide:function(){if(!this.isVisible){return}if(this.isInline){return}this.picker.hide();d(window).off("resize",this.place);this.viewMode=this.startViewMode;this.showMode();if(!this.isInput){d(document).off("mousedown",this.hide)}if(this.forceParse&&(this.isInput&&thi
 s.element.val()||this.hasInput&&this.element.find("input").val())){this.setValue()}this.isVisible=false;this.element.trigger({type:"hide",date:this.date})},remove:function(){this._detachEvents();d(document).off("mousedown",this.clickedOutside);this.picker.remove();delete this.picker;delete this.element.data().datetimepicker},getDate:function(){var i=this.getUTCDate();if(i===null){return null}return new Date(i.getTime()+(i.getTimezoneOffset()*60000))},getUTCDate:function(){return this.date},getInitialDate:function(){return this.initialDate},setInitialDate:function(i){this.initialDate=i},setDate:function(i){this.setUTCDate(new Date(i.getTime()-(i.getTimezoneOffset()*60000)))},setUTCDate:function(i){if(i>=this.startDate&&i<=this.endDate){this.date=i;this.setValue();this.viewDate=this.date;this.fill()}else{this.element.trigger({type:"outOfRange",date:i,startDate:this.startDate,endDate:this.endDate})}},setFormat:function(j){this.format=c.parseFormat(j,this.formatType);var i;if(this.isInp
 ut){i=this.element}else{if(this.component){i=this.element.find("input")}}if(i&&i.val()){this.setValue()}},setValue:function(){var i=this.getFormattedDate();if(!this.isInput){if(this.component){this.element.find("input").val(i)}this.element.data("date",i)}else{this.element.val(i)}if(this.linkField){d("#"+this.linkField).val(this.getFormattedDate(this.linkFormat))}},getFormattedDate:function(i){i=i||this.format;return c.formatDate(this.date,i,this.language,this.formatType,this.timezone)},setStartDate:function(i){this.startDate=i||this.startDate;if(this.startDate.valueOf()!==8639968443048000){this.startDate=c.parseDate(this.startDate,this.format,this.language,this.formatType,this.timezone)}this.update();this.updateNavArrows()},setEndDate:function(i){this.endDate=i||this.endDate;if(this.endDate.valueOf()!==8639968443048000){this.endDate=c.parseDate(this.endDate,this.format,this.language,this.formatType,this.timezone)}this.update();this.updateNavArrows()},setDatesDisabled:function(j){thi
 s.datesDisabled=j||[];if(!d.isArray(this.datesDisabled)){this.datesDisabled=this.datesDisabled.split(/,\s*/)}var i=this;this.datesDisabled=d.map(this.datesDisabled,function(k){return c.parseDate(k,i.format,i.language,i.formatType,i.timezone).toDateString()});this.update();this.updateNavArrows()},setTitle:function(i,j){return this.picker.find(i).find("th:eq(1)").text(this.title===false?j:this.title)},setDaysOfWeekDisabled:function(i){this.daysOfWeekDisabled=i||[];if(!d.isArray(this.daysOfWeekDisabled)){this.daysOfWeekDisabled=this.daysOfWeekDisabled.split(/,\s*/)}this.daysOfWeekDisabled=d.map(this.daysOfWeekDisabled,function(j){return parseInt(j,10)});this.update();this.updateNavArrows()},setMinutesDisabled:function(i){this.minutesDisabled=i||[];if(!d.isArray(this.minutesDisabled)){this.minutesDisabled=this.minutesDisabled.split(/,\s*/)}this.minutesDisabled=d.map(this.minutesDisabled,function(j){return parseInt(j,10)});this.update();this.updateNavArrows()},setHoursDisabled:function(i
 ){this.hoursDisabled=i||[];if(!d.isArray(this.hoursDisabled)){this.hoursDisabled=this.hoursDisabled.split(/,\s*/)}this.hoursDisabled=d.map(this.hoursDisabled,function(j){return parseInt(j,10)});this.update();this.updateNavArrows()},place:function(){if(this.isInline){return}if(!this.zIndex){var j=0;d("div").each(function(){var o=parseInt(d(this).css("zIndex"),10);if(o>j){j=o}});this.zIndex=j+10}var n,m,l,k;if(this.container instanceof d){k=this.container.offset()}else{k=d(this.container).offset()}if(this.component){n=this.component.offset();l=n.left;if(this.pickerPosition==="bottom-left"||this.pickerPosition==="top-left"){l+=this.component.outerWidth()-this.picker.outerWidth()}}else{n=this.element.offset();l=n.left;if(this.pickerPosition==="bottom-left"||this.pickerPosition==="top-left"){l+=this.element.outerWidth()-this.picker.outerWidth()}}var i=document.body.clientWidth||window.innerWidth;if(l+220>i){l=i-220}if(this.pickerPosition==="top-left"||this.pickerPosition==="top-right"){m
 =n.top-this.picker.outerHeight()}else{m=n.top+this.height}m=m-k.top;l=l-k.left;this.picker.css({top:m,left:l,zIndex:this.zIndex})},hour_minute:"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]",update:function(){var i,j=false;if(arguments&&arguments.length&&(typeof arguments[0]==="string"||arguments[0] instanceof Date)){i=arguments[0];j=true}else{i=(this.isInput?this.element.val():this.element.find("input").val())||this.element.data("date")||this.initialDate;if(typeof i==="string"){i=i.replace(/^\s+|\s+$/g,"")}}if(!i){i=new Date();j=false}if(typeof i==="string"){if(new RegExp(this.hour_minute).test(i)||new RegExp(this.hour_minute+":[0-5][0-9]").test(i)){i=this.getDate()}}this.date=c.parseDate(i,this.format,this.language,this.formatType,this.timezone);if(j){this.setValue()}if(this.date<this.startDate){this.viewDate=new Date(this.startDate)}else{if(this.date>this.endDate){this.viewDate=new Date(this.endDate)}else{this.viewDate=new Date(this.date)}}this.fill()},fillDow:function(){var i=this.we
 ekStart,j="<tr>";while(i<this.weekStart+7){j+='<th class="dow">'+e[this.language].daysMin[(i++)%7]+"</th>"}j+="</tr>";this.picker.find(".datetimepicker-days thead").append(j)},fillMonths:function(){var l="";var m=new Date(this.viewDate);for(var k=0;k<12;k++){m.setUTCMonth(k);var j=this.onRenderMonth(m);l+='<span class="'+j.join(" ")+'">'+e[this.language].monthsShort[k]+"</span>"}this.picker.find(".datetimepicker-months td").html(l)},fill:function(){if(!this.date||!this.viewDate){return}var E=new Date(this.viewDate),t=E.getUTCFullYear(),G=E.getUTCMonth(),n=E.getUTCDate(),A=E.getUTCHours(),w=this.startDate.getUTCFullYear(),B=this.startDate.getUTCMonth(),p=this.endDate.getUTCFullYear(),x=this.endDate.getUTCMonth()+1,q=(new h(this.date.getUTCFullYear(),this.date.getUTCMonth(),this.date.getUTCDate())).valueOf(),D=new Date();this.setTitle(".datetimepicker-days",e[this.language].months[G]+" "+t);if(this.formatViewType==="time"){var k=this.getFormattedDate();this.setTitle(".datetimepicker-h
 ours",k);this.setTitle(".datetimepicker-minutes",k)}else{this.setTitle(".datetimepicker-hours",n+" "+e[this.language].months[G]+" "+t);this.setTitle(".datetimepicker-minutes",n+" "+e[this.language].months[G]+" "+t)}this.picker.find("tfoot th.today").text(e[this.language].today||e.en.today).toggle(this.todayBtn!==false);this.picker.find("tfoot th.clear").text(e[this.language].clear||e.en.clear).toggle(this.clearBtn!==false);this.updateNavArrows();this.fillMonths();var I=h(t,G-1,28,0,0,0,0),z=c.getDaysInMonth(I.getUTCFullYear(),I.getUTCMonth());I.setUTCDate(z);I.setUTCDate(z-(I.getUTCDay()-this.weekStart+7)%7);var j=new Date(I);j.setUTCDate(j.getUTCDate()+42);j=j.valueOf();var r=[];var F;while(I.valueOf()<j){if(I.getUTCDay()===this.weekStart){r.push("<tr>")}F=this.onRenderDay(I);if(I.getUTCFullYear()<t||(I.getUTCFullYear()===t&&I.getUTCMonth()<G)){F.push("old")}else{if(I.getUTCFullYear()>t||(I.getUTCFullYear()===t&&I.getUTCMonth()>G)){F.push("new")}}if(this.todayHighlight&&I.getUTCFul
 lYear()===D.getFullYear()&&I.getUTCMonth()===D.getMonth()&&I.getUTCDate()===D.getDate()){F.push("today")}if(I.valueOf()===q){F.push("active")}if((I.valueOf()+86400000)<=this.startDate||I.valueOf()>this.endDate||d.inArray(I.getUTCDay(),this.daysOfWeekDisabled)!==-1||d.inArray(I.toDateString(),this.datesDisabled)!==-1){F.push("disabled")}r.push('<td class="'+F.join(" ")+'">'+I.getUTCDate()+"</td>");if(I.getUTCDay()===this.weekEnd){r.push("</tr>")}I.setUTCDate(I.getUTCDate()+1)}this.picker.find(".datetimepicker-days tbody").empty().append(r.join(""));r=[];var u="",C="",s="";var l=this.hoursDisabled||[];E=new Date(this.viewDate);for(var y=0;y<24;y++){E.setUTCHours(y);F=this.onRenderHour(E);if(l.indexOf(y)!==-1){F.push("disabled")}var v=h(t,G,n,y);if((v.valueOf()+3600000)<=this.startDate||v.valueOf()>this.endDate){F.push("disabled")}else{if(A===y){F.push("active")}}if(this.showMeridian&&e[this.language].meridiem.length===2){C=(y<12?e[this.language].meridiem[0]:e[this.language].meridiem[1
 ]);if(C!==s){if(s!==""){r.push("</fieldset>")}r.push('<fieldset class="hour"><legend>'+C.toUpperCase()+"</legend>")}s=C;u=(y%12?y%12:12);if(y<12){F.push("hour_am")}else{F.push("hour_pm")}r.push('<span class="'+F.join(" ")+'">'+u+"</span>");if(y===23){r.push("</fieldset>")}}else{u=y+":00";r.push('<span class="'+F.join(" ")+'">'+u+"</span>")}}this.picker.find(".datetimepicker-hours td").html(r.join(""));r=[];u="";C="";s="";var m=this.minutesDisabled||[];E=new Date(this.viewDate);for(var y=0;y<60;y+=this.minuteStep){if(m.indexOf(y)!==-1){continue}E.setUTCMinutes(y);E.setUTCSeconds(0);F=this.onRenderMinute(E);if(this.showMeridian&&e[this.language].meridiem.length===2){C=(A<12?e[this.language].meridiem[0]:e[this.language].meridiem[1]);if(C!==s){if(s!==""){r.push("</fieldset>")}r.push('<fieldset class="minute"><legend>'+C.toUpperCase()+"</legend>")}s=C;u=(A%12?A%12:12);r.push('<span class="'+F.join(" ")+'">'+u+":"+(y<10?"0"+y:y)+"</span>");if(y===59){r.push("</fieldset>")}}else{u=y+":00";
 r.push('<span class="'+F.join(" ")+'">'+A+":"+(y<10?"0"+y:y)+"</span>")}}this.picker.find(".datetimepicker-minutes td").html(r.join(""));var J=this.date.getUTCFullYear();var o=this.setTitle(".datetimepicker-months",t).end().find(".month").removeClass("active");if(J===t){o.eq(this.date.getUTCMonth()).addClass("active")}if(t<w||t>p){o.addClass("disabled")}if(t===w){o.slice(0,B).addClass("disabled")}if(t===p){o.slice(x).addClass("disabled")}r="";t=parseInt(t/10,10)*10;var H=this.setTitle(".datetimepicker-years",t+"-"+(t+9)).end().find("td");t-=1;E=new Date(this.viewDate);for(var y=-1;y<11;y++){E.setUTCFullYear(t);F=this.onRenderYear(E);if(y===-1||y===10){F.push(b)}r+='<span class="'+F.join(" ")+'">'+t+"</span>";t+=1}H.html(r);this.place()},updateNavArrows:function(){var m=new Date(this.viewDate),k=m.getUTCFullYear(),l=m.getUTCMonth(),j=m.getUTCDate(),i=m.getUTCHours();switch(this.viewMode){case 0:if(k<=this.startDate.getUTCFullYear()&&l<=this.startDate.getUTCMonth()&&j<=this.startDate.
 getUTCDate()&&i<=this.startDate.getUTCHours()){this.picker.find(".prev").css({visibility:"hidden"})}else{this.picker.find(".prev").css({visibility:"visible"})}if(k>=this.endDate.getUTCFullYear()&&l>=this.endDate.getUTCMonth()&&j>=this.endDate.getUTCDate()&&i>=this.endDate.getUTCHours()){this.picker.find(".next").css({visibility:"hidden"})}else{this.picker.find(".next").css({visibility:"visible"})}break;case 1:if(k<=this.startDate.getUTCFullYear()&&l<=this.startDate.getUTCMonth()&&j<=this.startDate.getUTCDate()){this.picker.find(".prev").css({visibility:"hidden"})}else{this.picker.find(".prev").css({visibility:"visible"})}if(k>=this.endDate.getUTCFullYear()&&l>=this.endDate.getUTCMonth()&&j>=this.endDate.getUTCDate()){this.picker.find(".next").css({visibility:"hidden"})}else{this.picker.find(".next").css({visibility:"visible"})}break;case 2:if(k<=this.startDate.getUTCFullYear()&&l<=this.startDate.getUTCMonth()){this.picker.find(".prev").css({visibility:"hidden"})}else{this.picker.fin
 d(".prev").css({visibility:"visible"})}if(k>=this.endDate.getUTCFullYear()&&l>=this.endDate.getUTCMonth()){this.picker.find(".next").css({visibility:"hidden"})}else{this.picker.find(".next").css({visibility:"visible"})}break;case 3:case 4:if(k<=this.startDate.getUTCFullYear()){this.picker.find(".prev").css({visibility:"hidden"})}else{this.picker.find(".prev").css({visibility:"visible"})}if(k>=this.endDate.getUTCFullYear()){this.picker.find(".next").css({visibility:"hidden"})}else{this.picker.find(".next").css({visibility:"visible"})}break}},mousewheel:function(j){j.preventDefault();j.stopPropagation();if(this.wheelPause){return}this.wheelPause=true;var i=j.originalEvent;var l=i.wheelDelta;var k=l>0?1:(l===0)?0:-1;if(this.wheelViewModeNavigationInverseDirection){k=-k}this.showMode(k);setTimeout(d.proxy(function(){this.wheelPause=false},this),this.wheelViewModeNavigationDelay)},click:function(m){m.stopPropagation();m.preventDefault();var n=d(m.target).closest("span, td, th, legend");i
 f(n.is("."+this.icontype)){n=d(n).parent().closest("span, td, th, legend")}if(n.length===1){if(n.is(".disabled")){this.element.trigger({type:"outOfRange",date:this.viewDate,startDate:this.startDate,endDate:this.endDate});return}switch(n[0].nodeName.toLowerCase()){case"th":switch(n[0].className){case"switch":this.showMode(1);break;case"prev":case"next":var i=c.modes[this.viewMode].navStep*(n[0].className==="prev"?-1:1);switch(this.viewMode){case 0:this.viewDate=this.moveHour(this.viewDate,i);break;case 1:this.viewDate=this.moveDate(this.viewDate,i);break;case 2:this.viewDate=this.moveMonth(this.viewDate,i);break;case 3:case 4:this.viewDate=this.moveYear(this.viewDate,i);break}this.fill();this.element.trigger({type:n[0].className+":"+this.convertViewModeText(this.viewMode),date:this.viewDate,startDate:this.startDate,endDate:this.endDate});break;case"clear":this.reset();if(this.autoclose){this.hide()}break;case"today":var j=new Date();j=h(j.getFullYear(),j.getMonth(),j.getDate(),j.getH
 ours(),j.getMinutes(),j.getSeconds(),0);if(j<this.startDate){j=this.startDate}else{if(j>this.endDate){j=this.endDate}}this.viewMode=this.startViewMode;this.showMode(0);this._setDate(j);this.fill();if(this.autoclose){this.hide()}break}break;case"span":if(!n.is(".disabled")){var p=this.viewDate.getUTCFullYear(),o=this.viewDate.getUTCMonth(),q=this.viewDate.getUTCDate(),r=this.viewDate.getUTCHours(),k=this.viewDate.getUTCMinutes(),s=this.viewDate.getUTCSeconds();if(n.is(".month")){this.viewDate.setUTCDate(1);o=n.parent().find("span").index(n);q=this.viewDate.getUTCDate();this.viewDate.setUTCMonth(o);this.element.trigger({type:"changeMonth",date:this.viewDate});if(this.viewSelect>=3){this._setDate(h(p,o,q,r,k,s,0))}}else{if(n.is(".year")){this.viewDate.setUTCDate(1);p=parseInt(n.text(),10)||0;this.viewDate.setUTCFullYear(p);this.element.trigger({type:"changeYear",date:this.viewDate});if(this.viewSelect>=4){this._setDate(h(p,o,q,r,k,s,0))}}else{if(n.is(".hour")){r=parseInt(n.text(),10)||
 0;if(n.hasClass("hour_am")||n.hasClass("hour_pm")){if(r===12&&n.hasClass("hour_am")){r=0}else{if(r!==12&&n.hasClass("hour_pm")){r+=12}}}this.viewDate.setUTCHours(r);this.element.trigger({type:"changeHour",date:this.viewDate});if(this.viewSelect>=1){this._setDate(h(p,o,q,r,k,s,0))}}else{if(n.is(".minute")){k=parseInt(n.text().substr(n.text().indexOf(":")+1),10)||0;this.viewDate.setUTCMinutes(k);this.element.trigger({type:"changeMinute",date:this.viewDate});if(this.viewSelect>=0){this._setDate(h(p,o,q,r,k,s,0))}}}}}if(this.viewMode!==0){var l=this.viewMode;this.showMode(-1);this.fill();if(l===this.viewMode&&this.autoclose){this.hide()}}else{this.fill();if(this.autoclose){this.hide()}}}break;case"td":if(n.is(".day")&&!n.is(".disabled")){var q=parseInt(n.text(),10)||1;var p=this.viewDate.getUTCFullYear(),o=this.viewDate.getUTCMonth(),r=this.viewDate.getUTCHours(),k=this.viewDate.getUTCMinutes(),s=this.viewDate.getUTCSeconds();if(n.is(".old")){if(o===0){o=11;p-=1}else{o-=1}}else{if(n.is(
 ".new")){if(o===11){o=0;p+=1}else{o+=1}}}this.viewDate.setUTCFullYear(p);this.viewDate.setUTCMonth(o,q);this.element.trigger({type:"changeDay",date:this.viewDate});if(this.viewSelect>=2){this._setDate(h(p,o,q,r,k,s,0))}}var l=this.viewMode;this.showMode(-1);this.fill();if(l===this.viewMode&&this.autoclose){this.hide()}break}}},_setDate:function(i,k){if(!k||k==="date"){this.date=i}if(!k||k==="view"){this.viewDate=i}this.fill();this.setValue();var j;if(this.isInput){j=this.element}else{if(this.component){j=this.element.find("input")}}if(j){j.change()}this.element.trigger({type:"changeDate",date:this.getDate()});if(i===null){this.date=this.viewDate}},moveMinute:function(j,i){if(!i){return j}var k=new Date(j.valueOf());k.setUTCMinutes(k.getUTCMinutes()+(i*this.minuteStep));return k},moveHour:function(j,i){if(!i){return j}var k=new Date(j.valueOf());k.setUTCHours(k.getUTCHours()+i);return k},moveDate:function(j,i){if(!i){return j}var k=new Date(j.valueOf());k.setUTCDate(k.getUTCDate()+i)
 ;return k},moveMonth:function(j,k){if(!k){return j}var n=new Date(j.valueOf()),r=n.getUTCDate(),o=n.getUTCMonth(),m=Math.abs(k),q,p;k=k>0?1:-1;if(m===1){p=k===-1?function(){return n.getUTCMonth()===o}:function(){return n.getUTCMonth()!==q};q=o+k;n.setUTCMonth(q);if(q<0||q>11){q=(q+12)%12}}else{for(var l=0;l<m;l++){n=this.moveMonth(n,k)}q=n.getUTCMonth();n.setUTCDate(r);p=function(){return q!==n.getUTCMonth()}}while(p()){n.setUTCDate(--r);n.setUTCMonth(q)}return n},moveYear:function(j,i){return this.moveMonth(j,i*12)},dateWithinRange:function(i){return i>=this.startDate&&i<=this.endDate},keydown:function(o){if(this.picker.is(":not(:visible)")){if(o.keyCode===27){this.show()}return}var k=false,j,i,n;switch(o.keyCode){case 27:this.hide();o.preventDefault();break;case 37:case 39:if(!this.keyboardNavigation){break}j=o.keyCode===37?-1:1;var m=this.viewMode;if(o.ctrlKey){m+=2}else{if(o.shiftKey){m+=1}}if(m===4){i=this.moveYear(this.date,j);n=this.moveYear(this.viewDate,j)}else{if(m===3){i=
 this.moveMonth(this.date,j);n=this.moveMonth(this.viewDate,j)}else{if(m===2){i=this.moveDate(this.date,j);n=this.moveDate(this.viewDate,j)}else{if(m===1){i=this.moveHour(this.date,j);n=this.moveHour(this.viewDate,j)}else{if(m===0){i=this.moveMinute(this.date,j);n=this.moveMinute(this.viewDate,j)}}}}}if(this.dateWithinRange(i)){this.date=i;this.viewDate=n;this.setValue();this.update();o.preventDefault();k=true}break;case 38:case 40:if(!this.keyboardNavigation){break}j=o.keyCode===38?-1:1;m=this.viewMode;if(o.ctrlKey){m+=2}else{if(o.shiftKey){m+=1}}if(m===4){i=this.moveYear(this.date,j);n=this.moveYear(this.viewDate,j)}else{if(m===3){i=this.moveMonth(this.date,j);n=this.moveMonth(this.viewDate,j)}else{if(m===2){i=this.moveDate(this.date,j*7);n=this.moveDate(this.viewDate,j*7)}else{if(m===1){if(this.showMeridian){i=this.moveHour(this.date,j*6);n=this.moveHour(this.viewDate,j*6)}else{i=this.moveHour(this.date,j*4);n=this.moveHour(this.viewDate,j*4)}}else{if(m===0){i=this.moveMinute(this
 .date,j*4);n=this.moveMinute(this.viewDate,j*4)}}}}}if(this.dateWithinRange(i)){this.date=i;this.viewDate=n;this.setValue();this.update();o.preventDefault();k=true}break;case 13:if(this.viewMode!==0){var p=this.viewMode;this.showMode(-1);this.fill();if(p===this.viewMode&&this.autoclose){this.hide()}}else{this.fill();if(this.autoclose){this.hide()}}o.preventDefault();break;case 9:this.hide();break}if(k){var l;if(this.isInput){l=this.element}else{if(this.component){l=this.element.find("input")}}if(l){l.change()}this.element.trigger({type:"changeDate",date:this.getDate()})}},showMode:function(i){if(i){var j=Math.max(0,Math.min(c.modes.length-1,this.viewMode+i));if(j>=this.minView&&j<=this.maxView){this.element.trigger({type:"changeMode",date:this.viewDate,oldViewMode:this.viewMode,newViewMode:j});this.viewMode=j}}this.picker.find(">div").hide().filter(".datetimepicker-"+c.modes[this.viewMode].clsName).css("display","block");this.updateNavArrows()},reset:function(){this._setDate(null,"d
 ate")},convertViewModeText:function(i){switch(i){case 4:return"decade";case 3:return"year";case 2:return"month";case 1:return"day";case 0:return"hour"}}};var b=d.fn.datetimepicker;d.fn.datetimepicker=function(k){var i=Array.apply(null,arguments);i.shift();var j;this.each(function(){var n=d(this),m=n.data("datetimepicker"),l=typeof k==="object"&&k;if(!m){n.data("datetimepicker",(m=new g(this,d.extend({},d.fn.datetimepicker.defaults,l))))}if(typeof k==="string"&&typeof m[k]==="function"){j=m[k].apply(m,i);if(j!==f){return false}}});if(j!==f){return j}else{return this}};d.fn.datetimepicker.defaults={};d.fn.datetimepicker.Constructor=g;var e=d.fn.datetimepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],mont
 hsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],meridiem:["am","pm"],suffix:["st","nd","rd","th"],today:"Today",clear:"Clear"}};var c={modes:[{clsName:"minutes",navFnc:"Hours",navStep:1},{clsName:"hours",navFnc:"Date",navStep:1},{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10}],isLeapYear:function(i){return(((i%4===0)&&(i%100!==0))||(i%400===0))},getDaysInMonth:function(i,j){return[31,(c.isLeapYear(i)?29:28),31,30,31,30,31,31,30,31,30,31][j]},getDefaultFormat:function(i,j){if(i==="standard"){if(j==="input"){return"yyyy-mm-dd hh:ii"}else{return"yyyy-mm-dd hh:ii:ss"}}else{if(i==="php"){if(j==="input"){return"Y-m-d H:i"}else{return"Y-m-d H:i:s"}}else{throw new Error("Invalid format type.")}}},validParts:function(i){if(i==="standard"){return/t|hh?|HH?|p|P|z|Z|ii?|ss?|dd?|DD?|mm?|MM?|yy(?:yy)?/g}else{if(i==="php"){return/[dDjlNwzFmMnStyYaABgGhHis]/g}else{throw new Erro
 r("Invalid format type.")}}},nonpunctuation:/[^ -\/:-@\[-`{-~\t\n\rTZ]+/g,parseFormat:function(l,j){var i=l.replace(this.validParts(j),"\0").split("\0"),k=l.match(this.validParts(j));if(!i||!i.length||!k||k.length===0){throw new Error("Invalid date format.")}return{separators:i,parts:k}},parseDate:function(A,y,v,j,r){if(A instanceof Date){var u=new Date(A.valueOf()-A.getTimezoneOffset()*60000);u.setMilliseconds(0);return u}if(/^\d{4}\-\d{1,2}\-\d{1,2}$/.test(A)){y=this.parseFormat("yyyy-mm-dd",j)}if(/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}$/.test(A)){y=this.parseFormat("yyyy-mm-dd hh:ii",j)}if(/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}\:\d{1,2}[Z]{0,1}$/.test(A)){y=this.parseFormat("yyyy-mm-dd hh:ii:ss",j)}if(/^[-+]\d+[dmwy]([\s,]+[-+]\d+[dmwy])*$/.test(A)){var l=/([-+]\d+)([dmwy])/,q=A.match(/([-+]\d+)([dmwy])/g),t,p;A=new Date();for(var x=0;x<q.length;x++){t=l.exec(q[x]);p=parseInt(t[1]);switch(t[2]){case"d":A.setUTCDate(A.getUTCDate()+p);break;case"m":A=g.prototype.moveMo
 nth.call(g.prototype,A,p);break;case"w":A.setUTCDate(A.getUTCDate()+p*7);break;case"y":A=g.prototype.moveYear.call(g.prototype,A,p);break}}return h(A.getUTCFullYear(),A.getUTCMonth(),A.getUTCDate(),A.getUTCHours(),A.getUTCMinutes(),A.getUTCSeconds(),0)}var q=A&&A.toString().match(this.nonpunctuation)||[],A=new Date(0,0,0,0,0,0,0),m={},z=["hh","h","ii","i","ss","s","yyyy","yy","M","MM","m","mm","D","DD","d","dd","H","HH","p","P","z","Z"],o={hh:function(s,i){return s.setUTCHours(i)},h:function(s,i){return s.setUTCHours(i)},HH:function(s,i){return s.setUTCHours(i===12?0:i)},H:function(s,i){return s.setUTCHours(i===12?0:i)},ii:function(s,i){return s.setUTCMinutes(i)},i:function(s,i){return s.setUTCMinutes(i)},ss:function(s,i){return s.setUTCSeconds(i)},s:function(s,i){return s.setUTCSeconds(i)},yyyy:function(s,i){return s.setUTCFullYear(i)},yy:function(s,i){return s.setUTCFullYear(2000+i)},m:function(s,i){i-=1;while(i<0){i+=12}i%=12;s.setUTCMonth(i);while(s.getUTCMonth()!==i){if(isNaN(s
 .getUTCMonth())){return s}else{s.setUTCDate(s.getUTCDate()-1)}}return s},d:function(s,i){return s.setUTCDate(i)},p:function(s,i){return s.setUTCHours(i===1?s.getUTCHours()+12:s.getUTCHours())},z:function(){return r}},B,k,t;o.M=o.MM=o.mm=o.m;o.dd=o.d;o.P=o.p;o.Z=o.z;A=h(A.getFullYear(),A.getMonth(),A.getDate(),A.getHours(),A.getMinutes(),A.getSeconds());if(q.length===y.parts.length){for(var x=0,w=y.parts.length;x<w;x++){B=parseInt(q[x],10);t=y.parts[x];if(isNaN(B)){switch(t){case"MM":k=d(e[v].months).filter(function(){var i=this.slice(0,q[x].length),s=q[x].slice(0,i.length);return i===s});B=d.inArray(k[0],e[v].months)+1;break;case"M":k=d(e[v].monthsShort).filter(function(){var i=this.slice(0,q[x].length),s=q[x].slice(0,i.length);return i.toLowerCase()===s.toLowerCase()});B=d.inArray(k[0],e[v].monthsShort)+1;break;case"p":case"P":B=d.inArray(q[x].toLowerCase(),e[v].meridiem);break;case"z":case"Z":r;break}}m[t]=B}for(var x=0,n;x<z.length;x++){n=z[x];if(n in m&&!isNaN(m[n])){o[n](A,m[n]
 )}}}return A},formatDate:function(l,q,m,p,o){if(l===null){return""}var k;if(p==="standard"){k={t:l.getTime(),yy:l.getUTCFullYear().toString().substring(2),yyyy:l.getUTCFullYear(),m:l.getUTCMonth()+1,M:e[m].monthsShort[l.getUTCMonth()],MM:e[m].months[l.getUTCMonth()],d:l.getUTCDate(),D:e[m].daysShort[l.getUTCDay()],DD:e[m].days[l.getUTCDay()],p:(e[m].meridiem.length===2?e[m].meridiem[l.getUTCHours()<12?0:1]:""),h:l.getUTCHours(),i:l.getUTCMinutes(),s:l.getUTCSeconds(),z:o};if(e[m].meridiem.length===2){k.H=(k.h%12===0?12:k.h%12)}else{k.H=k.h}k.HH=(k.H<10?"0":"")+k.H;k.P=k.p.toUpperCase();k.Z=k.z;k.hh=(k.h<10?"0":"")+k.h;k.ii=(k.i<10?"0":"")+k.i;k.ss=(k.s<10?"0":"")+k.s;k.dd=(k.d<10?"0":"")+k.d;k.mm=(k.m<10?"0":"")+k.m}else{if(p==="php"){k={y:l.getUTCFullYear().toString().substring(2),Y:l.getUTCFullYear(),F:e[m].months[l.getUTCMonth()],M:e[m].monthsShort[l.getUTCMonth()],n:l.getUTCMonth()+1,t:c.getDaysInMonth(l.getUTCFullYear(),l.getUTCMonth()),j:l.getUTCDate(),l:e[m].days[l.getUTCDay(
 )],D:e[m].daysShort[l.getUTCDay()],w:l.getUTCDay(),N:(l.getUTCDay()===0?7:l.getUTCDay()),S:(l.getUTCDate()%10<=e[m].suffix.length?e[m].suffix[l.getUTCDate()%10-1]:""),a:(e[m].meridiem.length===2?e[m].meridiem[l.getUTCHours()<12?0:1]:""),g:(l.getUTCHours()%12===0?12:l.getUTCHours()%12),G:l.getUTCHours(),i:l.getUTCMinutes(),s:l.getUTCSeconds()};k.m=(k.n<10?"0":"")+k.n;k.d=(k.j<10?"0":"")+k.j;k.A=k.a.toString().toUpperCase();k.h=(k.g<10?"0":"")+k.g;k.H=(k.G<10?"0":"")+k.G;k.i=(k.i<10?"0":"")+k.i;k.s=(k.s<10?"0":"")+k.s}else{throw new Error("Invalid format type.")}}var l=[],r=d.extend([],q.separators);for(var n=0,j=q.parts.length;n<j;n++){if(r.length){l.push(r.shift())}l.push(k[q.parts[n]])}if(r.length){l.push(r.shift())}return l.join("")},convertViewMode:function(i){switch(i){case 4:case"decade":i=4;break;case 3:case"year":i=3;break;case 2:case"month":i=2;break;case 1:case"day":i=1;break;case 0:case"hour":i=0;break}return i},headTemplate:'<thead><tr><th class="prev"><i class="{iconType
 } {leftArrow}"/></th><th colspan="5" class="switch"></th><th class="next"><i class="{iconType} {rightArrow}"/></th></tr></thead>',headTemplateV3:'<thead><tr><th class="prev"><span class="{iconType} {leftArrow}"></span> </th><th colspan="5" class="switch"></th><th class="next"><span class="{iconType} {rightArrow}"></span> </th></tr></thead>',contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};c.template='<div class="datetimepicker"><div class="datetimepicker-minutes"><table class=" table-condensed">'+c.headTemplate+c.contTemplate+c.footTemplate+'</table></div><div class="datetimepicker-hours"><table class=" table-condensed">'+c.headTemplate+c.contTemplate+c.footTemplate+'</table></div><div class="datetimepicker-days"><table class=" table-condensed">'+c.headTemplate+"<tbody></tbody>"+c.footTemplate+'</table></div><div class="datetimepicker-months"><table cla
 ss="table-condensed">'+c.headTemplate+c.contTemplate+c.footTemplate+'</table></div><div class="datetimepicker-years"><table class="table-condensed">'+c.headTemplate+c.contTemplate+c.footTemplate+"</table></div></div>";c.templateV3='<div class="datetimepicker"><div class="datetimepicker-minutes"><table class=" table-condensed">'+c.headTemplateV3+c.contTemplate+c.footTemplate+'</table></div><div class="datetimepicker-hours"><table class=" table-condensed">'+c.headTemplateV3+c.contTemplate+c.footTemplate+'</table></div><div class="datetimepicker-days"><table class=" table-condensed">'+c.headTemplateV3+"<tbody></tbody>"+c.footTemplate+'</table></div><div class="datetimepicker-months"><table class="table-condensed">'+c.headTemplateV3+c.contTemplate+c.footTemplate+'</table></div><div class="datetimepicker-years"><table class="table-condensed">'+c.headTemplateV3+c.contTemplate+c.footTemplate+"</table></div></div>";d.fn.datetimepicker.DPGlobal=c;d.fn.datetimepicker.noConflict=function(){d.f
 n.datetimepicker=b;return this};d(document).on("focus.datetimepicker.data-api click.datetimepicker.data-api",'[data-provide="datetimepicker"]',function(j){var i=d(this);if(i.data("datetimepicker")){return}j.preventDefault();i.datetimepicker("show")});d(function(){d('[data-provide="datetimepicker-inline"]').datetimepicker()})}));
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ranger/blob/ab2a7df9/security-admin/src/main/webapp/scripts/Init.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/Init.js b/security-admin/src/main/webapp/scripts/Init.js
index c388a79..3fdeaeb 100644
--- a/security-admin/src/main/webapp/scripts/Init.js
+++ b/security-admin/src/main/webapp/scripts/Init.js
@@ -88,11 +88,11 @@
        'visualsearch': {
             deps: [ 'jquery', 'jquery-ui','backbone','underscore']
        },
-       'select2' : { 
-    	   deps: ['jquery', 'bootstrap'] 
+       'select2' : {
+           deps: ['jquery', 'bootstrap']
        },
        'bootbox' : {
-         deps: ['jquery'] 
+         deps: ['jquery']
        },
        'esprima': {
     	   'exports' : 'esprima'
@@ -131,9 +131,10 @@
 		'Backbone.BootstrapModal'	: '../libs/bower/backbone.bootstrap-modal/js/backbone.bootstrap-modal',
 		'bootstrap-editable'		: '../libs/bower/x-editable/js/bootstrap-editable',
 		'bootstrap-datepicker'		: '../libs/other/datepicker/js/bootstrap-datepicker',
+                'bootstrap-datetimepicker'		: '../libs/other/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min',
 		'bootstrap-notify'			: '../libs/bower/bootstrap-notify/js/bootstrap-notify',
-		
-		
+
+
 		'jquery.cookie'				: '../libs/other/jquery-cookie/js/jquery.cookie',
         'jquery-toggles'			: '../libs/bower/jquery-toggles/js/toggles.min',
         'tag-it'					: '../libs/bower/tag-it/js/tag-it',

http://git-wip-us.apache.org/repos/asf/ranger/blob/ab2a7df9/security-admin/src/main/webapp/scripts/models/RangerPolicy.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/models/RangerPolicy.js b/security-admin/src/main/webapp/scripts/models/RangerPolicy.js
index b1fb143..e406e18 100644
--- a/security-admin/src/main/webapp/scripts/models/RangerPolicy.js
+++ b/security-admin/src/main/webapp/scripts/models/RangerPolicy.js
@@ -81,6 +81,14 @@ define(function(require){
 					width		: '80',
 					switchOn	: true
 				},
+                                policyPriority : {
+                                        type            : 'Switch',
+                                        title           : '',//localization.tt("lbl.policyStatus"),
+                                        onText          : 'override',
+                                        offText         : 'normal',
+                                width           : '80',
+                                switchOn        : false
+                                },
 				isAuditEnabled : {
 					type		: 'Switch',
 					title		: localization.tt("lbl.auditLogging"),

http://git-wip-us.apache.org/repos/asf/ranger/blob/ab2a7df9/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
index 8afc2e6..25e45f2 100644
--- a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
+++ b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
@@ -260,7 +260,9 @@ define(function(require) {
                 userSearchFilter                : 'User search filter',
                 groupSearchFilter               : 'Group search filter',
                 startDate                       : 'Start Date',
-                endDate                         : 'End Date'
+                endDate                         : 'End Date',
+                                addValidityPeriod				: 'Add Validity Period',
+                                editValidityPeriod				: 'Edit Validity Period',
 
 
 			},
@@ -429,8 +431,9 @@ define(function(require) {
                 policyLabelsinfo		: 'Enter label of policy',
                 noUserFoundText			: 'No user associate with this group.',
                 showInitialHundredUser  : 'Initially search filter is applied for first hundred users. To get more users click on ',
-                searchForUserSync       :"Search for your user sync audits..."
- 
+                searchForUserSync       :"Search for your user sync audits...",
+                policyExpired           :'Policy Expired'
+
 			},
 			plcHldr : {
 				search 						:'Search',
@@ -458,9 +461,10 @@ define(function(require) {
 				groupNameValidationMsg :'1. Group name should be start with alphabet / numeric / underscore / non-us characters.<br> 2. Allowed special character ,._\-+/@= and space. <br>3. Name length should be greater than one.',
                 firstNameValidationMsg :'1. First name should be start with alphabet / numeric / underscore / non-us characters.<br> 2. Allowed special character ._-@ and space. <br>3. Name length should be greater than one.',
                 lastNameValidationMsg  :'1. Last name should be start with alphabet / numeric / underscore / non-us characters.<br> 2. Allowed special character ._-@ and space. <br>3. Name length should be greater than one.',
+                setTimeZoneErrorMsg    :'Please select Start/End date for Time zone'
 			},
 			serverMsg : {
-				
+
 				// UserMgr
 				userMgrPassword        : 'The password you\'ve provided is incorrect. Please try again with correct password',
 				userMgrInvalidUser     : 'Invalid user provided',

http://git-wip-us.apache.org/repos/asf/ranger/blob/ab2a7df9/security-admin/src/main/webapp/scripts/utils/XAGlobals.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/utils/XAGlobals.js b/security-admin/src/main/webapp/scripts/utils/XAGlobals.js
index d55ab4a..56fc3c0 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAGlobals.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAGlobals.js
@@ -84,5 +84,8 @@ define(function(require){
 			Import_End   : { value: 'IMPORT END', 	label: 'Import End' },
 			Import_Start : { value: 'IMPORT START', label: 'Import Start'}
 	};
+
+        XAGlobals.Timezones = [{"text":"Africa/Abidjan (GMT)","id":"Africa/Abidjan"},{"text":"Africa/Accra (GMT)","id":"Africa/Accra"},{"text":"Africa/Addis_Ababa (EAT)","id":"Africa/Addis_Ababa"},{"text":"Africa/Algiers (CET)","id":"Africa/Algiers"},{"text":"Africa/Asmara (EAT)","id":"Africa/Asmara"},{"text":"Africa/Bamako (GMT)","id":"Africa/Bamako"},{"text":"Africa/Bangui (WAT)","id":"Africa/Bangui"},{"text":"Africa/Banjul (GMT)","id":"Africa/Banjul"},{"text":"Africa/Bissau (GMT)","id":"Africa/Bissau"},{"text":"Africa/Blantyre (CAT)","id":"Africa/Blantyre"},{"text":"Africa/Brazzaville (WAT)","id":"Africa/Brazzaville"},{"text":"Africa/Bujumbura (CAT)","id":"Africa/Bujumbura"},{"text":"Asia/Oral (ORAT)","id":"Asia/Oral"},{"text":"Africa/Cairo (EET)","id":"Africa/Cairo"},{"text":"Africa/Casablanca (WET)","id":"Africa/Casablanca"},{"text":"Africa/Ceuta (CET)","id":"Africa/Ceuta"},{"text":"Africa/Conakry (GMT)","id":"Africa/Conakry"},{"text":"Africa/Dakar (GMT)","id":"Africa/Dakar"},{
 "text":"Africa/Dar_es_Salaam (EAT)","id":"Africa/Dar_es_Salaam"},{"text":"Asia/Yekaterinburg (YEKT)","id":"Asia/Yekaterinburg"},{"text":"Africa/Djibouti (EAT)","id":"Africa/Djibouti"},{"text":"Africa/Douala (WAT)","id":"Africa/Douala"},{"text":"Africa/Freetown (GMT)","id":"Africa/Freetown"},{"text":"Africa/Gaborone (CAT)","id":"Africa/Gaborone"},{"text":"Africa/Harare (CAT)","id":"Africa/Harare"},{"text":"Africa/El_Aaiun (WET)","id":"Africa/El_Aaiun"},{"text":"Africa/Johannesburg (SAST)","id":"Africa/Johannesburg"},{"text":"Africa/Juba (EAT)","id":"Africa/Juba"},{"text":"Africa/Kampala (EAT)","id":"Africa/Kampala"},{"text":"Africa/Khartoum (EAT)","id":"Africa/Khartoum"},{"text":"Africa/Kinshasa (WAT)","id":"Africa/Kinshasa"},{"text":"Africa/Lagos (WAT)","id":"Africa/Lagos"},{"text":"Africa/Libreville (WAT)","id":"Africa/Libreville"},{"text":"Africa/Lome (GMT)","id":"Africa/Lome"},{"text":"Africa/Kigali (CAT)","id":"Africa/Kigali"},{"text":"Africa/Luanda (WAT)","id":"Africa/Luanda"},
 {"text":"Africa/Lubumbashi (CAT)","id":"Africa/Lubumbashi"},{"text":"Africa/Lusaka (CAT)","id":"Africa/Lusaka"},{"text":"Africa/Malabo (WAT)","id":"Africa/Malabo"},{"text":"Africa/Maputo (CAT)","id":"Africa/Maputo"},{"text":"Africa/Mbabane (SAST)","id":"Africa/Mbabane"},{"text":"Africa/Mogadishu (EAT)","id":"Africa/Mogadishu"},{"text":"Africa/Monrovia (GMT)","id":"Africa/Monrovia"},{"text":"Africa/Nairobi (EAT)","id":"Africa/Nairobi"},{"text":"Africa/Maseru (SAST)","id":"Africa/Maseru"},{"text":"Africa/Ndjamena (WAT)","id":"Africa/Ndjamena"},{"text":"Africa/Niamey (WAT)","id":"Africa/Niamey"},{"text":"Africa/Nouakchott (GMT)","id":"Africa/Nouakchott"},{"text":"Africa/Ouagadougou (GMT)","id":"Africa/Ouagadougou"},{"text":"Africa/Porto-Novo (WAT)","id":"Africa/Porto-Novo"},{"text":"Africa/Tunis (CET)","id":"Africa/Tunis"},{"text":"Africa/Sao_Tome (GMT)","id":"Africa/Sao_Tome"},{"text":"Africa/Tripoli (EET)","id":"Africa/Tripoli"},{"text":"Africa/Windhoek (WAST)","id":"Africa/Windhoek"
 },{"text":"America/Adak (HST)","id":"America/Adak"},{"text":"America/Argentina/Salta (ART)","id":"America/Argentina/Salta"},{"text":"America/Anchorage (AKST)","id":"America/Anchorage"},{"text":"America/Anguilla (AST)","id":"America/Anguilla"},{"text":"America/Antigua (AST)","id":"America/Antigua"},{"text":"America/Araguaina (BRT)","id":"America/Araguaina"},{"text":"America/Argentina/Buenos_Aires (ART)","id":"America/Argentina/Buenos_Aires"},{"text":"America/Argentina/Catamarca (ART)","id":"America/Argentina/Catamarca"},{"text":"America/Argentina/Cordoba (ART)","id":"America/Argentina/Cordoba"},{"text":"America/Argentina/Jujuy (ART)","id":"America/Argentina/Jujuy"},{"text":"America/Argentina/La_Rioja (ART)","id":"America/Argentina/La_Rioja"},{"text":"America/Argentina/Mendoza (ART)","id":"America/Argentina/Mendoza"},{"text":"America/Argentina/Rio_Gallegos (ART)","id":"America/Argentina/Rio_Gallegos"},{"text":"America/Argentina/San_Juan (ART)","id":"America/Argentina/San_Juan"},{"text
 ":"America/Argentina/San_Luis (ART)","id":"America/Argentina/San_Luis"},{"text":"America/Argentina/Tucuman (ART)","id":"America/Argentina/Tucuman"},{"text":"America/Aruba (AST)","id":"America/Aruba"},{"text":"America/Argentina/Ushuaia (ART)","id":"America/Argentina/Ushuaia"},{"text":"America/Asuncion (PYST)","id":"America/Asuncion"},{"text":"America/Bahia_Banderas (CST)","id":"America/Bahia_Banderas"},{"text":"America/Atikokan (EST)","id":"America/Atikokan"},{"text":"America/Bahia (BRT)","id":"America/Bahia"},{"text":"America/Barbados (AST)","id":"America/Barbados"},{"text":"America/Belem (BRT)","id":"America/Belem"},{"text":"America/Belize (CST)","id":"America/Belize"},{"text":"America/Blanc-Sablon (AST)","id":"America/Blanc-Sablon"},{"text":"America/Boa_Vista (AMT)","id":"America/Boa_Vista"},{"text":"America/Bogota (COT)","id":"America/Bogota"},{"text":"America/Boise (MST)","id":"America/Boise"},{"text":"America/Cambridge_Bay (MST)","id":"America/Cambridge_Bay"},{"text":"America/C
 ampo_Grande (AMST)","id":"America/Campo_Grande"},{"text":"America/Cancun (EST)","id":"America/Cancun"},{"text":"America/Caracas (VET)","id":"America/Caracas"},{"text":"America/Cayenne (GFT)","id":"America/Cayenne"},{"text":"America/Cayman (EST)","id":"America/Cayman"},{"text":"America/Chicago (CST)","id":"America/Chicago"},{"text":"America/Chihuahua (MST)","id":"America/Chihuahua"},{"text":"America/Coral_Harbour (EST)","id":"America/Coral_Harbour"},{"text":"America/Costa_Rica (CST)","id":"America/Costa_Rica"},{"text":"America/Creston (MST)","id":"America/Creston"},{"text":"America/Cuiaba (AMST)","id":"America/Cuiaba"},{"text":"America/Curacao (AST)","id":"America/Curacao"},{"text":"America/Danmarkshavn (GMT)","id":"America/Danmarkshavn"},{"text":"America/Dawson (PST)","id":"America/Dawson"},{"text":"America/Dawson_Creek (MST)","id":"America/Dawson_Creek"},{"text":"America/Denver (MST)","id":"America/Denver"},{"text":"America/Detroit (EST)","id":"America/Detroit"},{"text":"America/Do
 minica (AST)","id":"America/Dominica"},{"text":"America/Edmonton (MST)","id":"America/Edmonton"},{"text":"America/Eirunepe (ACT)","id":"America/Eirunepe"},{"text":"America/El_Salvador (CST)","id":"America/El_Salvador"},{"text":"America/Fortaleza (BRT)","id":"America/Fortaleza"},{"text":"America/Glace_Bay (AST)","id":"America/Glace_Bay"},{"text":"America/Godthab (WGT)","id":"America/Godthab"},{"text":"America/Goose_Bay (AST)","id":"America/Goose_Bay"},{"text":"America/Grand_Turk (AST)","id":"America/Grand_Turk"},{"text":"America/Grenada (AST)","id":"America/Grenada"},{"text":"America/Guadeloupe (AST)","id":"America/Guadeloupe"},{"text":"America/Guatemala (CST)","id":"America/Guatemala"},{"text":"America/Guayaquil (ECT)","id":"America/Guayaquil"},{"text":"America/Guyana (GYT)","id":"America/Guyana"},{"text":"America/Halifax (AST)","id":"America/Halifax"},{"text":"America/Havana (CST)","id":"America/Havana"},{"text":"America/Hermosillo (MST)","id":"America/Hermosillo"},{"text":"America
 /Indiana/Petersburg (EST)","id":"America/Indiana/Petersburg"},{"text":"America/Indiana/Tell_City (CST)","id":"America/Indiana/Tell_City"},{"text":"America/Indiana/Vevay (EST)","id":"America/Indiana/Vevay"},{"text":"America/Indiana/Indianapolis (EST)","id":"America/Indiana/Indianapolis"},{"text":"America/Indiana/Knox (CST)","id":"America/Indiana/Knox"},{"text":"America/Indiana/Marengo (EST)","id":"America/Indiana/Marengo"},{"text":"America/Indiana/Vincennes (EST)","id":"America/Indiana/Vincennes"},{"text":"America/Indiana/Winamac (EST)","id":"America/Indiana/Winamac"},{"text":"America/Inuvik (MST)","id":"America/Inuvik"},{"text":"America/Iqaluit (EST)","id":"America/Iqaluit"},{"text":"America/La_Paz (BOT)","id":"America/La_Paz"},{"text":"America/Jamaica (EST)","id":"America/Jamaica"},{"text":"America/Juneau (AKST)","id":"America/Juneau"},{"text":"America/Kentucky/Louisville (EST)","id":"America/Kentucky/Louisville"},{"text":"America/Kentucky/Monticello (EST)","id":"America/Kentucky/M
 onticello"},{"text":"America/Kralendijk (AST)","id":"America/Kralendijk"},{"text":"America/Lima (PET)","id":"America/Lima"},{"text":"America/Managua (CST)","id":"America/Managua"},{"text":"America/Manaus (AMT)","id":"America/Manaus"},{"text":"America/Los_Angeles (PST)","id":"America/Los_Angeles"},{"text":"America/Lower_Princes (AST)","id":"America/Lower_Princes"},{"text":"America/Maceio (BRT)","id":"America/Maceio"},{"text":"America/Marigot (AST)","id":"America/Marigot"},{"text":"America/Martinique (AST)","id":"America/Martinique"},{"text":"America/Matamoros (CST)","id":"America/Matamoros"},{"text":"America/Mazatlan (MST)","id":"America/Mazatlan"},{"text":"America/Menominee (CST)","id":"America/Menominee"},{"text":"America/Mexico_City (CST)","id":"America/Mexico_City"},{"text":"America/Merida (CST)","id":"America/Merida"},{"text":"America/Metlakatla (PST)","id":"America/Metlakatla"},{"text":"America/Miquelon (PMST)","id":"America/Miquelon"},{"text":"America/Moncton (AST)","id":"Amer
 ica/Moncton"},{"text":"America/Monterrey (CST)","id":"America/Monterrey"},{"text":"America/Montevideo (UYT)","id":"America/Montevideo"},{"text":"America/Montreal (EST)","id":"America/Montreal"},{"text":"America/Montserrat (AST)","id":"America/Montserrat"},{"text":"America/Nassau (EST)","id":"America/Nassau"},{"text":"America/New_York (EST)","id":"America/New_York"},{"text":"America/Nipigon (EST)","id":"America/Nipigon"},{"text":"America/Nome (AKST)","id":"America/Nome"},{"text":"America/Noronha (FNT)","id":"America/Noronha"},{"text":"America/North_Dakota/Beulah (CST)","id":"America/North_Dakota/Beulah"},{"text":"America/North_Dakota/Center (CST)","id":"America/North_Dakota/Center"},{"text":"America/North_Dakota/New_Salem (CST)","id":"America/North_Dakota/New_Salem"},{"text":"America/Ojinaga (MST)","id":"America/Ojinaga"},{"text":"America/Panama (EST)","id":"America/Panama"},{"text":"America/Pangnirtung (EST)","id":"America/Pangnirtung"},{"text":"America/Paramaribo (SRT)","id":"Ameri
 ca/Paramaribo"},{"text":"America/Phoenix (MST)","id":"America/Phoenix"},{"text":"America/Port-au-Prince (EST)","id":"America/Port-au-Prince"},{"text":"America/Port_of_Spain (AST)","id":"America/Port_of_Spain"},{"text":"America/Porto_Velho (AMT)","id":"America/Porto_Velho"},{"text":"America/Puerto_Rico (AST)","id":"America/Puerto_Rico"},{"text":"America/Rainy_River (CST)","id":"America/Rainy_River"},{"text":"America/Rankin_Inlet (CST)","id":"America/Rankin_Inlet"},{"text":"America/Recife (BRT)","id":"America/Recife"},{"text":"America/Regina (CST)","id":"America/Regina"},{"text":"America/Resolute (CST)","id":"America/Resolute"},{"text":"America/Rio_Branco (ACT)","id":"America/Rio_Branco"},{"text":"America/Santa_Isabel (PST)","id":"America/Santa_Isabel"},{"text":"America/Santarem (BRT)","id":"America/Santarem"},{"text":"America/Santiago (CLT)","id":"America/Santiago"},{"text":"America/Santo_Domingo (AST)","id":"America/Santo_Domingo"},{"text":"America/Scoresbysund (EGT)","id":"America/
 Scoresbysund"},{"text":"America/Sao_Paulo (BRST)","id":"America/Sao_Paulo"},{"text":"America/Sitka (AKST)","id":"America/Sitka"},{"text":"America/St_Barthelemy (AST)","id":"America/St_Barthelemy"},{"text":"America/St_Johns (NST)","id":"America/St_Johns"},{"text":"America/Thule (AST)","id":"America/Thule"},{"text":"America/St_Kitts (AST)","id":"America/St_Kitts"},{"text":"America/St_Lucia (AST)","id":"America/St_Lucia"},{"text":"America/St_Thomas (AST)","id":"America/St_Thomas"},{"text":"America/St_Vincent (AST)","id":"America/St_Vincent"},{"text":"America/Swift_Current (CST)","id":"America/Swift_Current"},{"text":"America/Tegucigalpa (CST)","id":"America/Tegucigalpa"},{"text":"America/Thunder_Bay (EST)","id":"America/Thunder_Bay"},{"text":"America/Tijuana (PST)","id":"America/Tijuana"},{"text":"America/Toronto (EST)","id":"America/Toronto"},{"text":"America/Tortola (AST)","id":"America/Tortola"},{"text":"America/Vancouver (PST)","id":"America/Vancouver"},{"text":"America/Whitehorse 
 (PST)","id":"America/Whitehorse"},{"text":"America/Winnipeg (CST)","id":"America/Winnipeg"},{"text":"America/Yakutat (AKST)","id":"America/Yakutat"},{"text":"America/Yellowknife (MST)","id":"America/Yellowknife"},{"text":"Antarctica/Macquarie (MIST)","id":"Antarctica/Macquarie"},{"text":"Arctic/Longyearbyen (CET)","id":"Arctic/Longyearbyen"},{"text":"Asia/Aden (AST)","id":"Asia/Aden"},{"text":"Asia/Almaty (ALMT)","id":"Asia/Almaty"},{"text":"Asia/Amman (EET)","id":"Asia/Amman"},{"text":"Asia/Anadyr (ANAT)","id":"Asia/Anadyr"},{"text":"Asia/Aqtau (AQTT)","id":"Asia/Aqtau"},{"text":"Asia/Aqtobe (AQTT)","id":"Asia/Aqtobe"},{"text":"Asia/Ashgabat (TMT)","id":"Asia/Ashgabat"},{"text":"Asia/Baghdad (AST)","id":"Asia/Baghdad"},{"text":"Asia/Bahrain (AST)","id":"Asia/Bahrain"},{"text":"Asia/Bangkok (ICT)","id":"Asia/Bangkok"},{"text":"Asia/Baku (AZT)","id":"Asia/Baku"},{"text":"Asia/Chongqing (CST)","id":"Asia/Chongqing"},{"text":"Asia/Beirut (EET)","id":"Asia/Beirut"},{"text":"Asia/Bishkek
  (KGT)","id":"Asia/Bishkek"},{"text":"Asia/Brunei (BNT)","id":"Asia/Brunei"},{"text":"Asia/Choibalsan (CHOT)","id":"Asia/Choibalsan"},{"text":"Asia/Colombo (IST)","id":"Asia/Colombo"},{"text":"Asia/Damascus (EET)","id":"Asia/Damascus"},{"text":"Asia/Dhaka (BDT)","id":"Asia/Dhaka"},{"text":"Asia/Dili (TLT)","id":"Asia/Dili"},{"text":"Asia/Dubai (GST)","id":"Asia/Dubai"},{"text":"Asia/Dushanbe (TJT)","id":"Asia/Dushanbe"},{"text":"Asia/Gaza (EET)","id":"Asia/Gaza"},{"text":"Asia/Harbin (CST)","id":"Asia/Harbin"},{"text":"Asia/Hebron (EET)","id":"Asia/Hebron"},{"text":"Asia/Ho_Chi_Minh (ICT)","id":"Asia/Ho_Chi_Minh"},{"text":"Asia/Hong_Kong (HKT)","id":"Asia/Hong_Kong"},{"text":"Asia/Hovd (HOVT)","id":"Asia/Hovd"},{"text":"Asia/Irkutsk (IRKT)","id":"Asia/Irkutsk"},{"text":"Asia/Jakarta (WIB)","id":"Asia/Jakarta"},{"text":"Asia/Jayapura (WIT)","id":"Asia/Jayapura"},{"text":"Asia/Kabul (AFT)","id":"Asia/Kabul"},{"text":"Asia/Jerusalem (IST)","id":"Asia/Jerusalem"},{"text":"Asia/Kamchatka
  (PETT)","id":"Asia/Kamchatka"},{"text":"Asia/Karachi (PKT)","id":"Asia/Karachi"},{"text":"Asia/Kashgar (XJT)","id":"Asia/Kashgar"},{"text":"Asia/Kathmandu (NPT)","id":"Asia/Kathmandu"},{"text":"Asia/Kolkata (IST)","id":"Asia/Kolkata"},{"text":"Asia/Krasnoyarsk (KRAT)","id":"Asia/Krasnoyarsk"},{"text":"Asia/Kuala_Lumpur (MYT)","id":"Asia/Kuala_Lumpur"},{"text":"Asia/Kuching (MYT)","id":"Asia/Kuching"},{"text":"Asia/Kuwait (AST)","id":"Asia/Kuwait"},{"text":"Asia/Macau (CST)","id":"Asia/Macau"},{"text":"Asia/Magadan (MAGT)","id":"Asia/Magadan"},{"text":"Asia/Makassar (WITA)","id":"Asia/Makassar"},{"text":"Asia/Manila (PHT)","id":"Asia/Manila"},{"text":"Asia/Muscat (GST)","id":"Asia/Muscat"},{"text":"Asia/Nicosia (EET)","id":"Asia/Nicosia"},{"text":"Asia/Novokuznetsk (KRAT)","id":"Asia/Novokuznetsk"},{"text":"Asia/Novosibirsk (NOVT)","id":"Asia/Novosibirsk"},{"text":"Asia/Omsk (OMST)","id":"Asia/Omsk"},{"text":"Asia/Phnom_Penh (ICT)","id":"Asia/Phnom_Penh"},{"text":"Asia/Pontianak (WI
 B)","id":"Asia/Pontianak"},{"text":"Asia/Pyongyang (KST)","id":"Asia/Pyongyang"},{"text":"Asia/Qatar (AST)","id":"Asia/Qatar"},{"text":"Asia/Qyzylorda (QYZT)","id":"Asia/Qyzylorda"},{"text":"Asia/Rangoon (MMT)","id":"Asia/Rangoon"},{"text":"Asia/Riyadh (AST)","id":"Asia/Riyadh"},{"text":"Asia/Sakhalin (SAKT)","id":"Asia/Sakhalin"},{"text":"Asia/Samarkand (UZT)","id":"Asia/Samarkand"},{"text":"Asia/Seoul (KST)","id":"Asia/Seoul"},{"text":"Asia/Shanghai (CST)","id":"Asia/Shanghai"},{"text":"Asia/Singapore (SGT)","id":"Asia/Singapore"},{"text":"Asia/Taipei (CST)","id":"Asia/Taipei"},{"text":"Asia/Tashkent (UZT)","id":"Asia/Tashkent"},{"text":"Asia/Tbilisi (GET)","id":"Asia/Tbilisi"},{"text":"Asia/Tehran (IRST)","id":"Asia/Tehran"},{"text":"Asia/Thimphu (BTT)","id":"Asia/Thimphu"},{"text":"Asia/Tokyo (JST)","id":"Asia/Tokyo"},{"text":"Asia/Ulaanbaatar (ULAT)","id":"Asia/Ulaanbaatar"},{"text":"Asia/Urumqi (XJT)","id":"Asia/Urumqi"},{"text":"Asia/Vientiane (ICT)","id":"Asia/Vientiane"},{"
 text":"Asia/Vladivostok (VLAT)","id":"Asia/Vladivostok"},{"text":"Asia/Yakutsk (YAKT)","id":"Asia/Yakutsk"},{"text":"Asia/Yerevan (AMT)","id":"Asia/Yerevan"},{"text":"Atlantic/Azores (AZOT)","id":"Atlantic/Azores"},{"text":"Atlantic/Bermuda (AST)","id":"Atlantic/Bermuda"},{"text":"Atlantic/Canary (WET)","id":"Atlantic/Canary"},{"text":"Atlantic/Cape_Verde (CVT)","id":"Atlantic/Cape_Verde"},{"text":"Atlantic/Faroe (WET)","id":"Atlantic/Faroe"},{"text":"Atlantic/Madeira (WET)","id":"Atlantic/Madeira"},{"text":"Atlantic/Reykjavik (GMT)","id":"Atlantic/Reykjavik"},{"text":"Atlantic/South_Georgia (GST)","id":"Atlantic/South_Georgia"},{"text":"Atlantic/St_Helena (GMT)","id":"Atlantic/St_Helena"},{"text":"Atlantic/Stanley (FKST)","id":"Atlantic/Stanley"},{"text":"Australia/Adelaide (ACDT)","id":"Australia/Adelaide"},{"text":"Australia/Brisbane (AEST)","id":"Australia/Brisbane"},{"text":"Australia/Broken_Hill (ACDT)","id":"Australia/Broken_Hill"},{"text":"Australia/Currie (AEDT)","id":"Aust
 ralia/Currie"},{"text":"Australia/Darwin (ACST)","id":"Australia/Darwin"},{"text":"Australia/Eucla (ACWST)","id":"Australia/Eucla"},{"text":"Australia/Hobart (AEDT)","id":"Australia/Hobart"},{"text":"Australia/Lindeman (AEST)","id":"Australia/Lindeman"},{"text":"Australia/Lord_Howe (LHDT)","id":"Australia/Lord_Howe"},{"text":"Australia/Melbourne (AEDT)","id":"Australia/Melbourne"},{"text":"Australia/Perth (AWST)","id":"Australia/Perth"},{"text":"Australia/Sydney (AEDT)","id":"Australia/Sydney"},{"text":"Europe/Amsterdam (CET)","id":"Europe/Amsterdam"},{"text":"Europe/Andorra (CET)","id":"Europe/Andorra"},{"text":"Europe/Athens (EET)","id":"Europe/Athens"},{"text":"Europe/Belgrade (CET)","id":"Europe/Belgrade"},{"text":"Europe/Bucharest (EET)","id":"Europe/Bucharest"},{"text":"Europe/Berlin (CET)","id":"Europe/Berlin"},{"text":"Europe/Budapest (CET)","id":"Europe/Budapest"},{"text":"Europe/Chisinau (EET)","id":"Europe/Chisinau"},{"text":"Europe/Bratislava (CET)","id":"Europe/Bratisla
 va"},{"text":"Europe/Brussels (CET)","id":"Europe/Brussels"},{"text":"Europe/Copenhagen (CET)","id":"Europe/Copenhagen"},{"text":"Europe/Dublin (GMT)","id":"Europe/Dublin"},{"text":"Europe/Gibraltar (CET)","id":"Europe/Gibraltar"},{"text":"Europe/Guernsey (GMT)","id":"Europe/Guernsey"},{"text":"Europe/Helsinki (EET)","id":"Europe/Helsinki"},{"text":"Europe/Isle_of_Man (GMT)","id":"Europe/Isle_of_Man"},{"text":"Europe/Istanbul (EET)","id":"Europe/Istanbul"},{"text":"Europe/Jersey (GMT)","id":"Europe/Jersey"},{"text":"Europe/Kaliningrad (EET)","id":"Europe/Kaliningrad"},{"text":"Europe/Kiev (EET)","id":"Europe/Kiev"},{"text":"Europe/Lisbon (WET)","id":"Europe/Lisbon"},{"text":"Europe/Ljubljana (CET)","id":"Europe/Ljubljana"},{"text":"Europe/London (GMT)","id":"Europe/London"},{"text":"Europe/Luxembourg (CET)","id":"Europe/Luxembourg"},{"text":"Europe/Madrid (CET)","id":"Europe/Madrid"},{"text":"Europe/Malta (CET)","id":"Europe/Malta"},{"text":"Europe/Mariehamn (EET)","id":"Europe/Mari
 ehamn"},{"text":"Europe/Minsk (MSK)","id":"Europe/Minsk"},{"text":"Europe/Monaco (CET)","id":"Europe/Monaco"},{"text":"Europe/Moscow (MSK)","id":"Europe/Moscow"},{"text":"Europe/Oslo (CET)","id":"Europe/Oslo"},{"text":"Europe/Paris (CET)","id":"Europe/Paris"},{"text":"Europe/Podgorica (CET)","id":"Europe/Podgorica"},{"text":"Europe/Prague (CET)","id":"Europe/Prague"},{"text":"Europe/Riga (EET)","id":"Europe/Riga"},{"text":"Europe/Rome (CET)","id":"Europe/Rome"},{"text":"Europe/Samara (SAMT)","id":"Europe/Samara"},{"text":"Europe/San_Marino (CET)","id":"Europe/San_Marino"},{"text":"Europe/Sarajevo (CET)","id":"Europe/Sarajevo"},{"text":"Europe/Simferopol (MSK)","id":"Europe/Simferopol"},{"text":"Europe/Skopje (CET)","id":"Europe/Skopje"},{"text":"Europe/Sofia (EET)","id":"Europe/Sofia"},{"text":"Europe/Stockholm (CET)","id":"Europe/Stockholm"},{"text":"Europe/Tallinn (EET)","id":"Europe/Tallinn"},{"text":"Europe/Tirane (CET)","id":"Europe/Tirane"},{"text":"Europe/Uzhgorod (EET)","id"
 :"Europe/Uzhgorod"},{"text":"Europe/Vaduz (CET)","id":"Europe/Vaduz"},{"text":"Europe/Vatican (CET)","id":"Europe/Vatican"},{"text":"Europe/Vienna (CET)","id":"Europe/Vienna"},{"text":"Europe/Vilnius (EET)","id":"Europe/Vilnius"},{"text":"Europe/Volgograd (MSK)","id":"Europe/Volgograd"},{"text":"Europe/Warsaw (CET)","id":"Europe/Warsaw"},{"text":"Europe/Zagreb (CET)","id":"Europe/Zagreb"},{"text":"Europe/Zaporozhye (EET)","id":"Europe/Zaporozhye"},{"text":"Europe/Zurich (CET)","id":"Europe/Zurich"},{"text":"Indian/Antananarivo (EAT)","id":"Indian/Antananarivo"},{"text":"Indian/Chagos (IOT)","id":"Indian/Chagos"},{"text":"Indian/Christmas (CXT)","id":"Indian/Christmas"},{"text":"Indian/Cocos (CCT)","id":"Indian/Cocos"},{"text":"Indian/Comoro (EAT)","id":"Indian/Comoro"},{"text":"Indian/Kerguelen (TFT)","id":"Indian/Kerguelen"},{"text":"Indian/Mahe (SCT)","id":"Indian/Mahe"},{"text":"Indian/Maldives (MVT)","id":"Indian/Maldives"},{"text":"Indian/Mauritius (MUT)","id":"Indian/Mauritius
 "},{"text":"Indian/Mayotte (EAT)","id":"Indian/Mayotte"},{"text":"Indian/Reunion (RET)","id":"Indian/Reunion"},{"text":"Pacific/Apia (WSDT)","id":"Pacific/Apia"},{"text":"Pacific/Auckland (NZDT)","id":"Pacific/Auckland"},{"text":"Pacific/Chatham (CHADT)","id":"Pacific/Chatham"},{"text":"Pacific/Chuuk (CHUT)","id":"Pacific/Chuuk"},{"text":"Pacific/Easter (EAST)","id":"Pacific/Easter"},{"text":"Pacific/Enderbury (PHOT)","id":"Pacific/Enderbury"},{"text":"Pacific/Fakaofo (TKT)","id":"Pacific/Fakaofo"},{"text":"Pacific/Efate (VUT)","id":"Pacific/Efate"},{"text":"Pacific/Fiji (FJST)","id":"Pacific/Fiji"},{"text":"Pacific/Funafuti (TVT)","id":"Pacific/Funafuti"},{"text":"Pacific/Galapagos (GALT)","id":"Pacific/Galapagos"},{"text":"Pacific/Gambier (GAMT)","id":"Pacific/Gambier"},{"text":"Pacific/Kwajalein (MHT)","id":"Pacific/Kwajalein"},{"text":"Pacific/Guadalcanal (SBT)","id":"Pacific/Guadalcanal"},{"text":"Pacific/Guam (ChST)","id":"Pacific/Guam"},{"text":"Pacific/Honolulu (HST)","id":"
 Pacific/Honolulu"},{"text":"Pacific/Johnston (HST)","id":"Pacific/Johnston"},{"text":"Pacific/Kiritimati (LINT)","id":"Pacific/Kiritimati"},{"text":"Pacific/Kosrae (KOST)","id":"Pacific/Kosrae"},{"text":"Pacific/Majuro (MHT)","id":"Pacific/Majuro"},{"text":"Pacific/Midway (SST)","id":"Pacific/Midway"},{"text":"Pacific/Marquesas (MART)","id":"Pacific/Marquesas"},{"text":"Pacific/Nauru (NRT)","id":"Pacific/Nauru"},{"text":"Pacific/Niue (NUT)","id":"Pacific/Niue"},{"text":"Pacific/Norfolk (NFT)","id":"Pacific/Norfolk"},{"text":"Pacific/Noumea (NCT)","id":"Pacific/Noumea"},{"text":"Pacific/Pago_Pago (SST)","id":"Pacific/Pago_Pago"},{"text":"Pacific/Palau (PWT)","id":"Pacific/Palau"},{"text":"Pacific/Pitcairn (PST)","id":"Pacific/Pitcairn"},{"text":"Pacific/Pohnpei (PONT)","id":"Pacific/Pohnpei"},{"text":"Pacific/Port_Moresby (PGT)","id":"Pacific/Port_Moresby"},{"text":"Pacific/Rarotonga (CKT)","id":"Pacific/Rarotonga"},{"text":"Pacific/Saipan (ChST)","id":"Pacific/Saipan"},{"text":"Paci
 fic/Tahiti (TAHT)","id":"Pacific/Tahiti"},{"text":"Pacific/Tarawa (GILT)","id":"Pacific/Tarawa"},{"text":"Pacific/Tongatapu (TOT)","id":"Pacific/Tongatapu"},{"text":"Pacific/Wake (WAKT)","id":"Pacific/Wake"},{"text":"Pacific/Wallis (WFT)","id":"Pacific/Wallis"}];
+
 	return XAGlobals;
 });

http://git-wip-us.apache.org/repos/asf/ranger/blob/ab2a7df9/security-admin/src/main/webapp/scripts/utils/XAUtils.js
----------------------------------------------------------------------
diff --git a/security-admin/src/main/webapp/scripts/utils/XAUtils.js b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
index c1e6ef5..9e17951 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAUtils.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
@@ -1247,7 +1247,7 @@ define(function(require) {
 				}
 			var reason = str.lastIndexOf("reason") != -1 ? (str.substring(str.lastIndexOf("reason")+7, str.indexOf("field[")-3 ))
 					: str;
-			erroCodeMsg = erroCodeMsg != "" ? erroCodeMsg +"<br/>" : ""; 
+                        erroCodeMsg = erroCodeMsg != "" ? erroCodeMsg +"   " : "";
 			var erroMsg = erroCodeMsg +""+ XAUtils.capitaliseFirstLetter(reason);
 			return XAUtils.notifyError('Error', erroMsg);
 		});
@@ -1388,6 +1388,12 @@ define(function(require) {
     };
     XAUtils.isAuditorOrKMSAuditor = function(SessionMgr){
         return (SessionMgr.isAuditor() || SessionMgr.isKMSAuditor()) ? true : false ;
-    }
+    };
+    XAUtils.policyExpierd = function(model){
+        return _.some(model.get('validitySchedules') , function(m){
+                return new Date().valueOf() > new Date(m.endTime).valueOf() ? false : true;
+
+        });
+    };
 	return XAUtils;
 });
\ No newline at end of file