== Changelog ==

The full history. The current release is repeated in readme.txt, which is what the
plugin directory renders; this file is where the earlier releases live.

A fix reported through the bug bounty is credited in the reporter's own words, quoted with their permission, with their name only when they ask for it:
* **Fixed:** <the reporter's own words>. Reported through the bug bounty.
Example:
* **Fixed:** "The map pin moves to the wrong city after I change the address." Reported through the bug bounty.

= 7.1.14 =

* **Bugfix: New properties lead the property list again.** On a site upgraded from version 6, a property added since the upgrade showed at the bottom of the back-office list. It now shows at the top, newest first, ahead of the properties you've put in order by hand.
* **Bugfix: The Editing language switch reads the same everywhere.** Every language is now named in your admin language, like "Dutch (Netherlands)", and the site's main language is marked "(default)". The language you're editing shows its flag beside the switch and at the start of the line under it. On edit forms the switch now sits in the header, just before Save. There, and on list screens, the "Editing language" label shows as a tooltip, so the screens stay tidy.
* **Bugfix: Editing in a second language no longer loses your changes.** When you edited a listing, a dictionary value or an agent in another language, the price, categories, contact details and other values that are the same in every language were thrown away while the screen still said "saved". They're now saved from any language, every multilingual screen has a labelled Editing language switch with a line that says which language you're editing and what a save keeps, and switching with unsaved changes asks first. On WordPress the chosen language now lasts until you log out, as it does elsewhere.

= 7.1.13 =

* **Update: House type and category come first in the property form.** On the property form's Property Info card, the type and category now sit at the top, above bedrooms and bathrooms, in the admin and in the front-end submission form alike.
* **Bugfix: Province and city lists are alphabetical again.** On the property form, the region and city dropdowns that fill in after you pick a country or a region now list places by name, in the admin and on the front-end submission form.

= 7.1.12 =

* **Bugfix: Property photos open faster.** The page loads the first photo and small previews, and fetches the rest as you browse.
* **Bugfix: Photos you upload together keep their file-name order.** Photo 2 now comes before photo 10, on the property form and on the agent's own edit form.
* **Bugfix: The update notice goes away once the update is in.** Right after you install an update from the dashboard, the Notifications card and the admin menu badge no longer say an update is waiting.
* **Bugfix: The dashboard and the header agree about updates.** The Notifications card now says an update is available only when the version shown in the header has one, on every screen and right after an update.

= 7.1.11 =

* **Bugfix: Upgrading from 6.x keeps your fields visible.** Field access from 6.x now carries over correctly, and saving a property no longer clears a field you couldn't see.

= 7.1.10 =

* **Bugfix: Addresses no longer start with "0,".** A site moved from version 6 showed a street number of 0 on houses that never had one, in the admin list and on the site. An empty or zero street number is now left out. The admin property list also shows the MLS number before the address again, as version 6 did, whenever the MLS field is published.

= 7.1.9 =

* **Bugfix: Edit on the Translations screen opens the language again.** On some sites it showed "Unknown screen" instead of the editor, so you couldn't change any wording from the admin.

= 7.1.8 =

**Enquiries get through again after an update from version 6, and leads are easier to work with.**

* **reCAPTCHA works with the keys you already have.** A new reCAPTCHA type setting offers Invisible (the default, for v3 and invisible keys) or Checkbox. Version 7 drew a checkbox, which Google refuses for invisible and v3 keys, so enquiries failed their check.
* **Enter your reCAPTCHA keys in Configuration.** The site key and the secret key are fields under Configuration, General, Captcha. The secret stays hidden once it's saved; leave the field empty to keep it.
* **Every lead shows its property.** The Leads list and the opened message show the property's ID, linked to its edit screen, and its reference number under the label your site gives that field.
* **Opened leads stay read after the update.** Leads you'd already opened before the update no longer come back as unread.
* **Links look like links again.** Names in the admin lists are blue, and only unread leads are bold, with a red dot.

= 7.1.7 =

**Searches remember what your visitors chose.**

* **Sorting carries on to the next page.** A visitor who sorts the results and moves to page 2 sees the same order there.
* **Back brings the search back.** After Back or a reload, the price range and the ticked regions are the way the visitor left them, and the list doesn't say that 0 properties match.
* **No more "$0" prices.** A price too small to show after a currency conversion now shows your no-price text.

= 7.1.6 =

**A release that helps you get your site going, and keeps your visitors' searches intact.**

