WP Meta SEO - Version 1.3.0

Version Description

  • New SEO check dashboard
  • Check for SEO permalinks
  • Check for meta titles
  • Check for meta description
  • Check for image HTML resizing
  • Check for image SEO: title, alt and description
  • Check for new content
Download this release

Release Info

Developer JoomUnited
Plugin Icon 128x128 WP Meta SEO
Version 1.3.0
Comparing to
See all releases

Code changes from version 1.2.0 to 1.3.0

css/chart.css CHANGED
@@ -3,100 +3,54 @@
3
  */
4
  .dashboard{
5
  float: left;
6
- border: #CCC 1px solid;
7
  width: 99%;
8
- background: #FFF;
9
  }
10
 
11
- .dashboard .left{width: 50%; float: left;}
12
- .dashboard .right{width: 50%; float: right; }
13
- .avera{width: 100%; height: 40px; font-size: 24px ;position: absolute; top: 50%; left: 0; margin-top: -20px; line-height:19px; text-align: center; z-index: 999999999999999}
14
-
15
- .title-seo {
16
- font-weight: bold;
17
- }
18
-
19
- .load {
20
- height: 20px;
21
- background: #4a8ace;
22
- -moz-border-radius: 2px;
23
- border-radius: 2px;
24
- }
25
-
26
- .noload {
27
- float: right;
28
- width: 60%;
29
- background: #cecfce;
30
- -moz-border-radius: 2px;
31
- border-radius: 2px;
32
- border: 1px solid #eee;
33
- position: relative;
34
- margin-top: -22px;
35
- }
36
-
37
- .loadtext {
38
- font-family: Consolas;
39
- font-size: 14px;
40
- color: #FFF;
41
- padding-left: 3px;
42
- position: absolute;
43
- bottom: 1px;
44
- left: 40%;
45
- }
46
 
47
  .dashboard h1 {
48
  padding: 10px 0px 10px 20px
49
  }
50
 
51
  .dashboard-left {
52
- margin: 10px;
53
- min-height:580px;
54
- background: #eff3f7;
 
 
 
55
  padding-bottom: 10px;
56
  }
57
 
58
- #canvas-holder{
59
- margin:50px 0 0 0;
60
- width:100%;
61
- }
62
- #chart-container {
63
- margin: 10px 10px 0 10px;
64
- padding: 10px;
65
- background-color: #fff;
66
- }
67
-
68
- #canvas-holder h2 {
69
- text-align: center;
70
- }
71
-
72
  .dashboard-right {
73
  padding-bottom: 10px;
74
  margin-top: 10px;
75
  position: relative;
76
  }
77
  #wpmetaseo-update-version {
78
- bottom: 0;
79
- width: 90% ;
80
- position: absolute;
81
  }
82
  #alexa-ranking{
83
  float:left;
84
- margin-left:30px;
85
- margin-top: 30px;
86
  }
87
  #wpmetaseo-update-version {
88
- background: none repeat scroll 0 0 #eff3f7;
 
89
  padding:20px;
90
  }
91
  #wpmetaseo-update-version h4 {
92
  margin:0;
93
  }
94
  #wpmetaseo-update-version ul {
95
- margin-bottom:0;
 
96
  }
97
 
98
- header{
99
- width: 90%;
100
- margin: 0px auto;
101
- padding: 30px 10px 10px 20px;
102
- }
3
  */
4
  .dashboard{
5
  float: left;
 
6
  width: 99%;
 
7
  }
8
 
9
+ .dashboard .left{width: 70%; float: left;height: 100%;background: none repeat scroll 0 0 #fff; min-height: 150px}
10
+ .dashboard .right{width: 30%; float: right;background: #fff;min-height: 150px}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  .dashboard h1 {
13
  padding: 10px 0px 10px 20px
14
  }
15
 
16
  .dashboard-left {
17
+ margin: 10px 0px 10px 0px;
18
+ width: 100%;
19
+ float: left;
20
+
21
+ /* min-height:580px; */
22
+ /* background: #eff3f7;*/
23
  padding-bottom: 10px;
24
  }
25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  .dashboard-right {
27
  padding-bottom: 10px;
28
  margin-top: 10px;
29
  position: relative;
30
  }
31
  #wpmetaseo-update-version {
32
+
33
+
34
+ /* position: absolute;*/
35
  }
36
  #alexa-ranking{
37
  float:left;
38
+ margin-left:10px;
39
+ margin-top: 10px;
40
  }
41
  #wpmetaseo-update-version {
42
+ bottom: 0;
43
+ width: 100% ;
44
  padding:20px;
45
  }
46
  #wpmetaseo-update-version h4 {
47
  margin:0;
48
  }
49
  #wpmetaseo-update-version ul {
50
+ margin-top: 10px;
51
+ margin-bottom:0;
52
  }
53
 
