WP Job Manager - Version 1.2.0

Version Description

  • Support for featured job listings
  • Support for meta job duration
  • set_expirey when publishing jobs from admin manually
  • Update handler
Download this release

Release Info

Developer mikejolley
Plugin Icon 128x128 WP Job Manager
Version 1.2.0
Comparing to
See all releases

Code changes from version 1.1.3 to 1.2.0

assets/css/admin.css CHANGED
@@ -1 +1 @@
1
- .clearfix{zoom:1}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}.clear{clear:both}.nobr{white-space:nowrap}.widefat .column-filled{text-align:center}.widefat .column-company{width:25%}.widefat td.column-company{padding-left:50px!important;height:40px;position:relative}.widefat td.column-company img{width:32px;height:32px;position:absolute;left:7px;top:4px;-webkit-border-radius:50%;border-radius:50%;box-shadow:0 1px 0 1px rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 0 1px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 0 1px rgba(0,0,0,0.1);border:1px solid #fff}.widefat td.column-company strong{display:block;margin-bottom:.2em}.widefat td.column-company .tagline{display:block;padding-top:2px;color:#bbb}.widefat td.column-company a.company_twitter{float:right;margin-left:1em}.widefat .column-job_posted strong{display:block;margin-bottom:.2em}.widefat .column-job_posted span{display:block;padding-top:2px}.widefat .column-job_listing_type{text-align:center;width:6em;word-wrap:normal!important}.widefat .column-job_listing_type .job-type{color:#fff;padding:4px 0 3px;line-height:1em;font-size:11px;font-weight:bold;-webkit-border-radius:2px;border-radius:2px;text-shadow:0 1px 0 rgba(0,0,0,0.2);display:block;background-color:#f08d3c;border-bottom:2px solid #e77212}.widefat .column-job_listing_type .full-time{background-color:#90da36;border-bottom:2px solid #76bb22}.widefat .column-job_listing_type .part-time{background-color:#f08d3c;border-bottom:2px solid #e77212}.widefat .column-job_listing_type .temporary{background-color:#d93674;border-bottom:2px solid #b9235c}.widefat .column-job_listing_type .freelance{background-color:#39c;border-bottom:2px solid #297aa3}.widefat .column-job_listing_type .internship{background-color:#6033cc;border-bottom:2px solid #4d29a3}.widefat .column-position{width:20%}.widefat .column-position strong{display:block;margin-bottom:.2em}.widefat .column-position .location{display:block;padding-top:2px;color:#bbb}.widefat .column-job_actions{width:120px;text-align:right}.widefat .column-job_actions a.button{display:inline-block;margin:0 0 2px 4px;cursor:pointer;padding:3px 4px;height:auto}.widefat .column-job_actions a.button img{display:block;width:12px;height:auto}.wp_job_manager_meta_data p{overflow:hidden;margin:0 0 1em;padding:0 0 0 20%;position:relative;line-height:2em}.wp_job_manager_meta_data label{width:20%;position:absolute;left:0;vertical-align:middle}.wp_job_manager_meta_data input{width:50%;margin:1px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:middle}.wp_job_manager_meta_data input.checkbox{width:auto;margin:4px 2px}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:99999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_left{padding-right:5px}#tiptip_content{font-size:11px;color:#fff;padding:4px 8px;background:#464646;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;box-shadow:1px 1px 3px rgba(0,0,0,0.1);-webkit-box-shadow:1px 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:1px 1px 3px rgba(0,0,0,0.1);text-align:center}#tiptip_content code{background:#999;padding:1px}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#464646}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#464646}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#464646}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#464646}.wp_job_manager_addons_wrap .items{overflow:hidden}.wp_job_manager_addons_wrap .items li{display:inline-block;margin:0 10px 10px 0!important;padding:0;vertical-align:top;width:250px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),inset 0 -1px 0 rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),inset 0 -1px 0 rgba(0,0,0,0.1);overflow:hidden;position:relative}.wp_job_manager_addons_wrap .items li a{color:inherit;text-decoration:none}.wp_job_manager_addons_wrap .items li img{max-width:100%;height:auto;display:block;margin:0;background:#fff}.wp_job_manager_addons_wrap .items li h2{margin:0!important;padding:10px 20px!important;line-height:1;background:rgba(255,255,255,0.3);position:absolute;max-width:280px;top:20px;left:0;font-size:18px;text-shadow:none}.wp_job_manager_addons_wrap .items li .third_party{display:none}.wp_job_manager_addons_wrap .items li p{padding:20px!important;margin:0!important;border-top:1px solid #f1f1f1}.wp_job_manager_addons_wrap .items li .cost{display:none}
1
+ .clearfix{zoom:1}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}.clear{clear:both}.nobr{white-space:nowrap}.widefat .column-filled,.widefat .column-featured{text-align:center}.widefat .column-company{width:20%}.widefat td.column-company{padding-left:50px!important;height:40px;position:relative}.widefat td.column-company img{width:32px;height:32px;position:absolute;left:7px;top:4px;-webkit-border-radius:50%;border-radius:50%;box-shadow:0 1px 0 1px rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 0 1px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 0 1px rgba(0,0,0,0.1);border:1px solid #fff}.widefat td.column-company strong{padding-right:.5em}.widefat td.column-company .tagline{display:block;padding-top:2px;color:#bbb}.widefat .column-job_posted strong{display:block;margin-bottom:.2em}.widefat .column-job_posted span{display:block;padding-top:2px}.widefat .column-job_listing_type{text-align:center;width:6em;word-wrap:normal!important}.widefat .column-job_listing_type .job-type{color:#fff;padding:4px 0 3px;line-height:1em;font-size:11px;font-weight:bold;-webkit-border-radius:2px;border-radius:2px;text-shadow:0 1px 0 rgba(0,0,0,0.2);display:block;background-color:#f08d3c;border-bottom:2px solid #e77212}.widefat .column-job_listing_type .full-time{background-color:#90da36;border-bottom:2px solid #76bb22}.widefat .column-job_listing_type .part-time{background-color:#f08d3c;border-bottom:2px solid #e77212}.widefat .column-job_listing_type .temporary{background-color:#d93674;border-bottom:2px solid #b9235c}.widefat .column-job_listing_type .freelance{background-color:#39c;border-bottom:2px solid #297aa3}.widefat .column-job_listing_type .internship{background-color:#6033cc;border-bottom:2px solid #4d29a3}.widefat .column-position{width:20%}.widefat .column-position strong{display:block;margin-bottom:.2em}.widefat .column-position .location{display:block;padding-top:2px;color:#bbb}.widefat .column-job_actions{width:120px;text-align:right}.widefat .column-job_actions a.button{display:inline-block;margin:0 0 2px 4px;cursor:pointer;padding:3px 4px;height:auto}.widefat .column-job_actions a.button img{display:block;width:12px;height:auto}.wp_job_manager_meta_data p{overflow:hidden;margin:0 0 1em;padding:0 0 0 20%;position:relative;line-height:2em}.wp_job_manager_meta_data label{width:20%;position:absolute;left:0;vertical-align:middle}.wp_job_manager_meta_data input{width:50%;margin:1px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:middle}.wp_job_manager_meta_data input.checkbox{width:auto;margin:4px 2px}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:99999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_left{padding-right:5px}#tiptip_content{font-size:11px;color:#fff;padding:4px 8px;background:#464646;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;box-shadow:1px 1px 3px rgba(0,0,0,0.1);-webkit-box-shadow:1px 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:1px 1px 3px rgba(0,0,0,0.1);text-align:center}#tiptip_content code{background:#999;padding:1px}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#464646}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#464646}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#464646}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#464646}.wp_job_manager_addons_wrap .items{overflow:hidden}.wp_job_manager_addons_wrap .items li{display:inline-block;margin:0 10px 10px 0!important;padding:0;vertical-align:top;width:250px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),inset 0 -1px 0 rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),inset 0 -1px 0 rgba(0,0,0,0.1);overflow:hidden;position:relative}.wp_job_manager_addons_wrap .items li a{color:inherit;text-decoration:none}.wp_job_manager_addons_wrap .items li img{max-width:100%;height:auto;display:block;margin:0;background:#fff}.wp_job_manager_addons_wrap .items li h2{margin:0!important;padding:10px 20px!important;line-height:1;background:rgba(255,255,255,0.8);color:#000;position:absolute;max-width:280px;top:20px;left:0;font-size:18px;text-shadow:none}.wp_job_manager_addons_wrap .items li .third_party{display:none}.wp_job_manager_addons_wrap .items li p{padding:20px!important;margin:0!important;border-top:1px solid #f1f1f1}.wp_job_manager_addons_wrap .items li .cost{display:none}
assets/css/admin.less CHANGED
@@ -1,11 +1,11 @@
1
  @import "mixins";
2
 
3
  .widefat {
4
- .column-filled {
5
  text-align: center;
6
  }
7
  .column-company {
8
- width: 25%;
9
  }
10
  td.column-company {
11
  padding-left: 50px !important;
@@ -22,8 +22,7 @@
22
  border: 1px solid #fff;
23
  }
24
  strong {
25
- display: block;
26
- margin-bottom: .2em;
27
  }
28
  .tagline {
29
  display: block;
@@ -31,8 +30,7 @@
31
  color: #bbbbbb;
32
  }
33
  a.company_twitter {
34
- float: right;
35
- margin-left: 1em;
36
  }
37
  }
38
  .column-job_posted {
@@ -242,7 +240,8 @@
242
  margin: 0 !important;
243
  padding: 10px 20px !important;
244
  line-height: 1;
245
- background: rgba(255,255,255,0.3);
 
246
  position: absolute;
247
  max-width: 280px;
248
  top: 20px;
1
  @import "mixins";
2
 
3
  .widefat {
4
+ .column-filled, .column-featured {
5
  text-align: center;
6
  }
7
  .column-company {
8
+ width: 20%;
9
  }
10
  td.column-company {
11
  padding-left: 50px !important;
22
  border: 1px solid #fff;
23
  }
24
  strong {
25
+ padding-right: .5em;
 
26
  }
27
  .tagline {
28
  display: block;
30
  color: #bbbbbb;
31
  }
32
  a.company_twitter {
33
+
 
34
  }
35
  }
36
  .column-job_posted {
240
  margin: 0 !important;
241
  padding: 10px 20px !important;
242
  line-height: 1;
243
+ background: rgba(255,255,255,0.8);
244
+ color: #000;
245
  position: absolute;
246
  max-width: 280px;
247
  top: 20px;
assets/css/frontend.css CHANGED
@@ -1 +1 @@
1
- .clearfix{zoom:1}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}.clear{clear:both}.nobr{white-space:nowrap}@font-face{font-family:'Genericons';src:url('../font/genericons-regular-webfont.eot');src:url('../font/genericons-regular-webfont.eot?#iefix') format('embedded-opentype'),url('../font/genericons-regular-webfont.woff') format('woff'),url('../font/genericons-regular-webfont.ttf') format('truetype'),url('../font/genericons-regular-webfont.svg#genericonsregular') format('svg');font-weight:normal;font-style:normal}.display-icon{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline}.job-manager-message,.job-manager-error,.job-manager-info{padding:1em 1em 1em 3.5em;margin:0 0 2em;position:relative;-webkit-border-radius:4px;border-radius:4px;background:#fff;background:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#fff));background:-webkit-linear-gradient(#fff,#fff);background:-moz-linear-gradient(center top,#fff 0,#fff 100%);background:-moz-gradient(center top,#fff 0,#fff 100%);color:#666;text-shadow:0 1px 0 #fff;list-style:none outside;zoom:1;width:auto;-webkit-box-shadow:inset 0 -2px 6px rgba(0,0,0,0.05),inset 0 -2px 30px rgba(0,0,0,0.015),inset 0 1px 0 #fff,0 1px 2px rgba(0,0,0,0.3);box-shadow:inset 0 -2px 6px rgba(0,0,0,0.05),inset 0 -2px 30px rgba(0,0,0,0.015),inset 0 1px 0 #fff,0 1px 2px rgba(0,0,0,0.3)}.job-manager-message:before,.job-manager-error:before,.job-manager-info:before,.job-manager-message:after,.job-manager-error:after,.job-manager-info:after{content:"";display:table}.job-manager-message:after,.job-manager-error:after,.job-manager-info:after{clear:both}.job-manager-message:before,.job-manager-error:before,.job-manager-info:before{content:"";height:1.5em;width:1.5em;display:block;position:absolute;top:0;left:1em;font-family:sans-serif;font-size:1em;line-height:1.5;text-align:center;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,0.2);padding-top:1em;-webkit-border-bottom-left-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,0.1);-webkit-box-shadow:inset 0 -1px 0 0 rgba(0,0,0,0.1);-moz-box-shadow:inset 0 -1px 0 0 rgba(0,0,0,0.1)}.job-manager-message li,.job-manager-error li,.job-manager-info li{list-style:none outside;padding-left:0;margin-left:0}.job-manager-message.job-manager-message,.job-manager-error.job-manager-message,.job-manager-info.job-manager-message{border-top:3px solid #8fae1b}.job-manager-message.job-manager-message:before,.job-manager-error.job-manager-message:before,.job-manager-info.job-manager-message:before{background-color:#8fae1b;content:"\2713"}.job-manager-message.job-manager-info,.job-manager-error.job-manager-info,.job-manager-info.job-manager-info{border-top:3px solid #1e85be}.job-manager-message.job-manager-info:before,.job-manager-error.job-manager-info:before,.job-manager-info.job-manager-info:before{background-color:#1e85be;content:"i";font-family:Times,Georgia,serif;font-style:italic}.job-manager-message.job-manager-error,.job-manager-error.job-manager-error,.job-manager-info.job-manager-error{border-top:3px solid #b81c23}.job-manager-message.job-manager-error:before,.job-manager-error.job-manager-error:before,.job-manager-info.job-manager-error:before{background-color:#b81c23;content:"\00d7";font-weight:700}.job-manager-form fieldset{margin:0 0 1em 0;padding:0 0 1em 0;line-height:2em;border:0;border-bottom:1px solid #eee;zoom:1}.job-manager-form fieldset:before,.job-manager-form fieldset:after{content:"";display:table}.job-manager-form fieldset:after{clear:both}.job-manager-form fieldset label{display:block;margin:0;width:29%;float:left;vertical-align:middle}.job-manager-form fieldset label small{opacity:.75;font-size:.83em}.job-manager-form fieldset div.field{width:70%;float:right;vertical-align:middle}.job-manager-form fieldset .account-sign-in .button{margin-right:.5em}.job-manager-form fieldset .account-sign-in .button:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f427'}.job-manager-form fieldset abbr.required{color:red;font-weight:bold;border:0}.job-manager-form fieldset input.input-text,.job-manager-form fieldset textarea,.job-manager-form fieldset select{margin:0;vertical-align:middle;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job-manager-form fieldset small.description{opacity:.75;font-size:.83em;margin:1.2em 0 0 0;display:block;line-height:1.2em}.job-manager-form fieldset .uploaded_image{line-height:64px;font-style:italic;margin:0 0 1em 0}.job-manager-form fieldset .uploaded_image img{height:64px;vertical-align:middle;margin:0 1em 0 0}.job-manager-form .submit-job{padding:1em 0}div.job_listings{margin-bottom:1em}ul.job_listings{padding:0;margin:0!important;border-top:1px solid #eee}ul.job_listings.loading{background:url(../images/ajax-loader.gif) no-repeat center}ul.job_listings li.job_listing,ul.job_listings li.no_job_listings_found{list-style:none outside;padding:0;margin:0;border-bottom:1px solid #eee}ul.job_listings li.job_listing.job_position_filled a,ul.job_listings li.no_job_listings_found.job_position_filled a{opacity:.25}ul.job_listings li.job_listing.no_job_listings_found,ul.job_listings li.no_job_listings_found.no_job_listings_found{padding:1em;border-bottom:1px solid #eee}ul.job_listings li.job_listing a,ul.job_listings li.no_job_listings_found a{display:block;padding:1em 1em 1em 2em;overflow:hidden;zoom:1;position:relative;line-height:3em;font-size:1em;text-decoration:none}ul.job_listings li.job_listing a:hover,ul.job_listings li.no_job_listings_found a:hover,ul.job_listings li.job_listing a:focus,ul.job_listings li.no_job_listings_found a:focus{background-color:#fcfcfc}ul.job_listings li.job_listing a img,ul.job_listings li.no_job_listings_found a img{width:42px;height:42px;position:absolute;left:1em;float:left;margin-right:1em;vertical-align:middle;box-shadow:none}ul.job_listings li.job_listing a div.position,ul.job_listings li.no_job_listings_found a div.position,ul.job_listings li.job_listing a div.location,ul.job_listings li.no_job_listings_found a div.location,ul.job_listings li.job_listing a ul.meta,ul.job_listings li.no_job_listings_found a ul.meta{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}ul.job_listings li.job_listing a div.position,ul.job_listings li.no_job_listings_found a div.position{float:left;width:60%;padding:0 0 0 42px;line-height:1.5em}ul.job_listings li.job_listing a div.position h3,ul.job_listings li.no_job_listings_found a div.position h3{margin:0;padding:0;font-size:1em;line-height:1.5em}ul.job_listings li.job_listing a div.position .company,ul.job_listings li.no_job_listings_found a div.position .company{color:#999;font-size:.75em}ul.job_listings li.job_listing a div.position .company .tagline,ul.job_listings li.no_job_listings_found a div.position .company .tagline{margin-left:.5em}ul.job_listings li.job_listing a div.location,ul.job_listings li.no_job_listings_found a div.location{float:left;text-align:left;width:20%;padding:0 0 0 1em;color:#999;font-size:.75em}ul.job_listings li.job_listing a .meta,ul.job_listings li.no_job_listings_found a .meta{float:right;text-align:right;width:20%;padding:0 0 0 1em;margin:0;line-height:1.5em;color:#999;list-style:none outside}ul.job_listings li.job_listing a .meta li,ul.job_listings li.no_job_listings_found a .meta li{list-style:none outside;display:block;font-size:.75em;margin:0}ul.job_listings li.job_listing a .meta .job-type,ul.job_listings li.no_job_listings_found a .meta .job-type{font-weight:bold}.widget ul.job_listings li.job_listing a{padding:1em 0}.widget ul.job_listings li.job_listing .position{float:none;width:auto;padding:0}.widget ul.job_listings li.job_listing ul.meta{float:none;width:auto;padding:0;margin:0;text-align:left}.widget ul.job_listings li.job_listing ul.meta li{float:none;display:inline;padding:0;margin:0 .5em 0 0;font-weight:normal}.widget ul.job_listings li.job_listing ul.meta li:after{padding:0 0 0 .5em;content:"\2023"}.widget ul.job_listings li.job_listing ul.meta li:last-child:after{content:''}.job-manager .job-type,.job_listing .job-type,.job-types .job-type{color:#f08d3c}.job-manager .full-time,.job_listing .full-time,.job-types .full-time{color:#90da36}.job-manager .part-time,.job_listing .part-time,.job-types .part-time{color:#f08d3c}.job-manager .temporary,.job_listing .temporary,.job-types .temporary{color:#d93674}.job-manager .freelance,.job_listing .freelance,.job-types .freelance{color:#39c}.job-manager .internship,.job_listing .internship,.job-types .internship{color:#6033cc}.single_job_listing .company{position:relative;border:1px solid #eee;padding:1em 1em 1em 42px;margin:0 0 2em;display:block;clear:both;min-height:42px}.single_job_listing .company img{width:42px;height:42px;position:absolute;left:1em;float:left;vertical-align:middle;box-shadow:none}.single_job_listing .company .name{margin:0;padding:0 0 0 2em}.single_job_listing .company .name a{float:right;margin-left:1em}.single_job_listing .company .tagline{display:block;margin:0;padding:0 0 0 2em;font-style:italic;color:#999}.single_job_listing .company .website:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f107'}.single_job_listing .company .company_twitter:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f202'}.single_job_listing .meta{list-style:none outside;padding:0;margin:0 0 1.5em;overflow:hidden;zoom:1}.single_job_listing .meta li{margin:0 1em 0 0;padding:.5em;float:left;line-height:1em;color:#999}.single_job_listing .meta .job-type{color:#fff;background-color:#f08d3c}.single_job_listing .meta .full-time{background-color:#90da36}.single_job_listing .meta .part-time{background-color:#f08d3c}.single_job_listing .meta .temporary{background-color:#d93674}.single_job_listing .meta .freelance{background-color:#39c}.single_job_listing .meta .internship{background-color:#6033cc}.single_job_listing .meta .position-filled{color:#b81c23}.single_job_listing .meta .location:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f417'}.single_job_listing .meta .date-posted:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f307'}.single_job_listing .meta .position-filled:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f424'}.single_job_listing .application{overflow:hidden;zoom:1;padding-left:20px;margin:0 0 1em}.single_job_listing .application .application_button,.single_job_listing .application .application_details{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.single_job_listing .application .application_button{text-align:center;font-size:1.2em;line-height:1em;width:33.3%;float:left;margin:0 0 0 -20px;padding:.8333333333333334em}.single_job_listing .application .application_details{float:right;width:66.6%;border:1px solid #eee;padding:.75em 1em 0;margin:0;line-height:1.5em;display:block;position:relative}.single_job_listing .application .application_details p{margin:0 0 .75em}.single_job_listing .application .application_details:before{content:"";position:absolute;margin:0 0 0 -10px;left:0;top:1em;width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #eee}.single_job_listing .application .application_details:after{content:"";position:absolute;margin:1px 0 0 -9px;top:1em;left:0;width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-right:9px solid #fff}.job_filters{background:#eee;zoom:1}.job_filters:before,.job_filters:after{content:"";display:table}.job_filters:after{clear:both}.job_filters .search_jobs{padding:1em;zoom:1}.job_filters .search_jobs:before,.job_filters .search_jobs:after{content:"";display:table}.job_filters .search_jobs:after{clear:both}.job_filters .search_jobs div{width:50%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job_filters .search_jobs div label{display:none}.job_filters .search_jobs div.search_keywords,.job_filters .search_jobs div.filter_first{float:left;padding-right:.5em}.job_filters .search_jobs div.search_location,.job_filters .search_jobs div.filter_last{float:right;padding-left:.5em}.job_filters .search_jobs div.search_categories,.job_filters .search_jobs div.filter_wide{padding-top:.5em;clear:both;width:100%}.job_filters .search_jobs div a{padding:.25em}.job_filters .search_jobs div a.active{background:#ddd;text-decoration:none}.job_filters .search_jobs input,.job_filters .search_jobs select{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%}.job_filters .job_types{list-style:none outside;margin:0;padding:0;font-size:.83em;background:#f9f9f9;border-top:1px solid #e5e5e5;zoom:1}.job_filters .job_types:before,.job_filters .job_types:after{content:"";display:table}.job_filters .job_types:after{clear:both}.job_filters .job_types li{margin:0;padding:.5em 1em;float:left;border-right:1px solid #eee}.job_filters .job_types li:last-child{border-right:0}.job_filters .showing_jobs{padding:.5em 1em;display:none;font-size:.83em;background:#f9f9f9;border-top:1px solid #e5e5e5}.job_filters .showing_jobs a{float:right;padding-left:10px}.load_more_jobs{text-align:center;display:block;padding:1em 1em 1em 2em;border-bottom:1px solid #eee;font-weight:bold}.load_more_jobs.loading{background:url(../images/ajax-loader.gif) no-repeat center}.load_more_jobs.loading strong{visibility:hidden}.load_more_jobs:hover,.load_more_jobs:focus{background-color:#fcfcfc}.job_listing_preview{padding:0 1em 1em;border:5px solid #eee}.job_listing_preview_title,.entry-content .job_listing_preview_title{padding:.5em 1em;vertical-align:middle;position:relative;background:#eee}.job_listing_preview_title h2,.entry-content .job_listing_preview_title h2{margin:0;clear:none}.job_listing_preview_title .button,.entry-content .job_listing_preview_title .button{float:right;margin-left:.25em}.job_summary_shortcode{border:1px solid #ccc;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;text-align:center;position:relative;box-shadow:0 2px 4px rgba(0,0,0,0.1),inset 0 1px 0 rgba(255,255,255,0.4);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job_summary_shortcode.aligncenter{display:block;margin:2em auto 2em}.job_summary_shortcode.alignleft{float:left;margin:0 2em 2em 0}.job_summary_shortcode.alignright{float:right;margin:0 0 2em 2em}.job_summary_shortcode a{text-decoration:none;color:inherit}.job_summary_shortcode img{margin:0;padding:0;display:block;width:100%;-moz-border-radius:0;-webkit-border-radius:0;-moz-border-top-left-radius:3px;-moz-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-radius:0;border-top-left-radius:3px;border-top-right-radius:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,0.4)}.job_summary_shortcode .job_summary_content{padding:0 1em}.job_summary_shortcode .meta{font-style:italic;color:#777}.job_summary_shortcode .job-type{-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em;color:#fff;text-shadow:0 1px 0 rgba(255,255,255,0.5);box-shadow:0 2px 4px rgba(0,0,0,0.1),inset 0 1px 0 rgba(255,255,255,0.4);position:absolute;top:0;right:0;padding:.5em;height:1em;width:auto;min-width:1em;font-size:1em;text-align:center;vertical-align:middle;line-height:1em;margin:-0.5em -0.5em 0 0}.job_summary_shortcode .job-type.full-time{background-color:#90da36}.job_summary_shortcode .job-type.part-time{background-color:#f08d3c}.job_summary_shortcode .job-type.temporary{background-color:#d93674}.job_summary_shortcode .job-type.freelance{background-color:#39c}.job_summary_shortcode .job-type.internship{background-color:#6033cc}#job-manager-job-dashboard table ul.job-dashboard-actions{margin:0;padding:0;visibility:hidden;font-size:.92em}#job-manager-job-dashboard table ul.job-dashboard-actions li{float:none;display:inline;padding:0;margin:0 .5em 0 0;font-weight:normal;list-style:none outside}#job-manager-job-dashboard table ul.job-dashboard-actions li:after{padding:0 0 0 .5em;content:"\2023"}#job-manager-job-dashboard table ul.job-dashboard-actions li:last-child:after{content:''}#job-manager-job-dashboard table ul.job-dashboard-actions li .job-dashboard-action-delete{color:red}#job-manager-job-dashboard table tr:hover ul.job-dashboard-actions,#job-manager-job-dashboard table tr:focus ul.job-dashboard-actions{visibility:visible}#job-manager-job-dashboard table .filled,#job-manager-job-dashboard table .expires{text-align:center}
1
+ .clearfix{zoom:1}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}.clear{clear:both}.nobr{white-space:nowrap}@font-face{font-family:'Genericons';src:url('../font/genericons-regular-webfont.eot');src:url('../font/genericons-regular-webfont.eot?#iefix') format('embedded-opentype'),url('../font/genericons-regular-webfont.woff') format('woff'),url('../font/genericons-regular-webfont.ttf') format('truetype'),url('../font/genericons-regular-webfont.svg#genericonsregular') format('svg');font-weight:normal;font-style:normal}.display-icon{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline}.job-manager-message,.job-manager-error,.job-manager-info{padding:1em 1em 1em 3.5em;margin:0 0 2em;position:relative;-webkit-border-radius:4px;border-radius:4px;background:#fff;background:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#fff));background:-webkit-linear-gradient(#fff,#fff);background:-moz-linear-gradient(center top,#fff 0,#fff 100%);background:-moz-gradient(center top,#fff 0,#fff 100%);color:#666;text-shadow:0 1px 0 #fff;list-style:none outside;zoom:1;width:auto;-webkit-box-shadow:inset 0 -2px 6px rgba(0,0,0,0.05),inset 0 -2px 30px rgba(0,0,0,0.015),inset 0 1px 0 #fff,0 1px 2px rgba(0,0,0,0.3);box-shadow:inset 0 -2px 6px rgba(0,0,0,0.05),inset 0 -2px 30px rgba(0,0,0,0.015),inset 0 1px 0 #fff,0 1px 2px rgba(0,0,0,0.3)}.job-manager-message:before,.job-manager-error:before,.job-manager-info:before,.job-manager-message:after,.job-manager-error:after,.job-manager-info:after{content:"";display:table}.job-manager-message:after,.job-manager-error:after,.job-manager-info:after{clear:both}.job-manager-message:before,.job-manager-error:before,.job-manager-info:before{content:"";height:1.5em;width:1.5em;display:block;position:absolute;top:0;left:1em;font-family:sans-serif;font-size:1em;line-height:1.5;text-align:center;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,0.2);padding-top:1em;-webkit-border-bottom-left-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,0.1);-webkit-box-shadow:inset 0 -1px 0 0 rgba(0,0,0,0.1);-moz-box-shadow:inset 0 -1px 0 0 rgba(0,0,0,0.1)}.job-manager-message li,.job-manager-error li,.job-manager-info li{list-style:none outside;padding-left:0;margin-left:0}.job-manager-message.job-manager-message,.job-manager-error.job-manager-message,.job-manager-info.job-manager-message{border-top:3px solid #8fae1b}.job-manager-message.job-manager-message:before,.job-manager-error.job-manager-message:before,.job-manager-info.job-manager-message:before{background-color:#8fae1b;content:"\2713"}.job-manager-message.job-manager-info,.job-manager-error.job-manager-info,.job-manager-info.job-manager-info{border-top:3px solid #1e85be}.job-manager-message.job-manager-info:before,.job-manager-error.job-manager-info:before,.job-manager-info.job-manager-info:before{background-color:#1e85be;content:"i";font-family:Times,Georgia,serif;font-style:italic}.job-manager-message.job-manager-error,.job-manager-error.job-manager-error,.job-manager-info.job-manager-error{border-top:3px solid #b81c23}.job-manager-message.job-manager-error:before,.job-manager-error.job-manager-error:before,.job-manager-info.job-manager-error:before{background-color:#b81c23;content:"\00d7";font-weight:700}.job-manager-form fieldset{margin:0 0 1em 0;padding:0 0 1em 0;line-height:2em;border:0;border-bottom:1px solid #eee;zoom:1}.job-manager-form fieldset:before,.job-manager-form fieldset:after{content:"";display:table}.job-manager-form fieldset:after{clear:both}.job-manager-form fieldset label{display:block;margin:0;width:29%;float:left;vertical-align:middle}.job-manager-form fieldset label small{opacity:.75;font-size:.83em}.job-manager-form fieldset div.field{width:70%;float:right;vertical-align:middle}.job-manager-form fieldset .account-sign-in .button{margin-right:.5em}.job-manager-form fieldset .account-sign-in .button:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f427'}.job-manager-form fieldset abbr.required{color:red;font-weight:bold;border:0}.job-manager-form fieldset input.input-text,.job-manager-form fieldset textarea,.job-manager-form fieldset select{margin:0;vertical-align:middle;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job-manager-form fieldset small.description{opacity:.75;font-size:.83em;margin:1.2em 0 0 0;display:block;line-height:1.2em}.job-manager-form fieldset .uploaded_image{line-height:64px;font-style:italic;margin:0 0 1em 0}.job-manager-form fieldset .uploaded_image img{height:64px;vertical-align:middle;margin:0 1em 0 0}.job-manager-form .submit-job{padding:1em 0}div.job_listings{margin-bottom:1em}ul.job_listings{padding:0;margin:0!important;border-top:1px solid #eee}ul.job_listings.loading{background:url(../images/ajax-loader.gif) no-repeat center}ul.job_listings li.job_listing,ul.job_listings li.no_job_listings_found{list-style:none outside;padding:0;margin:0;border-bottom:1px solid #eee}ul.job_listings li.job_listing.job_position_filled a,ul.job_listings li.no_job_listings_found.job_position_filled a{opacity:.25}ul.job_listings li.job_listing.no_job_listings_found,ul.job_listings li.no_job_listings_found.no_job_listings_found{padding:1em;border-bottom:1px solid #eee}ul.job_listings li.job_listing a,ul.job_listings li.no_job_listings_found a{display:block;padding:1em 1em 1em 2em;overflow:hidden;zoom:1;position:relative;line-height:3em;font-size:1em;text-decoration:none}ul.job_listings li.job_listing a:hover,ul.job_listings li.no_job_listings_found a:hover,ul.job_listings li.job_listing a:focus,ul.job_listings li.no_job_listings_found a:focus{background-color:#fcfcfc}ul.job_listings li.job_listing a img,ul.job_listings li.no_job_listings_found a img{width:42px;height:42px;position:absolute;left:1em;float:left;margin-right:1em;vertical-align:middle;box-shadow:none}ul.job_listings li.job_listing a div.position,ul.job_listings li.no_job_listings_found a div.position,ul.job_listings li.job_listing a div.location,ul.job_listings li.no_job_listings_found a div.location,ul.job_listings li.job_listing a ul.meta,ul.job_listings li.no_job_listings_found a ul.meta{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}ul.job_listings li.job_listing a div.position,ul.job_listings li.no_job_listings_found a div.position{float:left;width:60%;padding:0 0 0 42px;line-height:1.5em}ul.job_listings li.job_listing a div.position h3,ul.job_listings li.no_job_listings_found a div.position h3{margin:0;padding:0;font-size:1em;line-height:1.5em}ul.job_listings li.job_listing a div.position .company,ul.job_listings li.no_job_listings_found a div.position .company{color:#999;font-size:.75em}ul.job_listings li.job_listing a div.position .company .tagline,ul.job_listings li.no_job_listings_found a div.position .company .tagline{margin-left:.5em}ul.job_listings li.job_listing a div.location,ul.job_listings li.no_job_listings_found a div.location{float:left;text-align:left;width:20%;padding:0 0 0 1em;color:#999;font-size:.75em}ul.job_listings li.job_listing a .meta,ul.job_listings li.no_job_listings_found a .meta{float:right;text-align:right;width:20%;padding:0 0 0 1em;margin:0;line-height:1.5em;color:#999;list-style:none outside}ul.job_listings li.job_listing a .meta li,ul.job_listings li.no_job_listings_found a .meta li{list-style:none outside;display:block;font-size:.75em;margin:0}ul.job_listings li.job_listing a .meta .job-type,ul.job_listings li.no_job_listings_found a .meta .job-type{font-weight:bold}ul.job_listings li.job_listing.job_position_featured a,ul.job_listings li.no_job_listings_found.job_position_featured a{background:#fefee5}ul.job_listings li.job_listing.job_position_featured a:hover,ul.job_listings li.no_job_listings_found.job_position_featured a:hover,ul.job_listings li.job_listing.job_position_featured a:focus,ul.job_listings li.no_job_listings_found.job_position_featured a:focus{background-color:#fefed8}.widget ul.job_listings li.job_listing a{padding:1em 0}.widget ul.job_listings li.job_listing .position{float:none;width:auto;padding:0}.widget ul.job_listings li.job_listing ul.meta{float:none;width:auto;padding:0;margin:0;text-align:left}.widget ul.job_listings li.job_listing ul.meta li{float:none;display:inline;padding:0;margin:0 .5em 0 0;font-weight:normal}.widget ul.job_listings li.job_listing ul.meta li:after{padding:0 0 0 .5em;content:"\2023"}.widget ul.job_listings li.job_listing ul.meta li:last-child:after{content:''}.job-manager .job-type,.job_listing .job-type,.job-types .job-type{color:#f08d3c}.job-manager .full-time,.job_listing .full-time,.job-types .full-time{color:#90da36}.job-manager .part-time,.job_listing .part-time,.job-types .part-time{color:#f08d3c}.job-manager .temporary,.job_listing .temporary,.job-types .temporary{color:#d93674}.job-manager .freelance,.job_listing .freelance,.job-types .freelance{color:#39c}.job-manager .internship,.job_listing .internship,.job-types .internship{color:#6033cc}.single_job_listing .company{position:relative;border:1px solid #eee;padding:1em 1em 1em 42px;margin:0 0 2em;display:block;clear:both;min-height:42px}.single_job_listing .company img{width:42px;height:42px;position:absolute;left:1em;float:left;vertical-align:middle;box-shadow:none}.single_job_listing .company .name{margin:0;padding:0 0 0 2em}.single_job_listing .company .name a{float:right;margin-left:1em}.single_job_listing .company .tagline{display:block;margin:0;padding:0 0 0 2em;font-style:italic;color:#999}.single_job_listing .company .website:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f107'}.single_job_listing .company .company_twitter:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f202'}.single_job_listing .meta{list-style:none outside;padding:0;margin:0 0 1.5em;overflow:hidden;zoom:1}.single_job_listing .meta li{margin:0 1em 0 0;padding:.5em;float:left;line-height:1em;color:#999}.single_job_listing .meta .job-type{color:#fff;background-color:#f08d3c}.single_job_listing .meta .full-time{background-color:#90da36}.single_job_listing .meta .part-time{background-color:#f08d3c}.single_job_listing .meta .temporary{background-color:#d93674}.single_job_listing .meta .freelance{background-color:#39c}.single_job_listing .meta .internship{background-color:#6033cc}.single_job_listing .meta .position-filled{color:#b81c23}.single_job_listing .meta .location:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f417'}.single_job_listing .meta .date-posted:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f307'}.single_job_listing .meta .position-filled:before{display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-family:'Genericons';text-decoration:none;font-weight:normal;font-style:normal;vertical-align:top;font-size:16px;margin:0 2px 0 0;*overflow:auto;*zoom:1;*display:inline;content:'\f424'}.single_job_listing .application{overflow:hidden;zoom:1;padding-left:20px;margin:0 0 1em}.single_job_listing .application .application_button,.single_job_listing .application .application_details{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.single_job_listing .application .application_button{text-align:center;font-size:1.2em;line-height:1em;width:33.3%;float:left;margin:0 0 0 -20px;padding:.8333333333333334em}.single_job_listing .application .application_details{float:right;width:66.6%;border:1px solid #eee;padding:.75em 1em 0;margin:0;line-height:1.5em;display:block;position:relative}.single_job_listing .application .application_details p{margin:0 0 .75em}.single_job_listing .application .application_details:before{content:"";position:absolute;margin:0 0 0 -10px;left:0;top:1em;width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #eee}.single_job_listing .application .application_details:after{content:"";position:absolute;margin:1px 0 0 -9px;top:1em;left:0;width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-right:9px solid #fff}.job_filters{background:#eee;zoom:1}.job_filters:before,.job_filters:after{content:"";display:table}.job_filters:after{clear:both}.job_filters .search_jobs{padding:1em;zoom:1}.job_filters .search_jobs:before,.job_filters .search_jobs:after{content:"";display:table}.job_filters .search_jobs:after{clear:both}.job_filters .search_jobs div{width:50%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job_filters .search_jobs div label{display:none}.job_filters .search_jobs div.search_keywords,.job_filters .search_jobs div.filter_first{float:left;padding-right:.5em}.job_filters .search_jobs div.search_location,.job_filters .search_jobs div.filter_last{float:right;padding-left:.5em}.job_filters .search_jobs div.search_categories,.job_filters .search_jobs div.filter_wide{padding-top:.5em;clear:both;width:100%}.job_filters .search_jobs div a{padding:.25em}.job_filters .search_jobs div a.active{background:#ddd;text-decoration:none}.job_filters .search_jobs input,.job_filters .search_jobs select{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%}.job_filters .job_types{list-style:none outside;margin:0;padding:0;font-size:.83em;background:#f9f9f9;border-top:1px solid #e5e5e5;zoom:1}.job_filters .job_types:before,.job_filters .job_types:after{content:"";display:table}.job_filters .job_types:after{clear:both}.job_filters .job_types li{margin:0;padding:.5em 1em;float:left;border-right:1px solid #eee}.job_filters .job_types li:last-child{border-right:0}.job_filters .showing_jobs{padding:.5em 1em;display:none;font-size:.83em;background:#f9f9f9;border-top:1px solid #e5e5e5}.job_filters .showing_jobs a{float:right;padding-left:10px}.load_more_jobs{text-align:center;display:block;padding:1em 1em 1em 2em;border-bottom:1px solid #eee;font-weight:bold}.load_more_jobs.loading{background:url(../images/ajax-loader.gif) no-repeat center}.load_more_jobs.loading strong{visibility:hidden}.load_more_jobs:hover,.load_more_jobs:focus{background-color:#fcfcfc}.job_listing_preview{padding:0 1em 1em;border:5px solid #eee}.job_listing_preview_title,.entry-content .job_listing_preview_title{padding:.5em 1em;vertical-align:middle;position:relative;background:#eee}.job_listing_preview_title h2,.entry-content .job_listing_preview_title h2{margin:0;clear:none}.job_listing_preview_title .button,.entry-content .job_listing_preview_title .button{float:right;margin-left:.25em}.job_summary_shortcode{border:1px solid #ccc;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;text-align:center;position:relative;box-shadow:0 2px 4px rgba(0,0,0,0.1),inset 0 1px 0 rgba(255,255,255,0.4);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.job_summary_shortcode.aligncenter{display:block;margin:2em auto 2em}.job_summary_shortcode.alignleft{float:left;margin:0 2em 2em 0}.job_summary_shortcode.alignright{float:right;margin:0 0 2em 2em}.job_summary_shortcode a{text-decoration:none;color:inherit}.job_summary_shortcode img{margin:0;padding:0;display:block;width:100%;-moz-border-radius:0;-webkit-border-radius:0;-moz-border-top-left-radius:3px;-moz-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-radius:0;border-top-left-radius:3px;border-top-right-radius:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,0.4)}.job_summary_shortcode .job_summary_content{padding:0 1em}.job_summary_shortcode .meta{font-style:italic;color:#777}.job_summary_shortcode .job-type{-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em;color:#fff;text-shadow:0 1px 0 rgba(255,255,255,0.5);box-shadow:0 2px 4px rgba(0,0,0,0.1),inset 0 1px 0 rgba(255,255,255,0.4);position:absolute;top:0;right:0;padding:.5em;height:1em;width:auto;min-width:1em;font-size:1em;text-align:center;vertical-align:middle;line-height:1em;margin:-0.5em -0.5em 0 0}.job_summary_shortcode .job-type.full-time{background-color:#90da36}.job_summary_shortcode .job-type.part-time{background-color:#f08d3c}.job_summary_shortcode .job-type.temporary{background-color:#d93674}.job_summary_shortcode .job-type.freelance{background-color:#39c}.job_summary_shortcode .job-type.internship{background-color:#6033cc}#job-manager-job-dashboard table ul.job-dashboard-actions{margin:0;padding:0;visibility:hidden;font-size:.92em}#job-manager-job-dashboard table ul.job-dashboard-actions li{float:none;display:inline;padding:0;margin:0 .5em 0 0;font-weight:normal;list-style:none outside}#job-manager-job-dashboard table ul.job-dashboard-actions li:after{padding:0 0 0 .5em;content:"\2023"}#job-manager-job-dashboard table ul.job-dashboard-actions li:last-child:after{content:''}#job-manager-job-dashboard table ul.job-dashboard-actions li .job-dashboard-action-delete{color:red}#job-manager-job-dashboard table tr:hover ul.job-dashboard-actions,#job-manager-job-dashboard table tr:focus ul.job-dashboard-actions{visibility:visible}#job-manager-job-dashboard table .filled,#job-manager-job-dashboard table .expires{text-align:center}
assets/css/frontend.less CHANGED
@@ -287,6 +287,15 @@ ul.job_listings {
287
  }
288
  }
289
  }
 
 
 
 
 
 
 
 
 
290
  }
