WP Job Manager - Version 1.0.1

Version Description

  • Slight tweak to listing field filters in admin.
  • 'attributes' argument for admin settings.
Download this release

Release Info

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

Code changes from version 1.0.0 to 1.0.1

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-bottom:1px solid #eee;overflow:hidden}.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}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 .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{float:left;padding-right:.5em}.job_filters .search_jobs div.search_location{float:right;padding-left:.5em}.job_filters .search_jobs div.search_categories{padding-top:.5em;clear:both;width:100%}.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 .reset,.job_filters .showing_jobs .rss_link{float:right}.job_filters .showing_jobs .rss_link{padding-right: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;margin-bottom:0;vertical-align:middle;position:relative;background:#eee}.job_listing_preview_title .button,.entry-content .job_listing_preview_title .button{float:right}.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-bottom:1px solid #eee;overflow:hidden}.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}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{float:left;padding-right:.5em}.job_filters .search_jobs div.search_location{float:right;padding-left:.5em}.job_filters .search_jobs div.search_categories{padding-top:.5em;clear:both;width:100%}.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 .reset,.job_filters .showing_jobs .rss_link{float:right}.job_filters .showing_jobs .rss_link{padding-right: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;margin-bottom:0;vertical-align:middle;position:relative;background:#eee}.job_listing_preview_title .button,.entry-content .job_listing_preview_title .button{float:right}.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
@@ -322,6 +322,9 @@ ul.job_listings {
322
  }
323
  }
324
  .job-manager, .job_listing, .job-types {
 
 
 
325
  .full-time {
326
  color: @full-time;
327
  }
322
  }
323
  }