54
+ #wpmetaseo-update-version ul li a {
55
+ text-decoration: none !important;
56
+ }
 
 
css/metaseo-quirk.css ADDED
@@ -0,0 +1,2343 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Quirk UI v1.0.0 (http://themepixels.com/demo/webpage/quirk)
3
+ * Copyright 2015 Themepixels
4
+ *
5
+ * Last compiled on Wednesday, July 22nd, 2015, 9:20:49 AM
6
+ */
7
+
8
+ @import url(http://fonts.googleapis.com/css?family=Open+Sans:400,400italic,600,600italic,700,700italic,300italic,300);
9
+
10
+ @import url(http://fonts.googleapis.com/css?family=Raleway:400,100,200,300,500,600,700,800);
11
+ /*!
12
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
13
+ * Copyright 2011-2015 Twitter, Inc.
14
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
15
+ */
16
+ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
17
+ /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
18
+
19
+
20
+ * {
21
+ -webkit-box-sizing: border-box;
22
+ -moz-box-sizing: border-box;
23
+ box-sizing: border-box;
24
+ }
25
+
26
+ *:before,
27
+ *:after {
28
+ -webkit-box-sizing: border-box;
29
+ -moz-box-sizing: border-box;
30
+ box-sizing: border-box;
31
+ }
32
+
33
+ img {
34
+ vertical-align: middle;
35
+ }
36
+
37
+ h4,.h4 {
38
+ font-family: inherit;
39
+ font-weight: bold;
40
+ line-height: 1.1;
41
+ color: #262b36;
42
+ }
43
+
44
+ h3,.h3 {
45
+ font-family: inherit;
46
+ font-weight: bold;
47
+ line-height: 1.1;
48
+ color: #262b36;
49
+ margin-top: 17px;
50
+ margin-bottom: 8.5px;
51
+ font-weight: 500 !important;
52
+ }
53
+
54
+ h4,.h4 {
55
+ margin-top: 8.5px;
56
+ margin-bottom: 8.5px;
57
+ }
58
+
59
+ .h1 {
60
+ font-size: 31px;
61
+ }
62
+
63
+ h2,
64
+ .h2 {
65
+ font-size: 25px;
66
+ }
67
+
68
+ h3,
69
+ .h3 {
70
+ font-size: 21px;
71
+ }
72
+
73
+ h4,
74
+ .h4 {
75
+ font-size: 15px;
76
+ }
77
+
78
+ h5,
79
+ .h5 {
80
+ font-size: 12px;
81
+ }
82
+
83
+ h6,
84
+ .h6 {
85
+ font-size: 11px;
86
+ }
87
+
88
+ p {
89
+ margin: 0 0 8.5px;
90
+ }
91
+
92
+ .lead {
93
+ margin-bottom: 17px;
94
+ font-size: 13px;
95
+ font-weight: 300;
96
+ line-height: 1.4;
97
+ }
98
+
99
+ @media (min-width: 768px) {
100
+ .lead {
101
+ font-size: 18px;
102
+ };
103
+ }
104
+
105
+ small,
106
+ .small {
107
+ font-size: 91%;
108
+ }
109
+
110
+ mark,
111
+ .mark {
112
+ background-color: #fcf8e3;
113
+ padding: .2em;
114
+ }
115
+
116
+ .text-left {
117
+ text-align: left;
118
+ }
119
+
120
+ .text-right {
121
+ text-align: right;
122
+ }
123
+
124
+ .text-center {
125
+ text-align: center;
126
+ }
127
+
128
+ .text-justify {
129
+ text-align: justify;
130
+ }
131
+
132
+ .text-nowrap {
133
+ white-space: nowrap;
134
+ }
135
+
136
+ .text-lowercase {
137
+ text-transform: lowercase;
138
+ }
139
+
140
+ .text-uppercase {
141
+ text-transform: uppercase;
142
+ }
143
+
144
+ .text-capitalize {
145
+ text-transform: capitalize;
146
+ }
147
+
148
+ .text-muted {
149
+ color: #aaacb2;
150
+ }
151
+
152
+ .text-primary {
153
+ color: #2574ab;
154
+ }
155
+
156
+ a.text-primary:hover,
157
+ a.text-primary:focus {
158
+ color: #1c5881;
159
+ }
160
+
161
+ .text-success {
162
+ color: #1aa71c;
163
+ }
164
+
165
+ a.text-success:hover,
166
+ a.text-success:focus {
167
+ color: #137b15;
168
+ }
169
+
170
+ .text-info {
171
+ color: #3b83a6;
172
+ }
173
+
174
+ a.text-info:hover,
175
+ a.text-info:focus {
176
+ color: #2e6580;
177
+ }
178
+
179
+ .text-warning {
180
+ color: #9c732c;
181
+ }
182
+
183
+ a.text-warning:hover,
184
+ a.text-warning:focus {
185
+ color: #745621;
186
+ }
187
+
188
+ .text-danger {
189
+ color: #d9534f;
190
+ }
191
+
192
+ a.text-danger:hover,
193
+ a.text-danger:focus {
194
+ color: #c9302c;
195
+ }
196
+
197
+ .bg-primary {
198
+ color: #fff;
199
+ background-color: #2574ab;
200
+ }
201
+
202
+ a.bg-primary:hover,
203
+ a.bg-primary:focus {
204
+ background-color: #1c5881;
205
+ }
206
+
207
+ .bg-success {
208
+ background-color: #dff0d8;
209
+ }
210
+
211
+ a.bg-success:hover,
212
+ a.bg-success:focus {
213
+ background-color: #c1e2b3;
214
+ }
215
+
216
+ .bg-info {
217
+ background-color: #d9edf7;
218
+ }
219
+
220
+ a.bg-info:hover,
221
+ a.bg-info:focus {
222
+ background-color: #afd9ee;
223
+ }
224
+
225
+ .bg-warning {
226
+ background-color: #fcf8e3;
227
+ }
228
+
229
+ a.bg-warning:hover,
230
+ a.bg-warning:focus {
231
+ background-color: #f7ecb5;
232
+ }
233
+
234
+ .bg-danger {
235
+ background-color: #f2dede;
236
+ }
237
+
238
+ a.bg-danger:hover,
239
+ a.bg-danger:focus {
240
+ background-color: #e4b9b9;
241
+ }
242
+
243
+ .page-header {
244
+ padding-bottom: 7.5px;
245
+ margin: 34px 0 17px;
246
+ border-bottom: 1px solid #eeeeee;
247
+ }
248
+
249
+ ul,
250
+ ol {
251
+ margin-top: 0;
252
+ margin-bottom: 8.5px;
253
+ }
254
+
255
+ ul ul,
256
+ ol ul,
257
+ ul ol,
258
+ ol ol {
259
+ margin-bottom: 0;
260
+ }
261
+
262
+ .list-unstyled {
263
+ padding-left: 0;
264
+ list-style: none;
265
+ }
266
+
267
+ .list-inline {
268
+ padding-left: 0;
269
+ list-style: none;
270
+ margin-left: -5px;
271
+ }
272
+
273
+ .list-inline > li {
274
+ display: inline-block;
275
+ padding-left: 5px;
276
+ padding-right: 5px;
277
+ }
278
+
279
+ dl {
280
+ margin-top: 0;
281
+ margin-bottom: 17px;
282
+ }
283
+
284
+ dt,
285
+ dd {
286
+ line-height: 1.42857143;
287
+ }
288
+
289
+ dt {
290
+ font-weight: bold;
291
+ }
292
+
293
+ dd {
294
+ margin-left: 0;
295
+ }
296
+
297
+ @media (min-width: 768px) {
298
+ .dl-horizontal dt {
299
+ float: left;
300
+ width: 160px;
301
+ clear: left;
302
+ text-align: right;
303
+ overflow: hidden;
304
+ text-overflow: ellipsis;
305
+ white-space: nowrap;
306
+ }
307
+
308
+ .dl-horizontal dd {
309
+ margin-left: 180px;
310
+ };
311
+ }
312
+
313
+ abbr[title],
314
+ abbr[data-original-title] {
315
+ cursor: help;
316
+ border-bottom: 1px dotted #777777;
317
+ }
318
+
319
+ .initialism {
320
+ font-size: 90%;
321
+ text-transform: uppercase;
322
+ }
323
+
324
+ blockquote {
325
+ padding: 8.5px 17px;
326
+ margin: 0 0 17px;
327
+ font-size: 15px;
328
+ border-left: 5px solid #eeeeee;
329
+ }
330
+
331
+ blockquote p:last-child,
332
+ blockquote ul:last-child,
333
+ blockquote ol:last-child {
334
+ margin-bottom: 0;
335
+ }
336
+
337
+ blockquote footer,
338
+ blockquote small,
339
+ blockquote .small {
340
+ display: block;
341
+ font-size: 80%;
342
+ line-height: 1.42857143;
343
+ color: #777777;
344
+ }
345
+
346
+ blockquote footer:before,
347
+ blockquote small:before,
348
+ blockquote .small:before {
349
+ content: '\2014 \00A0';
350
+ }
351
+
352
+ .blockquote-reverse,
353
+ blockquote.pull-right {
354
+ padding-right: 15px;
355
+ padding-left: 0;
356
+ border-right: 5px solid #eeeeee;
357
+ border-left: 0;
358
+ text-align: right;
359
+ }
360
+
361
+ .blockquote-reverse footer:before,
362
+ blockquote.pull-right footer:before,
363
+ .blockquote-reverse small:before,
364
+ blockquote.pull-right small:before,
365
+ .blockquote-reverse .small:before,
366
+ blockquote.pull-right .small:before {
367
+ content: '';
368
+ }
369
+
370
+ .blockquote-reverse footer:after,
371
+ blockquote.pull-right footer:after,
372
+ .blockquote-reverse small:after,
373
+ blockquote.pull-right small:after,
374
+ .blockquote-reverse .small:after,
375
+ blockquote.pull-right .small:after {
376
+ content: '\00A0 \2014';
377
+ }
378
+
379
+ address {
380
+ margin-bottom: 17px;
381
+ font-style: normal;
382
+ line-height: 1.42857143;
383
+ }
384
+
385
+ code,
386
+ kbd,
387
+ pre,
388
+ samp {
389
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
390
+ }
391
+
392
+ code {
393
+ padding: 2px 4px;
394
+ font-size: 90%;
395
+ color: #c7254e;
396
+ background-color: #f9f2f4;
397
+ border-radius: 2px;
398
+ }
399
+
400
+ kbd {
401
+ padding: 2px 4px;
402
+ font-size: 90%;
403
+ color: #ffffff;
404
+ background-color: #333333;
405
+ border-radius: 2px;
406
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
407
+ }
408
+
409
+ kbd kbd {
410
+ padding: 0;
411
+ font-size: 100%;
412
+ font-weight: bold;
413
+ box-shadow: none;
414
+ }
415
+
416
+ pre {
417
+ display: block;
418
+ padding: 8px;
419
+ margin: 0 0 8.5px;
420
+ font-size: 11px;
421
+ line-height: 1.42857143;
422
+ word-break: break-all;
423
+ word-wrap: break-word;
424
+ color: #333333;
425
+ background-color: #f5f5f5;
426
+ border: 1px solid #cccccc;
427
+ border-radius: 2px;
428
+ }
429
+
430
+ pre code {
431
+ padding: 0;
432
+ font-size: inherit;
433
+ color: inherit;
434
+ white-space: pre-wrap;
435
+ background-color: transparent;
436
+ border-radius: 0;
437
+ }
438
+
439
+ .pre-scrollable {
440
+ max-height: 340px;
441
+ overflow-y: scroll;
442
+ }
443
+
444
+ .container {
445
+ margin-right: auto;
446
+ margin-left: auto;
447
+ padding-left: 10px;
448
+ padding-right: 10px;
449
+ }
450
+
451
+ @media (min-width: 768px) {
452
+ .container {
453
+ width: 740px;
454
+ };
455
+ }
456
+
457
+ @media (min-width: 992px) {
458
+ .container {
459
+ width: 960px;
460
+ };
461
+ }
462
+
463
+ @media (min-width: 1650px) {
464
+ .container {
465
+ width: 1160px;
466
+ };
467
+ }
468
+
469
+ .container-fluid {
470
+ margin-right: auto;
471
+ margin-left: auto;
472
+ padding-left: 10px;
473
+ padding-right: 10px;
474
+ }
475
+
476
+ .row {
477
+ margin-left: -10px;
478
+ margin-right: -10px;
479
+ }
480
+
481
+ .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
482
+ position: relative;
483
+ min-height: 1px;
484
+ padding-left: 10px;
485
+ padding-right: 10px;
486
+ }
487
+
488
+ .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
489
+ float: left;
490
+ }
491
+
492
+ .col-xs-12 {
493
+ width: 100%;
494
+ }
495
+
496
+ .col-xs-11 {
497
+ width: 91.66666667%;
498
+ }
499
+
500
+ .col-xs-10 {
501
+ width: 83.33333333%;
502
+ }
503
+
504
+ .col-xs-9 {
505
+ width: 75%;
506
+ }
507
+
508
+ .col-xs-8 {
509
+ width: 66.66666667%;
510
+ }
511
+
512
+ .col-xs-7 {
513
+ width: 58.33333333%;
514
+ }
515
+
516
+ .col-xs-6 {
517
+ width: 50%;
518
+ }
519
+
520
+ .col-xs-5 {
521
+ width: 41.66666667%;
522
+ }
523
+
524
+ .col-xs-4 {
525
+ width: 33.33333333%;
526
+ }
527
+
528
+ .col-xs-3 {
529
+ width: 25%;
530
+ }
531
+
532
+ .col-xs-2 {
533
+ width: 16.66666667%;
534
+ }
535
+
536
+ .col-xs-1 {
537
+ width: 8.33333333%;
538
+ }
539
+
540
+ .col-xs-pull-12 {
541
+ right: 100%;
542
+ }
543
+
544
+ .col-xs-pull-11 {
545
+ right: 91.66666667%;
546
+ }
547
+
548
+ .col-xs-pull-10 {
549
+ right: 83.33333333%;
550
+ }
551
+
552
+ .col-xs-pull-9 {
553
+ right: 75%;
554
+ }
555
+
556
+ .col-xs-pull-8 {
557
+ right: 66.66666667%;
558
+ }
559
+
560
+ .col-xs-pull-7 {
561
+ right: 58.33333333%;
562
+ }
563
+
564
+ .col-xs-pull-6 {
565
+ right: 50%;
566
+ }
567
+
568
+ .col-xs-pull-5 {
569
+ right: 41.66666667%;
570
+ }
571
+
572
+ .col-xs-pull-4 {
573
+ right: 33.33333333%;
574
+ }
575
+
576
+ .col-xs-pull-3 {
577
+ right: 25%;
578
+ }
579
+
580
+ .col-xs-pull-2 {
581
+ right: 16.66666667%;
582
+ }
583
+
584
+ .col-xs-pull-1 {
585
+ right: 8.33333333%;
586
+ }
587
+
588
+ .col-xs-pull-0 {
589
+ right: auto;
590
+ }
591
+
592
+ .col-xs-push-12 {
593
+ left: 100%;
594
+ }
595
+
596
+ .col-xs-push-11 {
597
+ left: 91.66666667%;
598
+ }
599
+
600
+ .col-xs-push-10 {
601
+ left: 83.33333333%;
602
+ }
603
+
604
+ .col-xs-push-9 {
605
+ left: 75%;
606
+ }
607
+
608
+ .col-xs-push-8 {
609
+ left: 66.66666667%;
610
+ }
611
+
612
+ .col-xs-push-7 {
613
+ left: 58.33333333%;
614
+ }
615
+
616
+ .col-xs-push-6 {
617
+ left: 50%;
618
+ }
619
+
620
+ .col-xs-push-5 {
621
+ left: 41.66666667%;
622
+ }
623
+
624
+ .col-xs-push-4 {
625
+ left: 33.33333333%;
626
+ }
627
+
628
+ .col-xs-push-3 {
629
+ left: 25%;
630
+ }
631
+
632
+ .col-xs-push-2 {
633
+ left: 16.66666667%;
634
+ }
635
+
636
+ .col-xs-push-1 {
637
+ left: 8.33333333%;
638
+ }
639
+
640
+ .col-xs-push-0 {
641
+ left: auto;
642
+ }
643
+
644
+ .col-xs-offset-12 {
645
+ margin-left: 100%;
646
+ }
647
+
648
+ .col-xs-offset-11 {
649
+ margin-left: 91.66666667%;
650
+ }
651
+
652
+ .col-xs-offset-10 {
653
+ margin-left: 83.33333333%;
654
+ }
655
+
656
+ .col-xs-offset-9 {
657
+ margin-left: 75%;
658
+ }
659
+
660
+ .col-xs-offset-8 {
661
+ margin-left: 66.66666667%;
662
+ }
663
+
664
+ .col-xs-offset-7 {
665
+ margin-left: 58.33333333%;
666
+ }
667
+
668
+ .col-xs-offset-6 {
669
+ margin-left: 50%;
670
+ }
671
+
672
+ .col-xs-offset-5 {
673
+ margin-left: 41.66666667%;
674
+ }
675
+
676
+ .col-xs-offset-4 {
677
+ margin-left: 33.33333333%;
678
+ }
679
+
680
+ .col-xs-offset-3 {
681
+ margin-left: 25%;
682
+ }
683
+
684
+ .col-xs-offset-2 {
685
+ margin-left: 16.66666667%;
686
+ }
687
+
688
+ .col-xs-offset-1 {
689
+ margin-left: 8.33333333%;
690
+ }
691
+
692
+ .col-xs-offset-0 {
693
+ margin-left: 0%;
694
+ }
695
+
696
+ @media (min-width: 768px) {
697
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
698
+ float: left;
699
+ }
700
+
701
+ .col-sm-12 {
702
+ width: 100%;
703
+ }
704
+
705
+ .col-sm-11 {
706
+ width: 91.66666667%;
707
+ }
708
+
709
+ .col-sm-10 {
710
+ width: 83.33333333%;
711
+ }
712
+
713
+ .col-sm-9 {
714
+ width: 75%;
715
+ }
716
+
717
+ .col-sm-8 {
718
+ width: 66.66666667%;
719
+ }
720
+
721
+ .col-sm-7 {
722
+ width: 58.33333333%;
723
+ }
724
+
725
+ .col-sm-6 {
726
+ width: 50%;
727
+ max-height: 170px;
728
+ }
729
+
730
+ .col-sm-5 {
731
+ width: 41.66666667%;
732
+ }
733
+
734
+ .col-sm-4 {
735
+ width: 33.33333333%;
736
+ }
737
+
738
+ .col-sm-3 {
739
+ width: 25%;
740
+ }
741
+
742
+ .col-sm-2 {
743
+ width: 16.66666667%;
744
+ }
745
+
746
+ .col-sm-1 {
747
+ width: 8.33333333%;
748
+ }
749
+
750
+ .col-sm-pull-12 {
751
+ right: 100%;
752
+ }
753
+
754
+ .col-sm-pull-11 {
755
+ right: 91.66666667%;
756
+ }
757
+
758
+ .col-sm-pull-10 {
759
+ right: 83.33333333%;
760
+ }
761
+
762
+ .col-sm-pull-9 {
763
+ right: 75%;
764
+ }
765
+
766
+ .col-sm-pull-8 {
767
+ right: 66.66666667%;
768
+ }
769
+
770
+ .col-sm-pull-7 {
771
+ right: 58.33333333%;
772
+ }
773
+
774
+ .col-sm-pull-6 {
775
+ right: 50%;
776
+ }
777
+
778
+ .col-sm-pull-5 {
779
+ right: 41.66666667%;
780
+ }
781
+
782
+ .col-sm-pull-4 {
783
+ right: 33.33333333%;
784
+ }
785
+
786
+ .col-sm-pull-3 {
787
+ right: 25%;
788
+ }
789
+
790
+ .col-sm-pull-2 {
791
+ right: 16.66666667%;
792
+ }
793
+
794
+ .col-sm-pull-1 {
795
+ right: 8.33333333%;
796
+ }
797
+
798
+ .col-sm-pull-0 {
799
+ right: auto;
800
+ }
801
+
802
+ .col-sm-push-12 {
803
+ left: 100%;
804
+ }
805
+
806
+ .col-sm-push-11 {
807
+ left: 91.66666667%;
808
+ }
809
+
810
+ .col-sm-push-10 {
811
+ left: 83.33333333%;
812
+ }
813
+
814
+ .col-sm-push-9 {
815
+ left: 75%;
816
+ }
817
+
818
+ .col-sm-push-8 {
819
+ left: 66.66666667%;
820
+ }
821
+
822
+ .col-sm-push-7 {
823
+ left: 58.33333333%;
824
+ }
825
+
826
+ .col-sm-push-6 {
827
+ left: 50%;
828
+ }
829
+
830
+ .col-sm-push-5 {
831
+ left: 41.66666667%;
832
+ }
833
+
834
+ .col-sm-push-4 {
835
+ left: 33.33333333%;
836
+ }
837
+
838
+ .col-sm-push-3 {
839
+ left: 25%;
840
+ }
841
+
842
+ .col-sm-push-2 {
843
+ left: 16.66666667%;
844
+ }
845
+
846
+ .col-sm-push-1 {
847
+ left: 8.33333333%;
848
+ }
849
+
850
+ .col-sm-push-0 {
851
+ left: auto;
852
+ }
853
+
854
+ .col-sm-offset-12 {
855
+ margin-left: 100%;
856
+ }
857
+
858
+ .col-sm-offset-11 {
859
+ margin-left: 91.66666667%;
860
+ }
861
+
862
+ .col-sm-offset-10 {
863
+ margin-left: 83.33333333%;
864
+ }
865
+
866
+ .col-sm-offset-9 {
867
+ margin-left: 75%;
868
+ }
869
+
870
+ .col-sm-offset-8 {
871
+ margin-left: 66.66666667%;
872
+ }
873
+
874
+ .col-sm-offset-7 {
875
+ margin-left: 58.33333333%;
876
+ }
877
+
878
+ .col-sm-offset-6 {
879
+ margin-left: 50%;
880
+ }
881
+
882
+ .col-sm-offset-5 {
883
+ margin-left: 41.66666667%;
884
+ }
885
+
886
+ .col-sm-offset-4 {
887
+ margin-left: 33.33333333%;
888
+ }
889
+
890
+ .col-sm-offset-3 {
891
+ margin-left: 25%;
892
+ }
893
+
894
+ .col-sm-offset-2 {
895
+ margin-left: 16.66666667%;
896
+ }
897
+
898
+ .col-sm-offset-1 {
899
+ margin-left: 8.33333333%;
900
+ }
901
+
902
+ .col-sm-offset-0 {
903
+ margin-left: 0%;
904
+ };
905
+ }
906
+
907
+ @media (min-width: 992px) {
908
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8 , .col-md-10, .col-md-11, .col-md-12 {
909
+ float: left;
910
+ }
911
+
912
+ .col-md-12 {
913
+ width: 100%;
914
+ }
915
+
916
+ .col-md-11 {
917
+ width: 91.66666667%;
918
+ }
919
+
920
+ .col-md-10 {
921
+ width: 83.33333333%;
922
+ }
923
+
924
+ .col-md-9 {
925
+ width: 75%;
926
+ margin: 0px auto;
927
+ margin-top: 20px;
928
+ }
929
+
930
+ .col-md-8 {
931
+ width: 66.66666667%;
932
+ }
933
+
934
+ .col-md-7 {
935
+ width: 58.33333333%;
936
+ }
937
+
938
+ .col-md-6 {
939
+ width: 50%;
940
+ }
941
+
942
+ .col-md-5 {
943
+ width: 41.66666667%;
944
+ }
945
+
946
+ .col-md-4 {
947
+ width: 33.33333333%;
948
+ }
949
+
950
+ .col-md-3 {
951
+ width: 25%;
952
+ }
953
+
954
+ .col-md-2 {
955
+ width: 16.66666667%;
956
+ }
957
+
958
+ .col-md-1 {
959
+ width: 8.33333333%;
960
+ }
961
+
962
+ .col-md-pull-12 {
963
+ right: 100%;
964
+ }
965
+
966
+ .col-md-pull-11 {
967
+ right: 91.66666667%;
968
+ }
969
+
970
+ .col-md-pull-10 {
971
+ right: 83.33333333%;
972
+ }
973
+
974
+ .col-md-pull-9 {
975
+ right: 75%;
976
+ }
977
+
978
+ .col-md-pull-8 {
979
+ right: 66.66666667%;
980
+ }
981
+
982
+ .col-md-pull-7 {
983
+ right: 58.33333333%;
984
+ }
985
+
986
+ .col-md-pull-6 {
987
+ right: 50%;
988
+ }
989
+
990
+ .col-md-pull-5 {
991
+ right: 41.66666667%;
992
+ }
993
+
994
+ .col-md-pull-4 {
995
+ right: 33.33333333%;
996
+ }
997
+
998
+ .col-md-pull-3 {
999
+ right: 25%;
1000
+ }
1001
+
1002
+ .col-md-pull-2 {
1003
+ right: 16.66666667%;
1004
+ }
1005
+
1006
+ .col-md-pull-1 {
1007
+ right: 8.33333333%;
1008
+ }
1009
+
1010
+ .col-md-pull-0 {
1011
+ right: auto;
1012
+ }
1013
+
1014
+ .col-md-push-12 {
1015
+ left: 100%;
1016
+ }
1017
+
1018
+ .col-md-push-11 {
1019
+ left: 91.66666667%;
1020
+ }
1021
+
1022
+ .col-md-push-10 {
1023
+ left: 83.33333333%;
1024
+ }
1025
+
1026
+ .col-md-push-9 {
1027
+ left: 75%;
1028
+ }
1029
+
1030
+ .col-md-push-8 {
1031
+ left: 66.66666667%;
1032
+ }
1033
+
1034
+ .col-md-push-7 {
1035
+ left: 58.33333333%;
1036
+ }
1037
+
1038
+ .col-md-push-6 {
1039
+ left: 50%;
1040
+ }
1041
+
1042
+ .col-md-push-5 {
1043
+ left: 41.66666667%;
1044
+ }
1045
+
1046
+ .col-md-push-4 {
1047
+ left: 33.33333333%;
1048
+ }
1049
+
1050
+ .col-md-push-3 {
1051
+ left: 25%;
1052
+ }
1053
+
1054
+ .col-md-push-2 {
1055
+ left: 16.66666667%;
1056
+ }
1057
+
1058
+ .col-md-push-1 {
1059
+ left: 8.33333333%;
1060
+ }
1061
+
1062
+ .col-md-push-0 {
1063
+ left: auto;
1064
+ }
1065
+
1066
+ .col-md-offset-12 {
1067
+ margin-left: 100%;
1068
+ }
1069
+
1070
+ .col-md-offset-11 {
1071
+ margin-left: 91.66666667%;
1072
+ }
1073
+
1074
+ .col-md-offset-10 {
1075
+ margin-left: 83.33333333%;
1076
+ }
1077
+
1078
+ .col-md-offset-9 {
1079
+ margin-left: 75%;
1080
+ }
1081
+
1082
+ .col-md-offset-8 {
1083
+ margin-left: 66.66666667%;
1084
+ }
1085
+
1086
+ .col-md-offset-7 {
1087
+ margin-left: 58.33333333%;
1088
+ }
1089
+
1090
+ .col-md-offset-6 {
1091
+ margin-left: 50%;
1092
+ }
1093
+
1094
+ .col-md-offset-5 {
1095
+ margin-left: 41.66666667%;
1096
+ }
1097
+
1098
+ .col-md-offset-4 {
1099
+ margin-left: 33.33333333%;
1100
+ }
1101
+
1102
+ .col-md-offset-3 {
1103
+ margin-left: 25%;
1104
+ }
1105
+
1106
+ .col-md-offset-2 {
1107
+ margin-left: 16.66666667%;
1108
+ }
1109
+
1110
+ .col-md-offset-1 {
1111
+ margin-left: 8.33333333%;
1112
+ }
1113
+
1114
+ .col-md-offset-0 {
1115
+ margin-left: 0%;
1116
+ };
1117
+ }
1118
+
1119
+ @media (min-width: 1650px) {
1120
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
1121
+ float: left;
1122
+ }
1123
+
1124
+ .col-lg-12 {
1125
+ width: 100%;
1126
+ }
1127
+
1128
+ .col-lg-11 {
1129
+ width: 91.66666667%;
1130
+ }
1131
+
1132
+ .col-lg-10 {
1133
+ width: 83.33333333%;
1134
+ }
1135
+
1136
+ .col-lg-9 {
1137
+ width: 75%;
1138
+ }
1139
+
1140
+ .col-lg-8 {
1141
+ width: 66.66666667%;
1142
+ }
1143
+
1144
+ .col-lg-7 {
1145
+ width: 58.33333333%;
1146
+ }
1147
+
1148
+ .col-lg-6 {
1149
+ width: 50%;
1150
+ }
1151
+
1152
+ .col-lg-5 {
1153
+ width: 41.66666667%;
1154
+ }
1155
+
1156
+ .col-lg-4 {
1157
+ width: 33.33333333%;
1158
+ }
1159
+
1160
+ .col-lg-3 {
1161
+ width: 25%;
1162
+ }
1163
+
1164
+ .col-lg-2 {
1165
+ width: 16.66666667%;
1166
+ }
1167
+
1168
+ .col-lg-1 {
1169
+ width: 8.33333333%;
1170
+ }
1171
+
1172
+ .col-lg-pull-12 {
1173
+ right: 100%;
1174
+ }
1175
+
1176
+ .col-lg-pull-11 {
1177
+ right: 91.66666667%;
1178
+ }
1179
+
1180
+ .col-lg-pull-10 {
1181
+ right: 83.33333333%;
1182
+ }
1183
+
1184
+ .col-lg-pull-9 {
1185
+ right: 75%;
1186
+ }
1187
+
1188
+ .col-lg-pull-8 {
1189
+ right: 66.66666667%;
1190
+ }
1191
+
1192
+ .col-lg-pull-7 {
1193
+ right: 58.33333333%;
1194
+ }
1195
+
1196
+ .col-lg-pull-6 {
1197
+ right: 50%;
1198
+ }
1199
+
1200
+ .col-lg-pull-5 {
1201
+ right: 41.66666667%;
1202
+ }
1203
+
1204
+ .col-lg-pull-4 {
1205
+ right: 33.33333333%;
1206
+ }
1207
+
1208
+ .col-lg-pull-3 {
1209
+ right: 25%;
1210
+ }
1211
+
1212
+ .col-lg-pull-2 {
1213
+ right: 16.66666667%;
1214
+ }
1215
+
1216
+ .col-lg-pull-1 {
1217
+ right: 8.33333333%;
1218
+ }
1219
+
1220
+ .col-lg-pull-0 {
1221
+ right: auto;
1222
+ }
1223
+
1224
+ .col-lg-push-12 {
1225
+ left: 100%;
1226
+ }
1227
+
1228
+ .col-lg-push-11 {
1229
+ left: 91.66666667%;
1230
+ }
1231
+
1232
+ .col-lg-push-10 {
1233
+ left: 83.33333333%;
1234
+ }
1235
+
1236
+ .col-lg-push-9 {
1237
+ left: 75%;
1238
+ }
1239
+
1240
+ .col-lg-push-8 {
1241
+ left: 66.66666667%;
1242
+ }
1243
+
1244
+ .col-lg-push-7 {
1245
+ left: 58.33333333%;
1246
+ }
1247
+
1248
+ .col-lg-push-6 {
1249
+ left: 50%;
1250
+ }
1251
+
1252
+ .col-lg-push-5 {
1253
+ left: 41.66666667%;
1254
+ }
1255
+
1256
+ .col-lg-push-4 {
1257
+ left: 33.33333333%;
1258
+ }
1259
+
1260
+ .col-lg-push-3 {
1261
+ left: 25%;
1262
+ }
1263
+
1264
+ .col-lg-push-2 {
1265
+ left: 16.66666667%;
1266
+ }
1267
+
1268
+ .col-lg-push-1 {
1269
+ left: 8.33333333%;
1270
+ }
1271
+
1272
+ .col-lg-push-0 {
1273
+ left: auto;
1274
+ }
1275
+
1276
+ .col-lg-offset-12 {
1277
+ margin-left: 100%;
1278
+ }
1279
+
1280
+ .col-lg-offset-11 {
1281
+ margin-left: 91.66666667%;
1282
+ }
1283
+
1284
+ .col-lg-offset-10 {
1285
+ margin-left: 83.33333333%;
1286
+ }
1287
+
1288
+ .col-lg-offset-9 {
1289
+ margin-left: 75%;
1290
+ }
1291
+
1292
+ .col-lg-offset-8 {
1293
+ margin-left: 66.66666667%;
1294
+ }
1295
+
1296
+ .col-lg-offset-7 {
1297
+ margin-left: 58.33333333%;
1298
+ }
1299
+
1300
+ .col-lg-offset-6 {
1301
+ margin-left: 50%;
1302
+ }
1303
+
1304
+ .col-lg-offset-5 {
1305
+ margin-left: 41.66666667%;
1306
+ }
1307
+
1308
+ .col-lg-offset-4 {
1309
+ margin-left: 33.33333333%;
1310
+ }
1311
+
1312
+ .col-lg-offset-3 {
1313
+ margin-left: 25%;
1314
+ }
1315
+
1316
+ .col-lg-offset-2 {
1317
+ margin-left: 16.66666667%;
1318
+ }
1319
+
1320
+ .col-lg-offset-1 {
1321
+ margin-left: 8.33333333%;
1322
+ }
1323
+
1324
+ .col-lg-offset-0 {
1325
+ margin-left: 0%;
1326
+ };
1327
+ }
1328
+
1329
+ label {
1330
+ display: inline-block;
1331
+ max-width: 100%;
1332
+ margin-bottom: 5px;
1333
+ font-weight: bold;
1334
+ }
1335
+
1336
+ .progress {
1337
+ overflow: hidden;
1338
+ height: 17px;
1339
+ margin-bottom: 17px;
1340
+ background-color: #e7e9ee;
1341
+ border-radius: 2px;
1342
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
1343
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
1344
+ }
1345
+
1346
+ .progress-bar {
1347
+ float: left;
1348
+ width: 0%;
1349
+ height: 100%;
1350
+ font-size: 11px;
1351
+ line-height: 17px;
1352
+ color: #ffffff;
1353
+ text-align: center;
1354
+ background-color: #2574ab;
1355
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
1356
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
1357
+ -webkit-transition: width 0.6s ease;
1358
+ -o-transition: width 0.6s ease;
1359
+ transition: width 0.6s ease;
1360
+ }
1361
+
1362
+ .progress-striped .progress-bar,
1363
+ .progress-bar-striped {
1364
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1365
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1366
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1367
+ background-size: 40px 40px;
1368
+ }
1369
+
1370
+ .progress.active .progress-bar,
1371
+ .progress-bar.active {
1372
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
1373
+ -o-animation: progress-bar-stripes 2s linear infinite;
1374
+ animation: progress-bar-stripes 2s linear infinite;
1375
+ }
1376
+
1377
+ .progress-bar-success {
1378
+ background-color: #259dab;
1379
+ }
1380
+
1381
+ .progress-striped .progress-bar-success {
1382
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1383
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1384
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1385
+ }
1386
+
1387
+ .progress-bar-info {
1388
+ background-color: #5bc0de;
1389
+ }
1390
+
1391
+ .progress-striped .progress-bar-info {
1392
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1393
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1394
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1395
+ }
1396
+
1397
+ .progress-bar-warning {
1398
+ background-color: #e6ad5c;
1399
+ }
1400
+
1401
+ .progress-striped .progress-bar-warning {
1402
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1403
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1404
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1405
+ }
1406
+
1407
+ .progress-bar-danger {
1408
+ background-color: #259DAB;
1409
+ }
1410
+
1411
+ .progress-striped .progress-bar-danger {
1412
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1413
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1414
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
1415
+ }
1416
+
1417
+ .panel {
1418
+ margin-bottom: 17px;
1419
+ background-color: #ffffff;
1420
+ border: 1px solid transparent;
1421
+ border-radius: 2px;
1422
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
1423
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
1424
+ }
1425
+
1426
+ .panel-body {
1427
+ padding: 20px;
1428
+ }
1429
+
1430
+ .panel-heading {
1431
+ padding: 20px;
1432
+ border-bottom: 1px solid transparent;
1433
+ border-top-right-radius: 1px;
1434
+ border-top-left-radius: 1px;
1435
+ }
1436
+
1437
+ .panel-heading > .dropdown .dropdown-toggle {
1438
+ color: inherit;
1439
+ }
1440
+
1441
+ .panel-title {
1442
+ margin-top: 0;
1443
+ margin-bottom: 0;
1444
+ font-size: 14px;
1445
+ color: inherit;
1446
+ }
1447
+
1448
+ .panel-title > a,
1449
+ .panel-title > small,
1450
+ .panel-title > .small,
1451
+ .panel-title > small > a,
1452
+ .panel-title > .small > a {
1453
+ color: inherit;
1454
+ }
1455
+
1456
+ .row:before,
1457
+ .row:after,
1458
+ .panel-body:before,
1459
+ .panel-body:after {
1460
+ content: " ";
1461
+ display: table;
1462
+ }
1463
+
1464
+ .row:after,
1465
+ .panel-body:after {
1466
+ clear: both;
1467
+ }
1468
+
1469
+ .hidden {
1470
+ display: none !important;
1471
+ }
1472
+
1473
+ @-ms-viewport {
1474
+ width: device-width;
1475
+ }
1476
+
1477
+ /***** PANELS *****/
1478
+ .panel {
1479
+ border: 0;
1480
+ border-radius: 2px;
1481
+ margin-bottom: 20px;
1482
+ background-color: #fff;
1483
+ position: relative;
1484
+ -webkit-box-shadow: none;
1485
+ box-shadow: none;
1486
+ }
1487
+
1488
+ .panel-heading {
1489
+ margin-bottom: 0;
1490
+ border-top-right-radius: 2px;
1491
+ border-top-left-radius: 2px;
1492
+ }
1493
+
1494
+ .panel-heading.min {
1495
+ border-bottom-right-radius: 2px;
1496
+ border-bottom-left-radius: 2px;
1497
+ }
1498
+
1499
+ .panel-heading p {
1500
+ margin: 7px 0 0;
1501
+ }
1502
+
1503
+ .panel-heading + .panel-body {
1504
+ padding-top: 0;
1505
+ }
1506
+
1507
+ .panel-title {
1508
+ text-transform: uppercase;
1509
+ font-size: 12px;
1510
+ font-weight: 700;
1511
+ color: #313745;
1512
+ letter-spacing: .2px;
1513
+ font-family: 'Open Sans', 'Helvetica Neue', Helvetica, sans-serif;
1514
+ }
1515
+
1516
+ .panel-body {
1517
+ border-bottom-right-radius: 2px;
1518
+ border-bottom-left-radius: 2px;
1519
+ }
1520
+
1521
+ .panel-body p + p {
1522
+ margin: 15px 0 0;
1523
+ }
1524
+
1525
+ .panel-body .list-inline > li:first-child {
1526
+ padding-left: 0;
1527
+ }
1528
+
1529
+ .panel-body .list-inline > li:last-child {
1530
+ padding-right: 0;
1531
+ }
1532
+
1533
+ .panel-body.inverse {
1534
+ background-color: #3b4354;
1535
+ color: rgba(255, 255, 255, 0.8);
1536
+ }
1537
+
1538
+ .panel-default > .panel-heading > p {
1539
+ color: #696c74;
1540
+ }
1541
+
1542
+ .panel-footer {
1543
+ background-color: #f0f1f4;
1544
+ border-color: transparent;
1545
+ border-bottom-right-radius: 2px;
1546
+ border-bottom-left-radius: 2px;
1547
+ }
1548
+
1549
+ .panel-default .panel-options,
1550
+ .panel-primary .panel-options,
1551
+ .panel-success .panel-options,
1552
+ .panel-warning .panel-options,
1553
+ .panel-danger .panel-options,
1554
+ .panel-info .panel-options,
1555
+ .panel-inverse .panel-options {
1556
+ top: 11px;
1557
+ }
1558
+
1559
+ .panel-default .panel-heading,
1560
+ .panel-primary .panel-heading,
1561
+ .panel-success .panel-heading,
1562
+ .panel-warning .panel-heading,
1563
+ .panel-danger .panel-heading,
1564
+ .panel-info .panel-heading,
1565
+ .panel-inverse .panel-heading {
1566
+ padding-top: 15px;
1567
+ padding-bottom: 15px;
1568
+ border-bottom: 0;
1569
+ }
1570
+
1571
+ .panel-default .panel-heading .panel-title,
1572
+ .panel-primary .panel-heading .panel-title,
1573
+ .panel-success .panel-heading .panel-title,
1574
+ .panel-warning .panel-heading .panel-title,
1575
+ .panel-danger .panel-heading .panel-title,
1576
+ .panel-info .panel-heading .panel-title,
1577
+ .panel-inverse .panel-heading .panel-title {
1578
+ color: #fff;
1579
+ }
1580
+
1581
+ .panel-default .panel-heading p,
1582
+ .panel-primary .panel-heading p,
1583
+ .panel-success .panel-heading p,
1584
+ .panel-warning .panel-heading p,
1585
+ .panel-danger .panel-heading p,
1586
+ .panel-info .panel-heading p,
1587
+ .panel-inverse .panel-heading p {
1588
+ color: rgba(255, 255, 255, 0.8);
1589
+ }
1590
+
1591
+ .panel-default .panel-body,
1592
+ .panel-primary .panel-body,
1593
+ .panel-success .panel-body,
1594
+ .panel-warning .panel-body,
1595
+ .panel-danger .panel-body,
1596
+ .panel-info .panel-body,
1597
+ .panel-inverse .panel-body {
1598
+ padding-top: 20px;
1599
+ }
1600
+
1601
+ .panel-group .panel {
1602
+ border-radius: 0;
1603
+ }
1604
+
1605
+ .panel-group .panel > .panel-heading {
1606
+ padding: 0;
1607
+ border-top-right-radius: 0;
1608
+ border-top-left-radius: 0;
1609
+ }
1610
+
1611
+ .panel-group .panel > .panel-heading .panel-title {
1612
+ font-size: 12px;
1613
+ }
1614
+
1615
+ @media (max-width: 480px) {
1616
+ .panel-group .panel > .panel-heading .panel-title {
1617
+ line-height: 18px;
1618
+ };
1619
+ }
1620
+
1621
+ .panel-group .panel > .panel-heading .panel-title > a {
1622
+ display: block;
1623
+ position: relative;
1624
+ padding: 18px 20px 15px;
1625
+ color: #505b72;
1626
+ color: #259dab;
1627
+ background-color: #fff;
1628
+ -webkit-transition: all 0.2s ease-out 0s;
1629
+ -o-transition: all 0.2s ease-out 0s;
1630
+ transition: all 0.2s ease-out 0s;
1631
+ }
1632
+
1633
+ .panel-group .panel > .panel-heading .panel-title > a:hover,
1634
+ .panel-group .panel > .panel-heading .panel-title > a:focus {
1635
+ color: #259dab;
1636
+ }
1637
+
1638
+ .panel-group .panel > .panel-heading .panel-title > a:after {
1639
+ content: '\f078';
1640
+ font-family: 'FontAwesome';
1641
+ font-size: 11px;
1642
+ font-weight: normal;
1643
+ color: #9fa8bc;
1644
+ position: absolute;
1645
+ top: 15px;
1646
+ right: 20px;
1647
+ display: none;
1648
+ }
1649
+
1650
+ .panel-group .panel > .panel-heading .panel-title > a.collapsed {
1651
+ padding: 15px 20px;
1652
+ color: #505b72;
1653
+ }
1654
+
1655
+ .panel-group .panel > .panel-heading .panel-title > a.collapsed:after {
1656
+ content: '\f054';
1657
+ color: #fff;
1658
+ }
1659
+
1660
+ .panel-group .panel > .panel-heading .panel-title > a.collapsed:hover,
1661
+ .panel-group .panel > .panel-heading .panel-title > a.collapsed:focus {
1662
+ color: #262b36;
1663
+ }
1664
+
1665
+ .panel-group .panel > .panel-heading + .panel-collapse > .panel-body {
1666
+ border-top: 0;
1667
+ }
1668
+
1669
+ .panel-group .panel + .panel {
1670
+ margin-top: 0;
1671
+ border-top: 1px solid #dbdfe6;
1672
+ }
1673
+
1674
+ .panel-group .panel .panel-collapse.in > .panel-body,
1675
+ .panel-group .panel .panel-collapse.collapsing > .panel-body {
1676
+ padding-top: 0;
1677
+ }
1678
+
1679
+ .panel-group .panel:first-child,
1680
+ .panel-group .panel:first-child > .panel-heading .panel-title > a {
1681
+ border-top-right-radius: 2px;
1682
+ border-top-left-radius: 2px;
1683
+ }
1684
+
1685
+ .panel-group .panel:last-child,
1686
+ .panel-group .panel:last-child > .panel-heading .panel-title > a.collapsed {
1687
+ border-bottom-right-radius: 3px;
1688
+ border-bottom-left-radius: 3px;
1689
+ }
1690
+
1691
+ .panel-group .panel-default > .panel-heading .panel-title > a,
1692
+ .panel-group .panel-primary > .panel-heading .panel-title > a,
1693
+ .panel-group .panel-success > .panel-heading .panel-title > a,
1694
+ .panel-group .panel-warning > .panel-heading .panel-title > a,
1695
+ .panel-group .panel-danger > .panel-heading .panel-title > a,
1696
+ .panel-group .panel-info > .panel-heading .panel-title > a,
1697
+ .panel-group .panel-inverse > .panel-heading .panel-title > a {
1698
+ margin-top: -1px;
1699
+ }
1700
+
1701
+ .panel-group .panel-default > .panel-heading .panel-title > a:after,
1702
+ .panel-group .panel-primary > .panel-heading .panel-title > a:after,
1703
+ .panel-group .panel-success > .panel-heading .panel-title > a:after,
1704
+ .panel-group .panel-warning > .panel-heading .panel-title > a:after,
1705
+ .panel-group .panel-danger > .panel-heading .panel-title > a:after,
1706
+ .panel-group .panel-info > .panel-heading .panel-title > a:after,
1707
+ .panel-group .panel-inverse > .panel-heading .panel-title > a:after {
1708
+ display: block;
1709
+ }
1710
+
1711
+ .panel-group .panel-default > .panel-heading .panel-title > a.collapsed,
1712
+ .panel-group .panel-primary > .panel-heading .panel-title > a.collapsed,
1713
+ .panel-group .panel-success > .panel-heading .panel-title > a.collapsed,
1714
+ .panel-group .panel-warning > .panel-heading .panel-title > a.collapsed,
1715
+ .panel-group .panel-danger > .panel-heading .panel-title > a.collapsed,
1716
+ .panel-group .panel-info > .panel-heading .panel-title > a.collapsed,
1717
+ .panel-group .panel-inverse > .panel-heading .panel-title > a.collapsed {
1718
+ color: rgba(255, 255, 255, 0.8);
1719
+ margin-top: 0;
1720
+ }
1721
+
1722
+ .panel-group .panel-default > .panel-heading .panel-title > a.collapsed:hover,
1723
+ .panel-group .panel-primary > .panel-heading .panel-title > a.collapsed:hover,
1724
+ .panel-group .panel-success > .panel-heading .panel-title > a.collapsed:hover,
1725
+ .panel-group .panel-warning > .panel-heading .panel-title > a.collapsed:hover,
1726
+ .panel-group .panel-danger > .panel-heading .panel-title > a.collapsed:hover,
1727
+ .panel-group .panel-info > .panel-heading .panel-title > a.collapsed:hover,
1728
+ .panel-group .panel-inverse > .panel-heading .panel-title > a.collapsed:hover,
1729
+ .panel-group .panel-default > .panel-heading .panel-title > a.collapsed:focus,
1730
+ .panel-group .panel-primary > .panel-heading .panel-title > a.collapsed:focus,
1731
+ .panel-group .panel-success > .panel-heading .panel-title > a.collapsed:focus,
1732
+ .panel-group .panel-warning > .panel-heading .panel-title > a.collapsed:focus,
1733
+ .panel-group .panel-danger > .panel-heading .panel-title > a.collapsed:focus,
1734
+ .panel-group .panel-info > .panel-heading .panel-title > a.collapsed:focus,
1735
+ .panel-group .panel-inverse > .panel-heading .panel-title > a.collapsed:focus {
1736
+ color: #fff;
1737
+ }
1738
+
1739
+ .panel-group .panel-default:first-child > .panel-heading,
1740
+ .panel-group .panel-primary:first-child > .panel-heading,
1741
+ .panel-group .panel-success:first-child > .panel-heading,
1742
+ .panel-group .panel-warning:first-child > .panel-heading,
1743
+ .panel-group .panel-danger:first-child > .panel-heading,
1744
+ .panel-group .panel-info:first-child > .panel-heading,
1745
+ .panel-group .panel-inverse:first-child > .panel-heading {
1746
+ border-top-right-radius: 3px;
1747
+ border-top-left-radius: 3px;
1748
+ }
1749
+
1750
+ .panel-group .panel-default:first-child > .panel-heading .panel-title > a,
1751
+ .panel-group .panel-primary:first-child > .panel-heading .panel-title > a,
1752
+ .panel-group .panel-success:first-child > .panel-heading .panel-title > a,
1753
+ .panel-group .panel-warning:first-child > .panel-heading .panel-title > a,
1754
+ .panel-group .panel-danger:first-child > .panel-heading .panel-title > a,
1755
+ .panel-group .panel-info:first-child > .panel-heading .panel-title > a,
1756
+ .panel-group .panel-inverse:first-child > .panel-heading .panel-title > a {
1757
+ margin-top: 0;
1758
+ }
1759
+
1760
+ .panel-group .panel-default:last-child > .panel-heading,
1761
+ .panel-group .panel-primary:last-child > .panel-heading,
1762
+ .panel-group .panel-success:last-child > .panel-heading,
1763
+ .panel-group .panel-warning:last-child > .panel-heading,
1764
+ .panel-group .panel-danger:last-child > .panel-heading,
1765
+ .panel-group .panel-info:last-child > .panel-heading,
1766
+ .panel-group .panel-inverse:last-child > .panel-heading,
1767
+ .panel-group .panel-default:last-child > .panel-heading .panel-title > a.collapsed,
1768
+ .panel-group .panel-primary:last-child > .panel-heading .panel-title > a.collapsed,
1769
+ .panel-group .panel-success:last-child > .panel-heading .panel-title > a.collapsed,
1770
+ .panel-group .panel-warning:last-child > .panel-heading .panel-title > a.collapsed,
1771
+ .panel-group .panel-danger:last-child > .panel-heading .panel-title > a.collapsed,
1772
+ .panel-group .panel-info:last-child > .panel-heading .panel-title > a.collapsed,
1773
+ .panel-group .panel-inverse:last-child > .panel-heading .panel-title > a.collapsed {
1774
+ border-bottom-right-radius: 3px;
1775
+ border-bottom-left-radius: 3px;
1776
+ }
1777
+
1778
+ .panel-group .panel-default .panel-collapse.in > .panel-body,
1779
+ .panel-group .panel-primary .panel-collapse.in > .panel-body,
1780
+ .panel-group .panel-success .panel-collapse.in > .panel-body,
1781
+ .panel-group .panel-warning .panel-collapse.in > .panel-body,
1782
+ .panel-group .panel-danger .panel-collapse.in > .panel-body,
1783
+ .panel-group .panel-info .panel-collapse.in > .panel-body,
1784
+ .panel-group .panel-inverse .panel-collapse.in > .panel-body,
1785
+ .panel-group .panel-default .panel-collapse.collapsing > .panel-body,
1786
+ .panel-group .panel-primary .panel-collapse.collapsing > .panel-body,
1787
+ .panel-group .panel-success .panel-collapse.collapsing > .panel-body,
1788
+ .panel-group .panel-warning .panel-collapse.collapsing > .panel-body,
1789
+ .panel-group .panel-danger .panel-collapse.collapsing > .panel-body,
1790
+ .panel-group .panel-info .panel-collapse.collapsing > .panel-body,
1791
+ .panel-group .panel-inverse .panel-collapse.collapsing > .panel-body {
1792
+ padding-top: 0;
1793
+ margin-bottom: -1px;
1794
+ }
1795
+
1796
+ .panel-group .panel-default > .panel-heading {
1797
+ background-color: transparent;
1798
+ }
1799
+
1800
+ .panel-group .panel-default > .panel-heading .panel-title > a,
1801
+ .panel-group .panel-default > .panel-heading .panel-title > a:hover,
1802
+ .panel-group .panel-default > .panel-heading .panel-title > a:focus {
1803
+ color: #9fa8bc;
1804
+ }
1805
+
1806
+ .panel-group .panel-default > .panel-heading .panel-title > a.collapsed {
1807
+ background-color: #9fa8bc;
1808
+ }
1809
+
1810
+ .panel-group .panel-default > .panel-heading .panel-title > a.collapsed:hover,
1811
+ .panel-group .panel-default > .panel-heading .panel-title > a.collapsed:focus {
1812
+ background-color: #909bb1;
1813
+ }
1814
+
1815
+ .panel-group .panel-default + .panel {
1816
+ border-color: #b4bbca;
1817
+ }
1818
+
1819
+ .panel-group .panel-default > .panel-heading .panel-title > a,
1820
+ .panel-group .panel-default > .panel-heading .panel-title > a:hover,
1821
+ .panel-group .panel-default > .panel-heading .panel-title > a:focus {
1822
+ color: #3b4354;
1823
+ }
1824
+
1825
+ .panel-group .panel-primary > .panel-heading {
1826
+ background-color: transparent;
1827
+ }
1828
+
1829
+ .panel-group .panel-primary > .panel-heading .panel-title > a,
1830
+ .panel-group .panel-primary > .panel-heading .panel-title > a:hover,
1831
+ .panel-group .panel-primary > .panel-heading .panel-title > a:focus {
1832
+ color: #2574ab;
1833
+ }
1834
+
1835
+ .panel-group .panel-primary > .panel-heading .panel-title > a.collapsed {
1836
+ background-color: #2574ab;
1837
+ }
1838
+
1839
+ .panel-group .panel-primary > .panel-heading .panel-title > a.collapsed:hover,
1840
+ .panel-group .panel-primary > .panel-heading .panel-title > a.collapsed:focus {
1841
+ background-color: #206696;
1842
+ }
1843
+
1844
+ .panel-group .panel-primary + .panel {
1845
+ border-color: #2b88c8;
1846
+ }
1847
+
1848
+ .panel-group .panel-success > .panel-heading {
1849
+ background-color: transparent;
1850
+ }
1851
+
1852
+ .panel-group .panel-success > .panel-heading .panel-title > a,
1853
+ .panel-group .panel-success > .panel-heading .panel-title > a:hover,
1854
+ .panel-group .panel-success > .panel-heading .panel-title > a:focus {
1855
+ color: #259dab;
1856
+ }
1857
+
1858
+ .panel-group .panel-success > .panel-heading .panel-title > a.collapsed {
1859
+ background-color: #259dab;
1860
+ }
1861
+
1862
+ .panel-group .panel-success > .panel-heading .panel-title > a.collapsed:hover,
1863
+ .panel-group .panel-success > .panel-heading .panel-title > a.collapsed:focus {
1864
+ background-color: #208a96;
1865
+ }
1866
+
1867
+ .panel-group .panel-success + .panel {
1868
+ border-color: #2bb8c8;
1869
+ }
1870
+
1871
+ .panel-group .panel-warning > .panel-heading {
1872
+ background-color: transparent;
1873
+ }
1874
+
1875
+ .panel-group .panel-warning > .panel-heading .panel-title > a,
1876
+ .panel-group .panel-warning > .panel-heading .panel-title > a:hover,
1877
+ .panel-group .panel-warning > .panel-heading .panel-title > a:focus {
1878
+ color: #e6ad5c;
1879
+ }
1880
+
1881
+ .panel-group .panel-warning > .panel-heading .panel-title > a.collapsed {
1882
+ background-color: #e6ad5c;
1883
+ }
1884
+
1885
+ .panel-group .panel-warning > .panel-heading .panel-title > a.collapsed:hover,
1886
+ .panel-group .panel-warning > .panel-heading .panel-title > a.collapsed:focus {
1887
+ background-color: #e3a246;
1888
+ }
1889
+
1890
+ .panel-group .panel-warning + .panel {
1891
+ border-color: #ebbd7b;
1892
+ }
1893
+
1894
+ .panel-group .panel-danger > .panel-heading {
1895
+ background-color: transparent;
1896
+ }
1897
+
1898
+ .panel-group .panel-danger > .panel-heading .panel-title > a,
1899
+ .panel-group .panel-danger > .panel-heading .panel-title > a:hover,
1900
+ .panel-group .panel-danger > .panel-heading .panel-title > a:focus {
1901
+ color: #d9534f;
1902
+ }
1903
+
1904
+ .panel-group .panel-danger > .panel-heading .panel-title > a.collapsed {
1905
+ background-color: #d9534f;
1906
+ }
1907
+
1908
+ .panel-group .panel-danger > .panel-heading .panel-title > a.collapsed:hover,
1909
+ .panel-group .panel-danger > .panel-heading .panel-title > a.collapsed:focus {
1910
+ background-color: #d43f3a;
1911
+ }
1912
+
1913
+ .panel-group .panel-danger + .panel {
1914
+ border-color: #df706c;
1915
+ }
1916
+
1917
+ .panel-group .panel-info > .panel-heading {
1918
+ background-color: transparent;
1919
+ }
1920
+
1921
+ .panel-group .panel-info > .panel-heading .panel-title > a,
1922
+ .panel-group .panel-info > .panel-heading .panel-title > a:hover,
1923
+ .panel-group .panel-info > .panel-heading .panel-title > a:focus {
1924
+ color: #5bc0de;
1925
+ }
1926
+
1927
+ .panel-group .panel-info > .panel-heading .panel-title > a.collapsed {
1928
+ background-color: #5bc0de;
1929
+ }
1930
+
1931
+ .panel-group .panel-info > .panel-heading .panel-title > a.collapsed:hover,
1932
+ .panel-group .panel-info > .panel-heading .panel-title > a.collapsed:focus {
1933
+ background-color: #46b8da;
1934
+ }
1935
+
1936
+ .panel-group .panel-info + .panel {
1937
+ border-color: #79cbe4;
1938
+ }
1939
+
1940
+ .panel-group .panel-inverse > .panel-heading {
1941
+ background-color: transparent;
1942
+ }
1943
+
1944
+ .panel-group .panel-inverse > .panel-heading .panel-title > a,
1945
+ .panel-group .panel-inverse > .panel-heading .panel-title > a:hover,
1946
+ .panel-group .panel-inverse > .panel-heading .panel-title > a:focus {
1947
+ color: #505b72;
1948
+ }
1949
+
1950
+ .panel-group .panel-inverse > .panel-heading .panel-title > a.collapsed {
1951
+ background-color: #505b72;
1952
+ }
1953
+
1954
+ .panel-group .panel-inverse > .panel-heading .panel-title > a.collapsed:hover,
1955
+ .panel-group .panel-inverse > .panel-heading .panel-title > a.collapsed:focus {
1956
+ background-color: #464f63;
1957
+ }
1958
+
1959
+ .panel-group .panel-inverse + .panel {
1960
+ border-color: #5f6b87;
1961
+ }
1962
+ /***** PROGRESS BARS *****/
1963
+ .progress {
1964
+ -webkit-box-shadow: none;
1965
+ box-shadow: none;
1966
+ }
1967
+
1968
+ .progress-bar {
1969
+ -webkit-box-shadow: none;
1970
+ box-shadow: none;
1971
+ }
1972
+
1973
+ /***** TYPE *****/
1974
+ .text-success {
1975
+ color: #259dab;
1976
+ }
1977
+
1978
+ a.text-success:hover,
1979
+ a.text-success:focus {
1980
+ color: #1c7781;
1981
+ }
1982
+
1983
+ .text-info {
1984
+ color: #5bc0de;
1985
+ }
1986
+
1987
+ a.text-info:hover,
1988
+ a.text-info:focus {
1989
+ color: #31b0d5;
1990
+ }
1991
+
1992
+ .text-warning {
1993
+ color: #e6ad5c;
1994
+ }
1995
+
1996
+ a.text-warning:hover,
1997
+ a.text-warning:focus {
1998
+ color: #df9730;
1999
+ }
2000
+
2001
+ .text-danger {
2002
+ color: #259dab;
2003
+ }
2004
+
2005
+ a.text-danger:hover,
2006
+ a.text-danger:focus {
2007
+ color: #c9302c;
2008
+ }
2009
+
2010
+ /***** DASHBOARD: PANEL STATISTICS *****/
2011
+ .panel-statistics {
2012
+ margin: 0 0 20px;
2013
+ }
2014
+
2015
+ .panel-statistics .panel {
2016
+ margin: 0;
2017
+ border-radius: 0;
2018
+ min-height: 130px;
2019
+ }
2020
+
2021
+ .panel-statistics > div {
2022
+ padding: 0;
2023
+ }
2024
+
2025
+ .panel-statistics > div:first-child > .panel {
2026
+ border-top-left-radius: 2px;
2027
+ }
2028
+
2029
+ .panel-statistics > div:nth-child(2) > .panel {
2030
+ border-top-right-radius: 2px;
2031
+ }
2032
+
2033
+ .panel-statistics > div:nth-child(3) > .panel {
2034
+ border-bottom-left-radius: 2px;
2035
+ }
2036
+
2037
+ .panel-statistics > div:last-child > .panel {
2038
+ border-bottom-right-radius: 2px;
2039
+ }
2040
+
2041
+ .panel-statistics > div:nth-child(odd) > .panel {
2042
+ margin-left: 0;
2043
+ }
2044
+
2045
+ .panel-statistics > div:nth-child(3) > .panel,
2046
+ .panel-statistics > div:last-child > .panel {
2047
+ margin-bottom: 0;
2048
+ }
2049
+
2050
+ @media (max-width: 767px) {
2051
+ .panel-statistics > div:nth-child(2) > .panel {
2052
+ margin-bottom: 1px;
2053
+ border-top-right-radius: 0;
2054
+ }
2055
+
2056
+ .panel-statistics > div:nth-child(3) > .panel {
2057
+ border-bottom-left-radius: 0;
2058
+ }
2059
+
2060
+ .panel-statistics > div:first-child > .panel {
2061
+ border-top-right-radius: 2px;
2062
+ }
2063
+
2064
+ .panel-statistics > div:last-child > .panel {
2065
+ border-bottom-left-radius: 2px;
2066
+ };
2067
+ }
2068
+
2069
+ .panel-updates h3 {
2070
+ margin: 5px 0 5px;
2071
+ font-size: 32px;
2072
+ }
2073
+
2074
+ .panel-updates .progress {
2075
+ height: 5px;
2076
+ margin-bottom: 15px;
2077
+ }
2078
+
2079
+ .panel-updates p,
2080
+ .panel-updates p + p {
2081
+ margin: 0;
2082
+ font-size: 11px;
2083
+ letter-spacing: 0;
2084
+ color: #505b72;
2085
+ }
2086
+
2087
+ .panel-updates.panel-success-full .panel-body .panel-title,
2088
+ .panel-updates.panel-danger-full .panel-body .panel-title {
2089
+ font-weight: 700;
2090
+ }
2091
+
2092
+ .panel-updates.panel-success-full .progress,
2093
+ .panel-updates.panel-danger-full .progress {
2094
+ background-color: rgba(255, 255, 255, 0.3);
2095
+ }
2096
+
2097
+ .panel-updates.panel-success-full .progress-bar,
2098
+ .panel-updates.panel-danger-full .progress-bar {
2099
+ background-color: #fff;
2100
+ }
2101
+
2102
+ .panel-updates.panel-success-full p,
2103
+ .panel-updates.panel-danger-full p {
2104
+ color: #fff;
2105
+ }
2106
+
2107
+ .panel-success-full {
2108
+ background-color: #23282D;
2109
+ color: rgba(255, 255, 255, 0.8);
2110
+ }
2111
+
2112
+ .panel-success-full .panel-body .panel-title,
2113
+ .panel-success-full .panel-body h1,
2114
+ .panel-success-full .panel-body h2,
2115
+ .panel-success-full .panel-body h3,
2116
+ .panel-success-full .panel-body h4,
2117
+ .panel-success-full .panel-body h5,
2118
+ .panel-success-full .panel-body h6 {
2119
+ color: #fff;
2120
+ font-weight: 500;
2121
+ }
2122
+
2123
+ .panel-success-full .panel-body a {
2124
+ color: rgba(255, 255, 255, 0.7);
2125
+ }
2126
+
2127
+ .panel-success-full .panel-body a:hover,
2128
+ .panel-success-full .panel-body a:focus {
2129
+ color: #fff;
2130
+ }
2131
+
2132
+ .panel-success-full .panel-footer {
2133
+ padding-top: 0;
2134
+ background-color: transparent;
2135
+ }
2136
+
2137
+ .panel-warning-full {
2138
+ background-color: #e6ad5c;
2139
+ color: rgba(255, 255, 255, 0.8);
2140
+ }
2141
+
2142
+ .panel-warning-full .panel-options > li > a {
2143
+ color: rgba(255, 255, 255, 0.7);
2144
+ }
2145
+
2146
+ .panel-warning-full .panel-options > li > a:hover,
2147
+ .panel-warning-full .panel-options > li > a:focus {
2148
+ color: #fff;
2149
+ }
2150
+
2151
+ .panel-warning-full .panel-heading {
2152
+ background-color: transparent;
2153
+ }
2154
+
2155
+ .panel-warning-full .panel-heading .panel-title {
2156
+ color: #fff;
2157
+ }
2158
+
2159
+ .panel-warning-full .form-control {
2160
+ border-color: transparent;
2161
+ }
2162
+
2163
+ .panel-warning-full .panel-body .panel-title,
2164
+ .panel-warning-full .panel-body h1,
2165
+ .panel-warning-full .panel-body h2,
2166
+ .panel-warning-full .panel-body h3,
2167
+ .panel-warning-full .panel-body h4,
2168
+ .panel-warning-full .panel-body h5,
2169
+ .panel-warning-full .panel-body h6 {
2170
+ color: #fff;
2171
+ font-weight: 500;
2172
+ }
2173
+
2174
+ .panel-warning-full .panel-body a {
2175
+ color: rgba(255, 255, 255, 0.7);
2176
+ }
2177
+
2178
+ .panel-warning-full .panel-body a:hover,
2179
+ .panel-warning-full .panel-body a:focus {
2180
+ color: #fff;
2181
+ }
2182
+
2183
+ .panel-warning-full .panel-footer {
2184
+ padding-top: 0;
2185
+ background-color: transparent;
2186
+ }
2187
+
2188
+ .panel-danger-full {
2189
+ background-color: #23282D;
2190
+ color: rgba(255, 255, 255, 0.8);
2191
+ }
2192
+
2193
+ .panel-danger-full .panel-options > li > a {
2194
+ color: rgba(255, 255, 255, 0.7);
2195
+ }
2196
+
2197
+ .panel-danger-full .panel-options > li > a:hover,
2198
+ .panel-danger-full .panel-options > li > a:focus {
2199
+ color: #fff;
2200
+ }
2201
+
2202
+ .panel-danger-full .panel-heading {
2203
+ background-color: transparent;
2204
+ }
2205
+
2206
+ .panel-danger-full .panel-heading .panel-title {
2207
+ color: #fff;
2208
+ }
2209
+
2210
+ .panel-danger-full .form-control {
2211
+ border-color: transparent;
2212
+ }
2213
+
2214
+ .panel-danger-full .panel-body .panel-title,
2215
+ .panel-danger-full .panel-body h1,
2216
+ .panel-danger-full .panel-body h2,
2217
+ .panel-danger-full .panel-body h3,
2218
+ .panel-danger-full .panel-body h4,
2219
+ .panel-danger-full .panel-body h5,
2220
+ .panel-danger-full .panel-body h6 {
2221
+ color: #fff;
2222
+ font-weight: 500;
2223
+ }
2224
+
2225
+ .panel-danger-full .panel-body a {
2226
+ color: rgba(255, 255, 255, 0.7);
2227
+ }
2228
+
2229
+ .panel-danger-full .panel-body a:hover,
2230
+ .panel-danger-full .panel-body a:focus {
2231
+ color: #fff;
2232
+ }
2233
+
2234
+ .panel-danger-full .panel-footer {
2235
+ padding-top: 0;
2236
+ background-color: transparent;
2237
+ }
2238
+
2239
+ .panel-info-full {
2240
+ background-color: #5bc0de;
2241
+ color: rgba(255, 255, 255, 0.8);
2242
+ }
2243
+
2244
+ .panel-info-full .panel-options > li > a {
2245
+ color: rgba(255, 255, 255, 0.7);
2246
+ }
2247
+
2248
+ .panel-info-full .panel-options > li > a:hover,
2249
+ .panel-info-full .panel-options > li > a:focus {
2250
+ color: #fff;
2251
+ }
2252
+
2253
+ .panel-info-full .panel-heading {
2254
+ background-color: transparent;
2255
+ }
2256
+
2257
+ .panel-info-full .panel-heading .panel-title {
2258
+ color: #fff;
2259
+ }
2260
+
2261
+ .panel-info-full .form-control {
2262
+ border-color: transparent;
2263
+ }
2264
+
2265
+ .panel-info-full .panel-body .panel-title,
2266
+ .panel-info-full .panel-body h1,
2267
+ .panel-info-full .panel-body h2,
2268
+ .panel-info-full .panel-body h3,
2269
+ .panel-info-full .panel-body h4,
2270
+ .panel-info-full .panel-body h5,
2271
+ .panel-info-full .panel-body h6 {
2272
+ color: #fff;
2273
+ font-weight: 500;
2274
+ }
2275
+
2276
+ .panel-info-full .panel-body a {
2277
+ color: rgba(255, 255, 255, 0.7);
2278
+ }
2279
+
2280
+ .panel-info-full .panel-body a:hover,
2281
+ .panel-info-full .panel-body a:focus {
2282
+ color: #fff;
2283
+ }
2284
+
2285
+ .panel-info-full .panel-footer {
2286
+ padding-top: 0;
2287
+ background-color: transparent;
2288
+ }
2289
+
2290
+ .panel-inverse-full {
2291
+ background-color: #262b36;
2292
+ color: rgba(255, 255, 255, 0.8);
2293
+ }
2294
+
2295
+ .panel-inverse-full .panel-options > li > a {
2296
+ color: rgba(255, 255, 255, 0.7);
2297
+ }
2298
+
2299
+ .panel-inverse-full .panel-options > li > a:hover,
2300
+ .panel-inverse-full .panel-options > li > a:focus {
2301
+ color: #fff;
2302
+ }
2303
+
2304
+ .panel-inverse-full .panel-heading {
2305
+ background-color: transparent;
2306
+ }
2307
+
2308
+ .panel-inverse-full .panel-heading .panel-title {
2309
+ color: #fff;
2310
+ }
2311
+
2312
+ .panel-inverse-full .form-control {
2313
+ border-color: transparent;
2314
+ }
2315
+
2316
+ .panel-inverse-full .panel-body .panel-title,
2317
+ .panel-inverse-full .panel-body h1,
2318
+ .panel-inverse-full .panel-body h2,
2319
+ .panel-inverse-full .panel-body h3,
2320
+ .panel-inverse-full .panel-body h4,
2321
+ .panel-inverse-full .panel-body h5,
2322
+ .panel-inverse-full .panel-body h6 {
2323
+ color: #fff;
2324
+ font-weight: 500;
2325
+ }
2326
+
2327
+ .panel-inverse-full .panel-body a {
2328
+ color: rgba(255, 255, 255, 0.7);
2329
+ }
2330
+
2331
+ .panel-inverse-full .panel-body a:hover,
2332
+ .panel-inverse-full .panel-body a:focus {
2333
+ color: #fff;
2334
+ }
2335
+
2336
+ .panel-inverse-full .panel-footer {
2337
+ padding-top: 0;
2338
+ background-color: transparent;
2339
+ }
2340
+
2341
+ .toplevel_page_metaseo_dashboard div.progress div.progress-bar span.sr-only {
2342
+ display: none;
2343
+ }
css/metaseo_admin.css CHANGED
@@ -336,8 +336,8 @@ strong {
336
  padding: 5px 10px;
337
  }