291
  }
292
  .widget {
287
  }
288
  }
289
  }
290
+ &.job_position_featured {
291
+ a {
292
+ background: #fefee5;
293
+
294
+ &:hover, &:focus {
295
+ background-color: #fefed8;
296
+ }
297
+ }
298
+ }
299
  }
300
  }
301
  .widget {
includes/admin/class-wp-job-manager-cpt.php CHANGED
@@ -234,10 +234,11 @@ class WP_Job_Manager_CPT {
234
  $columns["position"] = __( "Position", "job_manager" );
235
  $columns["company"] = __( "Company", "job_manager" );
236
  $columns["job_posted"] = __( "Posted", "job_manager" );
237
- $columns["job_expires"] = __( "Expires", "job_manager" );
238
  if ( get_option( 'job_manager_enable_categories' ) )
239
- $columns["job_listing_category"] = __( "Categories", "job_manager" );
240
  $columns['status'] = __( "Job Status", "job_manager" );
 
241
  $columns['filled'] = __( "Filled?", "job_manager" );
242
  $columns["job_actions"] = __( "Actions", "job_manager" );
243
 
@@ -268,13 +269,14 @@ class WP_Job_Manager_CPT {
268
  break;
269
  case "company" :
270
  the_company_logo();
271
- the_company_twitter();
272
 
273
  if ( get_the_company_website() )
274
  the_company_name( '<strong><a href="' . get_the_company_website() . '">', '</a></strong>' );
275
  else
276
  the_company_name( '<strong>', '</strong> ' );
277
 
 
 
278
  the_company_tagline( '<span class="tagline">', '</span>' );
279
  break;
280
  case "job_listing_category" :
@@ -286,6 +288,9 @@ class WP_Job_Manager_CPT {
286
  case "filled" :
287
  if ( is_position_filled( $post ) ) echo '&#10004;'; else echo '&ndash;';
288
  break;
 
 
 
289
  case "job_posted" :
290
  echo '<strong>' . date_i18n( get_option( 'date_format' ), strtotime( $post->post_date ) ) . '</strong><span>';
291
  echo ( empty( $post->post_author ) ? __( 'by a guest', 'job_manager' ) : sprintf( __( 'by %s', 'job_manager' ), '<a href="' . get_edit_user_link( $post->post_author ) . '">' . get_the_author() . '</a>' ) ) . '</span>';
234
  $columns["position"] = __( "Position", "job_manager" );
235
  $columns["company"] = __( "Company", "job_manager" );
236
  $columns["job_posted"] = __( "Posted", "job_manager" );
237
+ $columns["job_expires"] = __( "Expires", "job_manager" );
238
  if ( get_option( 'job_manager_enable_categories' ) )
239
+ $columns["job_listing_category"] = __( "Categories", "job_manager" );
240
  $columns['status'] = __( "Job Status", "job_manager" );
241
+ $columns['featured'] = __( "Featured?", "job_manager" );
242
  $columns['filled'] = __( "Filled?", "job_manager" );
243
  $columns["job_actions"] = __( "Actions", "job_manager" );
244
 
269
  break;
270
  case "company" :
271
  the_company_logo();
 
272
 
273
  if ( get_the_company_website() )
274
  the_company_name( '<strong><a href="' . get_the_company_website() . '">', '</a></strong>' );
275
  else
276
  the_company_name( '<strong>', '</strong> ' );
277
 
278
+ the_company_twitter( '@' );
279
+
280
  the_company_tagline( '<span class="tagline">', '</span>' );
281
  break;
282
  case "job_listing_category" :
288
  case "filled" :
289
  if ( is_position_filled( $post ) ) echo '&#10004;'; else echo '&ndash;';
290
  break;
291
+ case "featured" :
292
+ if ( is_position_featured( $post ) ) echo '&#10004;'; else echo '&ndash;';
293
+ break;
294
  case "job_posted" :
295
  echo '<strong>' . date_i18n( get_option( 'date_format' ), strtotime( $post->post_date ) ) . '</strong><span>';
296
  echo ( empty( $post->post_author ) ? __( 'by a guest', 'job_manager' ) : sprintf( __( 'by %s', 'job_manager' ), '<a href="' . get_edit_user_link( $post->post_author ) . '">' . get_the_author() . '</a>' ) ) . '</span>';
includes/admin/class-wp-job-manager-writepanels.php CHANGED
@@ -56,6 +56,11 @@ class WP_Job_Manager_Writepanels {
56
  '_filled' => array(
57
  'label' => __( 'Position filled?', 'job_manager' ),
58
  'type' => 'checkbox'
 
 
 
 
 
59
  )
60
  ) );
61
  }
56
  '_filled' => array(
57
  'label' => __( 'Position filled?', 'job_manager' ),
58
  'type' => 'checkbox'
59
+ ),
60
+ '_featured' => array(
61
+ 'label' => __( 'Feature this job listing?', 'job_manager' ),
62
+ 'type' => 'checkbox',
63
+ 'description' => __( 'Featured listings will be sticky during searches, and can be styled differently.', 'job_manager' )
64
  )
65
  ) );