* **See your progress.** Your dashboard shows how many of your own properties are live, with a button to add the next one, until you've published five.
* **Tell others what you think.** After your fifth property we'll ask once whether you'd leave a review. You can say not now, or that you already did.
* **News from us on your dashboard.** When there's something your site should know about, you'll see it as a card you can close.
* **Shared searches stay exact.** When a visitor sends someone a link to their search, the person opening it sees the same results.
* **Prices in your currency.** Prices stay in the currency your site shows, and the currency list is in alphabetical order.

= 7.1.5 =

**A release about backups that land on a different site, updates that say what they need, and a search block that follows the page it sits on.**

* **A backup restores into a site whose structure differs.** A backup taken from a site that has been through earlier upgrades restores into a newer or older one: each row is fitted to the table it arrives in, and the report says what was adjusted.
* **A backup describes the property data and nothing else.** The site's own standing with the store stays behind, so a restored copy verifies itself instead of inheriting another site's key; and a media backup leaves the backups folder out, so it no longer carries every earlier backup inside itself.
* **A backup without media is a compressed archive.** On a test site 687 KB of data became a 45.8 KB file. Backups written by earlier versions are still listed and restored.
* **Updates say what they need.** On a site that is not connected yet, the update window shows the new version, says that updates install on verified websites, and offers Connect. An add-on's Update button starts the same step.
* **The search block follows the page it is on.** Where the page carries a property list, the list's region, city or type is shown ticked and fixed in the search block, and a visitor's own filters apply within them.
* **The address is one switch.** Show these fields starts with the address, and the choice between separate fields and one combined field appears under it while it is on.
* **Range fields can be two lists instead of a slider**, with the highest value the site holds as the last entry in the To list, kept while the results recount or the currency changes.
* **The Minimal search layout can carry your own background image**, chosen from the media library, and keeps its own photo when none is chosen.
* **Settings a layout does not use are hidden** in the block settings, with one line saying why and the values kept for a layout that reads them.
* **Currency, date format and units follow the active design**, and a design that sets units names them in a way every site can read.

= 7.1.4 =

**A release that helps a new site get started.**

* **First steps on the dashboard.** A new site is guided through three steps: choose your market, which sets units, currency and date format; add demo data or your first property; and put the property pages on a menu. Each step is marked when it is done, and the card can be hidden once every step is done.
* **Demo data in one click.** Twelve example properties with photos, added and removed with one button, in the units of your market. Removing them leaves your own properties untouched.
* **A Site menu card** creates the pages for the property list, a single property and the pages your add-ons offer, and shows which are already on the chosen menu.
* **An updated site is recognised.** Its market is read from its own properties, so it is not asked to set up again and none of its settings change.
* **A switched-off add-on stays switched off.** Its data is no longer shown or used by search and filters, and saving a property while it is off keeps that add-on's fields.
* **Links on sites whose permalinks start with index.php work.** Filter and property links under a page no longer answer "Page not found".
* **Blocks** are titled Listing, Module, User Section and Agents, and a new Module block selects the module at once when only one is installed.
* **Backup and restore get enough time on large sites**, and a restore file larger than the server accepts is stopped before it is sent, with a message naming the limit.
* **Update your add-on pack together with this version.** Several paid add-ons now save their own data and need this version; a pack left at its previous version keeps existing values but does not save changes to those fields until it is updated.

= 7.1.3 =

**A small maintenance release.**

* **A backup made by an earlier version restores again.** Such a backup stores the files inside it with a leading slash, and the restore looked for them by exact name, so it answered that the archive was not a recognised backup and named the files it had just failed to find. This matters most if you are arriving from our previous product: export there, upload here, and the restore now reads it.
* **The dashboard tells you what the last update did**: when it ran, which version it installed, and what it changed in the database. Where an update cannot apply part of a database change, that is now recorded where you can read it rather than only in a server log, which much of shared hosting has switched off.
* **A comparison table and the spreadsheet importer show only your own fields.** Both could include a field that belongs to an add-on rather than to you, which meant a visitor could see it in a comparison and a spreadsheet column could write into it.
* **The date switches in the Fields list reach the property page.** Turning a date field on or off in the Fields list now shows and hides it on the property page as expected.
* **The enquiry e-mail lists only the details a property has**, and the default e-mail templates have been revised.
* **A restore that has nothing to add says so.** Restoring a previous-version backup into a site that already holds properties now reports that nothing was imported, and applies none of the backup's users, settings or media.
* **The property edit forms have been corrected.**
* **The search block lists every search field**, so each one can be shown or hidden from the block settings.

= 7.1.2 =
The first release on WordPress.org. FW Real Estate has been running production property sites for
years, and this is its first release in the directory. Here's everything it puts on your site.