338
  .yellow-box {
339
- background-color: #fdf9e0;
340
- border: 1px solid #feed78;
341
  }
342
  .note-no-data .col-pad {
343
  background: url("../img/no-data-alert.png") no-repeat scroll 0 50% transparent;
336
  padding: 5px 10px;
337
  }
338
  .yellow-box {
339
+ background-color: #23282D;
340
+ color: #eee;
341
  }
342
  .note-no-data .col-pad {
343
  background: url("../img/no-data-alert.png") no-repeat scroll 0 50% transparent;
inc/class.metaseo-admin.php CHANGED
@@ -314,7 +314,10 @@ class MetaSeo_Admin {
314
  );
315
  if($current_screen->base == 'toplevel_page_metaseo_dashboard'){
316
  wp_enqueue_script('Chart', plugins_url('js/Chart.js', dirname(__FILE__)), array('jquery'), '0.1', true);
317
- wp_enqueue_script('dashboard-chart', plugins_url('js/dashboard-chart.js', dirname(__FILE__)), array('jquery'), '0.1', true);
 
 
 
318
  }
319
 
320
  if($current_screen->base == 'wp-meta-seo_page_metaseo_image_meta'){
@@ -331,12 +334,9 @@ class MetaSeo_Admin {
331
  *
332
  */
333
  function addAdminStylesheets() {
334
-
335
  wp_enqueue_style('wpmetaseoAdmin', plugins_url('css/metaseo_admin.css', dirname(__FILE__)));
336
  wp_enqueue_style('tooltip-metaimage', plugins_url('/css/tooltip-metaimage.css',dirname(__FILE__)));
337
  wp_enqueue_style('style', plugins_url('/css/style.css', dirname(__FILE__) ) );
338
- wp_enqueue_style('chart', plugins_url('/css/chart.css', dirname(__FILE__) ) );
339
-
340
  }
341
 
342
  function register_menu_page() {
@@ -447,7 +447,7 @@ class MetaSeo_Admin {
447
  add_action( 'wp_ajax_load_posts', array('MetaSeo_Image_List_Table', 'load_posts_callback') );
448
  add_action( 'wp_ajax_optimize_imgs', array('MetaSeo_Image_List_Table', 'optimizeImages') );
449
  add_action( 'wp_ajax_updateMeta', array('MetaSeo_Image_List_Table', 'updateMeta_callback') );
450
- add_action( 'wp_ajax_opt_checking', array('MetaSeo_Dashboard', 'optimizationChecking') );
451
  //
452
  add_action( 'wp_ajax_import_meta_data', array('MetaSeo_Content_List_Table', 'importMetaData') );
453
  add_action( 'wp_ajax_dismiss_import_meta', array('MetaSeo_Content_List_Table', 'dismissImport') );
314
  );
315
  if($current_screen->base == 'toplevel_page_metaseo_dashboard'){
316
  wp_enqueue_script('Chart', plugins_url('js/Chart.js', dirname(__FILE__)), array('jquery'), '0.1', true);
317
+ wp_enqueue_script('jquery-knob', plugins_url('js/jquery.knob.js', dirname(__FILE__)), array('jquery'), '0.1', true);
318
+ wp_enqueue_script('metaseo-dashboard', plugins_url('js/dashboard.js', dirname(__FILE__)), array('jquery'), '0.1', true);
319
+ wp_enqueue_style('chart', plugins_url('/css/chart.css', dirname(__FILE__) ) );
320
+ wp_enqueue_style('metaseo-quirk', plugins_url('/css/metaseo-quirk.css', dirname(__FILE__) ) );
321
  }
322
 
323
  if($current_screen->base == 'wp-meta-seo_page_metaseo_image_meta'){
334
  *
335
  */
336
  function addAdminStylesheets() {
 
337
  wp_enqueue_style('wpmetaseoAdmin', plugins_url('css/metaseo_admin.css', dirname(__FILE__)));
338
  wp_enqueue_style('tooltip-metaimage', plugins_url('/css/tooltip-metaimage.css',dirname(__FILE__)));
339
  wp_enqueue_style('style', plugins_url('/css/style.css', dirname(__FILE__) ) );
 
 
340
  }
341
 
342
  function register_menu_page() {
447
  add_action( 'wp_ajax_load_posts', array('MetaSeo_Image_List_Table', 'load_posts_callback') );
448
  add_action( 'wp_ajax_optimize_imgs', array('MetaSeo_Image_List_Table', 'optimizeImages') );
449
  add_action( 'wp_ajax_updateMeta', array('MetaSeo_Image_List_Table', 'updateMeta_callback') );
450
+ //add_action( 'wp_ajax_opt_checking', array('MetaSeo_Dashboard', 'optimizationChecking') );
451
  //
452
  add_action( 'wp_ajax_import_meta_data', array('MetaSeo_Content_List_Table', 'importMetaData') );
453
  add_action( 'wp_ajax_dismiss_import_meta', array('MetaSeo_Content_List_Table', 'dismissImport') );
inc/class.metaseo-dashboard.php CHANGED
@@ -7,8 +7,20 @@
7
  */
8
 
9
  class MetaSeo_Dashboard {
10
-
11
- public static function optimizationChecking() {
 
 
 
 
 
 
 
 
 
 
 
 
12
  global $wpdb;
13
  $imgs = 0;
14
  #$imgs_metas = 0;
@@ -27,8 +39,8 @@ class MetaSeo_Dashboard {
27
  $imgs_metas_are_good[$meta_key] = 0;
28
  $imgs_metas_are_not_good[$meta_key] = 0;
29
  }
30
-
31
- $post_types = MetaSeo_Content_List_Table::get_post_types();
32
  $query = "SELECT `ID`, `post_title`, `post_content`, `post_type`, `post_date`
33
  FROM $wpdb->posts
34
  WHERE `post_type` IN ($post_types)
@@ -46,16 +58,16 @@ class MetaSeo_Dashboard {
46
  $tags = $doc->getElementsByTagName('img');
47
  foreach ($tags as $tag) {
48
  $img_src = $tag->getAttribute('src');
49
-
50
- if(!preg_match('/\.(jpg|png|gif)$/i', $img_src, $matches)){
51
- continue;
52
- }
53
-
54
  $img_path = str_replace($upload_dir['baseurl'], $upload_dir['basedir'], $img_src);
55
- if(!file_exists($img_path)){
56
- continue;
57
- }
58
-
59
  $width = $tag->getAttribute('width');
60
  $height = $tag->getAttribute('height');
61
  if (list($real_width, $real_height) = @getimagesize($img_path)) {
@@ -75,25 +87,24 @@ class MetaSeo_Dashboard {
75
  }
76
 
77
  foreach ($meta_keys as $meta_key) {
78
-
79
  if (trim($tag->getAttribute($meta_key))) {
80
  $imgs_metas_are_good[$meta_key] ++;
81
  }
82
-
83
  }
84
  }
85
-
86
- $imgs++;
87
  }
88
  }
89
 
90
  //Report analytic of images optimization
91
  $response['imgs_statis'][0] = $imgs_are_good;
92
  $response['imgs_statis'][1] = $imgs;
93
- $response['imgs_metas_statis'][0] = ceil(($imgs_metas_are_good['alt'] + $imgs_metas_are_good['title'])/2 ) ;
94
  $response['imgs_metas_statis'][1] = $imgs;
95
  }
96
-
97
  //Get number of post/page and number of images inserted into them
98
  $posts_counter = wp_count_posts('post');
99
  $pages_counter = wp_count_posts('page');
@@ -124,95 +135,152 @@ class MetaSeo_Dashboard {
124
  $response[$alias_names[$result->meta_key]][0] = (int) $result->total;
125
  $response[$alias_names[$result->meta_key]][1] = $posts_pages_total;
126
  }
127
- $response['metacontent'][0] = ceil($count_tt_desc/2);
128
- $response['metacontent'][1] = $posts_pages_total ;
129
  }
130
 
131
- echo json_encode($response);
132
- wp_die();
133
  }
134
 
135
- public function displayRank($url){
136
- $rank = $this->getRank($url);
137
- if($rank !== ''){
138
- echo $rank;
139
- }
140
- else{
141
- echo __('We can\'t get rank of this site from Alexa.com!', 'wpms');
142
- }
143
- }
144
-
145
- public function getRank($url){
146
- if(!function_exists('curl_version')){
147
- if(!$content = @file_get_contents($url)){
148
- return '';
149
- }
150
- }
151
- else{
152
- if(!is_array($url)){ $url = array($url); }
153
- $contents = $this->get_contents($url);
154
- $content = $contents[0];
155
- }
156
-
157
- $doc = new DOMDocument();
158
- @$doc->loadHTML($content);
159
- $doc->preserveWhiteSpace = false;
160
-
161
- $finder = new DOMXPath($doc);
162
- $classname = 'note-no-data';
163
- $nodes = $finder->query("//section[contains(@class, '$classname')]");
164
- if($nodes->length < 1) {
165
- $classname = 'rank-row';
166
- $nodes = $finder->query("//div[contains(@class, '$classname')]");
167
- }
168
-
169
- $tmp_dom = new DOMDocument();
170
- foreach($nodes as $key => $node){
171
- $tmp_dom->appendChild($tmp_dom->importNode($node,true));
172
- }
173
-
174
- $html = trim($tmp_dom->saveHTML());
175
- $html = str_replace('We don\'t have', 'Alexa doesn\'t has', $html);
176
- $html = str_replace('Get Certified', '', $html);
177
- $html = str_replace('"/topsites/countries', '"http://www.alexa.com/topsites/countries', $html);
178
- return $html;
179
- }
180
-
181
- public function get_contents($urls){
182
- $mh = curl_multi_init();
183
  $curl_array = array();
184
- $useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36';
185
- foreach($urls as $i => $url)
186
- {
187
- $curl_array[$i] = curl_init($url);
188
- curl_setopt($curl_array[$i], CURLOPT_URL, $url);
189
- curl_setopt($curl_array[$i], CURLOPT_USERAGENT, $useragent); // set user agent
190
- curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, TRUE);
191
- curl_setopt($curl_array[$i], CURLOPT_FOLLOWLOCATION, TRUE);
192
- curl_setopt($curl_array[$i], CURLOPT_CONNECTTIMEOUT, 5);
193
- curl_setopt($curl_array[$i], CURLOPT_ENCODING ,"UTF-8");
194
- curl_multi_add_handle($mh, $curl_array[$i]);
195
-
196
  }
197
-
198
  $running = NULL;
199
  do {
200
  usleep(10000);
201
- curl_multi_exec($mh,$running);
202
- } while($running > 0);
203
-
204
  $contents = array();
205
- foreach($urls as $i => $url)
206
- {
207
  $content = curl_multi_getcontent($curl_array[$i]);
208
- $contents[$i] = $content;
209
  }
210
-
211
- foreach($urls as $i => $url){
212
  curl_multi_remove_handle($mh, $curl_array[$i]);
213
  }
214
  curl_multi_close($mh);
215
  return $contents;
216
- }
217
-
218
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  */
8
 
9
  class MetaSeo_Dashboard {
10
+ public static $meta_title_length = 69;
11
+ public static $meta_desc_length = 156;
12
+
13
+ public static $metatitle_filled = 0;
14
+ public static $metadesc_filled = 0;
15
+ public static $imageresizing_filled = 0;
16
+ public static $imagemeta_filled = 0;
17
+ public static $image_in_post = 0;
18
+ public static $mpostname_inurl = 0;
19
+ public static $mcategory_inurl = 0;
20
+ public static $mpermalink = 50;
21
+
22
+
23
+ public static function moptimizationChecking() {
24
  global $wpdb;
25
  $imgs = 0;
26
  #$imgs_metas = 0;
39
  $imgs_metas_are_good[$meta_key] = 0;
40
  $imgs_metas_are_not_good[$meta_key] = 0;
41
  }
42
+
43
+ $post_types = MetaSeo_Content_List_Table::get_post_types();
44
  $query = "SELECT `ID`, `post_title`, `post_content`, `post_type`, `post_date`
45
  FROM $wpdb->posts
46
  WHERE `post_type` IN ($post_types)
58
  $tags = $doc->getElementsByTagName('img');
59
  foreach ($tags as $tag) {
60
  $img_src = $tag->getAttribute('src');
61
+
62
+ if (!preg_match('/\.(jpg|png|gif)$/i', $img_src, $matches)) {
63
+ continue;
64
+ }
65
+
66
  $img_path = str_replace($upload_dir['baseurl'], $upload_dir['basedir'], $img_src);
67
+ if (!file_exists($img_path)) {
68
+ continue;
69
+ }
70
+
71
  $width = $tag->getAttribute('width');
72
  $height = $tag->getAttribute('height');
73
  if (list($real_width, $real_height) = @getimagesize($img_path)) {
87
  }
88
 
89
  foreach ($meta_keys as $meta_key) {
90
+
91
  if (trim($tag->getAttribute($meta_key))) {
92
  $imgs_metas_are_good[$meta_key] ++;
93
  }
 
94
  }
95
  }
96
+
97
+ $imgs++;
98
  }
99
  }
100
 
101
  //Report analytic of images optimization
102
  $response['imgs_statis'][0] = $imgs_are_good;
103
  $response['imgs_statis'][1] = $imgs;
104
+ $response['imgs_metas_statis'][0] = ceil(($imgs_metas_are_good['alt'] + $imgs_metas_are_good['title']) / 2);
105
  $response['imgs_metas_statis'][1] = $imgs;
106
  }
107
+
108
  //Get number of post/page and number of images inserted into them
109
  $posts_counter = wp_count_posts('post');
110
  $pages_counter = wp_count_posts('page');
135
  $response[$alias_names[$result->meta_key]][0] = (int) $result->total;
136
  $response[$alias_names[$result->meta_key]][1] = $posts_pages_total;
137
  }
138
+ $response['metacontent'][0] = ceil($count_tt_desc / 2);
139
+ $response['metacontent'][1] = $posts_pages_total;
140
  }
