diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..e09b844
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,12 @@
+# This file is for unifying the coding style for different editors and IDEs
+# editorconfig.org
+
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+insert_final_newline = true
+trim_trailing_whitespace = true
+indent_style = space
+indent_size = 2
diff --git a/.gitignore b/.gitignore
index 5df1b9b..e675067 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-.sass-cache
+/vendor/
+*.lock
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..8fa2459
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,6 @@
+language: php
+php:
+ - '5.4'
+ - nightly
+install: composer install
+script: composer test
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..d7f1051
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,339 @@
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ {description}
+ Copyright (C) {year} {fullname}
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ {signature of Ty Coon}, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/README.md b/README.md
new file mode 100755
index 0000000..c131f70
--- /dev/null
+++ b/README.md
@@ -0,0 +1,98 @@
+# WP Sync DB
+
+WP Sync DB eliminates the manual work of migrating a WP database. Copy your db from one WP install to another with a single-click in your dashboard. Especially handy for syncing a local development database with a live site.
+
+
+
+## Looking for a Maintainer
+
+I've moved away from PHP & WordPress work and don't have time to maintain this. If you're a talented PHP developer I'd be happy to give you this repo. Grab the latest code from [delicious-brains](https://github.com/wp-sync-db/wp-sync-db/tree/delicious-brains), remove the license checking, branding, & other cruft, and open up a PR to show me your work.
+
+## Description
+
+WP Sync DB exports your database as a MySQL data dump (much like phpMyAdmin), does a find and replace on URLs and file paths, then allows you to save it to your computer, or send it directly to another WordPress instance. It is perfect for developers who develop locally and need to move their WordPress site to a staging or production server.
+
+### Selective Sync
+
+WP Sync DB lets you choose which DB tables are migrated. Have a huge analytics table you'd rather not send? Simply deselect it and it won't be synced.
+
+### Bi-directional Sync
+
+#### Pull: Replace a Local DB with a Remote DB
+
+If you have a test site setup locally but you need the latest data from the production server, just install WP Sync DB on both sites and you can pull the live database down, replacing your local database in just a few clicks.
+
+#### Push: Replace a Remote DB with a Local DB
+
+If you're developing a new feature for a site that's already live, you likely need to tweak your settings locally before deploying. Once you've perfected your configuration on your development machine, it's easy to send the settings to your production server. Just push to the server, replacing your remote database with your local one.
+
+### Database Export & Backup
+
+Not only can WP Sync DB pull and push your DB: it can export your DB to an SQL file that you can save and backup wherever you want. No need to ssh into your machine or open up phpMyAdmin.
+
+### Encrypted Transfers
+
+All data is sent over SSL to prevent your database from being read during the transfer. WP Sync DB also uses HMAC encryption to sign and verify every request. This ensures that all requests are coming from an authorized server and haven't been tampered with en route.
+
+### Automatic Find & Replace
+
+When migrating a WordPress site, URLs in the content, widgets, menus, etc need to be updated to the new site's URL. Doing this manually is annoying, time consuming, and very error-prone. WP Sync DB does all of this for you.
+
+### Stress Tested on Massive Sites
+
+Huge database? No prob. WP Sync DB has been tested with tables several GBs in size.
+
+### Detect Limitations Automatically
+
+WP Sync DB checks both the remote and local servers to determine limitations and optimize for performance. For example, we detect the MySQL `max_allowed_packet_size` and adjust how much SQL we execute at a time.
+
+### Sync Media Libraries Between Installations
+
+Using the optional [WP Sync DB Media Files](https://github.com/wp-sync-db/wp-sync-db-media-files) addon, you can have media files synced between installs too.
+
+## Installation
+
+1. Install [github-updater](https://github.com/afragen/github-updater) by downloading the latest zip [here](https://github.com/afragen/github-updater/releases). We rely on this plugin for updating WP Sync DB directly from this git repo.
+2. Install WP Sync DB by downloading the latest zip [here](https://github.com/wp-sync-db/wp-sync-db/releases). Both github-updater and WP Sync DB will now download their own updates automatically, so you will never need to go through that tedious zip downloading again.
+3. Access the WP Sync DB menu option under Tools.
+4. Install the optional [WP Sync DB Media Files](https://github.com/wp-sync-db/wp-sync-db-media-files) addon.
+
+## Help Videos
+
+### Feature Walkthrough
+
+
+
+A brief walkthrough of the WP Sync DB plugin showing all of the different options and explaining them.
+
+### Pulling Live Data Into Your Local Development Environment
+
+
+
+This screencast demonstrates how you can pull data from a remote, live WordPress install and update the data in your local development environment.
+
+### Pushing Local Development Data to a Staging Environment
+
+
+
+This screencast demonstrates how you can push a local WordPress database you've been using for development to a staging environment.
+
+### Media Files Addon Demo
+
+
+
+A short demo of how the [Media Files addon](https://github.com/wp-sync-db/wp-sync-db-media-files) allows you to sync up your WordPress Media Libraries.
+
+## Similar Tools
+
+- [Interconnect IT's Search & Replace](https://github.com/interconnectit/Search-Replace-DB)
+
+## Isn't this the same as WP Migrate DB Pro?
+
+No, of course not, don't be silly. I took out the license verification code, a really shady looking PressTrends reporter, and the tab for installing the Media Files addon before I published 1.4. Release 1.3 was the same as [WP Migrate DB Pro](https://deliciousbrains.com/wp-migrate-db-pro), but I've made several improvements since then.
+
+## Is this Illegal?
+
+**No.** Just because this is based on the paid-for WP Migrate DB Pro, it doesn't mean I can't release it. WP Migrate DB Pro is released under GPLv2, a copyleft license that guarantees my freedom (and the freedom of all users) to copy, distribute, and/or modify this software.
+
+I _was_ forced to rename it from "WP Migrate DB" to "WP Sync DB" after Delicious Brains decided to trademark the name "WP Migrate DB", [filed a DMCA takedown](http://wptavern.com/dmca-takedown-notice-issued-against-fork-of-wp-migrate-db-pro) against the repo, and threatened to take me to court. But they should be OK with it now.
diff --git a/asset/config.rb b/asset/config.rb
deleted file mode 100644
index f89f6ca..0000000
--- a/asset/config.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# Require any additional compass plugins here.
-
-# Set this to the root of your project when deployed:
-http_path = "/"
-css_dir = "css"
-sass_dir = "sass"
-images_dir = "img"
-javascripts_dir = "js"
-
-# You can select your preferred output style here (can be overridden via the command line):
-# output_style = :expanded or :nested or :compact or :compressed
-
-# To enable relative paths to assets via compass helper functions. Uncomment:
-# relative_assets = true
-
-# To disable debugging comments that display the original location of your selectors. Uncomment:
-# line_comments = false
-
-
-# If you prefer the indented syntax, you might want to regenerate this
-# project again passing --syntax sass, or you can uncomment this:
-# preferred_syntax = :sass
-# and then run:
-# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass
diff --git a/asset/css/styles.css b/asset/css/styles.css
old mode 100644
new mode 100755
index 4fcc717..81dcc19
--- a/asset/css/styles.css
+++ b/asset/css/styles.css
@@ -1,184 +1,1272 @@
-/* line 1, ../sass/styles.scss */
-#migrate-form {
- padding-top: 10px;
+#wpsdb-main {
+ width: 742px;
}
-/* line 9, ../sass/styles.scss */
-.form-table .row-new-url th, .form-table .row-new-url td,
-.form-table .row-new-path th,
-.form-table .row-new-path td,
-.form-table .row-revisions th,
-.form-table .row-revisions td {
- padding-bottom: 20px;
+#overlay {
+ background-color: rgba(255, 255, 255, 0.9);
+}
+
+.wpsdb {
+ /* =============================================================================
+ Common & Global
+ ========================================================================== */
+ /* =============================================================================
+ Migrate Tab
+ ========================================================================== */
+ /* Misc */
+ /* Tabs */
+ /* Saved migration profile selection */
+ /* Output Selection */
+ /* Find and Replace */
+ /* Select Tables */
+ /* Advanced Options */
+ /* Save migration profile */
+ /* Action buttons */
+ /* =============================================================================
+ Settings Tab
+ ========================================================================== */
+ /* =============================================================================
+ Help Tab
+ ========================================================================== */
+ /* =============================================================================
+ Addons Tab
+ ========================================================================== */
+}
+.wpsdb .updated {
+ clear: both;
+}
+.wpsdb div.updated.warning {
+ max-width: 742px;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 10px 0;
+}
+.wpsdb div.updated.warning p {
+ font-size: 13px;
+ margin: 0.5em 0;
+}
+.wpsdb a {
+ text-decoration: none;
+}
+.wpsdb li {
+ margin-bottom: 5px;
+ position: relative;
+}
+.wpsdb ul {
+ margin: 0;
+}
+.wpsdb input[type=checkbox],
+.wpsdb input[type=radio] {
+ margin-right: 5px;
+ vertical-align: baseline;
+ margin-top: 0;
+}
+.wpsdb input[type=text],
+.wpsdb input[type=password] {
+ padding: 5px;
+}
+.wpsdb input[disabled=disabled] {
+ cursor: default;
+}
+.wpsdb label.disabled {
+ color: #888;
+ cursor: default;
+}
+.wpsdb .option-section {
border-bottom: 1px solid #ccc;
+ padding-bottom: 20px;
+ margin-bottom: 20px;
}
-/* line 18, ../sass/styles.scss */
-.form-table .row-old-path th, .form-table .row-old-path td,
-.form-table .row-save-file th,
-.form-table .row-save-file td,
-.form-table .row-guids th,
-.form-table .row-guids td {
- padding-top: 20px;
+.wpsdb .option-section h3 {
+ font-size: 18px;
+ font-weight: normal;
}
-
-/* line 24, ../sass/styles.scss */
-p.submit {
+.wpsdb p.migrate-db {
overflow: hidden;
- padding-top: 20px;
- border-top: 1px solid #ccc;
- margin-top: 20px;
}
-/* line 30, ../sass/styles.scss */
-p.submit input {
+.wpsdb p.migrate-db input {
float: left;
}
-/* line 34, ../sass/styles.scss */
-p.submit img {
+.wpsdb p.migrate-db img {
float: left;
margin: 3px 0 0 5px;
}
-
-/* line 40, ../sass/styles.scss */
-#wpmdb-container {
+.wpsdb p.migrate-db .save-settings-button {
+ margin-left: 10px;
+ display: none;
+}
+.wpsdb .indent-wrap {
+ margin-left: 24px;
+}
+.wpsdb .expandable-content {
+ display: none;
+ margin-top: 10px;
+}
+.wpsdb .expandable-content li:last-child {
+ margin-bottom: 0px;
+}
+.wpsdb .header-wrapper {
+ margin-bottom: 10px;
+}
+.wpsdb .header-expand-collapse {
+ cursor: pointer;
+ display: inline-block;
+}
+.wpsdb .option-description {
+ font-size: 12px;
+ color: #999;
+ margin-left: 8px;
+ font-weight: normal;
+}
+.wpsdb .option-group li:last-child {
+ margin-bottom: 0;
+}
+.wpsdb .connection-status {
+ display: none;
+ overflow: auto;
+}
+.wpsdb .connection-status.error {
+ color: #9D1818;
+}
+.wpsdb .ajax-spinner {
+ left: 6px;
position: relative;
+ top: 3px;
}
-
-/* line 44, ../sass/styles.scss */
-#wpmdb-main {
- margin-right: 320px;
- min-height: 1200px;
+.wpsdb div.message {
+ margin: 15px 0 0;
}
-
-/* line 49, ../sass/styles.scss */
-#wpmdb-sidebar {
+.wpsdb .return-to-profile-selection {
+ margin-bottom: 15px;
+ display: inline-block;
+}
+.wpsdb .return-to-profile-selection.bottom {
+ margin-top: 10px;
+}
+.wpsdb h2.nav-tab-wrapper {
+ margin-top: 10px;
+ margin-bottom: 20px;
+ padding-left: 5px;
+}
+.wpsdb h2.nav-tab-wrapper a {
+ margin-right: 4px;
+}
+.wpsdb h2.nav-tab-wrapper a.nav-tab-active {
+ color: #464646;
+ cursor: default;
+}
+.wpsdb label {
+ display: inline-block;
+ clear: both;
+}
+.wpsdb .migration-profile-options li {
+ position: relative;
+ width: 520px;
+}
+.wpsdb .migration-profile-options li a {
+ padding: 5px 10px;
+ width: 500px;
+ border: 1px solid #ddd;
+ margin: 0px 0px 7px;
+ display: block;
+ font-size: 14px;
+ color: #333;
+}
+.wpsdb .migration-profile-options li a:hover {
+ border-color: #bbb;
+}
+.wpsdb .main-list-delete-profile-link {
+ color: #999999;
+ font-family: "Times New Roman", serif;
+ font-size: 26px;
+ font-weight: 200;
position: absolute;
- top: 0;
- right: 0;
- width: 250px;
+ right: 7px;
+ top: 6px;
+ cursor: pointer;
+}
+.wpsdb .main-list-delete-profile-link:hover {
+ color: #444;
+}
+.wpsdb .option-group li {
+ margin-bottom: 5px;
+}
+.wpsdb .option-group > li {
+ margin-bottom: 8px;
+}
+.wpsdb .option-group li > label {
+ font-size: 14px;
+ font-weight: bold;
+}
+.wpsdb .option-group ul {
+ display: none;
+ margin: 10px 0px 10px 25px;
+}
+.wpsdb .option-group ul label {
+ font-size: 12px;
+ font-weight: normal;
+}
+.wpsdb .option-heading, .wpsdb .checkbox-label {
+ font-size: 14px;
+ font-weight: bold;
+}
+.wpsdb .checkbox-label input[type=checkbox] {
+ margin-right: 7px;
+ position: relative;
+ top: -1px;
+}
+.wpsdb .expand-collapse-arrow {
+ margin-right: 9px;
+}
+.wpsdb .migrate-connection-info {
+ min-width: 675px;
+ margin: 0;
+}
+.wpsdb .migrate-tab .pull-push-connection-info {
+ width: 418px;
+ height: 65px;
+ color: #333;
+ font-family: Consolas, Monaco, monospace;
+ font-size: 15px;
+ line-height: 21px;
+ padding: 10px;
+}
+.wpsdb .basic-access-auth-wrapper {
+ display: none;
+ margin-bottom: 5px;
+}
+.wpsdb .auth-username, .wpsdb .auth-password {
+ width: 206px;
+ margin-top: 3px;
+}
+.wpsdb .auth-password {
+ width: 207px;
+}
+.wpsdb .connection-info-wrapper {
+ display: none;
+ width: 670px;
+}
+.wpsdb .connect-button {
+ margin-top: 2px;
+}
+.wpsdb .temp-disabled {
+ background-color: #EEEEEE;
+ color: #888888;
+ font-family: Consolas, Monaco, monospace;
+ text-shadow: 0 1px 0 #FFFFFF;
+}
+.wpsdb .push-list ul {
+ margin-bottom: 0px;
+}
+.wpsdb .find-heading, .wpsdb .replace-heading {
+ float: left;
+}
+.wpsdb .find-heading {
+ width: 400px;
+}
+.wpsdb .replace-fields {
+ border-collapse: collapse;
+ border-spacing: 0px;
+}
+.wpsdb .replace-fields input {
+ width: 295px;
+}
+.wpsdb .replace-fields tr td {
+ padding-bottom: 7px;
+}
+.wpsdb .replace-fields tr:last-child td {
+ padding-bottom: 0px;
+}
+.wpsdb .arrow-col {
+ width: 93px;
+ text-align: center;
+ vertical-align: middle;
+}
+.wpsdb .right-arrow {
+ font-size: 36px;
+ color: #aaa;
+ font-family: arial, sans-serif;
+}
+.wpsdb .replace-right-col span {
+ border-radius: 50%;
border: 1px solid #ccc;
- padding: 20px;
+ background-color: #eee;
+ width: 16px;
+ height: 16px;
+ display: inline-block;
+ position: relative;
+ top: 4px;
+ cursor: pointer;
}
-/* line 57, ../sass/styles.scss */
-#wpmdb-sidebar .author {
- padding-bottom: 20px;
- margin-bottom: 20px;
- border-bottom: 1px solid #ccc;
- overflow: hidden;
+.wpsdb .replace-right-col span:hover {
+ border-color: #aaa;
+}
+.wpsdb .sort-handle-col {
+ width: 20px;
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+}
+.wpsdb .sort-handle:before {
+ content: "\f214";
+ display: inline-block;
+ -webkit-font-smoothing: antialiased;
+ font: normal 16px/1 'dashicons';
+ vertical-align: top;
+ color: #aaa;
+ background-color: transparent !important;
+}
+.wpsdb .original-repeatable-field {
+ display: none;
+}
+.wpsdb .no-replaces-message {
+ display: none;
+ margin-bottom: 0px;
}
-/* line 63, ../sass/styles.scss */
-#wpmdb-sidebar .author img {
+.wpsdb .inline-message.missing-replace {
+ margin-top: 15px;
+ display: none;
+}
+.wpsdb #new-path-missing-warning {
+ margin-top: 5px;
+}
+.wpsdb .tables-header {
+ display: inline-block;
+}
+.wpsdb .expand-collapse-arrow {
+ display: inline-block;
+ position: relative;
+ top: -2px;
+ font-size: 11px;
+}
+.wpsdb .collapsed {
+ -moz-transform: scale(1) rotate(-90deg) translateX(0px) translateY(0px) skewX(0deg) skewY(0deg);
+ -webkit-transform: scale(1) rotate(-90deg) translateX(0px) translateY(0px) skewX(0deg) skewY(0deg);
+ -o-transform: scale(1) rotate(-90deg) translateX(0px) translateY(0px) skewX(0deg) skewY(0deg);
+ -ms-transform: scale(1) rotate(-90deg) translateX(0px) translateY(0px) skewX(0deg) skewY(0deg);
+ transform: scale(1) rotate(-90deg) translateX(0px) translateY(0px) skewX(0deg) skewY(0deg);
+}
+.wpsdb .select-deselect-divider {
+ margin: 0 6px;
+}
+.wpsdb .select-wrap {
+ display: none;
+ margin-top: 12px;
+}
+.wpsdb .select-post-types-wrap {
+ display: block;
+}
+.wpsdb .multiselect {
+ min-width: 420px;
+ min-height: 180px;
+ margin-bottom: 10px;
+}
+.wpsdb .table-migrate-options li label {
+ font-size: 12px;
+ font-weight: normal;
+}
+.wpsdb .table-migrate-options li {
+ margin-bottom: 5px;
+}
+.wpsdb .general-helper {
+ border-radius: 50%;
+ border: 1px solid #ccc;
+ background-color: #eee;
+ width: 15px;
+ height: 15px;
+ display: inline-block;
+ position: relative;
+ top: 4px;
+ margin-top: -4px;
+ cursor: pointer;
+ margin-left: 2px;
+}
+.wpsdb .general-helper:hover {
+ border-color: #aaa;
+}
+.wpsdb .general-helper:after {
+ content: "?";
+ color: #999999;
+ font-size: 10px;
+ font-weight: bold;
+ left: 4px;
+ position: absolute;
+ top: -1px;
+}
+.wpsdb .helper-message {
+ padding: 10px;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ background-color: #fff;
+ position: absolute;
+ width: 500px;
+ z-index: 9999;
+ display: none;
+ box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
+}
+.wpsdb .inline-message {
+ padding: 10px;
+ border-radius: 3px;
+ margin-top: 5px;
+}
+.wpsdb .inline-message.error {
+ border: 1px solid #CC0000;
+ background-color: #FFEBE8;
+}
+.wpsdb .inline-message.warning {
+ background-color: #FFFFE0;
+ border: 1px solid #E6DB55;
+}
+.wpsdb .helper-message:before {
+ content: '';
+ border-bottom: 8px solid transparent;
+ border-right: 8px solid #aaa;
+ border-top: 8px solid transparent;
+ display: block;
+ height: 0;
+ left: -8px;
+ position: absolute;
+ top: 11px;
+ width: 0;
+}
+.wpsdb .helper-message:after {
+ content: '';
+ border-bottom: 8px solid transparent;
+ border-right: 8px solid #fff;
+ border-top: 8px solid transparent;
+ display: block;
+ height: 0;
+ left: -7px;
+ position: absolute;
+ top: 11px;
+ width: 0;
+}
+.wpsdb .helper-message.bottom:before {
+ content: '';
+ border-left: 8px solid transparent;
+ border-right: 8px solid transparent;
+ border-bottom: 8px solid #aaa;
+ border-top: 0;
+ display: block;
+ height: 0;
+ left: 50%;
+ margin-left: -8px;
+ position: absolute;
+ top: -9px;
+ width: 0;
+}
+.wpsdb .helper-message.bottom:after {
+ content: '';
+ border-left: 8px solid transparent;
+ border-right: 8px solid transparent;
+ border-bottom: 8px solid #fff;
+ border-top: 0;
+ display: block;
+ height: 0;
+ left: 50%;
+ margin-left: -8px;
+ position: absolute;
+ top: -8px;
+ width: 0;
+}
+.wpsdb .label-disabled {
+ color: #888;
+}
+.wpsdb .prefix-notice, .wpsdb .ssl-notice, .wpsdb .different-plugin-version-notice, .wpsdb .directory-permission-notice {
+ background-color: #FFFFE0;
+ border: 1px solid #E6DB55;
+ padding: 15px;
+ border-radius: 3px;
+ margin-bottom: 15px;
+ display: none;
+}
+.wpsdb .prefix-notice p, .wpsdb .ssl-notice p, .wpsdb .different-plugin-version-notice p, .wpsdb .directory-permission-notice p {
+ margin-top: 0px;
+}
+.wpsdb .prefix-notice p:last-child, .wpsdb .ssl-notice p:last-child, .wpsdb .different-plugin-version-notice p:last-child, .wpsdb .directory-permission-notice p:last-child {
+ margin: 0px;
+}
+.wpsdb .different-plugin-version-notice, .wpsdb .directory-permission-notice {
+ background-color: #FFEBE8;
+ border-color: #CC0000;
+}
+.wpsdb .different-plugin-version-notice a, .wpsdb .directory-permission-notice a {
+ color: #CC0000;
+ text-decoration: underline;
+}
+.wpsdb .save-migration-profile-wrap li label {
+ font-size: 12px;
+ font-weight: normal;
+}
+.wpsdb .save-migration-profile-wrap li {
+ margin-bottom: 5px;
+ padding-left: 25px;
+}
+.wpsdb .save-migration-profile-wrap .indent-wrap {
+ margin-left: 0px;
+}
+.wpsdb .create-new-label {
+ margin-right: 8px;
+}
+.wpsdb .create-new-profile {
+ position: absolute;
+ top: -5px;
+}
+.wpsdb .replace-remove-row,
+.wpsdb .delete-profile {
+ background-color: #eee;
+ border: 1px solid #ccc;
+ border-radius: 50% 50% 50% 50%;
+ cursor: pointer;
+ height: 11px;
+ left: 5px;
+ margin-left: 2px;
+ position: absolute;
+ margin-top: -6px;
+ top: 50%;
+ width: 11px;
+ display: none;
+ background-position: 50% 50%;
+ background-size: 6px 6px;
+ background-repeat: no-repeat;
+}
+.wpsdb .replace-remove-row:after,
+.wpsdb .delete-profile:after {
+ content: "\00d7";
+ left: 2px;
+ position: absolute;
+ top: -3px;
+ color: #aaa;
+ font-size: 12px;
+}
+.wpsdb .replace-remove-row:after {
+ position: relative;
+}
+.wpsdb .replace-remove-row:hover,
+.wpsdb .delete-profile:hover {
+ border-color: #aaa;
+}
+.wpsdb .migrate-db .ajax-success-msg {
+ font-weight: bold;
+ margin: 3px 0 0 9px;
+ display: inline-block;
+}
+.wpsdb p img.save-profile-ajax-spinner {
+ margin-left: 10px;
+}
+.wpsdb .backup-description {
+ left: 20px;
+ position: relative;
+}
+.wpsdb .backup-option-disabled {
+ margin-bottom: 0px !important;
+}
+.wpsdb .settings-tab {
+ display: none;
+}
+.wpsdb .settings-tab .slider {
+ max-width: 416px;
+}
+.wpsdb .settings-tab .slider-label {
+ display: block;
+ margin-bottom: 10px;
float: left;
- margin-right: 20px;
+ width: 50%;
}
-/* line 68, ../sass/styles.scss */
-#wpmdb-sidebar .author .desc {
+.wpsdb .settings-tab .slider-label-wrapper {
+ max-width: 416px;
+ width: 100%;
+ position: relative;
+}
+.wpsdb .settings-tab .amount {
+ width: 50%;
+ text-align: right;
+ display: block;
+ text-align: right;
float: left;
}
-/* line 72, ../sass/styles.scss */
-#wpmdb-sidebar .author h3 {
+.wpsdb .settings-tab .slider-spinner {
+ position: absolute;
+ right: -35px;
+ bottom: -13px;
+}
+.wpsdb .settings-tab .slider-success-msg {
+ display: none;
+ right: -53px;
+ bottom: -13px;
+ position: absolute;
+ font-weight: bold;
+}
+.wpsdb .settings-tab .ui-slider {
+ border: 1px solid #dfdfdf;
+ height: 10px;
+ border-radius: 2px;
+ position: relative;
+}
+.wpsdb .settings-tab .ui-slider-handle {
+ width: 7px;
+ height: 20px;
+ background-color: #aaa;
+ display: block;
+ position: absolute;
+ top: -5px;
+ outline: none;
+}
+.wpsdb .settings-tab .ui-slider-handle:active {
+ background-color: #999;
+}
+.wpsdb .settings-tab .ui-slider-range {
+ background-color: #eee;
+ height: 100%;
+}
+.wpsdb .settings-tab .option-section li label {
font-size: 12px;
- margin: 0;
+ font-weight: normal;
+ position: relative;
+}
+.wpsdb .settings-tab .option-section li {
+ margin-bottom: 5px;
+}
+.wpsdb .settings-tab .option-section li:last-child {
+ margin-bottom: 0px;
+}
+.wpsdb .settings-tab .option-section .ajax-spinner {
+ right: -23px;
+ left: inherit;
+ top: 0px;
+ position: absolute;
}
-/* line 77, ../sass/styles.scss */
-#wpmdb-sidebar .author h2 {
+.wpsdb .settings-tab .option-section .ajax-success-msg {
+ right: -42px;
+ left: inherit;
+ top: 0px;
+ position: absolute;
+ font-weight: bold;
+}
+.wpsdb .settings-tab .option-section .bubble .ajax-spinner {
+ right: -45px;
+}
+.wpsdb .settings-tab .option-section .bubble .ajax-success-msg {
+ right: -65px;
+}
+.wpsdb .allow-remote-reqeusts {
+ font-size: 14px;
+ font-weight: bold;
+}
+.wpsdb .connection-info-label {
+ margin-top: 15px;
+ margin-bottom: 5px;
+ display: block;
+}
+.wpsdb .connection-info {
+ clear: both;
+ font-size: 15px;
+ line-height: 21px;
+ font-family: Consolas, Monaco, monospace;
+ padding: 10px 10px;
+ height: 67px;
+ text-shadow: 0px 1px 0px #fff;
+ display: block;
+ margin-bottom: 7px;
+ width: 418px;
+}
+.wpsdb .reset-button-wrap {
+ width: 418px;
+}
+.wpsdb .reset-api-key {
+ float: left;
+}
+.wpsdb .reset-api-key-ajax-spinner {
+ float: left;
+ margin: 4px 7px;
+}
+.wpsdb .plugin-compatibility-wrap {
+ padding: 18px 18px 18px 24px;
+ background-color: #e6e6e6;
+ margin-left: 0;
+}
+.wpsdb .plugin-compatibility-wrap p:last-of-type {
+ margin-bottom: 0;
+}
+.wpsdb ul.plugin-compatibility-options {
+ display: block;
+ margin: 10px 0 10px 0px;
+}
+.wpsdb .plugin-compatibility-spinner {
+ position: relative;
+ top: 3px;
+ left: 10px;
+}
+.wpsdb .plugin-compatibility-success-msg {
+ position: relative;
+ left: 10px;
+ font-weight: bold;
+ display: none;
+}
+.wpsdb .help-tab {
+ display: none;
+}
+.wpsdb .help-tab h3 {
font-size: 18px;
- margin: 0;
- padding: 0;
+ font-weight: normal;
}
-/* line 82, ../sass/styles.scss */
-#wpmdb-sidebar .author h2 a {
- color: #464646;
- text-decoration: none;
+.wpsdb .help-tab .support {
+ border-bottom: 1px solid #ccc;
+ margin-bottom: 25px;
+ padding-bottom: 18px;
}
-/* line 86, ../sass/styles.scss */
-#wpmdb-sidebar .author h2 a:hover {
- color: #000;
+.wpsdb .help-tab .support p {
+ width: 640px;
}
-/* line 92, ../sass/styles.scss */
-#wpmdb-sidebar .author p {
- margin: 0;
+.wpsdb .help-tab .support .email a {
+ font-size: 12px;
}
-/* line 97, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe {
- padding-bottom: 20px;
- margin-bottom: 20px;
+.wpsdb .help-tab .support .ajax-spinner {
+ top: 2px;
+}
+.wpsdb .help-tab .video-viewer {
+ margin-bottom: 30px;
+}
+.wpsdb .help-tab .videos {
+ width: 640px;
+}
+.wpsdb .help-tab .videos ul > li {
+ margin-bottom: 30px;
+ overflow: hidden;
+ position: relative;
+}
+.wpsdb .help-tab .videos ul > li a {
+ overflow: hidden;
+ display: block;
+ width: 320px;
+ height: 180px;
+ float: left;
+ margin-right: 15px;
+ position: relative;
+ z-index: 1;
+}
+.wpsdb .help-tab .videos ul > li a:before, .wpsdb .help-tab .videos ul > li a:after {
+ position: absolute;
+ content: " ";
+ margin: auto;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+}
+.wpsdb .help-tab .videos ul > li a:before {
+ width: 64px;
+ height: 64px;
+ -webkit-border-radius: 64px;
+ -moz-border-radius: 64px;
+ -ms-border-radius: 64px;
+ -o-border-radius: 64px;
+ border-radius: 64px;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
+ opacity: 0.8;
+ border: 1px solid #ddd;
+ background-color: #fff;
+ z-index: 2;
+}
+.wpsdb .help-tab .videos ul > li a:after {
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
+ opacity: 0.8;
+ border: 21.33333px solid transparent;
+ border-top-width: 12.8px;
+ border-bottom-width: 12.8px;
+ border-left-color: #333;
+ background: transparent;
+ display: block;
+ left: 25px;
+ width: 0px;
+ height: 0px;
+ z-index: 3;
+}
+.wpsdb .help-tab .videos .video:last-child {
+ margin-bottom: 0px;
+}
+.wpsdb .help-tab .videos img {
+ width: 320px;
+ height: 240px;
+ position: relative;
+ top: 50%;
+ margin-top: -120px;
+}
+.wpsdb .help-tab .debug {
+ width: 640px;
+ border-bottom: 1px solid #CCCCCC;
+ margin-bottom: 25px;
+ padding-bottom: 28px;
+}
+.wpsdb .help-tab .debug textarea {
+ width: 100%;
+ min-height: 200px;
+ font-family: Consolas, Monaco, monospace;
+ margin-bottom: 5px;
+}
+.wpsdb .help-tab h4 {
+ margin: 0 0 0.2em 0;
+}
+.wpsdb .help-tab p {
+ margin: 0 0 0.5em 0;
+}
+.wpsdb .help-tab iframe {
+ display: none;
+}
+
+/* Progress Information */
+/* Contain floats: h5bp.com/q */
+.clearfix:before, .clearfix:after {
+ content: "";
+ display: table;
+}
+
+.clearfix:after {
+ clear: both;
+}
+
+.clearfix {
+ zoom: 1;
+}
+
+.general-spinner {
+ width: 16px;
+ height: 16px;
+}
+
+.migration-error {
+ color: #A21B1B;
+ display: block;
+ font-weight: bold;
+ max-height: 400px;
+ max-width: 100%;
+ overflow: scroll;
+ word-wrap: break-word;
+}
+
+.progress-content {
+ display: none;
+ position: relative;
+ margin: 0 auto;
+ background-color: #fff;
+ padding: 50px;
+ box-shadow: 0 0 10px #ccc;
+ cursor: default;
+ width: 80%;
+ z-index: 99999;
+ position: fixed;
+ left: 50%;
+ margin-left: -40%;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.progress-content .progress-bar {
+ height: 10px;
+ background-color: #8cc1e9;
+ margin-bottom: 5px;
+ background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #72a7cf), color-stop(100%, #8cc1e9));
+ background-image: -webkit-linear-gradient(bottom, #72a7cf, #8cc1e9);
+ background-image: -moz-linear-gradient(bottom, #72a7cf, #8cc1e9);
+ background-image: -o-linear-gradient(bottom, #72a7cf, #8cc1e9);
+ background-image: linear-gradient(bottom, #72a7cf, #8cc1e9);
+}
+.progress-content .progress-title {
+ font-size: 18px;
+ font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
+ font-weight: normal;
+ float: left;
+}
+.progress-content .progress-bar {
+ width: 0%;
+}
+.progress-content .progress-info-wrapper {
+ margin-bottom: 10px;
+}
+.progress-content .progress-text {
+ clear: left;
+ float: left;
+ width: 100%;
+}
+.progress-content .timer {
+ float: right;
+}
+.progress-content .progress-tables {
+ overflow: hidden;
+ margin-bottom: 2px;
+ padding: 0 0 20px 0;
+}
+.progress-content .progress-bar-wrapper {
+ position: relative;
+}
+.progress-content .progress-bar-wrapper:before {
+ content: '';
+ display: block;
+ height: 5px;
+ width: 1px;
+ background-color: #ccc;
+ position: absolute;
+ top: 15px;
+ left: 0px;
+}
+.progress-content .progress-tables-hover-boxes {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ display: block;
+ width: 100%;
+}
+.progress-content .progress-chunk-hover {
+ display: block;
+ float: left;
+ height: 35px;
+ position: relative;
+ top: -5px;
+ z-index: 1;
+}
+.progress-content .progress-chunk {
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ float: left;
+ display: block;
+ height: 6px;
+ border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
+ color: #999;
+ position: relative;
+ text-align: center;
}
-/* line 102, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe h2 {
- padding: 0;
- margin: 0;
- margin-bottom: 0.5em;
- color: #666;
- font-size: 20px;
+.progress-content .progress-chunk > span {
+ padding: 0px 3px;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ margin-top: 10px;
+ display: inline-block;
}
-/* line 110, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe ul {
- list-style-type: disc;
+.progress-content .progress-label {
+ padding: 5px 10px;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ background-color: #fff;
+ font-family: Consolas, Monaco, monospace;
+ font-size: 12px;
+ display: inline-block;
+ top: -35px;
+ position: absolute;
+ opacity: 0;
+ -webkit-transition: opacity 200ms ease-in-out;
+ -moz-transition: opacity 200ms ease-in-out;
+ -ms-transition: opacity 200ms ease-in-out;
+ -o-transition: opacity 200ms ease-in-out;
+ transition: opacity 200ms ease-in-out;
+}
+.progress-content .label-visible {
+ opacity: 1;
}
-/* line 114, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe li {
- margin-left: 1.5em;
+.progress-content .progress-label:before {
+ content: "";
+ width: 0;
+ height: 0;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 4px solid #ccc;
+ display: block;
+ position: absolute;
+ bottom: -5px;
+ left: 50%;
+ margin-left: -2px;
+}
+.progress-content .progress-label:after {
+ content: "";
+ width: 0;
+ height: 0;
+ border-left: 4px solid transparent;
+ border-right: 4px solid transparent;
+ border-top: 4px solid #fff;
+ display: block;
+ position: absolute;
+ bottom: -4px;
+ left: 50%;
+ margin-left: -2px;
+}
+.progress-content .migration-progress-ajax-spinner {
+ left: 7px;
+ position: relative;
+ top: 15px;
+}
+.progress-content .close-progress-content {
+ color: #999999;
+ cursor: pointer;
+ font-family: "Times New Roman",serif;
+ font-size: 26px;
+ font-weight: 200;
+ position: absolute;
+ right: 20px;
+ top: 20px;
+ padding: 5px;
+ display: none;
+}
+.progress-content .close-progress-content:hover {
color: #666;
+ border-color: #aaa;
}
-/* line 119, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe p {
- margin: 0;
+.progress-content .migration-controls {
+ display: block;
+ margin-top: 45px;
+}
+.progress-content .migration-controls span {
+ float: left;
+ text-align: center;
+ display: block;
}
-/* line 123, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe p.interesting {
- margin-bottom: 1em;
+.progress-content .migration-controls span:first-child {
+ margin-right: 10px;
+ width: 71px;
}
-/* line 127, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .error {
- color: red;
- font-weight: bold;
- margin-bottom: 1em;
+
+body.mp6 input[type=checkbox]:disabled {
+ opacity: 1;
+ border-color: #ccc;
}
-/* line 133, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .thanks {
- color: #333;
- font-weight: bold;
+body.mp6 #wpsdb-main {
+ margin-top: 15px;
font-size: 14px;
}
-/* line 139, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .field {
- margin-bottom: 1em;
+body.mp6 p {
+ font-size: 14px;
+}
+body.mp6 .wrap h2 {
+ float: left;
+}
+body.mp6 .wpsdb input[type=checkbox],
+body.mp6 .wpsdb input[type=radio] {
+ vertical-align: middle;
+ margin-top: -4px;
+}
+body.mp6 .wpsdb input[type=text],
+body.mp6 .wpsdb input[type=password] {
+ padding: 3px 5px;
+}
+body.mp6 .wpsdb input.code {
+ padding-top: 6px;
+}
+body.mp6 .wpsdb label {
+ font-size: 14px;
+}
+body.mp6 .wpsdb h2.nav-tab-wrapper {
+ float: none;
+ margin-bottom: 0;
+ width: 722px;
+}
+body.mp6 .wpsdb .help-tab h3 {
+ margin-top: 0;
+}
+body.mp6 .wpsdb .temp-disabled {
+ background-color: #f9f9f9;
}
-/* line 142, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .field p {
- margin-bottom: 0.3em;
+body.mp6 .wpsdb .migration-profile-options li a {
+ border-color: #ccc;
+ color: #555;
+ background-color: #e4e4e4;
}
-/* line 146, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .field .willing-copy {
+body.mp6 .wpsdb .migration-profile-options li a:hover {
+ background-color: #fff;
+ color: #464646;
+}
+body.mp6 .wpsdb .settings-tab .slider-label span {
+ vertical-align: middle;
+}
+body.mp6 .wpsdb .settings-tab .slider-label-wrapper {
+ font-size: 14px;
+}
+body.mp6 .wpsdb .settings-tab .ui-slider {
+ border-color: #ccc;
+ background-color: #fff;
+}
+body.mp6 .wpsdb .settings-tab .ui-slider-range {
+ background-color: #d8fcd1;
+}
+body.mp6 .wpsdb .settings-tab .option-section li label {
+ font-size: 14px;
+}
+body.mp6 .wpsdb .connection-info,
+body.mp6 .wpsdb .migrate-tab .pull-push-connection-info {
font-weight: bold;
font-size: 14px;
+}
+body.mp6 .wpsdb .general-helper {
+ border: 0;
+ width: auto;
+ height: auto;
+ top: auto;
+ margin: 0;
+}
+body.mp6 .wpsdb .general-helper:after {
+ content: "\f223";
+ display: inline-block;
+ -webkit-font-smoothing: antialiased;
+ font: normal 22px/1 'dashicons';
+ vertical-align: top;
+ top: auto;
+ left: auto;
+ position: relative;
+}
+body.mp6 .wpsdb .helper-message {
+ font-size: 14px;
line-height: 1.4em;
- margin-bottom: 1em;
}
-/* line 154, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .field.how-much input {
- width: 50px;
+body.mp6 .wpsdb .right-arrow {
+ display: none;
}
-/* line 160, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .field.notify-me input {
- position: absolute;
+body.mp6 .wpsdb .arrow-col {
+ width: 75px;
}
-/* line 164, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .field.notify-me label {
- display: block;
- padding-left: 20px;
+body.mp6 .wpsdb .arrow-col:after {
+ content: "\f344";
+ display: inline-block;
+ -webkit-font-smoothing: antialiased;
+ font: normal 22px/1 'dashicons';
+ vertical-align: top;
+ color: #999;
+}
+body.mp6 .wpsdb .find-heading {
+ width: 409px;
+}
+body.mp6 .wpsdb .replace-fields input {
+ width: 304px;
+}
+body.mp6 .wpsdb .replace-right-col span {
+ border-color: #999;
+}
+body.mp6 .wpsdb .replace-right-col span:hover {
+ border-color: #666;
+}
+body.mp6 .wpsdb .replace-add-row:after, body.mp6 .wpsdb .replace-add-row:before {
+ background-color: #999;
+}
+body.mp6 .wpsdb .replace-add-row:hover:after, body.mp6 .wpsdb .replace-add-row:hover:before {
+ background-color: #666;
+}
+body.mp6 .wpsdb .option-group.migrate-selection > li > label {
+ font-size: 16px;
+}
+body.mp6 .wpsdb .saved-migration-profile-label {
+ font-size: 16px;
+}
+body.mp6 .wpsdb .option-heading, body.mp6 .wpsdb .checkbox-label {
+ font-size: 16px;
+}
+body.mp6 .wpsdb .checkbox-label input[type=checkbox] {
+ top: auto;
+}
+body.mp6 .wpsdb .return-to-profile-selection {
+ font-size: 14px;
+}
+body.mp6 .wpsdb .option-description {
+ font-size: 13px;
+}
+body.mp6 .wpsdb .save-migration-profile-wrap li {
+ position: relative;
+}
+body.mp6 .wpsdb .replace-remove-row,
+body.mp6 .wpsdb .delete-profile {
+ border: 0;
+ border-radius: 0;
+ height: auto;
+ width: auto;
+ left: 0;
+ top: 50%;
+ margin-left: 0;
+}
+body.mp6 .wpsdb .replace-remove-row:after,
+body.mp6 .wpsdb .delete-profile:after {
+ content: "\f153";
+ display: inline-block;
+ -webkit-font-smoothing: antialiased;
+ font: normal 18px/1 'dashicons';
+ vertical-align: middle;
+ color: #999;
+}
+body.mp6 .wpsdb .replace-remove-row:hover:after,
+body.mp6 .wpsdb .delete-profile:hover:after {
+ color: #666;
}
-/* line 172, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .field.comments textarea {
- width: 230px;
- height: 3em;
+body.mp6 .wpsdb .help-tab .support p, body.mp6 .wpsdb .help-tab .support .email a {
+ font-size: 14px;
+}
+body.mp6 .wpsdb .help-tab div.warning p {
+ font-size: 13px;
+}
+body.mp6 .wpsdb .help-tab .videos h4, body.mp6 .wpsdb .help-tab .videos p {
+ font-size: 14px;
+}
+body.mp6 .wpsdb .inline-message, body.mp6 .wpsdb .notification-message {
+ border-radius: 0;
+ border: 0;
+ box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
+ padding: 10px 14px;
+ font-size: 13px;
+}
+body.mp6 .wpsdb .notification-message {
+ margin-bottom: 20px;
+ background-color: #fff;
+}
+body.mp6 .wpsdb .notification-message p {
+ font-size: 13px;
+ margin-top: 0;
+}
+body.mp6 .wpsdb .notification-message p:last-child {
+ margin: 0;
+}
+body.mp6 .wpsdb .notification-message h4 {
+ margin-top: 0;
+}
+body.mp6 .wpsdb .notification-message a {
+ color: #0074a2;
+ text-decoration: none;
+}
+body.mp6 .wpsdb .notification-message a:hover {
+ color: #2ea2cc;
+}
+body.mp6 .wpsdb .inline-message.error, body.mp6 .wpsdb .notification-message.error-notice {
+ border-left: 4px solid #dd3d36;
+ background-color: #fff;
}
-/* line 177, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .field.comments textarea.has-content, #wpmdb-sidebar .subscribe .field.comments textarea:focus {
- height: 5em;
+body.mp6 .wpsdb .inline-message.warning, body.mp6 .wpsdb .notification-message.warning-notice {
+ background-color: #fff;
+ border-left: 4px solid #ffba00;
}
-/* line 183, ../sass/styles.scss */
-#wpmdb-sidebar .subscribe .field.submit-button {
+body.mp6 .wpsdb .inline-message.success, body.mp6 .wpsdb .notification-message.success-notice {
+ border-left: 4px solid #7ad03a;
+}
+body.mp6 .wpsdb .ssl-notice {
margin-bottom: 0;
}
+body.mp6 .wpsdb .different-plugin-version-notice, body.mp6 .wpsdb .directory-permission-notice {
+ margin-bottom: 10px;
+}
+body.mp6 .progress-content {
+ font-size: 14px;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
+ background-color: #eee;
+}
+body.mp6 .progress-content .progress-title {
+ font-family: 'Open Sans', sans-serif;
+ font-weight: normal;
+ font-size: 22px;
+}
+body.mp6 .progress-content .dashicons-yes {
+ font-size: 42px;
+ line-height: 0.5em;
+}
+body.mp6 .progress-content .progress-bar {
+ background-image: none;
+ background-color: #0074a2;
+}
+body.mp6 #overlay {
+ background-color: rgba(0, 0, 0, 0.5);
+}
+body.mp6 .migration-progress-ajax-spinner {
+ top: 20px;
+}
diff --git a/asset/img/wpappstore-logo.png b/asset/img/wpappstore-logo.png
deleted file mode 100644
index df44985..0000000
Binary files a/asset/img/wpappstore-logo.png and /dev/null differ
diff --git a/asset/js/common.js b/asset/js/common.js
new file mode 100644
index 0000000..f81cdeb
--- /dev/null
+++ b/asset/js/common.js
@@ -0,0 +1,29 @@
+// global vars
+var hooks = [];
+var call_stack = [];
+var non_fatal_errors = '';
+var migration_error = false;
+var connection_data;
+var next_step_in_migration;
+
+function wpsdb_call_next_hook() {
+ if (!call_stack.length) {
+ call_stack = hooks;
+ }
+
+ var func = call_stack[0];
+ call_stack.shift();
+ window[func](); // Uses the string from the array to call the function of the same name
+}
+
+function wpsdb_add_commas(number_string) {
+ number_string += '';
+ x = number_string.split('.');
+ x1 = x[0];
+ x2 = x.length > 1 ? '.' + x[1] : '';
+ var rgx = /(\d+)(\d{3})/;
+ while (rgx.test(x1)) {
+ x1 = x1.replace(rgx, '$1' + ',' + '$2');
+ }
+ return x1 + x2;
+}
diff --git a/asset/js/hook.js b/asset/js/hook.js
new file mode 100644
index 0000000..f5983e5
--- /dev/null
+++ b/asset/js/hook.js
@@ -0,0 +1,68 @@
+(function($) {
+ $.wpsdb = {
+ /**
+ * Implement a WordPress-link Hook System for Javascript
+ * TODO: Change 'tag' to 'args', allow number (priority), string (tag),
+ object (priority+tag)
+ */
+ hooks: {
+ action: {},
+ filter: {}
+ },
+ add_action: function(action, callable, tag) {
+ jQuery.wpsdb.add_hook('action', action, callable, tag);
+ },
+ add_filter: function(action, callable, tag) {
+ jQuery.wpsdb.add_hook('filter', action, callable, tag);
+ },
+ do_action: function(action, args) {
+ jQuery.wpsdb.do_hook('action', action, null, args);
+ },
+ apply_filters: function(action, value, args) {
+ return jQuery.wpsdb.do_hook('filter', action, value, args);
+ },
+ remove_action: function(action, tag) {
+ jQuery.wpsdb.remove_hook('action', action, tag);
+ },
+ remove_filter: function(action, tag) {
+ jQuery.wpsdb.remove_hook('filter', action, tag);
+ },
+ add_hook: function(hook_type, action, callable, tag) {
+ if (undefined == jQuery.wpsdb.hooks[hook_type][action]) {
+ jQuery.wpsdb.hooks[hook_type][action] = [];
+ }
+ var hooks = jQuery.wpsdb.hooks[hook_type][action];
+ if (undefined == tag) {
+ tag = action + '_' + hooks.length;
+ }
+ jQuery.wpsdb.hooks[hook_type][action].push({
+ tag: tag,
+ callable: callable
+ });
+ },
+ do_hook: function(hook_type, action, value, args) {
+ if (undefined != jQuery.wpsdb.hooks[hook_type][action]) {
+ var hooks = jQuery.wpsdb.hooks[hook_type][action];
+ for (var i = 0; i < hooks.length; i++) {
+ if ('action' == hook_type) {
+ hooks[i].callable(args);
+ } else {
+ value = hooks[i].callable(value, args);
+ }
+ }
+ }
+ if ('filter' == hook_type) {
+ return value;
+ }
+ },
+ remove_hook: function(hook_type, action, tag) {
+ if (undefined != jQuery.wpsdb.hooks[hook_type][action]) {
+ var hooks = jQuery.wpsdb.hooks[hook_type][action];
+ for (var i = hooks.length - 1; i >= 0; i--) {
+ if (undefined == tag || tag == hooks[i].tag)
+ hooks.splice(i, 1);
+ }
+ }
+ }
+ };
+})(jQuery);
diff --git a/asset/js/script.js b/asset/js/script.js
old mode 100644
new mode 100755
index 47c6b64..e6e8691
--- a/asset/js/script.js
+++ b/asset/js/script.js
@@ -1,62 +1,2316 @@
+// global functions
+var migration_complete;
+var migration_complete_events;
+var migrate_table_recursive;
+var execute_next_step;
+
(function($) {
- $(document).ready(function() {
- $('#replace-guids-info-link').click(function() {
- var $div = $('#replace-guids-info');
- if ( 'none' == $div.css('display') ) {
- $div.show();
- $(this).html('show less');
- return false;
- }
- else {
- $div.hide();
- $(this).html('show more');
- return false;
- }
- });
-
- $('#wpmdb-sidebar').each(function() {
- var $sidebar = $(this);
-
- $('form', $sidebar).submit(function() {
- var $form = $(this),
- data = $(this).serializeArray();
-
- $('.button', $form).attr('disabled', 'true');
-
- data.push({name: 'action', value: 'subscribe_submission'});
-
- $.post( ajaxurl, data, function(result) {
- if (result) {
- $('.error', $sidebar).remove();
- $('.field.submit-button', $sidebar).before('
+ PHP Safe Mode Enabled — We do not officially support running this plugin in safe mode because set_time_limit() has no effect. Therefore we can't extend the run time of the script and ensure it doesn't time out before the migration completes. We haven't disabled the plugin however, so you're free to cross your fingers and hope for the best. However, if you have trouble, we can't help you until you turn off safe mode.", 'wp-sync-db' );
+ if ( function_exists( 'ini_get' ) ) {
+ printf( __( 'Your current PHP run time limit is set to %s seconds.', 'wp-sync-db' ), ini_get( 'max_execution_time' ) );
+ } ?>
+
+
+
+
+ Internet Explorer Not Supported — Less than 2% of our customers use IE, so we've decided not to spend time supporting it. We ask that you use Firefox or a Webkit-based browser like Chrome or Safari instead. If this is a problem for you, please let us know.", 'wp-sync-db' ); ?>
+
+ PHP Function Disabled — The set_time_limit() function is currently disabled on your server. We use this function to ensure that the migration doesn't time out. We haven't disabled the plugin however, so you're free to cross your fingers and hope for the best. You may want to contact your web host to enable this function.", 'wp-sync-db' );
+ if ( function_exists( 'ini_get' ) ) {
+ printf( __( 'Your current PHP run time limit is set to %s seconds.', 'wp-sync-db' ), ini_get( 'max_execution_time' ) );
+ } ?>
+
"
+msgstr ""
+
+#: class/wpsdb-base.php:380
+msgid "Could not retrieve version details. Please try again."
+msgstr ""
+
+#: class/wpsdb-base.php:412
+msgid "There is a new version of "
+msgstr ""
+
+#: class/wpsdb-base.php:414
+#, php-format
+msgid "View version %s details"
+msgstr ""
+
+#: class/wpsdb-base.php:422 class/wpsdb-base.php:509
+#: class/wpsdb.php:417 class/wpsdb.php:1435
+msgid "Settings"
+msgstr ""
+
+#: class/wpsdb-base.php:478
+msgid "My Account"
+msgstr ""
+
+#: class/wpsdb-base.php:704
+msgid "Update Available"
+msgstr ""
+
+#: class/wpsdb-base.php:705
+#, php-format
+msgid ""
+"%1$s %2$s is now available. You currently have %3$s installed. %5$s"
+msgstr ""
+
+#: class/wpsdb-base.php:705
+msgid "Update Now"
+msgstr ""
+
+#: class/wpsdb-base.php:763
+#, php-format
+msgid ""
+"An Unexpected Error Occurred — Please contact us at "
+"%2$s and quote the following:"
+msgstr ""
+
+#: class/wpsdb-base.php:787
+#, php-format
+msgid "Invalid nonce for: %s"
+msgstr ""
+
+#: class/wpsdb-base.php:794
+#, php-format
+msgid "Access denied for: %s"
+msgstr ""
+
+#: class/wpsdb.php:317
+msgid "Addons Unavailable"
+msgstr ""
+
+#: class/wpsdb.php:330
+msgid "Installed"
+msgstr ""
+
+#: class/wpsdb.php:332
+msgid "Activated"
+msgstr ""
+
+#: class/wpsdb.php:336
+msgid "Activate"
+msgstr ""
+
+#: class/wpsdb.php:341
+msgid "Install"
+msgstr ""
+
+#: class/wpsdb.php:344
+msgid "Download"
+msgstr ""
+
+#: class/wpsdb.php:478
+msgid "ext/mysqli"
+msgstr ""
+
+#: class/wpsdb.php:482
+msgid "WP Memory Limit"
+msgstr ""
+
+#: class/wpsdb.php:725
+msgid "Could not upload the SQL to the server. (#135)"
+msgstr ""
+
+#: class/wpsdb.php:730
+msgid "Could not read the SQL file we uploaded to the server. (#136)"
+msgstr ""
+
+#: class/wpsdb.php:746
+msgid ""
+"The connection succeeded but the remote site is configured to reject push "
+"connections. You can change this in the \"settings\" tab on the remote site. "
+"(#133)"
+msgstr ""
+
+#: class/wpsdb.php:963
+msgid ""
+"The connection succeeded but the remote site is configured to reject pull "
+"connections. You can change this in the \"settings\" tab on the remote site. "
+"(#132)"
+msgstr ""
+
+#: class/wpsdb.php:1032 class/wpsdb.php:1204
+msgid ""
+"Failed attempting to unserialize the response from the remote server. Please "
+"contact support."
+msgstr ""
+
+#: class/wpsdb.php:1081 class/wpsdb.php:1252
+msgid "pull"
+msgstr ""
+
+#: class/wpsdb.php:1084 class/wpsdb.php:1255
+msgid "push"
+msgstr ""
+
+#: class/wpsdb.php:1086
+#, php-format
+msgid ""
+"The connection succeeded but the remote site is configured to reject %s "
+"connections. You can change this in the \"settings\" tab on the remote site. "
+"(#110)"
+msgstr ""
+
+#: class/wpsdb.php:1175
+msgid ""
+"Please activate your license before attempting a pull or push migration."
+msgstr ""
+
+#: class/wpsdb.php:1243
+msgid "Try again?"
+msgstr ""
+
+#: class/wpsdb.php:1257
+#, php-format
+msgid ""
+"The connection succeeded but the remote site is configured to reject %s "
+"connections. You can change this in the \"settings\" tab on the remote site. "
+"(#122) Try again?"
+msgstr ""
+
+#: class/wpsdb.php:1435
+msgid "Migrate"
+msgstr ""
+
+#: class/wpsdb.php:1435
+msgid "Addons"
+msgstr ""
+
+#: class/wpsdb.php:1435
+msgid "Help"
+msgstr ""
+
+#: class/wpsdb.php:1455
+#, php-format
+msgid ""
+"The version of the %1$s addon you have installed%2$s is out-of-date and will "
+"not work with this version WP Sync DB. Update Now"
+msgstr ""
+
+#: class/wpsdb.php:1464
+msgid ""
+"PHP Safe Mode Enabled — We do not officially support "
+"running this plugin in safe mode because set_time_limit() has "
+"no effect. Therefore we can't extend the run time of the script and ensure "
+"it doesn't time out before the migration completes. We haven't disabled the "
+"plugin however, so you're free to cross your fingers and hope for the best. "
+"However, if you have trouble, we can't help you until you turn off safe mode."
+msgstr ""
+
+#: class/wpsdb.php:1466 class/wpsdb.php:1485
+#, php-format
+msgid "Your current PHP run time limit is set to %s seconds."
+msgstr ""
+
+#: class/wpsdb.php:1474
+#, php-format
+msgid ""
+"Internet Explorer Not Supported — Less than 2% of our "
+"customers use IE, so we've decided not to spend time supporting it. We ask "
+"that you use Firefox or a Webkit-based browser like Chrome or Safari "
+"instead. If this is a problem for you, please let us know."
+msgstr ""
+
+#: class/wpsdb.php:1483
+msgid ""
+"PHP Function Disabled — The set_time_limit()"
+"code> function is currently disabled on your server. We use this function to "
+"ensure that the migration doesn't time out. We haven't disabled the plugin "
+"however, so you're free to cross your fingers and hope for the best. You may "
+"want to contact your web host to enable this function."
+msgstr ""
+
+#: class/wpsdb.php:1660
+msgid ""
+"Failed to retrieve table structure, please ensure your database is online. "
+"(#125)"
+msgstr ""
+
+#: class/wpsdb.php:1677
+#, php-format
+msgid "Delete any existing table %s"
+msgstr ""
+
+#: class/wpsdb.php:1691
+#, php-format
+msgid "Table structure of table %s"
+msgstr ""
+
+#: class/wpsdb.php:1698
+msgid ""
+"Failed to generate the create table query, please ensure your database is "
+"online. (#126)"
+msgstr ""
+
+#: class/wpsdb.php:1734
+#, php-format
+msgid "Data contents of table %s"
+msgstr ""
+
+#: class/wpsdb.php:2022
+#, php-format
+msgid "End of data contents of table %s"
+msgstr ""
+
+#: class/wpsdb.php:2153
+msgid "WordPress MySQL database migration"
+msgstr ""
+
+#: class/wpsdb.php:2155
+#, php-format
+msgid "Generated: %s"
+msgstr ""
+
+#: class/wpsdb.php:2156
+#, php-format
+msgid "Hostname: %s"
+msgstr ""
+
+#: class/wpsdb.php:2157
+#, php-format
+msgid "Database: %s"
+msgstr ""
+
+#: class/wpsdb.php:2187
+msgid "Failed to write the gzipped SQL data to the file. (#127)"
+msgstr ""
+
+#: class/wpsdb.php:2193
+msgid "Failed to write the SQL data to the file. (#128)"
+msgstr ""
+
+#: class/wpsdb.php:2382
+msgid ""
+"A problem occurred when trying to change the maximum request size, please "
+"try again."
+msgstr ""
+
+#: class/wpsdb.php:2383 class/wpsdb.php:2593
+msgid "A problem occurred when trying to check the license, please try again."
+msgstr ""
+
+#: class/wpsdb.php:2384
+msgid "Establishing connection to remote server, please wait"
+msgstr ""
+
+#: class/wpsdb.php:2385
+msgid ""
+"A problem occurred when attempting to connect to the local server, please "
+"check the details and try again."
+msgstr ""
+
+#: class/wpsdb.php:2386
+msgid "Please enter your license key."
+msgstr ""
+
+#: class/wpsdb.php:2387
+msgid ""
+"A problem occurred when trying to register the license, please try again."
+msgstr ""
+
+#: class/wpsdb.php:2388
+msgid ""
+"Your license has been activated. You will now receive automatic updates and "
+"access to email support."
+msgstr ""
+
+#: class/wpsdb.php:2389 template/help.php:29
+msgid "Fetching license details, please wait..."
+msgstr ""
+
+#: class/wpsdb.php:2390
+msgid ""
+"An error occurred when trying to clear the debug log. Please contact "
+"support. (#132)"
+msgstr ""
+
+#: class/wpsdb.php:2391
+msgid ""
+"An error occurred when trying to update the debug log. Please contact "
+"support. (#133)"
+msgstr ""
+
+#: class/wpsdb.php:2392
+msgid "Migrate DB & Save"
+msgstr ""
+
+#: class/wpsdb.php:2393
+msgid "Migrate DB"
+msgstr ""
+
+#: class/wpsdb.php:2394
+msgid "Please select at least one table to migrate."
+msgstr ""
+
+#: class/wpsdb.php:2395
+msgid "Please enter a name for your migration profile."
+msgstr ""
+
+#: class/wpsdb.php:2396
+msgid ""
+"An error occurred when attempting to save the migration profile. Please see "
+"the Help tab for details on how to request support. (#118)"
+msgstr ""
+
+#: class/wpsdb.php:2397
+msgid "Exporting complete"
+msgstr ""
+
+#: class/wpsdb.php:2398
+msgid "Exporting, please wait..."
+msgstr ""
+
+#: class/wpsdb.php:2399
+msgid "please wait..."
+msgstr ""
+
+#: class/wpsdb.php:2400
+msgid "complete"
+msgstr ""
+
+#: class/wpsdb.php:2401
+msgid "Migration failed"
+msgstr ""
+
+#: class/wpsdb.php:2402
+msgid "Backing up"
+msgstr ""
+
+#: class/wpsdb.php:2403
+msgid "Migrating"
+msgstr ""
+
+#: class/wpsdb.php:2404
+msgid "Status"
+msgstr ""
+
+#: class/wpsdb.php:2405
+msgid "Response"
+msgstr ""
+
+#: class/wpsdb.php:2406
+msgid ""
+"A problem occurred when attempting to process the following table (#113)"
+msgstr ""
+
+#: class/wpsdb.php:2407
+msgid ""
+"A problem occurred when processing the following table. We were expecting a "
+"response in JSON format but instead received an empty response."
+msgstr ""
+
+#: class/wpsdb.php:2408
+msgid "Migration completed with some errors"
+msgstr ""
+
+#: class/wpsdb.php:2409
+msgid "Migration complete, your backup is located at:"
+msgstr ""
+
+#: class/wpsdb.php:2410
+msgid "A problem occurred when finalizing the backup. (#132)"
+msgstr ""
+
+#: class/wpsdb.php:2411 template/settings.php:78 template/settings.php:92
+msgid "Saved"
+msgstr ""
+
+#: class/wpsdb.php:2412
+msgid ""
+"Any sites setup to use the current API key will no longer be able to "
+"connect. You will need to update those sites with the newly generated API "
+"key. Do you wish to continue?"
+msgstr ""
+
+#: class/wpsdb.php:2413
+msgid ""
+"An error occurred when trying to generate the API key. Please see the Help "
+"tab for details on how to request support. (#105)"
+msgstr ""
+
+#: class/wpsdb.php:2414
+msgid ""
+"You are removing the following migration profile. This cannot be undone. Do "
+"you wish to continue?"
+msgstr ""
+
+#: class/wpsdb.php:2415
+msgid ""
+"An error occurred when trying to delete the profile. Please see the Help tab "
+"for details on how to request support. (#106)"
+msgstr ""
+
+#: class/wpsdb.php:2416
+msgid ""
+"The selected migration profile could not be deleted because it was not "
+"found.\n"
+"Please refresh this page to see an accurate list of the currently available "
+"migration profiles."
+msgstr ""
+
+#: class/wpsdb.php:2417
+msgid ""
+"If you change the connection details, you will lose any replaces and table "
+"selections you have made below. Do you wish to continue?"
+msgstr ""
+
+#: class/wpsdb.php:2418 template/migrate.php:129
+msgid "Please enter the connection information above to continue."
+msgstr ""
+
+#: class/wpsdb.php:2419
+msgid ""
+"An error occurred when trying to save the settings. Please try again. If the "
+"problem persists, please see the Help tab for details on how to request "
+"support. (#108)"
+msgstr ""
+
+#: class/wpsdb.php:2420
+msgid ""
+"The connection information appears to be missing, please enter it to "
+"continue."
+msgstr ""
+
+#: class/wpsdb.php:2421
+msgid ""
+"The connection information appears to be incorrect, it should consist of two "
+"lines. The first being the remote server's URL and the second being the "
+"secret key."
+msgstr ""
+
+#: class/wpsdb.php:2422
+msgid ""
+"The URL on the first line appears to be invalid, please check it and try "
+"again."
+msgstr ""
+
+#: class/wpsdb.php:2423
+msgid ""
+"The secret key on the second line appears to be invalid. It should be a 32 "
+"character string that consists of letters, numbers and special characters "
+"only."
+msgstr ""
+
+#: class/wpsdb.php:2424
+msgid ""
+"It appears you've entered the URL for this website, you need to provide the "
+"URL of the remote website instead."
+msgstr ""
+
+#: class/wpsdb.php:2425
+msgid ""
+"It appears you've entered the secret key for this website, you need to "
+"provide the secret key for the remote website instead."
+msgstr ""
+
+#: class/wpsdb.php:2426 template/migrate-progress.php:8
+msgid "Time Elapsed:"
+msgstr ""
+
+#: class/wpsdb.php:2427 template/migrate-progress.php:19
+msgid "Pause"
+msgstr ""
+
+#: class/wpsdb.php:2428
+msgid "Migration Paused"
+msgstr ""
+
+#: class/wpsdb.php:2429
+msgid "Resume"
+msgstr ""
+
+#: class/wpsdb.php:2430
+msgid "Completing current request"
+msgstr ""
+
+#: class/wpsdb.php:2431
+msgid "Cancelling migration"
+msgstr ""
+
+#: class/wpsdb.php:2432
+msgid "Paused"
+msgstr ""
+
+#: class/wpsdb.php:2433
+msgid "Removing the local MySQL export file"
+msgstr ""
+
+#: class/wpsdb.php:2434
+msgid "Removing the local backup MySQL export file"
+msgstr ""
+
+#: class/wpsdb.php:2435
+msgid "Removing the local temporary tables"
+msgstr ""
+
+#: class/wpsdb.php:2436
+msgid "Removing the remote backup MySQL export file"
+msgstr ""
+
+#: class/wpsdb.php:2437
+msgid "Removing the remote temporary tables"
+msgstr ""
+
+#: class/wpsdb.php:2438
+msgid "Migration cancellation failed"
+msgstr ""
+
+#: class/wpsdb.php:2439
+msgid ""
+"A problem occurred while cancelling the migration, you may have to manually "
+"delete some temporary files / tables."
+msgstr ""
+
+#: class/wpsdb.php:2440
+msgid "Migration cancelled"
+msgstr ""
+
+#: class/wpsdb.php:2474
+msgid "Could not find the file to download:"
+msgstr ""
+
+#: class/wpsdb.php:2652
+msgctxt ""
+"\"Remove\" in this context is used to delete a license, example formatting: "
+"xxxx-xxxx-xxxx Remove"
+msgid "Remove"
+msgstr ""
+
+#: class/wpsdb.php:2785
+msgid "MySQL export file not found."
+msgstr ""
+
+#: template/addons.php:7
+msgid "Fetching addon details, please wait..."
+msgstr ""
+
+#: template/addons.php:9 template/help.php:31
+msgid ""
+"We couldn't find your license information. Please switch to the settings tab "
+"and enter your license."
+msgstr ""
+
+#: template/addons.php:10
+msgid "Once completed, you may visit this tab to view the available addons."
+msgstr ""
+
+#: template/help.php:4
+msgid "Feature Walkthrough"
+msgstr ""
+
+#: template/help.php:5
+msgid ""
+"A brief walkthrough of the WP Sync DB plugin showing all of the different "
+"options and explaining them."
+msgstr ""
+
+#: template/help.php:8
+msgid "Pulling Live Data Into Your Local Development Environment"
+msgstr ""
+
+#: template/help.php:9
+msgid ""
+"This screencast demonstrates how you can pull data from a remote, live "
+"WordPress install and update the data in your local development environment."
+msgstr ""
+
+#: template/help.php:12
+msgid "Pushing Local Development Data to a Staging Environment"
+msgstr ""
+
+#: template/help.php:13
+msgid ""
+"This screencast demonstrates how you can push a local WordPress database "
+"you've been using for development to a staging environment."
+msgstr ""
+
+#: template/help.php:16
+msgid "Media Files Addon Demo"
+msgstr ""
+
+#: template/help.php:17
+msgid ""
+"A short demo of how the Media Files addon allows you to sync up your "
+"WordPress Media Libraries."
+msgstr ""
+
+#: template/help.php:26
+msgid "Email Support"
+msgstr ""
+
+#: template/help.php:32
+msgid "Once completed, you may visit this tab to view your support details."
+msgstr ""
+
+#: template/help.php:38
+msgid "Diagnostic Info & Error Log"
+msgstr ""
+
+#: template/help.php:40
+msgid "Clear Error Log"
+msgstr ""
+
+#: template/help.php:44
+msgid "Videos"
+msgstr ""
+
+#: template/migrate-progress.php:4
+msgid "Please wait while migration is running..."
+msgstr ""
+
+#: template/migrate-progress.php:7
+msgid "Establishing Connection"
+msgstr ""
+
+#: template/migrate-progress.php:20
+msgid "Cancel"
+msgstr ""
+
+#: template/migrate.php:61 template/migrate.php:467
+msgid "Back to select a saved profile"
+msgstr ""
+
+#: template/migrate.php:70
+msgid "Export File"
+msgstr ""
+
+#: template/migrate.php:76
+msgid "Save as file to your computer"
+msgstr ""
+
+#: template/migrate.php:83
+msgid "Compress file with gzip"
+msgstr ""
+
+#: template/migrate.php:92
+msgid "Pull"
+msgstr ""
+
+#: template/migrate.php:92
+msgid "Replace this site's db with remote db"
+msgstr ""
+
+#: template/migrate.php:101
+msgid "Push"
+msgstr ""
+
+#: template/migrate.php:101
+msgid "Replace remote db with this site's db"
+msgstr ""
+
+#: template/migrate.php:110
+msgid "Connection Info - Site URL & Secret Key"
+msgstr ""
+
+#: template/migrate.php:120
+msgid "SSL Disabled"
+msgstr ""
+
+#: template/migrate.php:120
+msgid ""
+"We couldn't connect over SSL but regular http (no SSL) appears to be working "
+"so we've switched to that. If you run a push or pull, your data will be "
+"transmitted unencrypted. Most people are fine with this, but just a heads up."
+msgstr ""
+
+#: template/migrate.php:132
+msgid "Version Mismatch"
+msgstr ""
+
+#: template/migrate.php:132
+#, php-format
+msgid ""
+"We've detected you have version of WP "
+"Sync DB at but are using %1$s "
+"here. Please go to the Plugins page on both installs "
+"and check for updates."
+msgstr ""
+
+#: template/migrate.php:136
+msgid "Cannot Access Uploads Directory"
+msgstr ""
+
+#: template/migrate.php:138
+msgid ""
+"We require write permissions to the standard WordPress uploads directory. "
+"Without this permission exports are unavailable. Please grant 755 "
+"permissions on the following directory:"
+msgstr ""
+
+#: template/migrate.php:147
+msgid "Find"
+msgstr ""
+
+#: template/migrate.php:148
+msgid "Replace"
+msgstr ""
+
+#: template/migrate.php:151
+msgid ""
+"Doesn't look we have any replaces yet, add one?"
+msgstr ""
+
+#: template/migrate.php:230
+#, php-format
+msgid ""
+"New URL Missing — Please enter the protocol-relative "
+"URL of the remote website in the \"New URL\" field. If you are unsure of "
+"what this URL should be, please consult our "
+"documentation on find and replace fields."
+msgstr ""
+
+#: template/migrate.php:231
+#, php-format
+msgid ""
+"New File Path Missing — Please enter the root file "
+"path of the remote website in the \"New file path\" field. If you are unsure "
+"of what the file path should be, please consult our documentation on find and replace fields."
+msgstr ""
+
+#: template/migrate.php:248
+msgid "Migrate all tables with prefix"
+msgstr ""
+
+#: template/migrate.php:254
+msgid "Migrate only selected tables below"
+msgstr ""
+
+#: template/migrate.php:272 template/migrate.php:300 template/migrate.php:395
+#: template/settings.php:70
+msgid "Select All"
+msgstr ""
+
+#: template/migrate.php:274 template/migrate.php:302 template/migrate.php:397
+#: template/settings.php:72
+msgid "Deselect All"
+msgstr ""
+
+#: template/migrate.php:276 template/migrate.php:304 template/migrate.php:399
+#: template/settings.php:74
+msgid "Invert Selection"
+msgstr ""
+
+#: template/migrate.php:284
+msgid "Exclude Post Types"
+msgstr ""
+
+#: template/migrate.php:312
+msgid "Advanced Options"
+msgstr ""
+
+#: template/migrate.php:321
+msgid "Replace GUIDs"
+msgstr ""
+
+#: template/migrate.php:327
+#, php-format
+msgid ""
+"Although the WordPress Codex emphasizes "
+"that GUIDs should not be changed, this is limited to sites that are already "
+"live. If the site has never been live, I recommend replacing the GUIDs. For "
+"example, you may be developing a new site locally at dev.somedomain.com and "
+"want to migrate the site live to somedomain.com."
+msgstr ""
+
+#: template/migrate.php:333
+msgid "Exclude spam comments"
+msgstr ""
+
+#: template/migrate.php:339
+msgid ""
+"Do not migrate the 'active_plugins' setting (i.e. which plugins are "
+"activated/deactivated)"
+msgstr ""
+
+#: template/migrate.php:356
+msgid ""
+"Backup the local database before "
+"replacing it"
+msgstr ""
+
+#: template/migrate.php:357
+msgid "An SQL file will be saved to"
+msgstr ""
+
+#: template/migrate.php:365
+msgid "Backup all tables with prefix"
+msgstr ""
+
+#: template/migrate.php:371
+msgid "Backup only tables selected for migration"
+msgstr ""
+
+#: template/migrate.php:377
+msgid "Backup only selected tables below"
+msgstr ""
+
+#: template/migrate.php:402
+#, php-format
+msgid ""
+"The backup option has been disabled as your local uploads directory is currently not writeable. The following "
+"directory should have 755 permissions: %s"
+msgstr ""
+
+#: template/migrate.php:410
+msgid "Save Migration Profile"
+msgstr ""
+
+#: template/migrate.php:410
+msgid "Save the above settings for the next time you do a similiar migration"
+msgstr ""
+
+#: template/migrate.php:429
+msgid "Create new profile"
+msgstr ""
+
+#: template/migrate.php:438 template/migrate.php:448
+msgid "Warning: Different Table Prefixes"
+msgstr ""
+
+#: template/migrate.php:440
+msgid ""
+"Whoa! We've detected that the database table prefix differs between "
+"installations. Clicking the Migrate DB button below will create new database "
+"tables in your local database with prefix \""
+"span>\"."
+msgstr ""
+
+#: template/migrate.php:442
+#, php-format
+msgid ""
+"However, your local install is configured to use table prefix \"%1$s\" and "
+"will ignore the migrated tables. So, AFTER migration is complete, you "
+"will need to edit your local install's wp-config.php and change the \"%1$s\" "
+"variable to \"\"."
+msgstr ""
+
+#: template/migrate.php:444
+msgid ""
+"This will allow your local install the use the migrated tables. Once you do "
+"this, you shouldn't have to do it again."
+msgstr ""
+
+#: template/migrate.php:450
+#, php-format
+msgid ""
+"Whoa! We've detected that the database table prefix differs between "
+"installations. Clicking the Migrate DB button below will create new database "
+"tables in the remote database with prefix \"%s\"."
+msgstr ""
+
+#: template/migrate.php:452
+#, php-format
+msgid ""
+"However, your remote install is configured to use table prefix \"\" and will ignore the migrated tables. So, "
+"AFTER migration is complete, you will need to edit your remote "
+"install's wp-config.php and change the \""
+"span>\" variable to \"%s\"."
+msgstr ""
+
+#: template/migrate.php:454
+msgid ""
+"This will allow your remote install the use the migrated tables. Once you do "
+"this, you shouldn't have to do it again."
+msgstr ""
+
+#: template/profile.php:2
+msgid "Would you like to use a saved migration profile?"
+msgstr ""
+
+#: template/profile.php:7
+msgid "Nope, let's start fresh..."
+msgstr ""
+
+#: template/settings.php:20
+msgid ""
+"Accept pull requests allow this database to be exported and downloaded"
+msgstr ""
+
+#: template/settings.php:26
+msgid "Accept push requests allow this database to be overwritten"
+msgstr ""
+
+#: template/settings.php:32
+msgid "Enable SSL verification"
+msgstr ""
+
+#: template/settings.php:36
+msgid ""
+"We disable SSL verification by default because a lot of people's "
+"environments are not setup for it to work. For example, with XAMPP, you have "
+"to manually enable OpenSSL by editing the php.ini. Without SSL verification, "
+"an HTTPS connection is vulnerable to a man-in-the-middle attack, so we do "
+"recommend you configure your environment and enable this."
+msgstr ""
+
+#: template/settings.php:43
+msgid "Connection Info"
+msgstr ""
+
+#: template/settings.php:45
+msgid "Reset API Key"
+msgstr ""
+
+#: template/settings.php:51
+msgid ""
+"Improve performance and reliability by not loading the following plugins for "
+"migration requests"
+msgstr ""
+
+#: template/settings.php:55
+msgid ""
+"Some plugins add a lot of overhead to each request, requiring extra memory "
+"and CPU. And some plugins even interfere with migrations and cause them to "
+"fail. We recommend only loading plugins that affect migration requests, for "
+"example a plugin that hooks into WP Sync DB."
+msgstr ""
+
+#: template/settings.php:77
+msgid "Save Changes"
+msgstr ""
+
+#: template/settings.php:85
+msgid "Maximum Request Size"
+msgstr ""
+
+#: template/settings.php:88
+#, php-format
+msgid ""
+"We've detected that your server supports requests up to %s, but it's "
+"possible that your server has limitations that we could not detect. To be on "
+"the safe side, we set the default to 1 MB, but you can try throttling it up "
+"to get better performance. If you're getting a 413 error or having trouble "
+"with time outs, try throttling this setting down."
+msgstr ""
+
+#: template/settings.php:100
+msgid "Your License"
+msgstr ""
+
+#: template/settings.php:103
+msgid "The license key is currently defined in wp-config.php."
+msgstr ""
+
+#: template/settings.php:111
+msgid "Activate License"
+msgstr ""
diff --git a/readme.txt b/readme.txt
deleted file mode 100644
index 8d78a6d..0000000
--- a/readme.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-=== WP Migrate DB ===
-Contributors: bradt
-Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5VPMGLLK94XJC
-Tags: database, migrate, backup, mysql
-Requires at least: 2.0.3
-Tested up to: 3.5
-Stable tag: 0.4.3
-License: GPLv2
-
-Exports your database, does a find and replace on URLs and file paths, then allows you to save it to your computer.
-
-== Description ==
-
-WP Migrate DB exports your database as a MySQL data dump (much like phpMyAdmin), does a find and replace on URLs and file paths, then allows you to save it to your computer. It is perfect for developers who develop locally and need to move their Wordpress site to a staging or production server.
-
-It even takes into account serialized data and updates the string length values.
-
-Example: s:5:"hello" becomes s:11:"hello world"
-
-[**Contribute on Github**](https://github.com/bradt/wp-migrate-db)
-
-== Installation ==
-
-1. Use WordPress' built-in installer
-2. Access the WP Migrate DB menu option under Tools
-
-== Screenshots ==
-
-1. Main screen
-2. Saving the exported database
-
-== Changelog ==
-
-= 0.4.3 - 2012-12-18 =
-* Fixed deprecated error notices when debug mode is on
-* Bug fix: [Exports views as tables](https://github.com/bradt/wp-migrate-db/issues/3)
-* Compatibility tested with WordPress 3.5
-
-= 0.4.2 - 2012-09-13 =
-* Moved screenshots to /assets folder and updated them to support retina
-* Added sidebar including author profile and survey to gauge interest for a pro version
-
-= 0.4.1 - 2012-08-15 =
-* Removed WP App Store installer - not allowed in WP.org repo
-
-= 0.4 - 2012-08-07 =
-* New: More than 4x faster than version 0.3 due to find & replace improvements
-* New: Option to turn off replacing GUIDs
-* New: Option to exclude spam comments and post revisions from the export
-* New: Option to save file with gzip compression
-* New: Added date and time to file names
-* New: Display path to SQL file on the server
-* New: WP App Store installer integration
-* Bug fix: Notices and warnings displayed when WP_DEBUG is on
-
-= 0.3 - 2011-12-16 =
-* Bug fix: [Null formatting error](http://plugins.trac.wordpress.org/ticket/1430)
-* Bug fix: [Deprecated capability](http://plugins.trac.wordpress.org/ticket/1431)
-* Bug fix: Serialized string lengths incorrect when string contains double quotes
-
-= 0.2.2 - 2011-09-23 =
-* Bug fix: [Breaks Export](http://wordpress.org/support/topic/plugin-wp-migrate-db-breaks-export?replies=1)
-
-= 0.2.1 - 2009-12-13 =
-* Moved to Wordpress.org hosting
-
-= 0.2 - 2009-04-03 =
-* Moved menu link from "Settings" to "Tools"
-* The random string of characters no longer appears in the filename on save.
-
-= 0.1 - 2009-03-20 =
-* First release
-
-== Upgrade Notice ==
-
-= 0.4 =
-Runs export over 4x faster and adds some nice new features often requested. Upgrade recommended.
-
-= 0.2.2 =
-This version fixes a bug that breaks the WordPress core export feature. It is highly recommended that everyone upgrade.
diff --git a/template/help.php b/template/help.php
new file mode 100755
index 0000000..2fe6616
--- /dev/null
+++ b/template/help.php
@@ -0,0 +1,48 @@
+ array(
+ 'title' => __( 'Feature Walkthrough', 'wp-sync-db' ),
+ 'desc' => __( 'A brief walkthrough of the WP Sync DB plugin showing all of the different options and explaining them.', 'wp-sync-db' )
+ ),
+ 'IFdHIpf6jjc' => array(
+ 'title' => __( 'Pulling Live Data Into Your Local Development Environment', 'wp-sync-db' ),
+ 'desc' => __( 'This screencast demonstrates how you can pull data from a remote, live WordPress install and update the data in your local development environment.', 'wp-sync-db' )
+ ),
+ 'FjTzNqAlQE0' => array(
+ 'title' => __( 'Pushing Local Development Data to a Staging Environment', 'wp-sync-db' ),
+ 'desc' => __( 'This screencast demonstrates how you can push a local WordPress database you\'ve been using for development to a staging environment.', 'wp-sync-db' )
+ ),
+ '0aR8-jC2XXM' => array(
+ 'title' => __( 'Media Files Addon Demo', 'wp-sync-db' ),
+ 'desc' => __( 'A short demo of how the Media Files addon allows you to sync up your WordPress Media Libraries.', 'wp-sync-db' )
+ )
+);
+?>
+
+
diff --git a/template/migrate-progress.php b/template/migrate-progress.php
new file mode 100644
index 0000000..1b3f148
--- /dev/null
+++ b/template/migrate-progress.php
@@ -0,0 +1,23 @@
+
+ ×
+
+
+
+
+
+
+
+
+
+
+
wp_options
+
+
+
+
+
+
+
+
+
+
diff --git a/template/migrate.php b/template/migrate.php
new file mode 100644
index 0000000..f54a92f
--- /dev/null
+++ b/template/migrate.php
@@ -0,0 +1,471 @@
+get_profile( $_GET['wpsdb-profile'] );
+}
+else{
+ $loaded_profile = $this->default_profile;
+}
+
+$is_default_profile = isset( $loaded_profile['default_profile'] );
+
+$convert_exclude_revisions = false;
+$convert_post_type_selection = false;
+if( ! $is_default_profile ) {
+ if( isset( $loaded_profile['exclude_revisions'] ) ) {
+ $convert_exclude_revisions = true;
+ }
+ /* We used to provide users the option of selecting which post types they'd like to migrate.
+ * We found that our wording for this funtionality was a little confusing so we switched it to instead read "Exclude Post Types"
+ * Once we made the switch we needed a way of inverting their saved post type selection to instead exclude the select post types.
+ * This was required to make their select compatible with the new "exclude" wording.
+ * This is easy enough for "push" and "export" saved profile as we know which post types exist on the local system and
+ * can easily invert the selection. Pull saved profiles is a little tricker.
+ * $this->maybe_update_profile() is used to update deprecated profile options to their new values.
+ * At the time of page request $this->maybe_update_profile() cannot be used to update a pull profile as we don't know which
+ * post types exist on the remote machine. As such we invert this selection later using the $convert_post_type_selection flag below.
+ */
+ if ( isset( $loaded_profile['post_type_migrate_option'] ) && 'migrate_select_post_types' == $loaded_profile['post_type_migrate_option'] && 'pull' == $loaded_profile['action'] ) {
+ $convert_post_type_selection = true;
+ }
+ $loaded_profile = $this->maybe_update_profile( $loaded_profile, $_GET['wpsdb-profile'] );
+}
+
+if( false == $is_default_profile ) {
+ $loaded_profile = wp_parse_args( $loaded_profile, $this->default_profile );
+}
+$loaded_profile = wp_parse_args( $loaded_profile, $this->checkbox_options );
+?>
+
+
+
+
+
+ template( 'migrate-progress' );
+ ?>
+
+
diff --git a/template/profile.php b/template/profile.php
new file mode 100644
index 0000000..1f26fe4
--- /dev/null
+++ b/template/profile.php
@@ -0,0 +1,9 @@
+
- Your database (SQL) file has been successfully generated.
- Your download should begin any second.
-
-
-
- Your database (SQL) file has been successfully generated and
- saved to upload_dir . DS . $this->get_filename( $this->datetime, isset( $_POST['gzipfile'] ) ); ?>.
- Click
- here to download.
-
- The directory upload_dir; ?> needs
- to be writable.
-
-
-
- errors)) {
- ?>
-
-
-
- Sorry, there were errors with your form submission.
- Please correct them below and try again.
-
-
-
-
-
-
- WP Migrate DB exports your database as a MySQL data dump (much like phpMyAdmin),
- does a find and replace on URLs and file paths, then allows you to save
- it to your computer. It even takes into account serialized data and updates the
- string length values.
-