324
  .job-manager, .job_listing, .job-types {
325
+ .job-type {
326
+ color: @part-time;
327
+ }
328
  .full-time {
329
  color: @full-time;
330
  }
includes/admin/class-wp-job-manager-settings.php CHANGED
@@ -31,27 +31,30 @@ class WP_Job_Manager_Settings {
31
  __( 'Job Listings', 'job_manager' ),
32
  array(
33
  array(
34
- 'name' => 'job_manager_per_page',
35
- 'std' => '10',
36
- 'placeholder' => '',
37
- 'label' => __( 'Jobs per page', 'job_manager' ),
38
- 'desc' => __( 'How many jobs should be shown per page by default?', 'job_manager' )
 
39
  ),
40
  array(
41
- 'name' => 'job_manager_hide_filled_positions',
42
- 'std' => '0',
43
- 'label' => __( 'Filled positions', 'job_manager' ),
44
- 'cb_label' => __( 'Hide filled positions', 'job_manager' ),
45
- 'desc' => __( 'If enabled, filled positions will be hidden from the job list.', 'job_manager' ),
46
- 'type' => 'checkbox'
 
47
  ),
48
  array(
49
- 'name' => 'job_manager_enable_categories',
50
- 'std' => '0',
51
- 'label' => __( 'Job categories', 'job_manager' ),
52
- 'cb_label' => __( 'Enable job categories', 'job_manager' ),
53
- 'desc' => __( 'Choose whether to enable job categories. Categories must be setup by an admin for users to choose during job submission.', 'job_manager' ),
54
- 'type' => 'checkbox'
 
55
  ),
56
  ),
57
  ),
@@ -59,34 +62,38 @@ class WP_Job_Manager_Settings {
59
  __( 'Job Submission', 'job_manager' ),
60
  array(
61
  array(
62
- 'name' => 'job_manager_enable_registration',
63
- 'std' => '1',
64
- 'label' => __( 'Account creation', 'job_manager' ),
65
- 'cb_label' => __( 'Allow account creation', 'job_manager' ),
66
- 'desc' => __( 'If enabled, non-logged in users will be able to create an account by entering their email address on the job submission form.', 'job_manager' ),
67
- 'type' => 'checkbox'
 
68
  ),
69
  array(
70
- 'name' => 'job_manager_user_requires_account',
71
- 'std' => '1',
72
- 'label' => __( 'Account required', 'job_manager' ),
73
- 'cb_label' => __( 'Job submission requires an account', 'job_manager' ),
74
- 'desc' => __( 'If disabled, non-logged in users will be able to submit job listings without creating an account.', 'job_manager' ),
75
- 'type' => 'checkbox'
 
76
  ),
77
  array(
78
- 'name' => 'job_manager_submission_requires_approval',
79
- 'std' => '1',
80
- 'label' => __( 'Approval Required', 'job_manager' ),
81
- 'cb_label' => __( 'New submissions require admin approval', 'job_manager' ),
82
- 'desc' => __( 'If enabled, new submissions will be inactive, pending admin approval.', 'job_manager' ),
83
- 'type' => 'checkbox'
 
84
  ),
85
  array(
86
- 'name' => 'job_manager_submission_duration',
87
- 'std' => '30',
88
- 'label' => __( 'Listing duration', 'job_manager' ),
89
- 'desc' => __( 'How many <strong>days</strong> listings are live before expiring. Can be left blank to never expire.', 'job_manager' ),
 
90
  ),
91
  )
92
  ),
@@ -149,20 +156,23 @@ class WP_Job_Manager_Settings {
149
 
150
  foreach ( $section[1] as $option ) {
151
 
152
- $placeholder = ( ! empty( $option['placeholder'] ) ) ? 'placeholder="' . $option['placeholder'] . '"' : '';
153
- $class = ! empty( $option['class'] ) ? $option['class'] : '';
 
 
 
154
 
155
- echo '<tr valign="top" class="' . $class . '"><th scope="row"><label for="setting-' . $option['name'] . '">' . $option['label'] . '</a></th><td>';
156
-
157
- if ( ! isset( $option['type'] ) ) $option['type'] = '';
158
 
159
- $value = get_option( $option['name'] );
160
 
161
  switch ( $option['type'] ) {
162
 
163
  case "checkbox" :
164
 
165
- ?><label><input id="setting-<?php echo $option['name']; ?>" name="<?php echo $option['name']; ?>" type="checkbox" value="1" <?php checked( '1', $value ); ?> /> <?php echo $option['cb_label']; ?></label><?php
166
 
167
  if ( $option['desc'] )
168
  echo ' <p class="description">' . $option['desc'] . '</p>';
@@ -170,7 +180,7 @@ class WP_Job_Manager_Settings {
170
  break;
171
  case "textarea" :
172
 
173
- ?><textarea id="setting-<?php echo $option['name']; ?>" class="large-text" cols="50" rows="3" name="<?php echo $option['name']; ?>" <?php echo $placeholder; ?>><?php echo esc_textarea( $value ); ?></textarea><?php
174
 
175
  if ( $option['desc'] )
176
  echo ' <p class="description">' . $option['desc'] . '</p>';
@@ -178,7 +188,7 @@ class WP_Job_Manager_Settings {
178
  break;
179
  case "select" :
180
 
181
- ?><select id="setting-<?php echo $option['name']; ?>" class="regular-text" name="<?php echo $option['name']; ?>"><?php
182
  foreach( $option['options'] as $key => $name )
183
  echo '<option value="' . esc_attr( $key ) . '" ' . selected( $value, $key, false ) . '>' . esc_html( $name ) . '</option>';
184
  ?></select><?php
@@ -189,7 +199,7 @@ class WP_Job_Manager_Settings {
189
  break;
190
  default :
191
 
192
- ?><input id="setting-<?php echo $option['name']; ?>" class="regular-text" type="text" name="<?php echo $option['name']; ?>" value="<?php esc_attr_e( $value ); ?>" <?php echo $placeholder; ?> /><?php
193
 
194
  if ( $option['desc'] )
195
  echo ' <p class="description">' . $option['desc'] . '</p>';
31
  __( 'Job Listings', 'job_manager' ),
32
  array(
33
  array(
34
+ 'name' => 'job_manager_per_page',
35
+ 'std' => '10',
36
+ 'placeholder' => '',
37
+ 'label' => __( 'Jobs per page', 'job_manager' ),
38
+ 'desc' => __( 'How many jobs should be shown per page by default?', 'job_manager' ),
39
+ 'attributes' => array()
40
  ),
41
  array(
42
+ 'name' => 'job_manager_hide_filled_positions',
43
+ 'std' => '0',
44
+ 'label' => __( 'Filled positions', 'job_manager' ),
45
+ 'cb_label' => __( 'Hide filled positions', 'job_manager' ),
46
+ 'desc' => __( 'If enabled, filled positions will be hidden from the job list.', 'job_manager' ),
47
+ 'type' => 'checkbox',
48
+ 'attributes' => array()
49
  ),
50
  array(
51
+ 'name' => 'job_manager_enable_categories',
52
+ 'std' => '0',
53
+ 'label' => __( 'Job categories', 'job_manager' ),
54
+ 'cb_label' => __( 'Enable job categories', 'job_manager' ),
55
+ 'desc' => __( 'Choose whether to enable job categories. Categories must be setup by an admin for users to choose during job submission.', 'job_manager' ),
56
+ 'type' => 'checkbox',
57
+ 'attributes' => array()
58
  ),
59
  ),
60
  ),
62
  __( 'Job Submission', 'job_manager' ),
63
  array(
64
  array(
65
+ 'name' => 'job_manager_enable_registration',
66
+ 'std' => '1',
67
+ 'label' => __( 'Account creation', 'job_manager' ),
68
+ 'cb_label' => __( 'Allow account creation', 'job_manager' ),
69
+ 'desc' => __( 'If enabled, non-logged in users will be able to create an account by entering their email address on the job submission form.', 'job_manager' ),
70
+ 'type' => 'checkbox',
71
+ 'attributes' => array()
72
  ),
73
  array(
74
+ 'name' => 'job_manager_user_requires_account',
75
+ 'std' => '1',
76
+ 'label' => __( 'Account required', 'job_manager' ),
77
+ 'cb_label' => __( 'Job submission requires an account', 'job_manager' ),
78
+ 'desc' => __( 'If disabled, non-logged in users will be able to submit job listings without creating an account.', 'job_manager' ),
79
+ 'type' => 'checkbox',
80
+ 'attributes' => array()
81
  ),
82
  array(
83
+ 'name' => 'job_manager_submission_requires_approval',
84
+ 'std' => '1',
85
+ 'label' => __( 'Approval Required', 'job_manager' ),
86
+ 'cb_label' => __( 'New submissions require admin approval', 'job_manager' ),
87
+ 'desc' => __( 'If enabled, new submissions will be inactive, pending admin approval.', 'job_manager' ),
88
+ 'type' => 'checkbox',
89
+ 'attributes' => array()
90
  ),
91
  array(
92
+ 'name' => 'job_manager_submission_duration',
93
+ 'std' => '30',
94
+ 'label' => __( 'Listing duration', 'job_manager' ),
95
+ 'desc' => __( 'How many <strong>days</strong> listings are live before expiring. Can be left blank to never expire.', 'job_manager' ),
96
+ 'attributes' => array()
97
  ),
98
  )
99
  ),
156
 
157
  foreach ( $section[1] as $option ) {
158
 
159
+ $placeholder = ( ! empty( $option['placeholder'] ) ) ? 'placeholder="' . $option['placeholder'] . '"' : '';
160
+ $class = ! empty( $option['class'] ) ? $option['class'] : '';
161
+ $value = get_option( $option['name'] );
162
+ $option['type'] = ! empty( $option['type'] ) ? $option['type'] : '';
163
+ $attributes = array();
164
 
165
+ if ( ! empty( $option['attributes'] ) && is_array( $option['attributes'] ) )
166
+ foreach ( $option['attributes'] as $attribute_name => $attribute_value )
167
+ $attributes[] = esc_attr( $attribute_name ) . '="' . esc_attr( $attribute_value ) . '"';
168
 
169
+ echo '<tr valign="top" class="' . $class . '"><th scope="row"><label for="setting-' . $option['name'] . '">' . $option['label'] . '</a></th><td>';
170
 
171
  switch ( $option['type'] ) {
172
 
173
  case "checkbox" :
174
 
175
+ ?><label><input id="setting-<?php echo $option['name']; ?>" name="<?php echo $option['name']; ?>" type="checkbox" value="1" <?php echo implode( ' ', $attributes ); ?> <?php checked( '1', $value ); ?> /> <?php echo $option['cb_label']; ?></label><?php
176
 
177
  if ( $option['desc'] )
178
  echo ' <p class="description">' . $option['desc'] . '</p>';
180
  break;
181
  case "textarea" :
182
 
183
+ ?><textarea id="setting-<?php echo $option['name']; ?>" class="large-text" cols="50" rows="3" name="<?php echo $option['name']; ?>" <?php echo implode( ' ', $attributes ); ?> <?php echo $placeholder; ?>><?php echo esc_textarea( $value ); ?></textarea><?php
184
 
185
  if ( $option['desc'] )
186
  echo ' <p class="description">' . $option['desc'] . '</p>';
188
  break;
189
  case "select" :
190
 
191
+ ?><select id="setting-<?php echo $option['name']; ?>" class="regular-text" name="<?php echo $option['name']; ?>" <?php echo implode( ' ', $attributes ); ?>><?php
192
  foreach( $option['options'] as $key => $name )
193
  echo '<option value="' . esc_attr( $key ) . '" ' . selected( $value, $key, false ) . '>' . esc_html( $name ) . '</option>';
194
  ?></select><?php
199
  break;
200
  default :
201
 
202
+ ?><input id="setting-<?php echo $option['name']; ?>" class="regular-text" type="text" name="<?php echo $option['name']; ?>" value="<?php esc_attr_e( $value ); ?>" <?php echo implode( ' ', $attributes ); ?> <?php echo $placeholder; ?> /><?php
203
 
204
  if ( $option['desc'] )
205
  echo ' <p class="description">' . $option['desc'] . '</p>';
includes/admin/class-wp-job-manager-writepanels.php CHANGED
@@ -13,8 +13,16 @@ class WP_Job_Manager_Writepanels {
13
  add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
14
  add_action( 'save_post', array( $this, 'save_post' ), 1, 2 );
15
  add_action( 'job_manager_save_job_listing', array( $this, 'save_job_listing_data' ), 1, 2 );
 
16
 
17
- $this->job_listing_fields = apply_filters( 'job_manager_job_listing_data_fields', array(
 
 
 
 
 
 
 
18
  '_job_location' => array(
19
  'label' => __( 'Job location', 'job_manager' ),
20
  'placeholder' => __( 'e.g. "London, UK", "New York", "Houston, TX"', 'job_manager' ),
@@ -144,6 +152,28 @@ class WP_Job_Manager_Writepanels {
144
  <?php
145
  }
146
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
147
  /**
148
  * input_checkbox function.
149
  *
@@ -184,11 +214,13 @@ class WP_Job_Manager_Writepanels {
184
 
185
  do_action( 'job_manager_job_listing_data_start', $thepostid );
186
 
187
- foreach ( $this->job_listing_fields as $key => $field ) {
188
  $type = ! empty( $field['type'] ) ? $field['type'] : 'text';
189
 
190
  if ( method_exists( $this, 'input_' . $type ) )
191
  call_user_func( array( $this, 'input_' . $type ), $key, $field );
 
 
192
  }
193
 
194
  do_action( 'job_manager_job_listing_data_end', $thepostid );
@@ -227,7 +259,7 @@ class WP_Job_Manager_Writepanels {
227
  public function save_job_listing_data( $post_id, $post ) {
228
  global $wpdb;
229
 
230
- foreach ( $this->job_listing_fields as $key => $field )
231
  if ( isset( $_POST[ $key ] ) )
232
  update_post_meta( $post_id, $key, sanitize_text_field( $_POST[ $key ] ) );
233
  elseif ( ! empty( $field['type'] ) && $field['type'] == 'checkbox' )
13
  add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
14
  add_action( 'save_post', array( $this, 'save_post' ), 1, 2 );
15
  add_action( 'job_manager_save_job_listing', array( $this, 'save_job_listing_data' ), 1, 2 );
16
+ }
17
 
18
+ /**
19
+ * job_listing_fields function.
20
+ *
21
+ * @access public
22
+ * @return void
23
+ */
24
+ public function job_listing_fields() {
25
+ return apply_filters( 'job_manager_job_listing_data_fields', array(
26
  '_job_location' => array(
27
  'label' => __( 'Job location', 'job_manager' ),
28
  'placeholder' => __( 'e.g. "London, UK", "New York", "Houston, TX"', 'job_manager' ),
152
  <?php
153
  }
154
 
155
+ /**
156
+ * input_text function.
157
+ *
158
+ * @access private
159
+ * @param mixed $key
160
+ * @param mixed $field
161
+ * @return void
162
+ */
163
+ private function input_textarea( $key, $field ) {
164
+ global $thepostid;
165
+
166
+ if ( empty( $field['value'] ) )
167
+ $field['value'] = get_post_meta( $thepostid, $key, true );
168
+ ?>
169
+ <p class="form-field">
170
+ <label for="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $field['label'] ) ; ?>:</label>
171
+ <textarea name="<?php echo esc_attr( $key ); ?>" id="<?php echo esc_attr( $key ); ?>" placeholder="<?php echo esc_attr( $field['placeholder'] ); ?>"><?php echo esc_html( $field['value'] ); ?></textarea>
172
+ <?php if ( ! empty( $field['description'] ) ) : ?><span class="description"><?php echo $field['description']; ?></span><?php endif; ?>
173
+ </p>
174
+ <?php
175
+ }
176
+
177
  /**
178
  * input_checkbox function.
179
  *
214
 
215
  do_action( 'job_manager_job_listing_data_start', $thepostid );
216
 
217
+ foreach ( $this->job_listing_fields() as $key => $field ) {
218
  $type = ! empty( $field['type'] ) ? $field['type'] : 'text';
219
 
220
  if ( method_exists( $this, 'input_' . $type ) )
221
  call_user_func( array( $this, 'input_' . $type ), $key, $field );
222
+ else
223
+ do_action( 'job_manager_input_' . $type, $key, $field );
224
  }
225
 
226
  do_action( 'job_manager_job_listing_data_end', $thepostid );
259
  public function save_job_listing_data( $post_id, $post ) {
260
  global $wpdb;
261
 
262
+ foreach ( $this->job_listing_fields() as $key => $field )
263
  if ( isset( $_POST[ $key ] ) )
264
  update_post_meta( $post_id, $key, sanitize_text_field( $_POST[ $key ] ) );
265
  elseif ( ! empty( $field['type'] ) && $field['type'] == 'checkbox' )
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.5
7
- Stable tag: 1.0.0
8
 
9
  Manage job listings from the WordPress admin panel, and allow users to post jobs directly to your site.
10
 
@@ -72,5 +72,9 @@ The manual installation method involves downloading the plugin and uploading it
72
 
73
  == Changelog ==
74
 
 
 
 
 
75
  = 1.0.0 =
76
  * First stable release.
4
  Tags: job listing, job board, job, jobs, company
5
  Requires at least: 3.5
6
  Tested up to: 3.5
7
+ Stable tag: 1.0.1
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.0.1 =
76
+ * Slight tweak to listing field filters in admin.
77
+ * 'attributes' argument for admin settings.
78
+
79
  = 1.0.0 =
80
  * First stable release.
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.0.0
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.0.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
 
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.0.1
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.0.1' );
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