141
 
142
+ return $response;
 
143
  }
144
 
145
+ public function displayRank($url) {
146
+ $rank = $this->getRank($url);
147
+ if ($rank !== '') {
148
+ echo $rank;
149
+ } else {
150
+ echo __('We can\'t get rank of this site from Alexa.com!', 'wpms');
151
+ }
152
+ }
153
+
154
+ public function getRank($url) {
155
+ if (!function_exists('curl_version')) {
156
+ if (!$content = @file_get_contents($url)) {
157
+ return '';
158
+ }
159
+ } else {
160
+ if (!is_array($url)) {
161
+ $url = array($url);
162
+ }
163
+ $contents = $this->get_contents($url);
164
+ $content = $contents[0];
165
+ }
166
+
167
+ $doc = new DOMDocument();
168
+ @$doc->loadHTML($content);
169
+ $doc->preserveWhiteSpace = false;
170
+
171
+ $finder = new DOMXPath($doc);
172
+ $classname = 'note-no-data';
173
+ $nodes = $finder->query("//section[contains(@class, '$classname')]");
174
+ if ($nodes->length < 1) {
175
+ $classname = 'rank-row';
176
+ $nodes = $finder->query("//div[contains(@class, '$classname')]");
177
+ }
178
+
179
+ $tmp_dom = new DOMDocument();
180
+ foreach ($nodes as $key => $node) {
181
+ $tmp_dom->appendChild($tmp_dom->importNode($node, true));
182
+ }
183
+
184
+ $html = trim($tmp_dom->saveHTML());
185
+ $html = str_replace('We don\'t have', 'Alexa doesn\'t has', $html);
186
+ $html = str_replace('Get Certified', '', $html);
187
+ $html = str_replace('"/topsites/countries', '"http://www.alexa.com/topsites/countries', $html);
188
+ return $html;
189
+ }
190
+
191
+ public function get_contents($urls) {
192
+ $mh = curl_multi_init();
193
  $curl_array = array();
194
+ $useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36';
195
+ foreach ($urls as $i => $url) {
196
+ $curl_array[$i] = curl_init($url);
197
+ curl_setopt($curl_array[$i], CURLOPT_URL, $url);
198
+ curl_setopt($curl_array[$i], CURLOPT_USERAGENT, $useragent); // set user agent
199
+ curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, TRUE);
200
+ curl_setopt($curl_array[$i], CURLOPT_FOLLOWLOCATION, TRUE);
201
+ curl_setopt($curl_array[$i], CURLOPT_CONNECTTIMEOUT, 5);
202
+ curl_setopt($curl_array[$i], CURLOPT_ENCODING, "UTF-8");
203
+ curl_multi_add_handle($mh, $curl_array[$i]);
 
 
204
  }