* Properties with your own fields and dictionaries for types, statuses, features and currencies, so
  a listing carries the details your market cares about.
* List and grid listing pages, both paged and both filterable.
* An advanced search that cascades through country, region and city, placed as a widget or as a
  block.
* Property detail pages with a photo gallery, specification tables, a print view and a quick view.
* Rentals beside sales, with lease terms, payment periods and rental pricing of their own.
* Property video, played from the property's own record.
* 3D panorama tours, opened from the gallery.
* Shortcodes and native blocks, so listings go on any page in any theme.
* WordPress roles, capabilities and WP cron, with an admin that looks like WordPress.

Two things in it are not visible on a page, and are worth naming anyway.

* A template is chosen by name, and that name is now checked to be a name, so one that has been
  tampered with resolves to nothing instead of to a file. Every template a design or an add-on ships is
  unaffected.
* Text a form sends is stripped of markup at the point it is read, in one place. Fields written in the
  rich-text editor keep what the editor produced: a property description keeps its formatting, its
  links and its tables.

= 7.1.0 =
* The markup for a feature now lives with the feature rather than in the design, so an add-on brings its
  own appearance with it. A design still has the last word: where it offers its own version of a
  template, that version is used.
* The plugin is materially smaller. Code that could never run here has been removed, and the shared
  machinery a feed importer needs now travels with the importer instead of shipping to every site
  whether or not one is installed. About six thousand eight hundred lines lighter, with no feature
  removed.
* Share by e-mail on the map listing was visible and did nothing, and now works.
* Update the plugin before any add-on pack. A pack published alongside this release carries its own
  templates and needs the core that knows to look for them.

= 7.0.5 =
* Translations for this plugin now come from WordPress rather than from the plugin itself. Its English
  text is prepared so that translate.wordpress.org can read it, and a finished translation reaches your
  site as a language pack, installed and kept up to date the same way as for any other plugin.
* Until a translation for your language has been made there, the plugin's screens are in English.
  Nothing you have entered is affected, and there is nothing to do.
* The screen for ordering a translation is gone, for the same reason: translations here are
  WordPress's to host, not ours.

= 7.0.4 =
* Print, quick view and the map window load their styling through WordPress itself. Each opens as a page
  of its own rather than inside your theme, and its stylesheets were being requested in a way that let a
  browser go on using a copy it had already cached. A change now reaches them straight away instead of
  after the visitor clears their cache.
* Downloading an add-on or an update uses your site's own connection settings, so a server that does not
  allow software to open its own connections can install and update normally.

= 7.0.3 =
* The account area works again. Every page built on it -- the dashboard, favourites, saved searches, the
  property manager, the agent profile and compare -- answered a server error instead of loading. It
  affected every visitor and every site, and there was no configuration that avoided it.
* The block editor offers its choices again. When placing one of the plugin's blocks, the design list
  and the per-module layout list were empty, so the only option was the default. Both are populated
  again, including designs delivered by an add-on pack rather than bundled.
* The markup and the handling of the request were reworked to match what is expected of a plugin
  published in this directory. No page changes: every screen, in the back office and on the site, was
  captured before and after and compared element by element.
* The importer add-ons published alongside this release declare it as their minimum, so a site on this
  version can install them.

= 7.0.2 =
* A profile no longer changes an existing account's password. Creating an agent or contributor profile
  on an e-mail address that already had an account reset that account's password -- an address match was
  being treated as proof of ownership. An existing account is now left untouched. If you created a
  profile on an address belonging to someone else, that person's password was changed at the time and
  they will need to set a new one.
* Feed imports bring photographs again, and only fetch them for a property that has none or when the run
  is set to update, so a routine import no longer re-downloads what you already have and an image that
  fails to arrive no longer counts as a failed listing.
* A feed's category and status mapping survives an upgrade. Importers record which of their settings
  hold a lookup value, so incoming listings stop being filed under a stale category.
* Large feeds finish. A long export is paged through a cursor kept on disk, so a run that is interrupted
  resumes instead of starting over, and a rate-limit response from a provider is treated as an
  instruction to wait rather than as a failed download.
* Several fields from a feed can map into one of ours, which some providers need to describe a property
  fully.
* The settings the form saves are the settings that are read back. A small number of options were
  written but never read.
* Styles and scripts are handed to WordPress instead of being written into the page, so a library is
  loaded once, in the right order, and a readable copy is used when the site is in debug mode.

= 7.0.1 =
* The design chosen on the Configuration screen is now the design the site renders.
* The release notes in the update dialog are legible.

= 7.0.0 =
* Initial WordPress release.