66
  }
includes/class-wp-job-manager-install.php CHANGED
@@ -16,7 +16,10 @@ class WP_Job_Manager_Install {
16
  public function __construct() {
17
  $this->init_user_roles();
18
  $this->default_terms();
 
19
  $this->cron();
 
 
20
  }
21
 
22
  /**
@@ -67,6 +70,21 @@ class WP_Job_Manager_Install {
67
  update_option( 'job_manager_installed_terms', 1 );
68
  }
69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  /**
71
  * Setup cron jobs
72
  */
16
  public function __construct() {
17
  $this->init_user_roles();
18
  $this->default_terms();
19
+ $this->default_meta();
20
  $this->cron();
21
+ delete_transient( 'wp_job_manager_addons_html' );
22
+ update_option( 'wp_job_manager_version', JOB_MANAGER_VERSION );
23
  }
24
 
25
  /**
70
  update_option( 'job_manager_installed_terms', 1 );
71
  }
72
 
73
+ /**
74
+ * Add default meta values for all posts
75
+ */
76
+ public function default_meta() {
77
+ $jobs = get_posts( array(
78
+ 'post_type' => 'job_listing',
79
+ 'posts_per_page' => -1,
80
+ 'fields' => 'ids'
81
+ ) );
82
+
83
+ foreach ( $jobs as $job ) {
84
+ add_post_meta( $job, '_featured', 0, true );
85
+ }
86
+ }
87
+
88
  /**
89
  * Setup cron jobs
90
  */
includes/class-wp-job-manager-post-types.php CHANGED
@@ -13,6 +13,8 @@ class WP_Job_Manager_Post_Types {
13
  add_action( 'job_manager_check_for_expired_jobs', array( $this, 'check_for_expired_jobs' ) );
14
  add_action( 'pending_to_publish', array( $this, 'set_expirey' ) );
15
  add_action( 'preview_to_publish', array( $this, 'set_expirey' ) );
 
 
16
 
17
  add_filter( 'the_job_description', 'wptexturize' );
18
  add_filter( 'the_job_description', 'convert_smilies' );
@@ -322,8 +324,12 @@ class WP_Job_Manager_Post_Types {
322
  if ( $post->post_type !== 'job_listing' )
323
  return;
324
 
325
- // Expires
326
- $duration = absint( get_option( 'job_manager_submission_duration' ) );
 
 
 
 
327
 
328
  if ( $duration ) {
329
  $expires = date( 'Y-m-d H:i:s', strtotime( "+{$duration} days", current_time( 'timestamp' ) ) );
13
  add_action( 'job_manager_check_for_expired_jobs', array( $this, 'check_for_expired_jobs' ) );
14
  add_action( 'pending_to_publish', array( $this, 'set_expirey' ) );
15
  add_action( 'preview_to_publish', array( $this, 'set_expirey' ) );
16
+ add_action( 'draft_to_publish', array( $this, 'set_expirey' ) );
17
+ add_action( 'auto-draft_to_publish', array( $this, 'set_expirey' ) );
18
 
19
  add_filter( 'the_job_description', 'wptexturize' );
20
  add_filter( 'the_job_description', 'convert_smilies' );
324
  if ( $post->post_type !== 'job_listing' )
325
  return;
326
 
327
+ // Get duration from the product if set...
328
+ $duration = get_post_meta( $post->ID, '_job_duration', true );
329
+
330
+ // ...otherwise use the global option
331
+ if ( ! $duration )
332
+ $duration = absint( get_option( 'job_manager_submission_duration' ) );
333
 
334
  if ( $duration ) {
335
  $expires = date( 'Y-m-d H:i:s', strtotime( "+{$duration} days", current_time( 'timestamp' ) ) );
includes/class-wp-job-manager-shortcodes.php CHANGED
@@ -162,8 +162,8 @@ class WP_Job_Manager_Shortcodes {
162
 
163
  extract( $atts = shortcode_atts( apply_filters( 'job_manager_output_jobs_defaults', array(
164
  'per_page' => get_option( 'job_manager_per_page' ),
165
- 'orderby' => 'date',
166
- 'order' => 'desc',
167
  'show_filters' => true,
168
  'show_categories' => get_option( 'job_manager_enable_categories' ),
169
  'categories' => ''
162
 
163
  extract( $atts = shortcode_atts( apply_filters( 'job_manager_output_jobs_defaults', array(
164
  'per_page' => get_option( 'job_manager_per_page' ),
165
+ 'orderby' => 'featured',
166
+ 'order' => 'DESC',
167
  'show_filters' => true,
168
  'show_categories' => get_option( 'job_manager_enable_categories' ),
169
  'categories' => ''
includes/forms/class-wp-job-manager-form-submit-job.php CHANGED
@@ -52,17 +52,24 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
52
  }
53
  }
54
 
 
 
 
 
 
 
 
55
  /**
56
  * Increase step from outside of the class
57
  */
58
- public function next_step() {
59
  self::$step ++;
60
  }
61
 
62
  /**
63
  * Decrease step from outside of the class
64
  */
65
- public function previous_step() {
66
  self::$step --;
67
  }
68
 
@@ -431,6 +438,7 @@ class WP_Job_Manager_Form_Submit_Job extends WP_Job_Manager_Form {
431
  update_post_meta( self::$job_id, '_company_twitter', $values['company']['company_twitter'] );
432
  update_post_meta( self::$job_id, '_company_logo', $values['company']['company_logo'] );
433
  update_post_meta( self::$job_id, '_filled', 0 );
 
434
 
435
  // And user meta to save time in future
436
  if ( is_user_logged_in() ) {
52
  }
53
  }
54
 
55
+ /**
56
+ * Get step from outside of the class
57
+ */
58
+ public static function get_step() {
59
+ return self::$step;
60
+ }
61
+
62
  /**
63
  * Increase step from outside of the class
64
  */
65
+ public static function next_step() {
66
  self::$step ++;
67
  }
68
 
69
  /**
70
  * Decrease step from outside of the class
71
  */
72
+ public static function previous_step() {
73
  self::$step --;
74
  }
75
 
438
  update_post_meta( self::$job_id, '_company_twitter', $values['company']['company_twitter'] );
439
  update_post_meta( self::$job_id, '_company_logo', $values['company']['company_logo'] );
440
  update_post_meta( self::$job_id, '_filled', 0 );
441
+ update_post_meta( self::$job_id, '_featured', 0 );
442
 
443
  // And user meta to save time in future
444
  if ( is_user_logged_in() ) {
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=mike.jol
4
  Tags: job listing, job board, job, jobs, company
5
  Requires at least: 3.5
6
  Tested up to: 3.6
7
- Stable tag: 1.1.3
8
 
9
  Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.
10
 
@@ -72,6 +72,12 @@ The manual installation method involves downloading the plugin and uploading it
72
 
73
  == Changelog ==
74
 
 
 
 
 
 
 
75
  = 1.1.3 =
76
  * Corrected form field label
77
  * Added french translation by Remi Corson
4
  Tags: job listing, job board, job, jobs, company
5
  Requires at least: 3.5
6
  Tested up to: 3.6
7
+ Stable tag: 1.2.0
8
 
9
  Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.
10
 
72
 
73
  == Changelog ==
74
 
75
+ = 1.2.0 =
76
+ * Support for featured job listings
77
+ * Support for meta job duration
78
+ * set_expirey when publishing jobs from admin manually
79
+ * Update handler
80
+
81
  = 1.1.3 =
82
  * Corrected form field label
83
  * Added french translation by Remi Corson
wp-job-manager-functions.php CHANGED
@@ -86,7 +86,53 @@ function get_job_listings( $args = array() ) {
86
  if ( empty( $query_args['tax_query'] ) )
87
  unset( $query_args['tax_query'] );
88
 
89
- return new WP_Query( $query_args );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
  endif;
92
 
@@ -95,7 +141,7 @@ if ( ! function_exists( 'get_job_listing_types' ) ) :
95
  * Outputs a form to submit a new job to the site from the frontend.
96
  *
97
  * @access public
98
- * @return void
99
  */
100
  function get_job_listing_types() {
101
  return get_terms( "job_listing_type", array(
86
  if ( empty( $query_args['tax_query'] ) )
87
  unset( $query_args['tax_query'] );
88
 
89
+ if ( $args['orderby'] == 'featured' ) {
90
+ $query_args['orderby'] = 'meta_key';
91
+ $query_args['meta_key'] = '_featured';
92
+ add_filter( 'posts_clauses', 'order_featured_job_listing' );
93
+ }
94
+
95
+ $result = new WP_Query( $query_args );
96
+
97
+ remove_filter( 'posts_clauses', 'order_featured_job_listing' );
98
+
99
+ return $result;
100
+ }
101
+ endif;
102
+
103
+ if ( ! function_exists( 'order_featured_job_listing' ) ) :
104
+ /**
105
+ * WP Core doens't let us change the sort direction for invidual orderby params - http://core.trac.wordpress.org/ticket/17065
106
+ *
107
+ * @access public
108
+ * @param array $args
109
+ * @return array
110
+ */
111
+ function order_featured_job_listing( $args ) {
112
+ global $wpdb;
113
+
114
+ $args['orderby'] = "$wpdb->postmeta.meta_value+0 DESC, $wpdb->posts.post_date DESC";
115
+
116
+ return $args;
117
+ }
118
+ endif;
119
+
120
+ if ( ! function_exists( 'get_featured_job_ids' ) ) :
121
+ /**
122
+ * Gets the ids of featured jobs.
123
+ *
124
+ * @access public
125
+ * @return array
126
+ */
127
+ function get_featured_job_ids() {
128
+ return get_posts( array(
129
+ 'posts_per_page' => -1,
130
+ 'post_type' => 'job_listing',
131
+ 'post_status' => 'publish',
132
+ 'meta_key' => '_featured',
133
+ 'meta_value' => '1',
134
+ 'fields' => 'ids'
135
+ ) );
136
  }
137
  endif;
138
 
141
  * Outputs a form to submit a new job to the site from the frontend.
142
  *
143
  * @access public
144
+ * @return array
145
  */
146
  function get_job_listing_types() {
147
  return get_terms( "job_listing_type", array(
wp-job-manager-template.php CHANGED
@@ -166,6 +166,18 @@ function is_position_filled( $post = null ) {
166
  return $post->_filled ? true : false;
167
  }
168
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  /**
170
  * the_job_permalink function.
171
  *
@@ -494,5 +506,8 @@ function get_job_listing_class( $class = '', $post_id = null ) {
494
  if ( is_position_filled( $post ) )
495
  $classes[] = 'job_position_filled';
496
 
 
 
 
497
  return get_post_class( $classes, $post->ID );
498
  }
166
  return $post->_filled ? true : false;
167
  }
168
 
169
+ /**
170
+ * Return whether or not the position has been featured
171
+ *
172
+ * @param object $post
173
+ * @return boolean
174
+ */
175
+ function is_position_featured( $post = null ) {
176
+ $post = get_post( $post );
177
+
178
+ return $post->_featured ? true : false;
179
+ }
180
+
181
  /**
182
  * the_job_permalink function.
183
  *
506
  if ( is_position_filled( $post ) )
507
  $classes[] = 'job_position_filled';
508
 
509
+ if ( is_position_featured( $post ) )
510
+ $classes[] = 'job_position_featured';
511
+
512
  return get_post_class( $classes, $post->ID );
513
  }
wp-job-manager.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WP Job Manager
4
  Plugin URI: http://mikejolley.com/projects/wp-job-manager/
5
  Description: Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.
6
- Version: 1.1.3
7
  Author: Mike Jolley
8
  Author URI: http://mikejolley.com
9
  Requires at least: 3.5
@@ -28,7 +28,7 @@ class WP_Job_Manager {
28
  */
29
  public function __construct() {
30
  // Define constants
31
- define( 'JOB_MANAGER_VERSION', '1.1.3' );
32
  define( 'JOB_MANAGER_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
33
  define( 'JOB_MANAGER_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
34
 
@@ -50,7 +50,7 @@ class WP_Job_Manager {
50
 
51
  // Activation - works with symlinks
52
  register_activation_hook( basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ), array( $this->post_types, 'register_post_types' ), 10 );
53
- register_activation_hook( basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ), create_function( "", "include( 'includes/class-wp-job-manager-install.php' );" ), 10 );
54
  register_activation_hook( basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ), 'flush_rewrite_rules', 15 );
55
 
56
  // Actions
@@ -59,6 +59,15 @@ class WP_Job_Manager {
59
  add_action( 'switch_theme', 'flush_rewrite_rules', 15 );
60
  add_action( 'widgets_init', create_function( "", "include_once( 'includes/class-wp-job-manager-widgets.php' );" ) );
61
  add_action( 'wp_enqueue_scripts', array( $this, 'frontend_scripts' ) );
 
 
 
 
 
 
 
 
 
62
  }
63
 
64
  /**
3
  Plugin Name: WP Job Manager
4
  Plugin URI: http://mikejolley.com/projects/wp-job-manager/
5
  Description: Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.
6
+ Version: 1.2.0
7
  Author: Mike Jolley
8
  Author URI: http://mikejolley.com
9
  Requires at least: 3.5
28
  */
29
  public function __construct() {
30
  // Define constants
31
+ define( 'JOB_MANAGER_VERSION', '1.2.0' );
32
  define( 'JOB_MANAGER_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
33
  define( 'JOB_MANAGER_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
34
 
50
 
51
  // Activation - works with symlinks
52
  register_activation_hook( basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ), array( $this->post_types, 'register_post_types' ), 10 );
53
+ register_activation_hook( basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ), create_function( "", "include_once( 'includes/class-wp-job-manager-install.php' );" ), 10 );
54
  register_activation_hook( basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ), 'flush_rewrite_rules', 15 );
55
 
56
  // Actions
59
  add_action( 'switch_theme', 'flush_rewrite_rules', 15 );
60
  add_action( 'widgets_init', create_function( "", "include_once( 'includes/class-wp-job-manager-widgets.php' );" ) );
61
  add_action( 'wp_enqueue_scripts', array( $this, 'frontend_scripts' ) );
62
+ add_action( 'admin_init', array( $this, 'updater' ) );
63
+ }
64
+
65
+ /**
66
+ * Handle Updates
67
+ */
68
+ public function updater() {
69
+ if ( version_compare( JOB_MANAGER_VERSION, get_option( 'wp_job_manager_version' ), '>' ) )
70
+ include_once( 'includes/class-wp-job-manager-install.php' );
71
  }
72
 
73
  /**