205
+
206
  $running = NULL;
207
  do {
208
  usleep(10000);
209
+ curl_multi_exec($mh, $running);
210
+ } while ($running > 0);
211
+
212
  $contents = array();
213
+ foreach ($urls as $i => $url) {
 
214
  $content = curl_multi_getcontent($curl_array[$i]);
215
+ $contents[$i] = $content;
216
  }
217
+
218
+ foreach ($urls as $i => $url) {
219
  curl_multi_remove_handle($mh, $curl_array[$i]);
220
  }
221
  curl_multi_close($mh);
222
  return $contents;
223
+ }
224
+
225
+ function evolutive_dashboard(){
226
+ $results = array('permalink_setting' => 50 , 'metatitle_filled' => array(0,array(0,0)) , 'metadesc_filled' => array(0,array(0,0)) , 'new_content' => array(0,array(0,0)));
227
+ $args = array(
228
+ 'posts_per_page' => -1,
229
+ 'post_type' => array('post','page'),
230
+ 'suppress_filters' => true
231
+ );
232
+ $mposts = get_posts( $args );
233
+
234
+ if(empty($mposts)){
235
+ return $results;
236
+ }else{
237
+ foreach ($mposts as $post){
238
+ $meta_title = get_post_meta($post->ID, '_metaseo_metatitle', true);
239
+ $meta_desc = get_post_meta($post->ID, '_metaseo_metadesc', true);
240
+ if($meta_title != '' && strlen($meta_title) <= self::$meta_title_length ){
241
+ self::$metatitle_filled++;
242
+ }
243
+
244
+ if($meta_desc != '' && strlen($meta_desc) <= self::$meta_desc_length ){
245
+ self::$metadesc_filled++;
246
+ }
247
+ }
248
+
249
+ $results['metatitle_filled'] = array(ceil(self::$metatitle_filled/(count($mposts))*100) , array(self::$metatitle_filled , count($mposts)));
250
+ $results['metadesc_filled'] = array(ceil(self::$metadesc_filled/(count($mposts))*100) , array(self::$metadesc_filled , count($mposts)));
251
+ }
252
+
253
+ $permalink_structure = get_option('permalink_structure');
254
+ if(strpos($permalink_structure, 'postname') == false && strpos($permalink_structure, 'category') == false){
255
+ self::$mpermalink = 0;
256
+ }else if(strpos($permalink_structure, 'postname') == true && strpos($permalink_structure, 'category') == true){
257
+ self::$mpermalink = 100;
258
+ }else if(strpos($permalink_structure, 'postname') == true || strpos($permalink_structure, 'category') == true){
259
+ self::$mpermalink = 50;
260
+ }
261
+
262
+ $results['permalink_setting'] = self::$mpermalink;
263
+ $newcontent_args = array(
264
+ 'date_query' => array(
265
+ array(
266
+ 'column' => 'post_modified_gmt',
267
+ // 'before' => '1 month ago',
268
+ 'after' => '30 days ago'
269
+ )
270
+ ),
271
+ 'posts_per_page' => -1,
272
+ 'post_type' => array('post','page'),
273
+ );
274
+
275
+ $newcontent = new WP_Query( $newcontent_args );
276
+
277
+ if(count($newcontent->get_posts()) >= 4){
278
+ $count_new = 100;
279
+ }else{
280
+ $count_new = ceil(count($newcontent->get_posts()) / 4*100);
281
+ }
282
+ $results['new_content'] = array($count_new , array(count($newcontent->get_posts()) , count($mposts)));
283
+ return $results;
284
+ }
285
+
286
+ }
inc/pages/dashboard.php CHANGED
@@ -7,73 +7,188 @@ $site_name = preg_replace('/(^(http|https):\/\/[w]*\.*)/', '', get_site_url());
7
  //$site_name = 'testdev-united.com';
