├── .distignore
├── .eslintrc
├── .github
├── ISSUE_TEMPLATE
│ ├── Bug_report.yml
│ └── Feature_request.yml
├── PULL_REQUEST_TEMPLATE.md
├── dependabot.yml
├── labeler.yml
└── workflows
│ ├── build-dev-artifact.yml
│ ├── create-tag.yml
│ ├── deploy.yml
│ ├── issue-labeler.yml
│ ├── new-issues.yml
│ ├── pr-checklist.yml
│ ├── sync-branches.yml
│ ├── sync-wporg-assets.yml
│ └── test-php.yml
├── .releaserc.yml
├── .wordpress-org
├── banner-1544x500.png
├── banner-772-250.png
├── icon-128x128.gif
├── icon-256x256.gif
├── screenshot-1.png
├── screenshot-2.png
├── screenshot-3.png
├── screenshot-4.png
├── screenshot-5.png
├── screenshot-6.png
└── screenshot-7.png
├── CHANGELOG.md
├── CONTRIBUTING.md
├── README.md
├── assets
├── css
│ ├── chosen.css
│ ├── index.php
│ ├── jquery-ui-styles
│ │ ├── 1.11.4
│ │ │ ├── jquery-ui.css
│ │ │ └── jquery-ui.min.css
│ │ ├── 1.12.1
│ │ │ ├── jquery-ui.css
│ │ │ └── jquery-ui.min.css
│ │ ├── 1.13.0
│ │ │ ├── jquery-ui.css
│ │ │ └── jquery-ui.min.css
│ │ └── 1.13.1
│ │ │ ├── jquery-ui.css
│ │ │ └── jquery-ui.min.css
│ ├── jquery-ui-timepicker-addon.css
│ ├── style-admin.css
│ ├── style-wizard.css
│ ├── style.bot.css
│ └── style.css
├── images
│ ├── backgrounds
│ │ ├── bg1.jpg
│ │ ├── bg10.jpg
│ │ ├── bg10_thumb.jpg
│ │ ├── bg11.jpg
│ │ ├── bg11_thumb.jpg
│ │ ├── bg1_thumb.jpg
│ │ ├── bg2.jpg
│ │ ├── bg2_thumb.jpg
│ │ ├── bg3.jpg
│ │ ├── bg3_thumb.jpg
│ │ ├── bg4.jpg
│ │ ├── bg4_thumb.jpg
│ │ ├── bg5.jpg
│ │ ├── bg5_thumb.jpg
│ │ ├── bg6.jpg
│ │ ├── bg6_thumb.jpg
│ │ ├── bg7.jpg
│ │ ├── bg7_thumb.jpg
│ │ ├── bg8.jpg
│ │ ├── bg8_thumb.jpg
│ │ ├── bg9.jpg
│ │ └── bg9_thumb.jpg
│ ├── chatbot.png
│ ├── checked.svg
│ ├── chosen
│ │ ├── chosen-sprite.png
│ │ └── chosen-sprite@2x.png
│ ├── close.svg
│ ├── exit.svg
│ ├── finish-setup.svg
│ ├── icn_sprite.png
│ ├── icon.svg
│ ├── index.php
│ ├── otter-logo.svg
│ ├── recommended
│ │ ├── neve.jpg
│ │ ├── optimole.jpg
│ │ └── otter.jpg
│ └── subscribe.svg
├── index.php
├── js
│ ├── bot.async.js
│ ├── bot.js
│ ├── chosen.jquery.js
│ ├── index.php
│ ├── jquery-ui-timepicker-addon.js
│ ├── jquery.countdown.js
│ ├── jquery.fitvids.js
│ ├── jquery.plugin.js
│ ├── jquery.validate.js
│ ├── scripts-admin-global.js
│ ├── scripts-admin.js
│ └── scripts.js
└── templates
│ ├── coming-soon
│ ├── coming-soon-1
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ ├── coming-soon-2
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ ├── coming-soon-3
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ └── coming-soon-4
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ ├── landing-page
│ ├── landing-page-1
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ ├── landing-page-2
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ ├── landing-page-3
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ ├── landing-page-4
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ ├── landing-page-5
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ ├── landing-page-6
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ └── landing-page-7
│ │ ├── blocks-export.json
│ │ └── screenshot.png
│ └── maintenance
│ ├── maintenance-1
│ ├── blocks-export.json
│ └── screenshot.png
│ ├── maintenance-2
│ ├── blocks-export.json
│ └── screenshot.png
│ ├── maintenance-3
│ ├── blocks-export.json
│ └── screenshot.png
│ └── maintenance-4
│ ├── blocks-export.json
│ └── screenshot.png
├── bin
├── dist.sh
└── install-wp-tests.sh
├── includes
├── classes
│ ├── index.php
│ ├── shortcodes
│ │ ├── index.php
│ │ └── wp-maintenance-mode-shortcode-loginform.php
│ ├── wp-maintenance-mode-admin.php
│ ├── wp-maintenance-mode-shortcodes.php
│ └── wp-maintenance-mode.php
├── functions
│ ├── helpers.php
│ ├── hooks.php
│ └── index.php
└── index.php
├── index.php
├── languages
├── index.php
├── wp-maintenance-mode-de_DE.mo
├── wp-maintenance-mode-de_DE.po
├── wp-maintenance-mode-en_US.mo
├── wp-maintenance-mode-en_US.po
├── wp-maintenance-mode-es_ES.mo
├── wp-maintenance-mode-es_ES.po
├── wp-maintenance-mode-fa_IR.mo
├── wp-maintenance-mode-fa_IR.po
├── wp-maintenance-mode-fr_FR.mo
├── wp-maintenance-mode-fr_FR.po
├── wp-maintenance-mode-it_IT.mo
├── wp-maintenance-mode-it_IT.po
├── wp-maintenance-mode-nb_NO.mo
├── wp-maintenance-mode-nb_NO.po
├── wp-maintenance-mode-nl_NL.mo
├── wp-maintenance-mode-nl_NL.po
├── wp-maintenance-mode-pl_PL.mo
├── wp-maintenance-mode-pl_PL.po
├── wp-maintenance-mode-pt_BR.mo
├── wp-maintenance-mode-pt_BR.po
├── wp-maintenance-mode-pt_PT.mo
├── wp-maintenance-mode-pt_PT.po
├── wp-maintenance-mode-ro_RO.mo
├── wp-maintenance-mode-ro_RO.po
├── wp-maintenance-mode-ru_RU.mo
├── wp-maintenance-mode-ru_RU.po
├── wp-maintenance-mode-sv_SE.mo
├── wp-maintenance-mode-sv_SE.po
├── wp-maintenance-mode-uk_UA.mo
└── wp-maintenance-mode-uk_UA.po
├── phpcs.xml
├── phpunit.xml
├── readme.txt
├── tests
├── bootstrap.php
└── generic-test.php
├── uninstall.php
├── views
├── contact.php
├── google-analytics.php
├── index.php
├── loginform.php
├── maintenance.php
├── network-settings.php
├── notices.php
├── settings.php
├── sidebar.php
├── wizard.php
└── wpmm-page-template.php
├── wp-maintenance-mode.php
└── yarn.lock
/.distignore:
--------------------------------------------------------------------------------
1 | .git
2 | .github
3 | cypress
4 | .distignore
5 | .gitignore
6 | .travis.yml
7 | .jshintrc
8 | Gruntfile.js
9 | grunt
10 | phpcs.xml
11 | node_modules
12 | logs
13 | package.json
14 | bin
15 | .babelrc
16 | .commitlintrc.js
17 | .gitattributes
18 | .nvmrc
19 | .idea
20 | .releaserc.yml
21 | cypress.json
22 | docker-compose.ci.yml
23 | Dockerfile
24 | .env
25 | vue_src
26 | tests
27 | phpunit.xml
28 | npm-debug.log
29 | dist
30 | artifact
31 | composer.json
32 | composer.lock
33 | themeisle.enc
34 | .stylelintrc
35 | init.sh
36 | docker-compose.yml
37 | package-lock.json
38 | phpmd.xml
39 | webpack.config.js
40 | assets/vue
41 | .wordpress-org
42 | yarn.lock
43 | .eslintrc
44 | CONTRIBUTING.md
45 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@wordpress/eslint-plugin/recommended"],
3 | "ignorePatterns": ["**/vendor/**", "**/*.min.*"]
4 | }
5 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/Bug_report.yml:
--------------------------------------------------------------------------------
1 | name: Bug report
2 | description: Report a bug so we can get to squashing it.
3 | labels: bug
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | Thanks for taking the time to fill out this bug report!
9 | - type: textarea
10 | attributes:
11 | label: Description
12 | description: Please write a brief description of the bug, including what you expect to happen and what is currently happening.
13 | placeholder: |
14 | Feature '...' is not working properly. I expect '...' to happen, but '...' happens instead
15 | validations:
16 | required: true
17 |
18 | - type: textarea
19 | attributes:
20 | label: Step-by-step reproduction instructions
21 | description: Please write the steps needed to reproduce the bug.
22 | placeholder: |
23 | 1. Go to '...'
24 | 2. Click on '...'
25 | 3. Scroll down to '...'
26 | validations:
27 | required: true
28 |
29 | - type: textarea
30 | attributes:
31 | label: Screenshots, screen recording, code snippet or Help Scout ticket
32 | description: |
33 | If possible, please upload a screenshot or screen recording which demonstrates the bug.
34 | Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
35 | Tip: You can include links to customer Help Scout support thread.
36 | validations:
37 | required: false
38 |
39 | - type: input
40 | attributes:
41 | label: Environment info
42 | description: |
43 | Please share a https://pastebin.com/ link of your system details by going to site Admin -> Tools -> Site Health -> Info and Copy to Clipboard
44 | placeholder: pastebin.com/ ...
45 | validations:
46 | required: false
47 |
48 | - type: dropdown
49 | id: regression
50 | attributes:
51 | label: Is the issue you are reporting a regression
52 | description: |
53 | Choose "Yes" if the bug appeared after updating the product, meaning it worked before but not now. Choose "No" if the bug isn't caused by an update. Marking a bug as regression helps us fix issues from new changes faster.
54 | multiple: false
55 | options:
56 | - 'No'
57 | - 'Yes, this is a regression.'
58 | validations:
59 | required: true
60 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/Feature_request.yml:
--------------------------------------------------------------------------------
1 | name: Feature request
2 | description: Suggest a feature that we can implement.
3 | labels: new feature
4 | body:
5 | - type: textarea
6 | attributes:
7 | label: What problem does this address?
8 | description: |
9 | Can you give us a little more insight into this feature request? We'd love to know if it's related to any problems or pain points you've been facing.
10 | If so, can you please let us know what the issue is in a clear and simple way?
11 | Tip: If this is related to a customer request, please add the Help Scout thread URL.
12 | placeholder: |
13 | For example, something like "I find it tough when..." or "I get frustrated because..." would be great.
14 | validations:
15 | required: true
16 | - type: textarea
17 | attributes:
18 | label: What is your proposed solution?
19 | description: Can you please specify the desired feature or improvement and how it resolves the problem mentioned?
20 | validations:
21 | required: false
22 | - type: dropdown
23 | id: doc-needed
24 | attributes:
25 | label: Will this feature require documentation? (Optional)
26 | description: |
27 | Does this feature require the creation or update of documentation? If you're unsure, feel free to skip this.
28 | multiple: false
29 | options:
30 | - 'I dont know.'
31 | - 'No.'
32 | - 'Yes, it requires documentation.'
33 | validations:
34 | required: false
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ### Summary
2 |
3 |
4 | ### Will affect visual aspect of the product
5 |
6 | YES/NO
7 |
8 | ### Screenshots
9 |
10 | ### Test instructions
11 |
12 |
13 | -
14 | -
15 |
16 | ## Check before Pull Request is ready:
17 |
18 | * [ ] I have [written a test](CONTRIBUTING.md#writing-an-acceptance-test) and included it in this PR
19 | * [ ] I have [run all tests](CONTRIBUTING.md#run-tests) and they pass
20 | * [ ] The code passes when [running the PHP CodeSniffer](CONTRIBUTING.md#run-php-codesniffer)
21 | * [ ] Code meets [WordPress Coding Standards](CONTRIBUTING.md#coding-standards) for PHP, HTML, CSS and JS
22 | * [ ] [Security and Sanitization](CONTRIBUTING.md#security-and-sanitization) requirements have been followed
23 | * [ ] I have assigned a reviewer or two to review this PR (if you're not sure who to assign, we can do this step for you)
24 |
25 |
26 | Closes #.
27 |
28 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 |
2 | version: 2
3 | updates:
4 |
5 | # Maintain dependencies for Composer
6 | - package-ecosystem: "composer"
7 | directory: "/"
8 | schedule:
9 | interval: "weekly"
--------------------------------------------------------------------------------
/.github/labeler.yml:
--------------------------------------------------------------------------------
1 | regression:
2 | - '(Yes, this is a regression)'
3 |
4 | customer report:
5 | - '(helpscout|wordpress.org/support)'
6 |
7 | doc-needed:
8 | - '(Yes, it requires documentation.)'
--------------------------------------------------------------------------------
/.github/workflows/build-dev-artifact.yml:
--------------------------------------------------------------------------------
1 | name: Build and test
2 |
3 | on:
4 | pull_request:
5 | types: [opened, synchronize, ready_for_review]
6 | branches-ignore:
7 | - 'update_dependencies'
8 | concurrency:
9 | group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.ref }}
10 | cancel-in-progress: true
11 | jobs:
12 | dev-zip:
13 | name: Build ZIP and upload to s3
14 | if: github.event.pull_request.draft == false && github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
15 | runs-on: ubuntu-latest
16 | strategy:
17 | matrix:
18 | node-version: [14.x]
19 | outputs:
20 | branch-name: ${{ steps.retrieve-branch-name.outputs.branch_name }}
21 | git-sha-8: ${{ steps.retrieve-git-sha-8.outputs.sha8 }}
22 | steps:
23 | - name: Check out source files
24 | uses: actions/checkout@v2
25 | - name: Build files using ${{ matrix.node-version }}
26 | uses: actions/setup-node@v1
27 | with:
28 | node-version: ${{ matrix.node-version }}
29 | - name: Get yarn cache directory path
30 | id: yarn-cache-dir-path
31 | run: echo "::set-output name=dir::$(yarn cache dir)"
32 | - uses: actions/cache@v4
33 | id: yarn-cache
34 | with:
35 | path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
36 | key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
37 | restore-keys: |
38 | ${{ runner.os }}-yarn-
39 | - name: Get Composer Cache Directory
40 | id: composer-cache
41 | run: |
42 | echo "::set-output name=dir::$(composer config cache-files-dir)"
43 | - name: Configure Composer cache
44 | uses: actions/cache@v4
45 | with:
46 | path: ${{ steps.composer-cache.outputs.dir }}
47 | key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
48 | restore-keys: |
49 | ${{ runner.os }}-composer-
50 | - name: Install composer deps
51 | run: composer install --no-dev --prefer-dist --no-progress --no-suggest
52 | - name: Install yarn deps
53 | run: yarn install --frozen-lockfile
54 | - name: Build files
55 | run: yarn run build
56 | - name: Create zip
57 | run: yarn run dist
58 | - name: Retrieve branch name
59 | id: retrieve-branch-name
60 | run: echo "::set-output name=branch_name::$(REF=${GITHUB_HEAD_REF:-$GITHUB_REF} && echo ${REF#refs/heads/} | sed 's/\//-/g')"
61 | - name: Retrieve git SHA-8 string
62 | id: retrieve-git-sha-8
63 | run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
64 | - name: Upload Latest Version to S3
65 | uses: jakejarvis/s3-sync-action@master
66 | with:
67 | args: --acl public-read --follow-symlinks --delete
68 | env:
69 | AWS_S3_BUCKET: ${{ secrets.AWS_DEV_BUCKET }}
70 | AWS_ACCESS_KEY_ID: ${{ secrets.S3_AWS_KEY_ARTIFACTS }}
71 | AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_AWS_SECRET_ARTIFACTS }}
72 | SOURCE_DIR: artifact/
73 | DEST_DIR: ${{ github.event.pull_request.base.repo.name }}-${{ steps.retrieve-branch-name.outputs.branch_name }}-${{ steps.retrieve-git-sha-8.outputs.sha8 }}/
74 |
75 | comment-on-pr:
76 | name: Comment on PR with links to plugin ZIPs
77 | if: ${{ github.head_ref && github.head_ref != null }}
78 | runs-on: ubuntu-latest
79 | needs: dev-zip
80 | env:
81 | CI: true
82 | GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
83 | outputs:
84 | pr_number: ${{ steps.get-pr-number.outputs.num }}
85 | comment_body: ${{ steps.get-comment-body.outputs.body }}
86 | steps:
87 | - name: Get PR number
88 | id: get-pr-number
89 | run: echo "::set-output name=num::$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')"
90 |
91 | - name: Check if a comment was already made
92 | id: find-comment
93 | uses: peter-evans/find-comment@v2
94 | with:
95 | issue-number: ${{ steps.get-pr-number.outputs.num }}
96 | comment-author: pirate-bot
97 | body-includes: Download [build]
98 |
99 | - name: Get comment body
100 | id: get-comment-body
101 | run: |
102 | body="Plugin build for ${{ github.event.pull_request.head.sha }} is ready :bellhop_bell:!
103 | - Download [build](https://verti-artifacts.s3.amazonaws.com/${{ github.event.pull_request.base.repo.name }}-${{ needs.dev-zip.outputs.branch-name }}-${{ needs.dev-zip.outputs.git-sha-8 }}/wp-maintenance-mode.zip)"
104 | body="${body//$'\n'/'%0A'}"
105 | echo "::set-output name=body::$body"
106 | - name: Create comment on PR with links to plugin builds
107 | if: ${{ steps.find-comment.outputs.comment-id == '' }}
108 | uses: peter-evans/create-or-update-comment@v2
109 | with:
110 | issue-number: ${{ steps.get-pr-number.outputs.num }}
111 | body: ${{ steps.get-comment-body.outputs.body }}
112 | token: ${{ secrets.BOT_TOKEN }}
113 |
114 | - name: Update comment on PR with links to plugin builds
115 | if: ${{ steps.find-comment.outputs.comment-id != '' }}
116 | uses: peter-evans/create-or-update-comment@v2
117 | with:
118 | comment-id: ${{ steps.find-comment.outputs.comment-id }}
119 | edit-mode: replace
120 | token: ${{ secrets.BOT_TOKEN }}
121 | body: ${{ steps.get-comment-body.outputs.body }}
122 |
--------------------------------------------------------------------------------
/.github/workflows/create-tag.yml:
--------------------------------------------------------------------------------
1 | name: Release
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | jobs:
8 | create_tag:
9 | runs-on: ubuntu-latest
10 | if: "! contains(github.event.head_commit.message, '[skip ci]')"
11 | strategy:
12 | matrix:
13 | node-version: [14.x]
14 | steps:
15 | - uses: actions/checkout@master
16 | with:
17 | persist-credentials: false
18 | - name: Build files using ${{ matrix.node-version }}
19 | uses: actions/setup-node@v1
20 | with:
21 | node-version: ${{ matrix.node-version }}
22 | - name: Release new version
23 | id: release
24 | run: |
25 | yarn install --frozen-lockfile
26 | yarn run release
27 | env:
28 | CI: true
29 | GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
30 | GIT_AUTHOR_NAME: themeisle[bot]
31 | GIT_AUTHOR_EMAIL: ${{ secrets.BOT_EMAIL }}
32 | GIT_COMMITTER_NAME: themeisle[bot]
33 | GIT_COMMITTER_EMAIL: ${{ secrets.BOT_EMAIL }}
34 | SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_ANNOUNCEMENTS }}
35 | SEMANTIC_RELEASE_PACKAGE: WP Maintenance Mode
36 | empty-job:
37 | # if no jobs run, github action considers it a test failure -- which seems like a bug
38 | # this makes it so the top-level if statement for the job does not give status failure.
39 | runs-on: ubuntu-latest
40 | if: success()
41 | steps:
42 | - name: Meep
43 | run: |
44 | echo "Nothing to do"
45 |
--------------------------------------------------------------------------------
/.github/workflows/deploy.yml:
--------------------------------------------------------------------------------
1 | name: Deploy
2 |
3 | on:
4 | push:
5 | tags:
6 | - "*"
7 | jobs:
8 | tag:
9 | name: New version
10 | runs-on: ubuntu-latest
11 | strategy:
12 | matrix:
13 | node-version: [14.x]
14 | steps:
15 | - uses: actions/checkout@master
16 | - name: Build files using ${{ matrix.node-version }}
17 | uses: actions/setup-node@v1
18 | with:
19 | node-version: ${{ matrix.node-version }}
20 | - name: Build
21 | run: |
22 | yarn install --frozen-lockfile
23 | yarn run build
24 | composer install --no-dev --prefer-dist --no-progress --no-suggest
25 | - name: WordPress Plugin Deploy
26 | uses: 10up/action-wordpress-plugin-deploy@master
27 | env:
28 | SVN_PASSWORD: ${{ secrets.SVN_THEMEISLE_PASSWORD }}
29 | SVN_USERNAME: ${{ secrets.SVN_THEMEISLE_USERNAME }}
30 |
--------------------------------------------------------------------------------
/.github/workflows/issue-labeler.yml:
--------------------------------------------------------------------------------
1 | name: "Issue Labeler"
2 | on:
3 | issues:
4 | types: [opened]
5 |
6 | jobs:
7 | triage:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: github/issue-labeler@master
11 | with:
12 | repo-token: "${{ secrets.BOT_TOKEN }}"
13 | enable-versioned-regex: 0
14 | configuration-path: .github/labeler.yml
--------------------------------------------------------------------------------
/.github/workflows/new-issues.yml:
--------------------------------------------------------------------------------
1 | name: Add to project
2 |
3 | on:
4 | issues:
5 | types: [opened,transferred]
6 |
7 | jobs:
8 | add-to-project:
9 | name: Add issue to project
10 | runs-on: ubuntu-latest
11 | steps:
12 | - uses: actions/add-to-project@main
13 | id: add_project
14 | with:
15 | project-url: ${{ secrets.PROJECT_PLANNING }}
16 | github-token: ${{ secrets.BOT_TOKEN_PROJECT }}
17 | - name: Set Team
18 | env:
19 | GITHUB_TOKEN: ${{ secrets.BOT_TOKEN_PROJECT }}
20 | run: |
21 | gh api graphql -f query='
22 | mutation(
23 | $project: ID!
24 | $item: ID!
25 | $status_field: ID!
26 | $status_value: String!
27 | ) {
28 | updateProjectV2ItemFieldValue(
29 | input: {
30 | projectId: $project
31 | itemId: $item
32 | fieldId: $status_field
33 | value: {
34 | singleSelectOptionId: $status_value
35 | }
36 | }
37 | ) {
38 | projectV2Item {
39 | id
40 | }
41 | }
42 | }' -f project=${{ secrets.PROJECT_PLANNING_ID }} -f item=${{ steps.add_project.outputs.itemId }} -f status_field=${{ secrets.PLANNING_TEAM_FIELD_ID }} -f status_value=ed46988b --silent
--------------------------------------------------------------------------------
/.github/workflows/pr-checklist.yml:
--------------------------------------------------------------------------------
1 | name: Add labels to pull request based on checklist
2 |
3 | on:
4 | pull_request:
5 | types: [ opened, edited, synchronize, labeled, unlabeled ]
6 | branches-ignore:
7 | - 'master'
8 | - 'update_dependencies'
9 |
10 | permissions: write-all
11 |
12 | jobs:
13 | add-labels:
14 | runs-on: ubuntu-latest
15 | name: Label PR based on checklist
16 | if: github.event.pull_request.draft == false && github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name && github.actor != 'dependabot[bot]'
17 | steps:
18 | - name: Check if checklist items are completed
19 | uses: Codeinwp/gha-pr-check-helper@master
20 | with:
21 | token: ${{ secrets.BOT_TOKEN }}
22 | requireChecklist: true
23 | onlyCheckBody: true
24 | completedLabel: "pr-checklist-complete"
25 | incompleteLabel: "pr-checklist-incomplete"
26 | skipLabel: "pr-checklist-skip"
27 |
--------------------------------------------------------------------------------
/.github/workflows/sync-branches.yml:
--------------------------------------------------------------------------------
1 | name: Sync branches
2 | on:
3 | push:
4 | branches:
5 | - 'master'
6 | jobs:
7 | sync-branch:
8 | runs-on: ubuntu-latest
9 | if: ${{ github.repository_owner == 'Codeinwp' }} # Disable on forks
10 | steps:
11 | - uses: actions/checkout@master
12 | - name: Retrieve branch name
13 | id: retrieve-branch-name
14 | run: echo "::set-output name=branch_name::$(REF=${GITHUB_HEAD_REF:-$GITHUB_REF} && echo ${REF#refs/heads/} | sed 's/\//-/g')"
15 | - name: Merge master -> development
16 | if: ${{ steps.retrieve-branch-name.outputs.branch_name == 'master' }}
17 | uses: Codeinwp/merge-branch@master
18 | with:
19 | type: now
20 | from_branch: master
21 | target_branch: development
22 | github_token: ${{ secrets.BOT_TOKEN }}
--------------------------------------------------------------------------------
/.github/workflows/sync-wporg-assets.yml:
--------------------------------------------------------------------------------
1 | name: Sync assets with wordpress.org
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | paths:
8 | - 'readme.txt'
9 | - '.wordpress-org/**'
10 | jobs:
11 | run:
12 | runs-on: ubuntu-latest
13 | if: "! contains(github.event.head_commit.message, 'chore(release)') && ! contains(github.event.head_commit.message, 'release:')"
14 | name: Push assets to wporg
15 | steps:
16 | - uses: actions/checkout@master
17 | - name: WordPress.org plugin asset/readme update
18 | uses: selul/action-wordpress-plugin-asset-update@develop
19 | env:
20 | SVN_PASSWORD: ${{ secrets.SVN_THEMEISLE_PASSWORD }}
21 | SVN_USERNAME: ${{ secrets.SVN_THEMEISLE_USERNAME }}
22 |
--------------------------------------------------------------------------------
/.github/workflows/test-php.yml:
--------------------------------------------------------------------------------
1 | name: PHP Tests
2 |
3 | on:
4 | push:
5 | branches-ignore:
6 | - 'master'
7 | concurrency:
8 | group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.ref }}
9 | cancel-in-progress: true
10 | jobs:
11 | phplint:
12 | name: PHP Lint
13 | runs-on: ubuntu-latest
14 | steps:
15 | - name: Setup PHP version
16 | uses: shivammathur/setup-php@v2
17 | with:
18 | php-version: '7.2'
19 | extensions: simplexml
20 | tools: composer:v2.1
21 | - name: Checkout source code
22 | uses: actions/checkout@v2
23 | - name: Get Composer Cache Directory
24 | id: composer-cache
25 | run: |
26 | echo "::set-output name=dir::$(composer config cache-files-dir)"
27 | - name: Setup Composer cache
28 | uses: actions/cache@v4
29 | with:
30 | path: ${{ steps.composer-cache.outputs.dir }}
31 | key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
32 | restore-keys: |
33 | ${{ runner.os }}-composer-
34 | - name: Install composer
35 | run: composer install --prefer-dist --no-progress --no-suggest
36 | - name: Run PHPCS
37 | run: composer run lint
38 |
39 | phpunit:
40 | name: PHPUnit
41 | runs-on: ubuntu-latest
42 | services:
43 | mysql:
44 | image: mysql:5.7
45 | env:
46 | MYSQL_ROOT_PASSWORD: root
47 | ports:
48 | - 3306/tcp
49 | options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
50 | steps:
51 | - name: Setup PHP version
52 | uses: shivammathur/setup-php@v2
53 | with:
54 | php-version: '7.2'
55 | extensions: simplexml, mysql
56 | tools: phpunit-polyfills
57 | - name: Checkout source code
58 | uses: actions/checkout@v2
59 | - name: Install Subversion
60 | run: sudo apt-get update && sudo apt-get install -y subversion
61 | - name: Install WordPress Test Suite
62 | run: |
63 | bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1:${{ job.services.mysql.ports['3306'] }}
64 | - name: Get Composer Cache Directory
65 | id: composer-cache
66 | run: |
67 | echo "::set-output name=dir::$(composer config cache-files-dir)"
68 | - name: Setup Composer cache
69 | uses: actions/cache@v4
70 | with:
71 | path: ${{ steps.composer-cache.outputs.dir }}
72 | key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
73 | restore-keys: |
74 | ${{ runner.os }}-composer-
75 | - name: Install composer
76 | run: composer install --prefer-dist --no-progress --no-suggest --no-dev
77 | - name: Run phpunit
78 | run: composer run-script phpunit
79 |
80 |
--------------------------------------------------------------------------------
/.releaserc.yml:
--------------------------------------------------------------------------------
1 | ---
2 | branch: master
3 | plugins:
4 | - - "@semantic-release/commit-analyzer"
5 | - preset: simple-preset
6 | releaseRules: conventional-changelog-simple-preset/release-rules
7 | - - "@semantic-release/changelog"
8 | - changelogFile: CHANGELOG.md
9 | - - "@semantic-release/release-notes-generator"
10 | - preset: simple-preset
11 | - - "@semantic-release/exec"
12 | - prepareCmd: "replace-in-file \"== Changelog ==\" \"== Changelog ==\n\n${nextRelease.notes}\" readme.txt"
13 | - - "@semantic-release/exec"
14 | - prepareCmd: grunt version::${nextRelease.version} && grunt wp_readme_to_markdown
15 | - - "semantic-release-slack-bot"
16 | - notifyOnSuccess: false
17 | notifyOnFail: false
18 | markdownReleaseNotes: true
19 | branchesConfig:
20 | - pattern: master
21 | notifyOnSuccess: true
22 | notifyOnFail: false
23 | - - "@semantic-release/git"
24 | - assets:
25 | - CHANGELOG.md
26 | - composer.json
27 | - package-lock.json
28 | - readme.txt
29 | - README.md
30 | - wp-maintenance-mode.php
31 | - includes/classes/wp-maintenance-mode.php
32 | - package.json
33 | message: "chore(release): ${nextRelease.version} \n\n${nextRelease.notes}"
34 | - - "@semantic-release/github"
35 |
--------------------------------------------------------------------------------
/.wordpress-org/banner-1544x500.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/banner-1544x500.png
--------------------------------------------------------------------------------
/.wordpress-org/banner-772-250.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/banner-772-250.png
--------------------------------------------------------------------------------
/.wordpress-org/icon-128x128.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/icon-128x128.gif
--------------------------------------------------------------------------------
/.wordpress-org/icon-256x256.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/icon-256x256.gif
--------------------------------------------------------------------------------
/.wordpress-org/screenshot-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/screenshot-1.png
--------------------------------------------------------------------------------
/.wordpress-org/screenshot-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/screenshot-2.png
--------------------------------------------------------------------------------
/.wordpress-org/screenshot-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/screenshot-3.png
--------------------------------------------------------------------------------
/.wordpress-org/screenshot-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/screenshot-4.png
--------------------------------------------------------------------------------
/.wordpress-org/screenshot-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/screenshot-5.png
--------------------------------------------------------------------------------
/.wordpress-org/screenshot-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/screenshot-6.png
--------------------------------------------------------------------------------
/.wordpress-org/screenshot-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/.wordpress-org/screenshot-7.png
--------------------------------------------------------------------------------
/assets/css/index.php:
--------------------------------------------------------------------------------
1 | div { display:inline-block; margin:0; }
25 | .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_minute:before,
26 | .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before { content:':'; display:inline-block; }
27 | .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before,
28 | .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before { content:'.'; display:inline-block; }
29 | .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide,
30 | .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before{ display: none; }
--------------------------------------------------------------------------------
/assets/css/style-admin.css:
--------------------------------------------------------------------------------
1 | h2.wpmm-title {
2 | background: url('../images/icon.svg') no-repeat left center;
3 | background-size: 40px;
4 | line-height: 42px !important;
5 | margin-bottom: 30px !important;
6 | height: 45px;
7 | padding-left: 55px !important;
8 | }
9 |
10 | /* WRAP*/
11 | .wpmm-wrapper {
12 | display: table;
13 | width: 100%;
14 | }
15 |
16 | .wpmm-wrapper #sidebar {
17 | padding: 0 0 0 20px;
18 | width: 280px;
19 | vertical-align: top;
20 | }
21 |
22 | .wpmm-wrapper #sidebar .sidebar_box {
23 | background: none repeat scroll 0 0 #fff;
24 | border: 1px solid #e5e5e5;
25 | box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
26 | min-width: 255px;
27 | line-height: 1;
28 | margin-bottom: 20px;
29 | padding: 0;
30 | }
31 |
32 | .wpmm-wrapper #sidebar .sidebar_box h3 {
33 | margin: 0;
34 | padding: 8px 12px;
35 | border-bottom: 1px solid #ececec;
36 | }
37 |
38 | .wpmm-wrapper #sidebar .sidebar_box .inside {
39 | margin: 6px 0 0;
40 | font-size: 13px;
41 | line-height: 1.4em;
42 | padding: 0 12px 12px;
43 | }
44 |
45 | .wpmm-wrapper .wrapper-cell {
46 | display: table-cell;
47 | }
48 |
49 | .wpmm-wrapper .hidden {
50 | display: none;
51 | }
52 |
53 | /* TABS */
54 | .nav-tab-wrapper {
55 | border-bottom: 1px solid #ccc;
56 | padding-bottom: 0;
57 | padding-top: 0 !important;
58 | }
59 |
60 | .nav-tab-wrapper a {
61 | font-size: 15px;
62 | font-weight: 700;
63 | line-height: 24px;
64 | padding: 6px 10px;
65 | display: flex;
66 | align-content: center;
67 | align-items: center;
68 | }
69 |
70 | .nav-tab-wrapper a .nav-tab-icon {
71 | width: 16px;
72 | height: 16px;
73 | margin-right: 3px;
74 | }
75 |
76 | /* TABS CONTENT */
77 | #tab-design {
78 | max-width: 1220px;
79 | }
80 |
81 | .tabs-content {
82 | margin-top: 20px;
83 | padding-left: 10px;
84 | }
85 |
86 | .tabs-content .wp-color-result {
87 | margin-bottom: -2px;
88 | }
89 |
90 | .tabs-content ul.bg_list {
91 | float: left;
92 | }
93 |
94 | .tabs-content ul.bg_list li {
95 | float: left;
96 | margin-right: 7px;
97 | opacity: 0.4;
98 | }
99 |
100 | .tabs-content ul.bg_list li.active {
101 | opacity: 1;
102 | }
103 |
104 | .tabs-content ul.bg_list li input {
105 | display: none;
106 | }
107 |
108 | .tabs-content .countdown_details input {
109 | width: 70px;
110 | }
111 |
112 | .tabs-content .countdown_details .margin_left {
113 | margin-left: 30px;
114 | }
115 |
116 | .tabs-content td.has-inline-color-picker {
117 | display: flex;
118 | align-items: center;
119 | }
120 |
121 | .tabs-content td.has-inline-color-picker .wp-picker-container .wp-color-result {
122 | margin: 0 6px;
123 | }
124 |
125 | .tabs-content .shortcodes-list-wrapper {
126 | margin-top: 4px;
127 | margin-bottom: 0;
128 | color: #646970;
129 | }
130 |
131 | .tabs-content ul.shortcodes-list {
132 | list-style-type: disc;
133 | padding-left: 15px;
134 | font-size: 12px;
135 | display: none;
136 | }
137 |
138 | .tabs-content ul.shortcodes-list span {
139 | background-color: #d3d3d3;
140 | padding: 2px 3px;
141 | margin-top: 4px;
142 | display: inline-block;
143 | }
144 |
145 | .tabs-content ul.shortcodes-list.show {
146 | display: block;
147 | }
148 |
149 | /* Design tab content */
150 | .form-table th.wpmm-page-select-label {
151 | width: 80px;
152 | }
153 |
154 | p.wpmm-templates-gallery__description {
155 | font-size: 16px;
156 | line-height: 160%;
157 | margin-top: 0;
158 | }
159 |
160 | label.wpmm-templates-gallery__label {
161 | font-weight: 700;
162 | font-size: 24px;
163 | }
164 |
165 | .category-select-wrap {
166 | text-align: end;
167 | }
168 |
169 | .wpmm-templates {
170 | display: flex;
171 | flex-wrap: wrap;
172 | gap: 20px;
173 | margin-top: 25px;
174 | justify-content: center;
175 | }
176 |
177 | .wpmm-template-wrap {
178 | width: calc( 100% / 3 - 20px);
179 | max-width: 290px;
180 | height: 100%;
181 | }
182 |
183 | .wpmm-template-image-wrap {
184 | background-color: #fff;
185 | line-height: 0;
186 | height: calc( 100% - 20px );
187 | }
188 |
189 | .wpmm-template-image-wrap img {
190 | width: 100%;
191 | height: 100%;
192 | object-fit: cover;
193 | }
194 |
195 | .wpmm-template-image-wrap.can-import:hover img,
196 | .wpmm-template-image-wrap.importing img {
197 | opacity: .1;
198 | }
199 |
200 | .wpmm-template-image-wrap {
201 | position: relative;
202 | }
203 |
204 | .wpmm-template-wrap .wpmm-template-image-wrap .button-import {
205 | display: none;
206 | position: absolute;
207 | top: 50%;
208 | left: 50%;
209 | transform: translate(-50%, -50%) !important;
210 | }
211 |
212 | .button-import .dashicons.dashicons-update {
213 | margin-right: 5px;
214 | animation: spin 2s linear infinite;
215 | }
216 |
217 | .wpmm-template-image-wrap.can-import:hover .button-import,
218 | .wpmm-template-image-wrap.importing .button-import {
219 | display: flex;
220 | align-items: center;
221 | }
222 |
223 | @media screen and (max-width: 782px) {
224 | .tabs-content td.has-inline-color-picker {
225 | display: flex;
226 | align-items: flex-start;
227 | flex-direction: column;
228 | }
229 |
230 | .tabs-content td.has-inline-color-picker .wp-picker-container {
231 | margin-top: 6px;
232 | }
233 |
234 | .tabs-content td.has-inline-color-picker .wp-picker-container .wp-color-result {
235 | margin-left: 0;
236 | }
237 |
238 | .tabs-content .countdown_details .margin_left {
239 | margin-left: 0;
240 | }
241 | }
242 |
243 | .tabs-content .wp-picker-holder {
244 | position:absolute;
245 | z-index:9999999;
246 | }
247 |
248 | .tabs-content #subscribers_wrap .buttons {
249 | margin-top: 8px;
250 | }
251 |
252 | .tabs-content .bot-hint {
253 | background: #9f9f9f;
254 | padding: 10px;
255 | float: right;
256 | border-radius: 5px;
257 | color: #fff;
258 | }
259 |
260 | .tabs-content .bot-button {
261 | display: inline-block;
262 | }
263 |
264 | /* SIDEBARS */
265 | #sidebar .info_box ul {
266 | margin-top: 10px;
267 | margin-bottom: -5px;
268 | }
269 |
270 | #sidebar .resources_box ul, #sidebar .themes_box ul {
271 | margin-top: 10px;
272 | margin-bottom: -15px;
273 | }
274 |
275 | #sidebar .resources_box li, #sidebar .themes_box li {
276 | margin-bottom: 10px;
277 | }
278 |
279 | /* CHOSEN.JS MULTISELECT */
280 | .chosen-select {
281 | width: 195px !important;
282 | }
283 |
284 | .chosen-container {
285 | width: 195px !important;
286 | }
287 |
288 | .chosen-container-active .chosen-choices {
289 | box-shadow: none !important;
290 | background-image: none !important;
291 | }
292 |
293 | .chosen-container-multi .chosen-choices {
294 | border: 1px solid #ddd !important;
295 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07) inset !important;
296 | background-image: none !important;
297 | }
298 |
299 | .chosen-container .chosen-results li.highlighted {
300 | background-color: #0074a2 !important;
301 | background-image: none !important;
302 | }
303 |
304 | .button-big {
305 | min-height: 40px !important;
306 | padding: 12px 30px !important;
307 | font-size: 1.2em !important;
308 | line-height: 1.2 !important;
309 | font-weight: 700;
310 | }
311 |
312 | /* FOOTER RATING */
313 | #footer-left .wpmm_rating:hover {
314 | text-decoration: none !important;
315 | color: #FFB900 !important;
316 | }
317 |
318 | /* MODAL */
319 | .has-modal {
320 | overflow: hidden !important;
321 | }
322 |
323 | .modal-overlay {
324 | position: fixed;
325 | top: 0;
326 | right: 0;
327 | bottom: 0;
328 | left: 0;
329 | background-color: rgba(0, 0, 0, 0.35);
330 | z-index: 100000;
331 | display: flex;
332 | }
333 |
334 | .modal-frame {
335 | background-color: #fff;
336 | box-shadow: 0 0 10px rgba(0,0,0,.5);
337 | margin: auto;
338 | max-width: 480px;
339 | }
340 |
341 | .modal-content {
342 | padding: 45px 40px;
343 | }
344 |
345 | .modal-header {
346 | font-weight: 700;
347 | font-size: 20px;
348 | line-height: 23px;
349 | margin: 0;
350 | }
351 |
352 | .modal-text {
353 | margin: 30px 0 40px 0;
354 | }
355 |
356 | .buttons-wrap {
357 | gap: 10px;
358 | display: flex;
359 | }
360 |
361 | input[type="button"].button.button-primary.is-busy {
362 | background-image: linear-gradient(-45deg, #2271b1 33%, #135e96 33%, #135e96 70%, #2271b1 70%) !important;
363 | border-color: #2271b1;
364 | }
365 |
366 | input[type="button"].button.is-busy {
367 | background-size: 100px 100% !important;
368 | pointer-events: none;
369 | animation: button-busy-animation 2500ms infinite linear;
370 | }
371 |
372 | input[type="button"].button.button-secondary.is-busy {
373 | background-image: linear-gradient(-45deg, #fafafa 33%, #e0e0e0 33%, #e0e0e0 70%, #fafafa 70%) !important;
374 | }
375 |
376 | .wpmm_otter-notice {
377 | background: #fff;
378 | padding: 13px 18px;
379 | border: 1px solid rgba(0, 0, 0, 0.1);
380 | border-radius: 5px;
381 | display: flex;
382 | column-gap: 18px;
383 | font-size: 16px;
384 | color: #717A84;
385 | margin-top: 35px;
386 | }
387 |
388 | .wpmm_otter-notice__text {
389 | margin-top: auto;
390 | margin-bottom: auto;
391 | }
392 |
393 | .wpmm_otter-notice__logo {
394 | margin: auto 0;
395 | position: relative;
396 | height: 51px;
397 | width: 52px;
398 | }
399 |
400 | .wpmm-wrapper p.notice {
401 | padding: 10px 15px;
402 | }
403 |
404 | .wpmm_status_disable {
405 | opacity: .4;
406 | pointer-events: none;
407 | }
408 |
409 | .wpmm-external_link_icon {
410 | fill: currentColor;
411 | width: 1em;
412 | height: 1em;
413 | }
414 |
415 | .wpmm-notice {
416 | background-color: #fff;
417 | border-left: 4px solid #00a0d2;
418 | box-shadow: 0 1px 1px rgba(0,0,0,.04);
419 | padding: 12px;
420 | display: flex;
421 | align-items: center;
422 | }
423 |
424 | .wpmm-notice-content {
425 | flex-grow: 1;
426 | }
427 |
428 | .wpmm-notice h3 {
429 | margin: 0.5em 0;
430 | font-size: 14px;
431 | }
432 |
433 | .wpmm-notice p {
434 | margin: 0.5em 0;
435 | font-size: 13px;
436 | }
437 |
438 | @keyframes spin {
439 | from {
440 | transform: rotate(0deg);
441 | }
442 | to {
443 | transform: rotate(360deg);
444 | }
445 | }
446 |
447 | @keyframes button-busy-animation {
448 | 0% {
449 | background-position: 200px 0;
450 | }
451 | }
452 |
--------------------------------------------------------------------------------
/assets/css/style-wizard.css:
--------------------------------------------------------------------------------
1 | .wpmm-wizard-fullscreen #adminmenumain,
2 | .wpmm-wizard-fullscreen #wpadminbar,
3 | .wpmm-wizard-fullscreen .notice,
4 | .wpmm-wizard-fullscreen .wrap .notice,
5 | .wpmm-wizard-fullscreen .wrap .error,
6 | .wpmm-wizard-fullscreen .wrap .updated,
7 | .wpmm-wizard-fullscreen #wpfooter,
8 | .wpmm-wizard-fullscreen .rop-revive-network-admin-notice {
9 | display: none !important;
10 | }
11 |
12 | .wp-toolbar .wpmm-wizard-fullscreen {
13 | margin-top: -32px;
14 | height: 100vh;
15 | }
16 |
17 | #wpwrap {
18 | height: 100%;
19 | }
20 |
21 | #wp-content {
22 | height: 100%;
23 | }
24 |
25 | #wpbody {
26 | height: 100%;
27 | }
28 |
29 | #wpbody-content {
30 | height: 100%;
31 | padding: 0;
32 | }
33 |
34 | .wrap {
35 | margin: 0;
36 | height: 100%;
37 | display: flex;
38 | flex-direction: column;
39 | }
40 |
41 | .wpmm-wrapper {
42 | flex-grow: 1;
43 | display: flex;
44 | }
45 |
46 | h2.wpmm-title {
47 | position: relative;
48 |
49 | margin: 0 !important;
50 | padding: 8px 105px !important;
51 | font-size: 18px !important;
52 |
53 | background-color: #fff;
54 | background-position: 50px;
55 | }
56 |
57 | h2.wpmm-title span {
58 | display: flex;
59 | position: absolute;
60 | right: 48px;
61 | top: 50%;
62 | transform: translateY(-50%);
63 | cursor: pointer;
64 | }
65 |
66 | h2.wpmm-title span img {
67 | width: 16px;
68 | }
69 |
70 | .wpmm-wizard-fullscreen #wpcontent {
71 | margin: 0;
72 | padding: 0;
73 | }
74 |
75 | #wpmm-wizard-wrapper {
76 | background-color: #f4f4f4;
77 | overflow: hidden;
78 | color: #1b1b1b;
79 | width: 100%;
80 |
81 | letter-spacing: .04em;
82 | line-height: 1;
83 | --checkbox-input-size: 20px;
84 | --checkmark-size: calc(var(--checkbox-input-size) + 4px);
85 | }
86 |
87 | #wpmm-wizard-wrapper .slider-wrap {
88 | width: 300%;
89 | display: flex;
90 | transition: 0.4s ease-in-out;
91 | height: 100%;
92 | }
93 |
94 | .move-to-subscribe {
95 | transform: translateX( calc( -100% / 3 ) );
96 | }
97 |
98 | .move-to-finish {
99 | transform: translateX( calc( -100% / 3 * 2 ) );
100 | }
101 |
102 | #wpmm-wizard-wrapper .step-wrap {
103 | width: calc( 100% / 3 );
104 | display: flex;
105 | }
106 |
107 | .step.import-step {
108 | margin: min(10%, 65px) min(12%, 195px);
109 | width: 1090px;
110 | }
111 |
112 | .import-step .header {
113 | font-size: 28px;
114 | margin-top: 0;
115 | margin-bottom: 25px;
116 | }
117 |
118 | .import-step .templates-description {
119 | line-height: 30px;
120 | font-size: 18px;
121 | font-weight: 400;
122 | color: currentColor;
123 | }
124 |
125 | .templates-radio {
126 | max-width: calc( 340px * 3 + 35px * 2 );
127 | }
128 |
129 | .templates-radio__item {
130 | display: flex;
131 | flex-direction: column;
132 | width: 100%;
133 | }
134 |
135 | .wpmm-templates-radio form {
136 | display: flex;
137 | margin-top: 60px;
138 | width: 100%;
139 | gap: 35px;
140 | }
141 |
142 | .wpmm-templates-radio [type=radio], .bullets-wrap [type=radio] {
143 | position: absolute;
144 | opacity: 0;
145 | }
146 |
147 | .wpmm-templates-radio [type=radio] + .wpmm-template {
148 | cursor: pointer;
149 | background-color: #fff;
150 | width: 240px;
151 | height: 250px;
152 | display: block;
153 | }
154 |
155 | .wpmm-templates-radio [type=radio]:checked + .wpmm-template {
156 | box-shadow: 0 0 0 5px #0065a6;
157 | border-radius: 5px;
158 | overflow: hidden;
159 | }
160 |
161 | .wpmm-templates-radio [type=radio] + .wpmm-template .checked-icon {
162 | display: none;
163 | }
164 |
165 | .wpmm-templates-radio [type=radio]:checked + .wpmm-template .checked-icon {
166 | display: block;
167 | position: absolute;
168 | top: 4%;
169 | right: 4%;
170 | width: 40px;
171 | height: 40px;
172 | }
173 |
174 | .wpmm-templates-radio .wpmm-template {
175 | position: relative;
176 | padding-bottom: 104%;
177 | width: 100%;
178 | height: 0;
179 | }
180 |
181 | .wpmm-templates-radio .wpmm-template img {
182 | width: 100%;
183 | height: 100%;
184 | object-fit: cover;
185 |
186 | position: absolute;
187 | }
188 |
189 | .wpmm-templates-radio .wpmm-template p {
190 | position: absolute;
191 | bottom: 15px;
192 | transform: translateX(-50%);
193 | left: 50%;
194 | white-space: nowrap;
195 | }
196 |
197 | .import-button {
198 | margin-top: 45px;
199 | }
200 |
201 | #wizard-buttons {
202 | display: flex;
203 | flex-wrap: wrap;
204 | gap: 15px;
205 | }
206 |
207 | #wizard-buttons .button-import {
208 | max-width: 200px;
209 | width: 100%;
210 | }
211 |
212 | #wizard-buttons .button-skip {
213 | color: #555D66;
214 | border-color: #555D66;
215 | white-space: break-spaces;
216 | }
217 |
218 | .dashicons-update {
219 | position: absolute;
220 | top: 50%;
221 | left: 50%;
222 | animation: abs-spin 2s linear infinite;
223 | }
224 |
225 | .wpmm-templates-radio .wpmm-template.loading img {
226 | opacity: .2;
227 | }
228 |
229 | .import-text {
230 | color: #717A84;
231 | }
232 |
233 | .wpmm-templates-radio [type=radio] + .wpmm-template {
234 | width: 100%;
235 | height: auto;
236 | position: relative;
237 | }
238 |
239 | .wpmm-templates-radio .tag {
240 | font-size: 15px;
241 | margin: 0 0 12px 0;
242 | color: #7a7979;
243 | white-space: nowrap;
244 | }
245 |
246 | .finish-step, .subscribe-step {
247 | display: flex;
248 | flex-direction: column;
249 | align-items: center;
250 | text-align: center;
251 | margin-top: 150px;
252 | margin-left: auto;
253 | margin-right: auto;
254 | }
255 |
256 | .finish-step h4 {
257 | font-size: 24px;
258 | max-width: 350px;
259 | line-height: 28px;
260 | }
261 |
262 | .finish-step .buttons-wrap {
263 | margin-top: 30px;
264 | display: flex;
265 | column-gap: 15px;
266 | }
267 |
268 | #view-page-button{
269 | color: #555D66;
270 | border-color: #555D66;
271 | }
272 |
273 | .finish-step p {
274 | font-size: 18px;
275 | max-width: 440px;
276 | line-height: 31px;
277 | }
278 |
279 | .subscribe-step {
280 | max-width: 365px;
281 | }
282 |
283 | .subscribe-step .skip-link {
284 | margin-top: 15px;
285 | color: #717A84 !important;
286 | font-style: italic;
287 | padding: 0 10px;
288 | }
289 |
290 | .subscribe-step h4 {
291 | font-size: 24px;
292 | }
293 |
294 | .subscribe-step p {
295 | color: #272626;
296 | font-size: 18px;
297 | }
298 |
299 | #email-input-wrap {
300 | position: relative;
301 | display: flex;
302 | flex-direction: column;
303 | row-gap: 9px;
304 | width: 100%;
305 | }
306 |
307 | #email-input-wrap input[type=text] {
308 | color: #757575;
309 | height: 43px;
310 | }
311 |
312 | input.invalid {
313 | border-color: red !important;
314 | border-width: 2px !important;
315 | }
316 |
317 | input.invalid:focus {
318 | box-shadow: 0 0 1px red;
319 | }
320 |
321 | #email-input-wrap .subscribe-message {
322 | font-size: inherit;
323 | position: absolute;
324 | right: -10px;
325 | top: 0;
326 | transform: translate(100%, -15%);
327 | color: #717A84;
328 | }
329 |
330 | .optimole-upsell-container {
331 | display: flex;
332 | gap: 8px;
333 | }
334 |
335 | .optimole-upsell {
336 | margin-top: 72px;
337 | }
338 |
339 | .optimole-upsell label {
340 | font-size: 20px;
341 | font-weight: 700;
342 | line-height: 23px;
343 | }
344 |
345 | .optimole-upsell p.description {
346 | margin-left: 30px;
347 | margin-top: 12px;
348 | font-size: 15px;
349 | max-width: 980px;
350 | }
351 |
352 | #import-step-error {
353 | color: #d63638;
354 | }
355 |
356 | @keyframes abs-spin {
357 | from {
358 | transform: translate(-50%, -50%) rotate(0deg);
359 | }
360 | to {
361 | transform: translate(-50%, -50%) rotate(360deg);
362 | }
363 | }
364 |
365 | @media screen and (max-width: 660px) {
366 | #wpbody {
367 | padding-top: 0;
368 | }
369 |
370 | .wpmm-templates-radio form {
371 | flex-wrap: wrap;
372 | }
373 | }
374 |
375 | @media screen and (max-width: 782px) {
376 | html.wp-toolbar {
377 | padding-top: 32px;
378 | }
379 | }
380 |
381 |
--------------------------------------------------------------------------------
/assets/css/style.bot.css:
--------------------------------------------------------------------------------
1 | /**
2 | * BOT
3 | *
4 | */
5 | .bot .wrap { margin-top: 60px; }
6 | .bot .wrap h1 { margin-bottom: 50px; }
7 | .wrap.under-bot .countdown { margin-bottom: 50px; }
8 | .wrap.under-bot .social { margin-bottom: 50px; }
9 |
10 | .bot-container *,
11 | .bot-container *::before,
12 | .bot-container *::after {
13 | box-sizing: border-box;
14 | }
15 | .bot-container p {
16 | margin-top: 0;
17 | margin-bottom: 16px;
18 | }
19 |
20 | .bot-container a {
21 | text-decoration: none;
22 | cursor: pointer;
23 | }
24 |
25 | .bot-container ul {
26 | list-style-type: none;
27 | padding-left: 0;
28 | }
29 |
30 | .bot-container {
31 | position: absolute;
32 | bottom: 30px;
33 | right: 30px;
34 | }
35 |
36 | .avatar-notice {
37 | position: absolute;
38 | top: 0;
39 | right: 0;
40 | border: 8px solid #df1c44;
41 | border-radius: 100%;
42 | }
43 |
44 | .background .bot-chat-wrapper {
45 | border-radius: 10px;
46 | background-color: rgb(255, 255, 255);
47 | box-shadow: 0 4px 40px rgba(0, 0, 0, 0.2);
48 | }
49 |
50 | .chat-message-wrapper {
51 | position: relative;
52 | display: flex;
53 | align-items: center;
54 | margin-bottom: 16px;
55 | width: 100%;
56 | }
57 | .chat-message-wrapper .chat-message {
58 | max-width: 100%;
59 | width: 100%;
60 | color: #3a3e45;
61 | line-height: 24px;
62 | }
63 |
64 | .absolute-wrapper {
65 | position: absolute;
66 | left: 0;
67 | bottom: 20%;
68 | }
69 |
70 | .message-details {
71 | position: relative;
72 | }
73 |
74 | .chat-message-wrapper .message-date {
75 | font-size: 12px;
76 | color: #c3c3c3;
77 | }
78 |
79 | .chat-message-wrapper p,
80 | .typing-wrapper p {
81 | margin-bottom: 0;
82 | }
83 |
84 | /*--------------------
85 | CHAT BOT STYLING
86 | ---------------------*/
87 |
88 | /*
89 | // CHAT BOT & TYPING WRAPPER
90 | */
91 | .bot-chat-wrapper {
92 | height: 350px;
93 | padding: 10px 40px;
94 | overflow-y: scroll;
95 | overflow-x: hidden;
96 |
97 | width: 400px;
98 | font-size: 16px;
99 | position: fixed;
100 | right: 30px;
101 | bottom: 130px;
102 | background-color: #fff;
103 |
104 | box-shadow: rgba(0, 0, 0, 0.1) 0 12px 24px 0;
105 | border-radius: 8px;
106 | }
107 |
108 | .typing-wrapper {
109 | width: 100%;
110 | display: flex;
111 | align-items: center;
112 | margin-bottom: 16px;
113 | position: relative;
114 | }
115 |
116 | .bot-avatar {
117 | width: 60px;
118 | height: 60px;
119 |
120 | position: fixed;
121 | bottom: 57px;
122 | right: 30px;
123 |
124 | background-size: cover;
125 | background-repeat: no-repeat;
126 | background-position: center;
127 |
128 | border-radius: 50%;
129 | box-shadow: rgba(0, 0, 0, 0.1) 0 12px 24px 0;
130 | background-color: #fff;
131 |
132 | z-index: 1;
133 | cursor: pointer;
134 | }
135 |
136 | .typing-wrapper .bot-name {
137 | margin-right: 22px;
138 | font-weight: bold;
139 | }
140 |
141 | /*
142 | // CHAT MESSAGE LINE
143 | */
144 | .chat-message {
145 | background-color: #f4f4f4;
146 | border-radius: 5px;
147 | padding: 15px;
148 | max-width: 75%;
149 | clear: both;
150 | position: relative;
151 | float: left;
152 | animation: fade-in-left 0.2s linear both;
153 | }
154 |
155 | .chat-message:before {
156 | content: ' ';
157 | position: absolute;
158 | width: 0;
159 | height: 0;
160 | left: -20px;
161 | bottom: 20%;
162 | border: 10px solid;
163 | border-color: transparent #f4f4f4 transparent transparent;
164 | }
165 |
166 | /*
167 | // HELPERS
168 | */
169 | .cf:before,
170 | .cf:after {
171 | content: " "; /* 1 */
172 | display: table; /* 2 */
173 | }
174 |
175 | .cf:after {
176 | clear: both;
177 | }
178 |
179 | /*
180 | // USER
181 | */
182 | .chat-message.user {
183 | display: flex;
184 | align-items: center;
185 | animation: fade-in-right 0.2s linear 0.4s both;
186 | background: #a0a0a0;
187 | color: #fff;
188 | float: right;
189 | padding: 15px;
190 | font-size: 14px;
191 | }
192 |
193 | .chat-message a {
194 | color: #6ecff9;
195 | text-decoration: underline;
196 | transition: all 0.3s ease;
197 | }
198 | .chat-message a:hover {
199 | color: #38a9d9;
200 | }
201 |
202 | /*
203 | // USER CHOICES BUTTONS
204 | */
205 | .choices {
206 | display: flex !important;
207 | justify-content: flex-end;
208 | }
209 | .choices .chat-message {
210 | background: none;
211 | color: #6ecff9;
212 | border: 2px solid #6ecff9;
213 | cursor: pointer;
214 | animation: fadeInGrownIn 0.5s ease;
215 | float: none;
216 | display: inline-block;
217 | transition: all 0.3s ease;
218 | }
219 |
220 | .choices .chat-message:first-child {
221 | margin-right: 10px;
222 | }
223 |
224 | .choices .chat-message:hover {
225 | background: #6ecff9;
226 | color: #fff;
227 | }
228 |
229 | /*
230 | // NAME/EMAIL INPUT
231 | */
232 |
233 | .input .chat-message.user {
234 | background: transparent;
235 | border-bottom: 2px solid #6ecff9;
236 | border-radius: 0;
237 | padding: 10px 10px 10px 0;
238 | white-space: nowrap;
239 | max-width: unset;
240 | }
241 |
242 | .input { animation: fadeInGrownIn 0.5s ease; }
243 |
244 | .bot-container .input input {
245 | padding: 0 10px;
246 | border: none;
247 | color: #000;
248 | background: none;
249 | box-shadow: none;
250 | font-size: 14px;
251 | }
252 |
253 | .input input:focus { outline: none !important; box-shadow: none !important; }
254 | .input input::-webkit-input-placeholder { color: #c3c3c3; }
255 | .input input:-ms-input-placeholder { color: #c3c3c3; }
256 | .input input::-moz-placeholder { color: #c3c3c3; }
257 | .input input:-moz-placeholder { color: #c3c3c3; }
258 |
259 | .input a {
260 | color: #6ecff9;
261 | text-decoration: none;
262 | text-transform: uppercase;
263 | cursor: pointer;
264 | font-size: 14px;
265 | font-weight: 700;
266 | }
267 |
268 | .bot-error {
269 | background: #000;
270 | line-height: 50px;
271 | padding: 0 50px;
272 | color: #fff;
273 | position: fixed;
274 | bottom: 20px;
275 | right: 20px;
276 | border-radius: 5px;
277 | z-index: 5;
278 | }
279 |
280 | .bot-error p {
281 | margin: 0;
282 | }
283 |
284 | /*
285 | // TYPING INDICATOR
286 | */
287 |
288 | .typing {
289 | border-radius: 5px;
290 | background-color: #fff;
291 | box-shadow: 0 7px 15px 0 rgba(0, 0, 0, 0.1);
292 | width: 120px;
293 | height: 40px;
294 | display: flex;
295 | justify-content: center;
296 | align-items: center;
297 | position: relative;
298 | animation: fadeInGrownIn 0.5s ease;
299 | }
300 |
301 | /* Typing Dots ----*/
302 | .typing .dot {
303 | border-radius: 50%;
304 | width: 8px;
305 | height: 8px;
306 | display: block;
307 | margin-right: 12px;
308 | animation: wave 0.9s linear infinite;
309 | }
310 |
311 | .typing .dot:nth-child(1) {
312 | background-color: #4f3beb;
313 | }
314 | .typing .dot:nth-child(2) {
315 | background-color: #6292f3;
316 | animation-delay: -0.7s;
317 | }
318 | .typing .dot:nth-child(3) {
319 | background-color: #6ecff9;
320 | animation-delay: -0.5s;
321 | margin-right: 0;
322 | }
323 |
324 |
325 | /*
326 | // OVERRIDE STUFF
327 | */
328 | .typing:before,
329 | .bot-chat-wrapper .chat-message.user:before {
330 | content: "";
331 | display: none;
332 | }
333 |
334 |
335 | /*
336 | // ANIMATIONS
337 | */
338 |
339 | /* Fade In Grow In Animation ---- */
340 | @keyframes fadeInGrownIn {
341 | 0% {
342 | opacity: 0;
343 | transform: scale(0.9);
344 | }
345 | 100% {
346 | opacity: 1;
347 | transform: scale(1);
348 | }
349 | }
350 |
351 | /* Slide Left Animation ---- */
352 | @keyframes fade-in-left {
353 | 0% {
354 | transform: translateX(-50px);
355 | opacity: 0;
356 | }
357 | 100% {
358 | transform: translateX(0);
359 | opacity: 1;
360 | }
361 | }
362 | /* Slide Right Animation ---- */
363 | @keyframes fade-in-right {
364 | 0% {
365 | transform: translateX(50px);
366 | opacity: 0;
367 | }
368 | 100% {
369 | transform: translateX(0);
370 | opacity: 1;
371 | }
372 | }
373 |
374 | /* Wave Dots Animation ----- */
375 | @keyframes wave {
376 | 0%, 60%, 100% { transform: initial; }
377 |
378 | 30% { transform: translateY(-10px); }
379 | }
380 |
381 | /*
382 | // RESPONSIVE
383 | */
384 |
385 | @media screen and (max-width: 700px) {
386 | .bot-avatar {
387 | display: none !important;
388 | }
389 |
390 | .bot-chat-wrapper,
391 | .bg-image .bot-chat-wrapper {
392 | padding: 20px;
393 | }
394 |
395 | .bg-image .bot-chat-wrapper {
396 | margin-left: 10px;
397 | margin-right: 10px;
398 | }
399 |
400 | .chat-message {
401 | max-width: 100%;
402 | }
403 |
404 | .input input {
405 | font-size: 16px;
406 | }
407 | }
408 |
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg1.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg10.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg10_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg10_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg11.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg11_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg11_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg1_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg1_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg2.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg2_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg2_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg3.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg3_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg3_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg4.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg4_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg4_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg5.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg5_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg5_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg6.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg6_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg6_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg7.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg7_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg7_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg8.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg8_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg8_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg9.jpg
--------------------------------------------------------------------------------
/assets/images/backgrounds/bg9_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/backgrounds/bg9_thumb.jpg
--------------------------------------------------------------------------------
/assets/images/chatbot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/chatbot.png
--------------------------------------------------------------------------------
/assets/images/checked.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/images/chosen/chosen-sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/chosen/chosen-sprite.png
--------------------------------------------------------------------------------
/assets/images/chosen/chosen-sprite@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/chosen/chosen-sprite@2x.png
--------------------------------------------------------------------------------
/assets/images/close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/images/exit.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/images/finish-setup.svg:
--------------------------------------------------------------------------------
1 |
46 |
--------------------------------------------------------------------------------
/assets/images/icn_sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codeinwp/wp-maintenance-mode/f9002756d39a460179c2809455d062d346f6d763/assets/images/icn_sprite.png
--------------------------------------------------------------------------------
/assets/images/index.php:
--------------------------------------------------------------------------------
1 |
2 |
xyz
115 | produces $.xyz
and $.fn.xyz
. */
116 | _init: function() {
117 | // Apply default localisations
118 | $.extend(this.defaultOptions, (this.regionalOptions && this.regionalOptions['']) || {});
119 | // Camel-case the name
120 | var jqName = camelCase(this.name);
121 | // Expose jQuery singleton manager
122 | $[jqName] = this;
123 | // Expose jQuery collection plugin
124 | $.fn[jqName] = function(options) {
125 | var otherArgs = Array.prototype.slice.call(arguments, 1);
126 | if ($[jqName]._isNotChained(options, otherArgs)) {
127 | return $[jqName][options].apply($[jqName], [this[0]].concat(otherArgs));
128 | }
129 | return this.each(function() {
130 | if (typeof options === 'string') {
131 | if (options[0] === '_' || !$[jqName][options]) {
132 | throw 'Unknown method: ' + options;
133 | }
134 | $[jqName][options].apply($[jqName], [this].concat(otherArgs));
135 | }
136 | else {
137 | $[jqName]._attach(this, options);
138 | }
139 | });
140 | };
141 | },
142 |
143 | /** Set default values for all subsequent instances.
144 | @param options {object} The new default options.
145 | @example $.plugin.setDefauls({name: value}) */
146 | setDefaults: function(options) {
147 | $.extend(this.defaultOptions, options || {});
148 | },
149 |
150 | /** Determine whether a method is a getter and doesn't permit chaining.
151 | @private
152 | @param name {string} The method name.
153 | @param otherArgs {any[]} Any other arguments for the method.
154 | @return {boolean} True if this method is a getter, false otherwise. */
155 | _isNotChained: function(name, otherArgs) {
156 | if (name === 'option' && (otherArgs.length === 0 ||
157 | (otherArgs.length === 1 && typeof otherArgs[0] === 'string'))) {
158 | return true;
159 | }
160 | return $.inArray(name, this._getters) > -1;
161 | },
162 |
163 | /** Initialise an element. Called internally only.
164 | Adds an instance object as data named for the plugin.
165 | @param elem {Element} The element to enhance.
166 | @param options {object} Overriding settings. */
167 | _attach: function(elem, options) {
168 | elem = $(elem);
169 | if (elem.hasClass(this._getMarker())) {
170 | return;
171 | }
172 | elem.addClass(this._getMarker());
173 | options = $.extend({}, this.defaultOptions, this._getMetadata(elem), options || {});
174 | var inst = $.extend({name: this.name, elem: elem, options: options},
175 | this._instSettings(elem, options));
176 | elem.data(this.name, inst); // Save instance against element
177 | this._postAttach(elem, inst);
178 | this.option(elem, options);
179 | },
180 |
181 | /** Retrieve additional instance settings.
182 | Override this in a sub-class to provide extra settings.
183 | @param elem {jQuery} The current jQuery element.
184 | @param options {object} The instance options.
185 | @return {object} Any extra instance values.
186 | @example _instSettings: function(elem, options) {
187 | return {nav: elem.find(options.navSelector)};
188 | } */
189 | _instSettings: function(elem, options) {
190 | return {};
191 | },
192 |
193 | /** Plugin specific post initialisation.
194 | Override this in a sub-class to perform extra activities.
195 | @param elem {jQuery} The current jQuery element.
196 | @param inst {object} The instance settings.
197 | @example _postAttach: function(elem, inst) {
198 | elem.on('click.' + this.name, function() {
199 | ...
200 | });
201 | } */
202 | _postAttach: function(elem, inst) {
203 | },
204 |
205 | /** Retrieve metadata configuration from the element.
206 | Metadata is specified as an attribute:
207 | data-<plugin name>="<setting name>: '<value>', ..."
.
208 | Dates should be specified as strings in this format: 'new Date(y, m-1, d)'.
209 | @private
210 | @param elem {jQuery} The source element.
211 | @return {object} The inline configuration or {}. */
212 | _getMetadata: function(elem) {
213 | try {
214 | var data = elem.data(this.name.toLowerCase()) || '';
215 | data = data.replace(/'/g, '"');
216 | data = data.replace(/([a-zA-Z0-9]+):/g, function(match, group, i) {
217 | var count = data.substring(0, i).match(/"/g); // Handle embedded ':'
218 | return (!count || count.length % 2 === 0 ? '"' + group + '":' : group + ':');
219 | });
220 | data = $.parseJSON('{' + data + '}');
221 | for (var name in data) { // Convert dates
222 | var value = data[name];
223 | if (typeof value === 'string' && value.match(/^new Date\((.*)\)$/)) {
224 | data[name] = eval(value);
225 | }
226 | }
227 | return data;
228 | }
229 | catch (e) {
230 | return {};
231 | }
232 | },
233 |
234 | /** Retrieve the instance data for element.
235 | @param elem {Element} The source element.
236 | @return {object} The instance data or {}. */
237 | _getInst: function(elem) {
238 | return $(elem).data(this.name) || {};
239 | },
240 |
241 | /** Retrieve or reconfigure the settings for a plugin.
242 | @param elem {Element} The source element.
243 | @param name {object|string} The collection of new option values or the name of a single option.
244 | @param [value] {any} The value for a single named option.
245 | @return {any|object} If retrieving a single value or all options.
246 | @example $(selector).plugin('option', 'name', value)
247 | $(selector).plugin('option', {name: value, ...})
248 | var value = $(selector).plugin('option', 'name')
249 | var options = $(selector).plugin('option') */
250 | option: function(elem, name, value) {
251 | elem = $(elem);
252 | var inst = elem.data(this.name);
253 | if (!name || (typeof name === 'string' && value == null)) {
254 | var options = (inst || {}).options;
255 | return (options && name ? options[name] : options);
256 | }
257 | if (!elem.hasClass(this._getMarker())) {
258 | return;
259 | }
260 | var options = name || {};
261 | if (typeof name === 'string') {
262 | options = {};
263 | options[name] = value;
264 | }
265 | this._optionsChanged(elem, inst, options);
266 | $.extend(inst.options, options);
267 | },
268 |
269 | /** Plugin specific options processing.
270 | Old value available in inst.options[name]
, new value in options[name]
.
271 | Override this in a sub-class to perform extra activities.
272 | @param elem {jQuery} The current jQuery element.
273 | @param inst {object} The instance settings.
274 | @param options {object} The new options.
275 | @example _optionsChanged: function(elem, inst, options) {
276 | if (options.name != inst.options.name) {
277 | elem.removeClass(inst.options.name).addClass(options.name);
278 | }
279 | } */
280 | _optionsChanged: function(elem, inst, options) {
281 | },
282 |
283 | /** Remove all trace of the plugin.
284 | Override _preDestroy
for plugin-specific processing.
285 | @param elem {Element} The source element.
286 | @example $(selector).plugin('destroy') */
287 | destroy: function(elem) {
288 | elem = $(elem);
289 | if (!elem.hasClass(this._getMarker())) {
290 | return;
291 | }
292 | this._preDestroy(elem, this._getInst(elem));
293 | elem.removeData(this.name).removeClass(this._getMarker());
294 | },
295 |
296 | /** Plugin specific pre destruction.
297 | Override this in a sub-class to perform extra activities and undo everything that was
298 | done in the _postAttach
or _optionsChanged
functions.
299 | @param elem {jQuery} The current jQuery element.
300 | @param inst {object} The instance settings.
301 | @example _preDestroy: function(elem, inst) {
302 | elem.off('.' + this.name);
303 | } */
304 | _preDestroy: function(elem, inst) {
305 | }
306 | });
307 |
308 | /** Convert names from hyphenated to camel-case.
309 | @private
310 | @param value {string} The original hyphenated name.
311 | @return {string} The camel-case version. */
312 | function camelCase(name) {
313 | return name.replace(/-([a-z])/g, function(match, group) {
314 | return group.toUpperCase();
315 | });
316 | }
317 |
318 | /** Expose the plugin base.
319 | @namespace "$.JQPlugin" */
320 | $.JQPlugin = {
321 |
322 | /** Create a new collection plugin.
323 | @memberof "$.JQPlugin"
324 | @param [superClass='JQPlugin'] {string} The name of the parent class to inherit from.
325 | @param overrides {object} The property/function overrides for the new class.
326 | @example $.JQPlugin.createPlugin({
327 | name: 'tabs',
328 | defaultOptions: {selectedClass: 'selected'},
329 | _initSettings: function(elem, options) { return {...}; },
330 | _postAttach: function(elem, inst) { ... }
331 | }); */
332 | createPlugin: function(superClass, overrides) {
333 | if (typeof superClass === 'object') {
334 | overrides = superClass;
335 | superClass = 'JQPlugin';
336 | }
337 | superClass = camelCase(superClass);
338 | var className = camelCase(overrides.name);
339 | JQClass.classes[className] = JQClass.classes[superClass].extend(overrides);
340 | new JQClass.classes[className]();
341 | }
342 | };
343 |
344 | })(jQuery);
--------------------------------------------------------------------------------
/assets/js/scripts-admin-global.js:
--------------------------------------------------------------------------------
1 | /* global jQuery */
2 |
3 | jQuery( function( $ ) {
4 | /**
5 | * DISMISS NOTICES
6 | *
7 | * @since 2.0.4
8 | */
9 | $( '.wpmm_notices' ).on( 'click', '.notice-dismiss', function() {
10 | const noticeKey = $( this ).parent().data( 'key' );
11 | const noticeNonce = $( this ).parent().data( 'nonce' );
12 | $.post( ajaxurl, {
13 | action: 'wpmm_dismiss_notices',
14 | notice_key: noticeKey,
15 | _nonce: noticeNonce,
16 | }, function( response ) {
17 | if ( ! response.success ) {
18 | return false;
19 | }
20 | }, 'json' );
21 | } );
22 | } );
23 |
--------------------------------------------------------------------------------
/assets/js/scripts.js:
--------------------------------------------------------------------------------
1 | jQuery(function($) {
2 | /**
3 | * COUNTDOWN
4 | */
5 | var countdown_el = $('.countdown');
6 |
7 | if (countdown_el.length > 0) {
8 | var countDate = new Date(countdown_el.data('end'));
9 |
10 | countdown_el.countdown({
11 | until: countDate,
12 | compact: true,
13 | layout: '{dn} : {hnn} : {mnn} : {snn}'
14 | });
15 | }
16 |
17 | /**
18 | * SOCIAL LINKS
19 | */
20 | var social_el = $('.social');
21 |
22 | if (social_el.length > 0) {
23 | var link_target = social_el.data('target');
24 |
25 | if (link_target == 1) {
26 | social_el.find('a').attr('target', '_blank');
27 | }
28 | }
29 |
30 | /**
31 | * SUBSCRIBE FORM
32 | */
33 | var subscribe_form = $('.subscribe_form');
34 |
35 | if (subscribe_form.length > 0) {
36 | // validate form
37 | subscribe_form.validate({
38 | submitHandler: function(form) {
39 | var subscribe_form_data = 'action=wpmm_add_subscriber&' + subscribe_form.serialize();
40 |
41 | $.post(wpmmVars.ajaxURL, subscribe_form_data, function(response) {
42 | if (!response.success) {
43 | alert(response.data);
44 | return false;
45 | }
46 |
47 | $('.subscribe_wrapper').html(response.data);
48 |
49 | }, 'json');
50 |
51 | return false;
52 | }
53 | });
54 | }
55 |
56 | /**
57 | * CONTACT FORM
58 | */
59 | if ($('.contact').length > 0) {
60 | // show form
61 | $('body').on('click', '.contact_us', function() {
62 | var open_contact = $(this).data('open'),
63 | close_contact = $(this).data('close');
64 |
65 | $('.contact').fadeIn(700);
66 | $('.' + open_contact).addClass(close_contact);
67 | });
68 |
69 | // validate form
70 | var contact_form = $('.contact_form');
71 |
72 | contact_form.validate({
73 | submitHandler: function(form) {
74 | var contact_form_data = 'action=wpmm_send_contact&' + contact_form.serialize();
75 |
76 | $.post(wpmmVars.ajaxURL, contact_form_data, function(response) {
77 | if (!response.success) {
78 | alert(response.data);
79 | return false;
80 | }
81 |
82 | contact_form.parent().append('We are working to deliver the best experience for our visitors. Meanwhile, follow us on Social.
\n\n\n\n \nLeave your email and we will send you a heads-up when our site launches.
\n\n\n\n\nThanks for checking in! While we are getting ready, make sure to follow us on Social to know when we launch!
\n\n\n\n \nThanks for checking in! While we are getting ready, make sure to follow us on Social to know when we launch!
\n\n\n\n\n\n\n\n \nNam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime.
\nElectronic musician / performer
\n\n\n\nNam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit
\nWe are doing some updates on our site, and we need to be offline for a while. We will be back with you shortly!
\n\n\n\n \nSend us a message and we will get back to you asap!
\n\n\n\n\nWe are doing some maintenance on our website to improve your experience. Meanwhile, follow us on Social Media
\n\n\n\n\n\n\n\n \nWe are doing some updates on our site, and we need to be offline for a while. We will be back with you shortly! Meanwhile, follow us on Social.
\n\n\n\n\n\n\n\n \n32 | | |||||||||||||||||||||
36 |
|
124 | |||||||||||||||||||||
127 | |
%s