8
  $url = 'http://www.alexa.com/siteinfo/' . $site_name;
9
  $dashboard = new MetaSeo_Dashboard();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
  ?>
12
- <h1><?php echo __('DASH BOARD', 'wpms') ?></h1>
13
  <div class="dashboard">
14
- <div class="left">
15
- <div class="dashboard-left" id='dashboard-left'>
16
- <header>
17
- <p>
18
- <div class="title-seo"><?php echo __('Image Meta :', 'wpms'); ?> <span id="imgs_metas_statis"></span></div>
19
- <div class="noload" id="imgs_metas_statis_noload">
20
- <span class="loadtext" id="imgs_metas_statis_value"></span>
21
- <div class="load" id="imgs_metas_statis_load">
 
 
 
 
 
 
 
 
 
 
 
 
22
  </div>
23
  </div>
24
- </p>
25
- <p>
26
- <div class="title-seo"><?php echo __('Content Meta :', 'wpms'); ?> <span id="metacontent"></span></div>
27
- <div class="noload" id="imgs_metas_statis_noload">
28
- <span class="loadtext" id="metacontent_value"></span>
29
- <div class="load" id="metacontent_load">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  </div>
31
  </div>
32
- </p>
33
- <p>
34
- <div class="title-seo"><?php echo __('Image optimization :', 'wpms'); ?> <span id="imgs_statis"></span></div>
35
- <div class="noload" id="imgs_metas_statis_noload">
36
- <span class="loadtext" id="imgs_statis_value"></span>
37
- <div class="load" id="imgs_statis_load">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  </div>
39
  </div>
40
- </p>
41
- </header>
42
- <div id="canvas-holder">
43
- <div id="chart-container">
44
- <h2><?php echo __('Total', 'wpms'); ?></h2>
45
- <div style="width: 300px; margin: 0px auto; position: relative;">
46
- <div id="avera">
 
 
 
 
 
 
 
 
 
 
 
 
47
  </div>
48
- <canvas id="chart-area" width="500" height="500"/>
49
  </div>
50
  </div>
51
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  </div>
53
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
54
 
55
- <div class="right">
56
- <div class="dashboard-right">
57
- <div id="alexa-ranking">
58
- <?php $dashboard->displayRank($url) ?>
59
- </div>
60
-
61
- <div style="clear:left"></div>
62
- <div id="wpmetaseo-update-version">
63
- <h4><?php echo __('Latest WP Meta SEO News', 'wpms') ?></h4>
64
- <ul>
65
- <li>&ndash;&nbsp<?php echo __('Version 1.0') ?></li>
66
- <li>&ndash;&nbsp<?php echo __('Version Beta') ?></li>
67
- </ul>
68
  </div>
69
- </div>
70
  </div>
71
 
72
  <script type="text/javascript">
73
  jQuery(document).ready(function() {
74
- optimizationChecking(updateChart);
75
- var height_left = jQuery("#dashboard-left").height();
76
- jQuery(".dashboard-right").css('height',height_left);
77
  replace_url_img();
78
  });
79
 
@@ -85,55 +200,4 @@ $dashboard = new MetaSeo_Dashboard();
85
  jQuery('#alexa-ranking .tt img').attr('src',icon_tip);
86
  }
87
 
88
- function updateChart(response) {
89
- // console.log(response);
90
-
91
- var columns = {
92
- meta_desc_statis: 0,
93
- meta_title_statis: 0,
94
- imgs_metas_statis: 0,
95
- imgs_statis: 0,
96
- metacontent: 0
97
- };
98
-
99
- var background_color = {
100
- imgs_metas_statis: "#FFC870",
101
- imgs_statis: "#5AD3D1",
102
- metacontent: "#7eb5e8"
103
- };
104
- for (key in response) {
105
- // console.log(response[key]);
106
- if(response[key][0]>0 && response[key][1]>0){
107
- columns[key] = (response[key][0] / response[key][1]) * 100;
108
- }else{
109
- columns[key] = 0;
110
- }
111
- if(columns[key]>5){
112
- if(columns[key] %1 !=0){
113
- jQuery('#' + key + '_value').text(columns[key].toFixed(2) + '%').css("left", (columns[key] - 5) / 2 + "%");
114
- }else{
115
- jQuery('#' + key + '_value').text(columns[key] + '%').css("left", (columns[key] - 5) / 2 + "%");
116
- }
117
- }else{
118
- jQuery('#' + key + '_value').text(columns[key] + '%').css("left", 0 + "%");
119
- }
120
- jQuery('#' + key + '_load').css({"width":columns[key] + '%','background':background_color[key]});
121
-
122
-
123
- }
124
- var count = columns.metacontent + columns.imgs_metas_statis + columns.imgs_statis;
125
- var metacontent= (columns.metacontent/3);
126
- var imgs_metas_statis= (columns.imgs_metas_statis/3);
127
- var imgs_statis= (columns.imgs_statis/3);
128
-
129
- var notmetacontent= 100/3 - metacontent;
130
- var notimgs_metas_statis= 100/3 - imgs_metas_statis;
131
- var notimgs_statis= 100/3 - imgs_statis;
132
-
133
- var avera = ((count)/3);
134
- jQuery('#avera').text(avera.toFixed(2) + '%').addClass('avera');
135
-
136
- drawChart(metacontent,notmetacontent, imgs_metas_statis,notimgs_metas_statis, imgs_statis,notimgs_statis);
137
-
138
- }
139
  </script>
7
  //$site_name = 'testdev-united.com';
8
  $url = 'http://www.alexa.com/siteinfo/' . $site_name;
9
  $dashboard = new MetaSeo_Dashboard();
10
+ $results = $dashboard->evolutive_dashboard();
11
+ $results_image = $dashboard->moptimizationChecking();
12
+
13
+ if(!empty($results_image['imgs_statis'][1])){
14
+ $percent_iresizing = ceil($results_image['imgs_statis'][0]/$results_image['imgs_statis'][1]*100);
15
+ }else{
16
+ $percent_iresizing = 100;
17
+ }
18
+
19
+ if(!empty($results_image['imgs_metas_statis'][1])){
20
+ $percent_imeta = ceil($results_image['imgs_metas_statis'][0]/$results_image['imgs_metas_statis'][1]*100);
21
+ }else{
22
+ $percent_imeta = 100;
23
+ }
24
 
25
  ?>
26
+ <h1 style="text-align: center;"><?php _e('WP Meta SEO dashboard', 'wpms') ?></h1>
27
  <div class="dashboard">
28
+ <div class="col-md-9">
29
+ <div class="row panel-statistics">
30
+ <div class="col-sm-6">
31
+ <div class="panel panel-updates">
32
+ <div class="panel-body">
33
+ <div class="row">
34
+ <div class="col-xs-7 col-lg-8">
35
+ <h4 class="panel-title text-success"><?php _e('Permalinks settings','wpms') ?></h4>
36
+ <h3><?php echo $results['permalink_setting'].'%' ?></h3>
37
+ <div class="progress">
38
+ <div style="width: <?php echo $results['permalink_setting'].'%' ?>" aria-valuemax="100" aria-valuemin="0" aria-valuenow="<?php echo $results['permalink_setting'] ?>" role="progressbar" class="progress-bar progress-bar-success">
39
+ <span class="sr-only"><?php echo $results['permalink_setting'].'%' ?> Complete (success)</span>
40
+ </div>
41
+ </div>
42
+ <p><?php _e('Optimized at','wpms') ?>: <?php echo $results['permalink_setting'].'%' ?></p>
43
+ </div>
44
+ <div class="col-xs-5 col-lg-4 text-right">
45
+ <input type="text" value="<?php echo $results['permalink_setting'] ?>" class="dial-success">
46
+ </div>
47
+ </div>
48
  </div>
49
  </div>
50
+ </div>
51
+
52
+ <div class="col-sm-6">
53
+ <div class="panel panel-danger-full panel-updates">
54
+ <div class="panel-body">
55
+ <div class="row">
56
+ <div class="col-xs-7 col-lg-8">
57
+ <h4 class="panel-title text-warning"><?php _e('Meta title','wpms') ?></h4>
58
+ <h3><?php echo $results['metatitle_filled'][0].'%' ?></h3>
59
+ <div class="progress">
60
+ <div style="width: <?php echo $results['metatitle_filled'][0].'%' ?>" aria-valuemax="100" aria-valuemin="0" aria-valuenow="<?php echo $results['metatitle_filled'][0] ?>" role="progressbar" class="progress-bar progress-bar-warning">
61
+ <span class="sr-only"><?php echo $results['metatitle_filled'][0].'%' ?> Complete (success)</span>
62
+ </div>
63
+ </div>
64
+ <p><?php _e('Meta title filled','wpms') ?>: <?php echo $results['metatitle_filled'][1][0].'/'.$results['metatitle_filled'][1][1] ?></p>
65
+ </div>
66
+ <div class="col-xs-5 col-lg-4 text-right">
67
+ <input type="text" value="<?php echo $results['metatitle_filled'][0] ?>" class="dial-warning">
68
+ </div>
69
+ </div>
70
  </div>
71
  </div>
72
+ </div>
73
+
74
+ <div class="col-sm-6">
75
+ <div class="panel panel-success-full panel-updates">
76
+ <div class="panel-body">
77
+ <div class="row">
78
+ <div class="col-xs-7 col-lg-8">
79
+ <h4 class="panel-title text-success"><?php _e('Meta description','wpms') ?></h4>
80
+ <h3><?php echo $results['metadesc_filled'][0].'%' ?></h3>
81
+ <div class="progress">
82
+ <div style="width: <?php echo $results['metadesc_filled'][0].'%' ?>" aria-valuemax="100" aria-valuemin="0" aria-valuenow="<?php echo $results['metadesc_filled'][0] ?>" role="progressbar" class="progress-bar progress-bar-info">
83
+ <span class="sr-only"><?php echo $results['metadesc_filled'][0].'%' ?> Complete (success)</span>
84
+ </div>
85
+ </div>
86
+ <p><?php _e('Meta description filled','wpms') ?>: <?php echo $results['metadesc_filled'][1][0].'/'.$results['metadesc_filled'][1][1] ?></p>
87
+ </div>
88
+ <div class="col-xs-5 col-lg-4 text-right">
89
+ <input type="text" value="<?php echo $results['metadesc_filled'][0] ?>" class="dial-info">
90
+ </div>
91
+ </div>
92
  </div>
93
  </div>
94
+ </div>
95
+
96
+ <div class="col-sm-6">
97
+ <div class="panel panel-updates">
98
+ <div class="panel-body">
99
+ <div class="row">
100
+ <div class="col-xs-7 col-lg-8">
101
+ <h4 class="panel-title text-danger"><?php _e('HTML image resizing','wpms') ?></h4>
102
+ <h3><?php echo $percent_iresizing.'%' ?></h3>
103
+ <div class="progress">
104
+ <div style="width: <?php echo $percent_iresizing.'%' ?>" aria-valuemax="100" aria-valuemin="0" aria-valuenow="<?php echo $percent_iresizing ?>" role="progressbar" class="progress-bar progress-bar-danger">
105
+ <span class="sr-only"><?php echo $percent_iresizing.'%' ?> Complete (success)</span>
106
+ </div>
107
+ </div>
108
+ <p><?php _e('Wrong resized images','wpms') ?>: <?php echo $results_image['imgs_statis'][0].'/'.$results_image['imgs_statis'][1] ?></p>
109
+ </div>
110
+ <div class="col-xs-5 col-lg-4 text-right">
111
+ <input type="text" value="<?php echo $percent_iresizing ?>" class="dial-danger">
112
+ </div>
113
  </div>
 
114
  </div>
115
  </div>
116
  </div>
117
+
118
+ <div class="col-sm-6">
119
+ <div class="panel panel-updates">
120
+ <div class="panel-body">
121
+ <div class="row">
122
+ <div class="col-xs-7 col-lg-8">
123
+ <h4 class="panel-title text-success"><?php _e('Image title/alt','wpms') ?></h4>
124
+ <h3><?php echo $percent_imeta.'%' ?></h3>
125
+ <div class="progress">
126
+ <div style="width: <?php echo $percent_imeta.'%' ?>" aria-valuemax="100" aria-valuemin="0" aria-valuenow="<?php echo $percent_imeta ?>" role="progressbar" class="progress-bar progress-bar-success">
127
+ <span class="sr-only"><?php echo $percent_imeta.'%' ?> Complete (success)</span>
128
+ </div>
129
+ </div>
130
+ <p><?php _e('Image data filled (in content)','wpms') ?>: <?php echo $results_image['imgs_metas_statis'][0].'/'.$results_image['imgs_metas_statis'][1] ?></p>
131
+ </div>
132
+ <div class="col-xs-5 col-lg-4 text-right">
133
+ <input type="text" value="<?php echo $percent_imeta ?>" class="dial-success">
134
+ </div>
135
+ </div>
136
+ </div>
137
+ </div>
138
+ </div>
139
+
140
+ <div class="col-sm-6">
141
+ <div class="panel panel-danger-full panel-updates">
142
+ <div class="panel-body">
143
+ <div class="row">
144
+ <div class="col-xs-7 col-lg-8">
145
+ <h4 class="panel-title text-warning"><?php _e('New or updated content','wpms') ?></h4>
146
+ <h3><?php echo $results['new_content'][0].'%' ?></h3>
147
+ <div class="progress">
148
+ <div style="width: <?php echo $results['new_content'][0].'%' ?>" aria-valuemax="100" aria-valuemin="0" aria-valuenow="<?php echo $results['new_content'][0] ?>" role="progressbar" class="progress-bar progress-bar-warning">
149
+ <span class="sr-only"><?php echo $results['new_content'][0].'%' ?> Complete (success)</span>
150
+ </div>
151
+ </div>
152
+ <p><?php _e('Latest month new or updated content','wpms') ?>: <?php echo $results['new_content'][1][0] ?></p>
153
+ </div>
154
+ <div class="col-xs-5 col-lg-4 text-right">
155
+ <input type="text" value="<?php echo $results['new_content'][0] ?>" class="dial-warning">
156
+ </div>
157
+ </div>
158
+ </div>
159
+ </div>
160
+ </div>
161
+
162
  </div>
163
  </div>
164
+
165
+ <div style="width:75%;margin: 0px auto;min-height: 200px;padding: 0px 10px 0px 10px;">
166
+ <div class="left">
167
+ <div class="dashboard-left" id='dashboard-left'>
168
+ <div id="alexa-ranking">
169
+ <?php $dashboard->displayRank($url) ?>
170
+ </div>
171
+ </div>
172
+ </div>
173
+
174
+ <div class="right">
175
+ <div class="dashboard-right">
176
 
177
+ <div style="clear:left"></div>
178
+ <div id="wpmetaseo-update-version">
179
+ <h4><?php echo __('Latest WP Meta SEO News', 'wpms') ?></h4>
180
+ <ul>
181
+ <li><a target="_blank" href="https://www.joomunited.com/wordpress-products/wp-meta-seo"><?php _e('More information about WP Meta SEO','wpms'); ?></a></li>
182
+ <li><a target="_blank" href="https://www.joomunited.com/"><?php _e('Other plugins from JoomUnited','wpms'); ?></a></li>
183
+ </ul>
184
+ </div>
185
+ </div>
 
 
 
 
186
  </div>
187
+ </div>
188
  </div>
189
 
190
  <script type="text/javascript">
191
  jQuery(document).ready(function() {
 
 
 
192
  replace_url_img();
193
  });
194
 
200
  jQuery('#alexa-ranking .tt img').attr('src',icon_tip);
201
  }
202
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  </script>
js/dashboard.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function ($) {
2
+ 'use strict';
3
+ // Knob
4
+ $('.dial-success').knob({
5
+ readOnly: true,
6
+ width: '70px',
7
+ bgColor: '#E7E9EE',
8
+ fgColor: '#259CAB',
9
+ inputColor: '#262B36'
10
+ });
11
+
12
+ $('.dial-danger').knob({
13
+ readOnly: true,
14
+ width: '70px',
15
+ bgColor: '#E7E9EE',
16
+ fgColor: '#259CAB',
17
+ inputColor: '#262B36'
18
+ });
19
+
20
+ $('.dial-info').knob({
21
+ readOnly: true,
22
+ width: '70px',
23
+ bgColor: '#259CAB',
24
+ fgColor: '#fff',
25
+ inputColor: '#fff'
26
+ });
27
+
28
+ $('.dial-warning').knob({
29
+ readOnly: true,
30
+ width: '70px',
31
+ bgColor: '#259CAB',
32
+ fgColor: '#fff',
33
+ inputColor: '#fff'
34
+ });
35
+
36
+ });
js/jquery.knob.js ADDED
@@ -0,0 +1,802 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!jQuery Knob*/
2
+ /**
3
+ * Downward compatible, touchable dial
4
+ *
5
+ * Version: 1.2.11
6
+ * Requires: jQuery v1.7+
7
+ *
8
+ * Copyright (c) 2012 Anthony Terrien
9
+ * Under MIT License (http://www.opensource.org/licenses/mit-license.php)
10
+ *
11
+ * Thanks to vor, eskimoblood, spiffistan, FabrizioC
12
+ */
13
+ (function (factory) {
14
+ if (typeof define === 'function' && define.amd) {
15
+ // AMD. Register as an anonymous module.
16
+ define(['jquery'], factory);
17
+ } else {
18
+ // Browser globals
19
+ factory(jQuery);
20
+ }
21
+ }(function ($) {
22
+
23
+ /**
24
+ * Kontrol library
25
+ */
26
+ "use strict";
27
+
28
+ /**
29
+ * Definition of globals and core
30
+ */
31
+ var k = {}, // kontrol
32
+ max = Math.max,
33
+ min = Math.min;
34
+
35
+ k.c = {};
36
+ k.c.d = $(document);
37
+ k.c.t = function (e) {
38
+ return e.originalEvent.touches.length - 1;
39
+ };
40
+
41
+ /**
42
+ * Kontrol Object
43
+ *
44
+ * Definition of an abstract UI control
45
+ *
46
+ * Each concrete component must call this one.
47
+ * <code>
48
+ * k.o.call(this);
49
+ * </code>
50
+ */
51
+ k.o = function () {
52
+ var s = this;
53
+
54
+ this.o = null; // array of options
55
+ this.$ = null; // jQuery wrapped element
56
+ this.i = null; // mixed HTMLInputElement or array of HTMLInputElement
57
+ this.g = null; // deprecated 2D graphics context for 'pre-rendering'
58
+ this.v = null; // value ; mixed array or integer
59
+ this.cv = null; // change value ; not commited value
60
+ this.x = 0; // canvas x position
61
+ this.y = 0; // canvas y position
62
+ this.w = 0; // canvas width
63
+ this.h = 0; // canvas height
64
+ this.$c = null; // jQuery canvas element
65
+ this.c = null; // rendered canvas context
66
+ this.t = 0; // touches index
67
+ this.isInit = false;
68
+ this.fgColor = null; // main color
69
+ this.pColor = null; // previous color
70
+ this.dH = null; // draw hook
71
+ this.cH = null; // change hook
72
+ this.eH = null; // cancel hook
73
+ this.rH = null; // release hook
74
+ this.scale = 1; // scale factor
75
+ this.relative = false;
76
+ this.relativeWidth = false;
77
+ this.relativeHeight = false;
78
+ this.$div = null; // component div
79
+
80
+ this.run = function () {
81
+ var cf = function (e, conf) {
82
+ var k;
83
+ for (k in conf) {
84
+ s.o[k] = conf[k];
85
+ }
86
+ s._carve().init();
87
+ s._configure()
88
+ ._draw();
89
+ };
90
+
91
+ if (this.$.data('kontroled')) return;
92
+ this.$.data('kontroled', true);
93
+
94
+ this.extend();
95
+ this.o = $.extend({
96
+ // Config
97
+ min: this.$.data('min') !== undefined ? this.$.data('min') : 0,
98
+ max: this.$.data('max') !== undefined ? this.$.data('max') : 100,
99
+ stopper: true,
100
+ readOnly: this.$.data('readonly') || (this.$.attr('readonly') === 'readonly'),
101
+
102
+ // UI
103
+ cursor: this.$.data('cursor') === true && 30
104
+ || this.$.data('cursor') || 0,
105
+ thickness: this.$.data('thickness')
106
+ && Math.max(Math.min(this.$.data('thickness'), 1), 0.01)
107
+ || 0.35,
108
+ lineCap: this.$.data('linecap') || 'butt',
109
+ width: this.$.data('width') || 200,
110
+ height: this.$.data('height') || 200,
111
+ displayInput: this.$.data('displayinput') == null || this.$.data('displayinput'),
112
+ displayPrevious: this.$.data('displayprevious'),
113
+ fgColor: this.$.data('fgcolor') || '#87CEEB',
114
+ inputColor: this.$.data('inputcolor'),
115
+ font: this.$.data('font') || 'Arial',
116
+ fontWeight: this.$.data('font-weight') || 'bold',
117
+ inline: false,
118
+ step: this.$.data('step') || 1,
119
+ rotation: this.$.data('rotation'),
120
+
121
+ // Hooks
122
+ draw: null, // function () {}
123
+ change: null, // function (value) {}
124
+ cancel: null, // function () {}
125
+ release: null, // function (value) {}
126
+
127
+ // Output formatting, allows to add unit: %, ms ...
128
+ format: function(v) {
129
+ return v;
130
+ },
131
+ parse: function (v) {
132
+ return parseFloat(v);
133
+ }
134
+ }, this.o
135
+ );
136
+
137
+ // finalize options
138
+ this.o.flip = this.o.rotation === 'anticlockwise' || this.o.rotation === 'acw';
139
+ if (!this.o.inputColor) {
140
+ this.o.inputColor = this.o.fgColor;
141
+ }
142
+
143
+ // routing value
144
+ if (this.$.is('fieldset')) {
145
+
146
+ // fieldset = array of integer
147
+ this.v = {};
148
+ this.i = this.$.find('input');
149
+ this.i.each(function(k) {
150
+ var $this = $(this);
151
+ s.i[k] = $this;
152
+ s.v[k] = s.o.parse($this.val());
153
+
154
+ $this.bind(
155
+ 'change blur',
156
+ function () {
157
+ var val = {};
158
+ val[k] = $this.val();
159
+ s.val(s._validate(val));
160
+ }
161
+ );
162
+ });
163
+ this.$.find('legend').remove();
164
+ } else {
165
+
166
+ // input = integer
167
+ this.i = this.$;
168
+ this.v = this.o.parse(this.$.val());
169
+ this.v === '' && (this.v = this.o.min);
170
+ this.$.bind(
171
+ 'change blur',
172
+ function () {
173
+ s.val(s._validate(s.o.parse(s.$.val())));
174
+ }
175
+ );
176
+
177
+ }
178
+
179
+ !this.o.displayInput && this.$.hide();
180
+
181
+ // adds needed DOM elements (canvas, div)
182
+ this.$c = $(document.createElement('canvas')).attr({
183
+ width: this.o.width,
184
+ height: this.o.height
185
+ });
186
+
187
+ // wraps all elements in a div
188
+ // add to DOM before Canvas init is triggered
189
+ this.$div = $('<div style="'
190
+ + (this.o.inline ? 'display:inline;' : '')
191
+ + 'width:' + this.o.width + 'px;height:' + this.o.height + 'px;'
192
+ + '"></div>');
193
+
194
+ this.$.wrap(this.$div).before(this.$c);
195
+ this.$div = this.$.parent();
196
+
197
+ if (typeof G_vmlCanvasManager !== 'undefined') {
198
+ G_vmlCanvasManager.initElement(this.$c[0]);
199
+ }
200
+
201
+ this.c = this.$c[0].getContext ? this.$c[0].getContext('2d') : null;
202
+
203
+ if (!this.c) {
204
+ throw {
205
+ name: "CanvasNotSupportedException",
206
+ message: "Canvas not supported. Please use excanvas on IE8.0.",
207
+ toString: function(){return this.name + ": " + this.message}
208
+ }
209
+ }
210
+
211
+ // hdpi support
212
+ this.scale = (window.devicePixelRatio || 1) / (
213
+ this.c.webkitBackingStorePixelRatio ||
214
+ this.c.mozBackingStorePixelRatio ||
215
+ this.c.msBackingStorePixelRatio ||
216
+ this.c.oBackingStorePixelRatio ||
217
+ this.c.backingStorePixelRatio || 1
218
+ );
219
+
220
+ // detects relative width / height
221
+ this.relativeWidth = this.o.width % 1 !== 0
222
+ && this.o.width.indexOf('%');
223
+ this.relativeHeight = this.o.height % 1 !== 0
224
+ && this.o.height.indexOf('%');
225
+ this.relative = this.relativeWidth || this.relativeHeight;
226
+
227
+ // computes size and carves the component
228
+ this._carve();
229
+
230
+ // prepares props for transaction
231
+ if (this.v instanceof Object) {
232
+ this.cv = {};
233
+ this.copy(this.v, this.cv);
234
+ } else {
235
+ this.cv = this.v;
236
+ }
237
+
238
+ // binds configure event
239
+ this.$
240
+ .bind("configure", cf)
241
+ .parent()
242
+ .bind("configure", cf);
243
+
244
+ // finalize init
245
+ this._listen()
246
+ ._configure()
247
+ ._xy()
248
+ .init();
249
+
250
+ this.isInit = true;
251
+
252
+ this.$.val(this.o.format(this.v));
253
+ this._draw();
254
+
255
+ return this;
256
+ };
257
+
258
+ this._carve = function() {
259
+ if (this.relative) {
260
+ var w = this.relativeWidth ?
261
+ this.$div.parent().width() *
262
+ parseInt(this.o.width) / 100
263
+ : this.$div.parent().width(),
264
+ h = this.relativeHeight ?
265
+ this.$div.parent().height() *
266
+ parseInt(this.o.height) / 100
267
+ : this.$div.parent().height();
268
+
269
+ // apply relative
270
+ this.w = this.h = Math.min(w, h);
271
+ } else {
272
+ this.w = this.o.width;
273
+ this.h = this.o.height;
274
+ }
275
+
276
+ // finalize div
277
+ this.$div.css({
278
+ 'width': this.w + 'px',
279
+ 'height': this.h + 'px'
280
+ });
281
+
282
+ // finalize canvas with computed width
283
+ this.$c.attr({
284
+ width: this.w,
285
+ height: this.h
286
+ });
287
+
288
+ // scaling
289
+ if (this.scale !== 1) {
290
+ this.$c[0].width = this.$c[0].width * this.scale;
291
+ this.$c[0].height = this.$c[0].height * this.scale;
292
+ this.$c.width(this.w);
293
+ this.$c.height(this.h);
294
+ }
295
+
296
+ return this;
297
+ }
298
+
299
+ this._draw = function () {
300
+
301
+ // canvas pre-rendering
302
+ var d = true;
303
+
304
+ s.g = s.c;
305
+
306
+ s.clear();
307
+
308
+ s.dH && (d = s.dH());
309
+
310
+ d !== false && s.draw();
311
+ };
312
+
313
+ this._touch = function (e) {
314
+ var touchMove = function (e) {
315
+ var v = s.xy2val(
316
+ e.originalEvent.touches[s.t].pageX,
317
+ e.originalEvent.touches[s.t].pageY
318
+ );
319
+
320
+ if (v == s.cv) return;
321
+
322
+ if (s.cH && s.cH(v) === false) return;
323
+
324
+ s.change(s._validate(v));
325
+ s._draw();
326
+ };
327
+
328
+ // get touches index
329
+ this.t = k.c.t(e);
330
+
331
+ // First touch
332
+ touchMove(e);
333
+
334
+ // Touch events listeners
335
+ k.c.d
336
+ .bind("touchmove.k", touchMove)
337
+ .bind(
338
+ "touchend.k",
339
+ function () {
340
+ k.c.d.unbind('touchmove.k touchend.k');
341
+ s.val(s.cv);
342
+ }
343
+ );
344
+
345
+ return this;
346
+ };
347
+
348
+ this._mouse = function (e) {
349
+ var mouseMove = function (e) {
350
+ var v = s.xy2val(e.pageX, e.pageY);
351
+
352
+ if (v == s.cv) return;
353
+
354
+ if (s.cH && (s.cH(v) === false)) return;
355
+
356
+ s.change(s._validate(v));
357
+ s._draw();
358
+ };
359
+
360
+ // First click
361
+ mouseMove(e);
362
+
363
+ // Mouse events listeners
364
+ k.c.d
365
+ .bind("mousemove.k", mouseMove)
366
+ .bind(
367
+ // Escape key cancel current change
368
+ "keyup.k",
369
+ function (e) {
370
+ if (e.keyCode === 27) {
371
+ k.c.d.unbind("mouseup.k mousemove.k keyup.k");
372
+
373
+ if (s.eH && s.eH() === false)
374
+ return;
375
+
376
+ s.cancel();
377
+ }
378
+ }
379
+ )
380
+ .bind(
381
+ "mouseup.k",
382
+ function (e) {
383
+ k.c.d.unbind('mousemove.k mouseup.k keyup.k');
384
+ s.val(s.cv);
385
+ }
386
+ );
387
+
388
+ return this;
389
+ };
390
+
391
+ this._xy = function () {
392
+ var o = this.$c.offset();
393
+ this.x = o.left;
394
+ this.y = o.top;
395
+
396
+ return this;
397
+ };
398
+
399
+ this._listen = function () {
400
+ if (!this.o.readOnly) {
401
+ this.$c
402
+ .bind(
403
+ "mousedown",
404
+ function (e) {
405
+ e.preventDefault();
406
+ s._xy()._mouse(e);
407
+ }
408
+ )
409
+ .bind(
410
+ "touchstart",
411
+ function (e) {
412
+ e.preventDefault();
413
+ s._xy()._touch(e);
414
+ }
415
+ );
416
+
417
+ this.listen();
418
+ } else {
419
+ this.$.attr('readonly', 'readonly');
420
+ }
421
+
422
+ if (this.relative) {
423
+ $(window).resize(function() {
424
+ s._carve().init();
425
+ s._draw();
426
+ });
427
+ }
428
+
429
+ return this;
430
+ };
431
+
432
+ this._configure = function () {
433
+
434
+ // Hooks
435
+ if (this.o.draw) this.dH = this.o.draw;
436
+ if (this.o.change) this.cH = this.o.change;
437
+ if (this.o.cancel) this.eH = this.o.cancel;
438
+ if (this.o.release) this.rH = this.o.release;
439
+
440
+ if (this.o.displayPrevious) {
441
+ this.pColor = this.h2rgba(this.o.fgColor, "0.4");
442
+ this.fgColor = this.h2rgba(this.o.fgColor, "0.6");
443
+ } else {
444
+ this.fgColor = this.o.fgColor;
445
+ }
446
+
447
+ return this;
448
+ };
449
+
450
+ this._clear = function () {
451
+ this.$c[0].width = this.$c[0].width;
452
+ };
453
+
454
+ this._validate = function (v) {
455
+ var val = (~~ (((v < 0) ? -0.5 : 0.5) + (v/this.o.step))) * this.o.step;
456
+ return Math.round(val * 100) / 100;
457
+ };
458
+
459
+ // Abstract methods
460
+ this.listen = function () {}; // on start, one time
461
+ this.extend = function () {}; // each time configure triggered
462
+ this.init = function () {}; // each time configure triggered
463
+ this.change = function (v) {}; // on change
464
+ this.val = function (v) {}; // on release
465
+ this.xy2val = function (x, y) {}; //
466
+ this.draw = function () {}; // on change / on release
467
+ this.clear = function () { this._clear(); };
468
+
469
+ // Utils
470
+ this.h2rgba = function (h, a) {
471
+ var rgb;
472
+ h = h.substring(1,7)
473
+ rgb = [
474
+ parseInt(h.substring(0,2), 16),
475
+ parseInt(h.substring(2,4), 16),
476
+ parseInt(h.substring(4,6), 16)
477
+ ];
478
+
479
+ return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + a + ")";
480
+ };
481
+
482
+ this.copy = function (f, t) {
483
+ for (var i in f) {
484
+ t[i] = f[i];
485
+ }
486
+ };
487
+ };
488
+
489
+
490
+ /**
491
+ * k.Dial
492
+ */
493
+ k.Dial = function () {
494
+ k.o.call(this);
495
+
496
+ this.startAngle = null;
497
+ this.xy = null;
498
+ this.radius = null;
499
+ this.lineWidth = null;
500
+ this.cursorExt = null;
501
+ this.w2 = null;
502
+ this.PI2 = 2*Math.PI;
503
+
504
+ this.extend = function () {
505
+ this.o = $.extend({
506
+ bgColor: this.$.data('bgcolor') || '#EEEEEE',
507
+ angleOffset: this.$.data('angleoffset') || 0,
508
+ angleArc: this.$.data('anglearc') || 360,
509
+ inline: true
510
+ }, this.o);
511
+ };
512
+
513
+ this.val = function (v, triggerRelease) {
514
+ if (null != v) {
515
+
516
+ // reverse format
517
+ v = this.o.parse(v);
518
+
519
+ if (triggerRelease !== false
520
+ && v != this.v
521
+ && this.rH
522
+ && this.rH(v) === false) { return; }
523
+
524
+ this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v;
525
+ this.v = this.cv;
526
+ this.$.val(this.o.format(this.v));
527
+ this._draw();
528
+ } else {
529
+ return this.v;
530
+ }
531
+ };
532
+
533
+ this.xy2val = function (x, y) {
534
+ var a, ret;
535
+
536
+ a = Math.atan2(
537
+ x - (this.x + this.w2),
538
+ - (y - this.y - this.w2)
539
+ ) - this.angleOffset;
540
+
541
+ if (this.o.flip) {
542
+ a = this.angleArc - a - this.PI2;
543
+ }
544
+
545
+ if (this.angleArc != this.PI2 && (a < 0) && (a > -0.5)) {
546
+
547
+ // if isset angleArc option, set to min if .5 under min
548
+ a = 0;
549
+ } else if (a < 0) {
550
+ a += this.PI2;
551
+ }
552
+
553
+ ret = (a * (this.o.max - this.o.min) / this.angleArc) + this.o.min;
554
+
555
+ this.o.stopper && (ret = max(min(ret, this.o.max), this.o.min));
556
+
557
+ return ret;
558
+ };
559
+
560
+ this.listen = function () {
561
+
562
+ // bind MouseWheel
563
+ var s = this, mwTimerStop,
564
+ mwTimerRelease,
565
+ mw = function (e) {
566
+ e.preventDefault();
567
+
568
+ var ori = e.originalEvent,
569
+ deltaX = ori.detail || ori.wheelDeltaX,
570
+ deltaY = ori.detail || ori.wheelDeltaY,
571
+ v = s._validate(s.o.parse(s.$.val()))
572
+ + (
573
+ deltaX > 0 || deltaY > 0
574
+ ? s.o.step
575
+ : deltaX < 0 || deltaY < 0 ? -s.o.step : 0
576
+ );
577
+
578
+ v = max(min(v, s.o.max), s.o.min);
579
+
580
+ s.val(v, false);
581
+
582
+ if (s.rH) {
583
+ // Handle mousewheel stop
584
+ clearTimeout(mwTimerStop);
585
+ mwTimerStop = setTimeout(function () {
586
+ s.rH(v);
587
+ mwTimerStop = null;
588
+ }, 100);
589
+
590
+ // Handle mousewheel releases
591
+ if (!mwTimerRelease) {
592
+ mwTimerRelease = setTimeout(function () {
593
+ if (mwTimerStop)
594
+ s.rH(v);
595
+ mwTimerRelease = null;
596
+ }, 200);
597
+ }
598
+ }
599
+ },
600
+ kval,
601
+ to,
602
+ m = 1,
603
+ kv = {
604
+ 37: -s.o.step,
605
+ 38: s.o.step,
606
+ 39: s.o.step,
607
+ 40: -s.o.step
608
+ };
609
+
610
+ this.$
611
+ .bind(
612
+ "keydown",
613
+ function (e) {
614
+ var kc = e.keyCode;
615
+
616
+ // numpad support
617
+ if (kc >= 96 && kc <= 105) {
618
+ kc = e.keyCode = kc - 48;
619
+ }
620
+
621
+ kval = parseInt(String.fromCharCode(kc));
622
+
623
+ if (isNaN(kval)) {
624
+ (kc !== 13) // enter
625
+ && kc !== 8 // bs
626
+ && kc !== 9 // tab
627
+ && kc !== 189 // -
628
+ && (kc !== 190
629
+ || s.$.val().match(/\./)) // . allowed once
630
+ && e.preventDefault();
631
+
632
+ // arrows
633
+ if ($.inArray(kc,[37,38,39,40]) > -1) {
634
+ e.preventDefault();
635
+
636
+ var v = s.o.parse(s.$.val()) + kv[kc] * m;
637
+ s.o.stopper && (v = max(min(v, s.o.max), s.o.min));
638
+
639
+ s.change(s._validate(v));
640
+ s._draw();
641
+
642
+ // long time keydown speed-up
643
+ to = window.setTimeout(function () {
644
+ m *= 2;
645
+ }, 30);
646
+ }
647
+ }
648
+ }
649
+ )
650
+ .bind(
651
+ "keyup",
652
+ function (e) {
653
+ if (isNaN(kval)) {
654
+ if (to) {
655
+ window.clearTimeout(to);
656
+ to = null;
657
+ m = 1;
658
+ s.val(s.$.val());
659
+ }
660
+ } else {
661
+ // kval postcond
662
+ (s.$.val() > s.o.max && s.$.val(s.o.max))
663
+ || (s.$.val() < s.o.min && s.$.val(s.o.min));
664
+ }
665
+ }
666
+ );
667
+
668
+ this.$c.bind("mousewheel DOMMouseScroll", mw);
669
+ this.$.bind("mousewheel DOMMouseScroll", mw)
670
+ };
671
+
672
+ this.init = function () {
673
+ if (this.v < this.o.min
674
+ || this.v > this.o.max) { this.v = this.o.min; }
675
+
676
+ this.$.val(this.v);
677
+ this.w2 = this.w / 2;
678
+ this.cursorExt = this.o.cursor / 100;
679
+ this.xy = this.w2 * this.scale;
680
+ this.lineWidth = this.xy * this.o.thickness;
681
+ this.lineCap = this.o.lineCap;
682
+ this.radius = this.xy - this.lineWidth / 2;
683
+
684
+ this.o.angleOffset
685
+ && (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset);
686
+
687
+ this.o.angleArc
688
+ && (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc);
689
+
690
+ // deg to rad
691
+ this.angleOffset = this.o.angleOffset * Math.PI / 180;
692
+ this.angleArc = this.o.angleArc * Math.PI / 180;
693
+
694
+ // compute start and end angles
695
+ this.startAngle = 1.5 * Math.PI + this.angleOffset;
696
+ this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc;
697
+
698
+ var s = max(
699
+ String(Math.abs(this.o.max)).length,
700
+ String(Math.abs(this.o.min)).length,
701
+ 2
702
+ ) + 2;
703
+
704
+ this.o.displayInput
705
+ && this.i.css({
706
+ 'width' : ((this.w / 2 + 4) >> 0) + 'px',
707
+ 'height' : ((this.w / 3) >> 0) + 'px',
708
+ 'position' : 'absolute',
709
+ 'vertical-align' : 'middle',
710
+ 'margin-top' : ((this.w / 3) >> 0) + 'px',
711
+ 'margin-left' : '-' + ((this.w * 3 / 4 + 2) >> 0) + 'px',
712
+ 'border' : 0,
713
+ 'background' : 'none',
714
+ 'font' : this.o.fontWeight + ' ' + ((this.w / s) >> 0) + 'px ' + this.o.font,
715
+ 'text-align' : 'center',
716
+ 'color' : this.o.inputColor || this.o.fgColor,
717
+ 'padding' : '0px',
718
+ '-webkit-appearance': 'none'
719
+ }) || this.i.css({
720
+ 'width': '0px',
721
+ 'visibility': 'hidden'
722
+ });
723
+ };
724
+
725
+ this.change = function (v) {
726
+ this.cv = v;
727
+ this.$.val(this.o.format(v));
728
+ };
729
+
730
+ this.angle = function (v) {
731
+ return (v - this.o.min) * this.angleArc / (this.o.max - this.o.min);
732
+ };
733
+
734
+ this.arc = function (v) {
735
+ var sa, ea;
736
+ v = this.angle(v);
737
+ if (this.o.flip) {
738
+ sa = this.endAngle + 0.00001;
739
+ ea = sa - v - 0.00001;
740
+ } else {
741
+ sa = this.startAngle - 0.00001;
742
+ ea = sa + v + 0.00001;
743
+ }
744
+ this.o.cursor
745
+ && (sa = ea - this.cursorExt)
746
+ && (ea = ea + this.cursorExt);
747
+
748
+ return {
749
+ s: sa,
750
+ e: ea,
751
+ d: this.o.flip && !this.o.cursor
752
+ };
753
+ };
754
+
755
+ this.draw = function () {
756
+ var c = this.g, // context
757
+ a = this.arc(this.cv), // Arc
758
+ pa, // Previous arc
759
+ r = 1;
760
+
761
+ c.lineWidth = this.lineWidth;
762
+ c.lineCap = this.lineCap;
763
+
764
+ if (this.o.bgColor !== "none") {
765
+ c.beginPath();
766
+ c.strokeStyle = this.o.bgColor;
767
+ c.arc(this.xy, this.xy, this.radius, this.endAngle - 0.00001, this.startAngle + 0.00001, true);
768
+ c.stroke();
769
+ }
770
+
771
+ if (this.o.displayPrevious) {
772
+ pa = this.arc(this.v);
773
+ c.beginPath();
774
+ c.strokeStyle = this.pColor;
775
+ c.arc(this.xy, this.xy, this.radius, pa.s, pa.e, pa.d);
776
+ c.stroke();
777
+ r = this.cv == this.v;
778
+ }
779
+
780
+ c.beginPath();
781
+ c.strokeStyle = r ? this.o.fgColor : this.fgColor ;
782
+ c.arc(this.xy, this.xy, this.radius, a.s, a.e, a.d);
783
+ c.stroke();
784
+ };
785
+
786
+ this.cancel = function () {
787
+ this.val(this.v);
788
+ };
789
+ };
790
+
791
+ $.fn.dial = $.fn.knob = function (o) {
792
+ return this.each(
793
+ function () {
794
+ var d = new k.Dial();
795
+ d.o = o;
796
+ d.$ = $(this);
797
+ d.run();
798
+ }
799
+ ).parent();
800
+ };
801
+
802
+ }));
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === WP Meta SEO ===
2
  Contributors: JoomUnited
3
- Tags: google, webmaster tools, keywords, meta, meta description, meta keywords, meta title, robots meta, search engine optimization, seo, wordpress seo, yahoo, image optimization, image resize, custom post seo
4
  Requires at least: 4.0
5
  Tested up to: 4.3.1
6
- Stable tag: 1.2.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -54,6 +54,7 @@ A bunch of people reduce the size of the pictures handling the border and resizi
54
  * All alt tags edition on single view
55
  * See all your snippet in one view
56
  * Image name, title, description and legend
 
57
  * Automatic AJAX saving
58
  * On page analysis: fix SEO criteria
59
  * Custom type mate edition
@@ -84,36 +85,62 @@ A PDF support document is provided and a dedicated support can be provided addit
84
 
85
  == Installation ==
86
 
 
 
 
 
 
 
 
 
 
 
87
  Once the plugin is installed, open the bulk edition through the admin menu or open a content to load SEO on page analysis
88
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
 
90
  == Screenshots ==
91
 
92
- 1. Main dashboard of the plugin with missing optimization and Alexa rank
93
  1. Bulk content meta edition with AJAX saving
94
  1. On page dynamic SEO analysis for page, posts and custom post type
95
- 1. Social shaing information, on page optimization
96
  1. Image resized in HTML (with handles) is automatically detected and can be resized
97
  1. SEO Yoast and AIO SEO plugin and detected and data sync
98
  1. Detail and alert on the element that you can optimize
99
  1. Image replace confirmation
100
 
101
 
102
- == Revisions ==
103
-
104
- * 1.2.0
105
- * 1.1.0
106
- * 1.0.4
107
- * 1.0.3
108
- * 1.0.2
109
- * 1.0.1
110
- * 1.0.0 Initial release
111
-
112
 
113
  == Changelog ==
114
 
115
- = 1.2.0 =
 
 
 
 
 
 
 
116
 
 
117
  * Change language to po/mo files
118
  * Include .pot file and French language
119
  * Setting for home page meta
@@ -121,40 +148,38 @@ Once the plugin is installed, open the bulk edition through the admin menu or op
121
  * Update icon of notification in meta view
122
 
123
  = 1.1.0 =
124
-
125
  * On page SEO analysis
126
  * Social sharing custom content
127
 
128
  = 1.0.5 =
129
-
130
  * Title tag value is empty
131
 
132
  = 1.0.4 =
133
-
134
  * Check empty array
135
 
136
  = 1.0.3 =
137
-
138
  * Escape meta title and meta description
139
 
140
  = 1.0.2 =
141
-
142
  * Fix filter broken and icons broken
143
 
144
  = 1.0.1 =
145
-
146
  * display (no title) in column title if post is no titled
147
 
148
  = 1.0.0 =
149
-
150
  * Initial release
151
 
152
 
153
  == Upgrade Notice ==
154
 
155
- Update through the automatic WordPress updater, WP Meta SEO content will remain in place
156
 
157
 
158
- == Requirements ==
 
 
 
 
 
 
159
 
160
- PHP 5.3+
1
  === WP Meta SEO ===
2
  Contributors: JoomUnited
3
+ Tags: google, webmaster tools, keywords, meta, meta description, meta keywords, meta title, robots meta, search engine optimization, seo, wordpress seo, yahoo, image optimization, image resize, custom post seo, alt, facebook, twitter, seo score, open graph, og, title, title tag
4
  Requires at least: 4.0
5
  Tested up to: 4.3.1
6
+ Stable tag: 1.3.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
54
  * All alt tags edition on single view
55
  * See all your snippet in one view
56
  * Image name, title, description and legend
57
+ * Dashboard SEO check
58
  * Automatic AJAX saving
59
  * On page analysis: fix SEO criteria
60
  * Custom type mate edition
85
 
86
  == Installation ==
87
 
88
+ = To install the automatically: =
89
+ * Through WordPress admin, use the menu: Plugin > Add new
90
+ * Search for WP Meta SEO
91
+ * Click on install then activate link
92
+
93
+ = To install the plugin manually: =
94
+ * Download and unzip the plugin wp-meta-seo.zip
95
+ * Upload the seo-ultimate directory to /wp-content/plugins/
96
+ * Activate the plugin through the 'Plugins' menu in WordPress.
97
+
98
  Once the plugin is installed, open the bulk edition through the admin menu or open a content to load SEO on page analysis
99
 
100
+ == Frequently Asked Questions ==
101
+
102
+ = Which browsers work best with the WP Meta SEO administration interface? =
103
+ WP Meta SEO is using HTML5 features so to be sure run the latest version of Chrome / Firefox / Safari or IE9+
104
+
105
+ = Is WP Meta SEO slowing down my website? =
106
+ Nope :) All your SEO content is properly stored in the database and automatic SEO checks are also cached or run every 72 hours (unless you force the process)
107
+
108
+ = Compatibility =
109
+ What's the minimum version of WordPress required to run WP Meta SEO? WordPress 4.0 is required. WP Meta SEO may generate PHP errors if you tried to run it on an earlier version, and so it will simply refuse to activate on any version of WordPress that's older than 4.0
110
+
111
+ = Where in WordPress does WP Meta SEO plugin should be displayed? =
112
+ In the admin of WordPress, on the left menu named WP Meta SEO and its sub menu for SEO tools
113
+
114
+ = How do I uninstall WP Meta SEO? =
115
+
116
+ Go to the Plugins > WP Meta SEO > Deactivate > Delete
117
+ If you choose to install it later all your SEO data will remain in place (database stored)
118
 
119
  == Screenshots ==
120
 
121
+ 1. Main dashboard of the plugin with SEO optimization check
122
  1. Bulk content meta edition with AJAX saving
123
  1. On page dynamic SEO analysis for page, posts and custom post type
124
+ 1. Social sharing information, on page optimization
125
  1. Image resized in HTML (with handles) is automatically detected and can be resized
126
  1. SEO Yoast and AIO SEO plugin and detected and data sync
127
  1. Detail and alert on the element that you can optimize
128
  1. Image replace confirmation
129
 
130
 
 
 
 
 
 
 
 
 
 
 
131
 
132
  == Changelog ==
133
 
134
+ = 1.3.0 =
135
+ * New SEO check dashboard
136
+ * Check for SEO permalinks
137
+ * Check for meta titles
138
+ * Check for meta description
139
+ * Check for image HTML resizing
140
+ * Check for image SEO: title, alt and description
141
+ * Check for new content
142
 
143
+ = 1.2.0 =
144
  * Change language to po/mo files
145
  * Include .pot file and French language
146
  * Setting for home page meta
148
  * Update icon of notification in meta view
149
 
150
  = 1.1.0 =
 
151
  * On page SEO analysis
152
  * Social sharing custom content
153
 
154
  = 1.0.5 =
 
155
  * Title tag value is empty
156
 
157
  = 1.0.4 =
 
158
  * Check empty array
159
 
160
  = 1.0.3 =
 
161
  * Escape meta title and meta description
162
 
163
  = 1.0.2 =
 
164
  * Fix filter broken and icons broken
165
 
166
  = 1.0.1 =
 
167
  * display (no title) in column title if post is no titled
168
 
169
  = 1.0.0 =
 
170
  * Initial release
171
 
172
 
173
  == Upgrade Notice ==
174
 
175
+ Update through the automatic WordPress updater, all WP Meta SEO content will remain in place
176
 
177
 
178
+ <PageMap>
179
+ <DataObject type="thumbnail">
180
+ <Attribute name="src" value="https://www.joomunited.com/images/WP-Meta-SEO/icon-128x128.png"/>
181
+ <Attribute name="width" value="100"/>
182
+ <Attribute name="height" value="130"/>
183
+ </DataObject>
184
+ </PageMap>
185
 
 
wp-meta-seo.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: WP Meta SEO
5
  * Plugin URI: http://www.joomunited.com/wordpress-products/wp-meta-seo
6
  * Description: WP Meta SEO is a plugin for WordPress to fill meta for content, images and main SEO info in a single view.
7
- * Version: 1.2.0
8
  * Author: JoomUnited
9
  * Author URI: http://www.joomunited.com
10
  * License: GPL2
@@ -28,7 +28,7 @@
28
  * along with this program; if not, write to the Free Software
29
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
30
  */
31
- # error_reporting(E_ALL);
32
  // Make sure we don't expose any info if called directly
33
  if (!function_exists('add_action')) {
34
  echo 'Hi there! I\'m just a plugin, not much I can do when called directly.';
@@ -45,7 +45,7 @@ if (!defined('URL'))
45
  define('URL', get_site_url());
46
 
47
  if (!defined('WPMSEO_VERSION'))
48
- define('WPMSEO_VERSION', '1.2.0');
49
 
50
  if (!defined('WPMSEO_FILE'))
51
  define('WPMSEO_FILE', __FILE__);
4
  * Plugin Name: WP Meta SEO
5
  * Plugin URI: http://www.joomunited.com/wordpress-products/wp-meta-seo
6
  * Description: WP Meta SEO is a plugin for WordPress to fill meta for content, images and main SEO info in a single view.
7
+ * Version: 1.3.0
8
  * Author: JoomUnited
9
  * Author URI: http://www.joomunited.com
10
  * License: GPL2
28
  * along with this program; if not, write to the Free Software
29
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
30
  */
31
+
32
  // Make sure we don't expose any info if called directly
33
  if (!function_exists('add_action')) {
34
  echo 'Hi there! I\'m just a plugin, not much I can do when called directly.';
45
  define('URL', get_site_url());
46
 
47
  if (!defined('WPMSEO_VERSION'))
48
+ define('WPMSEO_VERSION', '1.3.0');
49
 
50
  if (!defined('WPMSEO_FILE'))
51
  define('WPMSEO_FILE', __FILE__);