PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / trunk
JetBackup – Backup, Restore & Migrate vtrunk
3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / public / views / jobs.htm
backup / public / views Last commit date
destinations 1 year ago modal 10 months ago settings 6 days ago 404.htm 1 year ago alerts.htm 1 year ago backups.htm 1 year ago dashboard.htm 1 year ago destinations.htm 9 months ago downloads.htm 1 year ago jobs.htm 1 year ago main.htm 1 year ago mfa.htm 1 year ago queue.htm 1 year ago schedules.htm 1 year ago settings.htm 1 year ago system.htm 11 months ago
jobs.htm
148 lines
1 <div ng-controller="jobs" class="jb-list-backups-container jb-grey-0">
2
3 <div class="row" navigation active="menuItem"></div>
4
5 <div class="row rounded-4 jb-white-0 jb-panel-row shadow-lg">
6 <div class="jb-main-title rounded-3">
7 {{ lang.t("Backup Jobs") }}
8 </div>
9
10 <div class="jb-title-description">
11 <p>{{ lang.t("Automate your backup strategy by creating jobs that regularly back up your WordPress site and critical data. Click on a job to manage it, run it manually, duplicate, or delete it. For best results, assign a remote destination to ensure off-site safety.") }}</p>
12 </div>
13
14 <div class="row jb-table-row">
15 <div class="table-responsive">
16
17 <div class="row mb-10">
18 <div class="col-md-4 d-flex pt-2">
19 <search placeholder="{{ lang.t('Search here...') }}" ng-model="metaData.filterValue" ng-change="fetch()"></search>
20 </div>
21 <div class="col-md-8 d-flex justify-content-end">
22 <a ng-click="createNewJob()" class="jb-action-button jb-green-button">
23 <i class="fa-sharp fa-solid fa-plus"></i> {{ lang.t('Create New Job') }}
24 </a>
25 <a href="{{primaryURL}}/schedules" class="jb-action-button">
26 <i class="fa-light fa-calendar-circle-user"></i> {{ lang.t('Manage Schedules') }}
27 </a>
28 </div>
29 </div>
30 <div class="snake-line" ng-class="{ 'loading': loading }"></div>
31 <table class="jb-table table table-hover">
32 <thead>
33 <tr>
34 <th scope="col">
35 <button sort-by sort-meta="meta" sort-field="created" onSort="fetch()" title="{{ lang.t('Sort by %s.', lang.t('Name')) }}">{{ lang.t('Name') }}</button>
36 </th>
37 <th scope="col">
38 <button sort-by sort-meta="meta" sort-field="message" onSort="fetch()" title="{{ lang.t('Sort by %s.', lang.t('Destination')) }}">{{ lang.t('Destination') }}</button>
39 </th>
40 <th scope="col">
41 <button sort-by sort-meta="meta" sort-field="engine" onSort="fetch()" title="{{ lang.t('Sort by %s.', lang.t('Type')) }}">{{ lang.t('Type') }}</button>
42 </th>
43 <th scope="col">
44 <button sort-by sort-meta="meta" sort-field="level" onSort="fetch()" title="{{ lang.t('Sort by %s.', lang.t('Schedule')) }}">{{ lang.t('Schedule') }}</button>
45 </th>
46 <th scope="col">
47 <button sort-by sort-meta="meta" sort-field="level" onSort="fetch()" title="{{ lang.t('Sort by %s.', lang.t('Destinations')) }}">{{ lang.t('Destinations') }}</button>
48 </th>
49 <th scope="col">
50 <button sort-by sort-meta="meta" sort-field="level" onSort="fetch()" title="{{ lang.t('Sort by %s.', lang.t('Next Run')) }}">{{ lang.t('Next Run') }}</button>
51 </th>
52 <th scope="col">
53 <button sort-by sort-meta="meta" sort-field="level" onSort="fetch()" title="{{ lang.t('Sort by %s.', lang.t('Last Run')) }}">{{ lang.t('Last Run') }}</button>
54 </th>
55 <th scope="col">
56 <button sort-by sort-meta="meta" sort-field="level" onSort="fetch()" title="{{ lang.t('Sort by %s.', lang.t('Enable')) }}">{{ lang.t('Enable') }}</button>
57 </th>
58 </tr>
59 </thead>
60 <tbody>
61
62 <!-- Loading Jobs Indicator -->
63 <tr ng-if="initialLoading">
64 <td colspan="8" class="text-center jb-loading-row">
65 <div class="jb-loading-screen">
66 <p class="jb-loading-text">
67 Loading<span class="jb-dots"><span></span><span></span><span></span></span>
68 </p>
69 </div>
70 </td>
71 </tr>
72
73 <!-- No Jobs Found -->
74 <tr ng-if="!initialLoading && jobs.length === 0 && !loading">
75 <td colspan="8" class="text-center">
76 {{ lang.t("No jobs found.") }}
77 </td>
78 </tr>
79
80 <tr ng-repeat-start="job in jobs"
81 class="jb-table-tr jobs"
82 ng-click="toggleDetail($index)"
83 ng-class="{'jb-table-tr-selected': isDetailVisible($index)}">
84 <td>{{ job.name }}</td>
85 <td>{{ job.destination_names }}</td>
86 <td>{{ backupContains(job.backup_contains) }}</td>
87 <td>{{ job.schedule_names }}</td>
88 <td>{{ job.destination_names }}</td>
89 <td>
90 {{ job.next_run ? (lang.d(job.next_run)) : 'Not set' }}
91 </td>
92 <td>{{ job.last_run ? (lang.d(job.last_run)) : 'Not set' }}</td>
93 <td class="switch-main">
94 <label class="switch">
95 <input type="checkbox" aria-label="Enable/Disable job" value="{{job.enabled}}" ng-checked="job.enabled == 1" ng-click="performAction(job._id, 'enableJob')">
96 <span class="slider round"></span>
97 </label>
98 </td>
99 </tr>
100 <tr ng-repeat-end ng-show="isDetailVisible($index)"
101 ng-class="{'jb-table-tr-selected': isDetailVisible($index)}">
102 <td colspan="8" class="jb-table-elements">
103 <div class="d-grid gap-2 d-md-flex justify-content-md-start">
104 <div class="row g-2">
105
106 <!-- buttons start -->
107 <div class="col-12 col-md-auto" ng-repeat="action in actions">
108 <button
109 ng-click="(action.name === 'manage' || job.enabled) && performAction(job._id, action.name)"
110 id="jbid_{{job._id}}_{{action.name}}"
111 name="{{action.name}}"
112 class="btn jb-full-restore-button w-100"
113 type="button"
114 ng-class="{'btn-primary': action.name === 'manage' || job.enabled, 'btn-secondary': action.name !== 'manage' && !job.enabled,'jb-orange-button': action.name === 'runNow','jb-red-button': action.name === 'delete'}"
115 ng-disabled="action.name !== 'manage' && !job.enabled || isButtonLoading(job._id, action.name)">
116 <span class="icon">
117 <i class="fa-sharp fa-light" ng-class="isButtonLoading(job._id, action.name) ? 'fa-spinner fa-spin' : action.icon"></i>
118 </span>
119 {{ lang.t(action.label) }}
120 </button>
121
122 </div>
123 <!-- buttons end -->
124 </div>
125 </div>
126 </td>
127 </tr>
128 </tbody>
129 </table>
130 <pagination fetch="fetch" meta="meta"></pagination>
131 </div> <!-- table row -->
132
133 <div class="row d-flex justify-content-center">
134
135 <div class="col-sm-5 d-flex justify-content-center">
136 <span class="svg-icons"><svg size="20" width="20" fill="#000000" version="1.1" id="Capa_1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 96.24 96.24" xml:space="preserve">><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <path d="M48.122,0C21.587,0,0.001,21.585,0.001,48.118c0,26.535,21.587,48.122,48.12,48.122c26.532,0,48.117-21.587,48.117-48.122 C96.239,21.586,74.654,0,48.122,0z M4.857,48.118c0-6.271,1.345-12.227,3.746-17.606l20.638,56.544 C14.81,80.042,4.857,65.243,4.857,48.118z M48.122,91.385c-4.247,0-8.346-0.623-12.222-1.763L48.88,51.903l13.301,36.433 c0.086,0.215,0.191,0.411,0.308,0.596C57.992,90.514,53.16,91.385,48.122,91.385z M54.083,27.834 c2.604-0.137,4.953-0.412,4.953-0.412c2.33-0.276,2.057-3.701-0.277-3.564c0,0-7.007,0.549-11.532,0.549 c-4.25,0-11.396-0.549-11.396-0.549c-2.332-0.137-2.604,3.427-0.273,3.564c0,0,2.208,0.275,4.537,0.412l6.74,18.469l-9.468,28.395 L21.615,27.835c2.608-0.136,4.952-0.412,4.952-0.412c2.33-0.275,2.055-3.702-0.278-3.562c0,0-7.004,0.549-11.53,0.549 c-0.813,0-1.77-0.021-2.784-0.052C19.709,12.611,33.008,4.856,48.122,4.856c11.265,0,21.519,4.306,29.215,11.357 c-0.187-0.01-0.368-0.035-0.562-0.035c-4.248,0-7.264,3.702-7.264,7.679c0,3.564,2.055,6.582,4.248,10.146 c1.647,2.882,3.567,6.585,3.567,11.932c0,3.704-1.422,8-3.293,13.986l-4.315,14.421L54.083,27.834z M69.871,85.516l13.215-38.208 c2.471-6.171,3.29-11.106,3.29-15.497c0-1.591-0.104-3.07-0.292-4.449c3.38,6.163,5.303,13.236,5.301,20.758 C91.384,64.08,82.732,78.016,69.871,85.516z"></path> </g> </g></svg></span>
137 <span style="margin-top: 6px; font-size: 12px">{{ lang.t("Generated By WordPress Plugin") }}</span>
138 </div>
139
140 <div class="col-sm-5 d-flex justify-content-center">
141 <span class="svg-icons"><svg xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:cc="https://creativecommons.org/ns#" xmlns:rdf="https://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="https://www.w3.org/2000/svg" xmlns:sodipodi="https://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="https://www.inkscape.org/namespaces/inkscape" version="1.1" id="svg4747" width="20" height="20" viewBox="0 0 18 18" sodipodi:docname="eddie-white_18x18.svg" inkscape:export-filename="Eddie-White_100x100.png" inkscape:export-xdpi="54.860001" inkscape:export-ydpi="54.860001" inkscape:version="0.92.4 (5da689c313, 2019-01-14)">> <metadata id="metadata4753"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="https://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <defs id="defs4751" /> <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1017" id="namedview4749" showgrid="false" inkscape:zoom="22.627417" inkscape:cx="2.3561347" inkscape:cy="14.574794" inkscape:window-x="1912" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg4747" /> <path inkscape:connector-curvature="0" id="path6964" d="M 7.3194535,0.04617566 C 7.0127929,0.12934144 7.8650324,1.5919323 7.1629118,2.8537007 6.9434623,3.047503 6.6161972,3.2211098 6.3231399,3.1278742 5.4738924,2.824033 4.7084371,2.3039888 3.8247516,2.0897488 2.4120918,1.9725107 4.0751768,2.6356331 3.9603724,4.5838824 3.7431047,5.1904974 3.5786142,5.6673992 3.46486,6.0659814 2.7720161,7.6250243 0.6888604,13.377312 0.26231409,14.958529 c -0.40482212,1.500621 -0.27003887,2.310226 0.42767054,2.787947 0.19464061,0.133412 2.22847727,0.205431 6.33729707,0.208872 h 6.0556403 l 0.47987,-1.305808 0.464236,-1.240547 0.01551,-0.01942 c 0.0028,-0.0035 -0.0028,-0.01942 0,-0.02608 0.130599,-0.274881 0.44029,-1.058591 0.417255,-1.66488 -0.644098,0.24581 -1.205888,0.929701 -1.356143,1.214354 -0.01368,-0.226168 0.178461,-0.847465 0.09395,-1.149135 -0.432458,0.359299 -0.907945,1.063591 -1.03797,1.345011 -0.01552,-0.221203 0.175754,-0.837548 0.0938,-1.129476 -0.308897,0.256587 -0.750388,0.864386 -0.897141,1.083767 -0.02083,-0.198101 0.164115,-0.787407 0.0938,-1.038112 -0.378804,0.314784 -0.844132,0.977338 -0.985759,1.233987 H 10.224405 C 8.7662394,15.224561 6.5732527,15.941204 6.1716544,12.6931 5.6628407,8.5777843 7.6941655,10.612793 9.9166595,11.400386 c -0.072366,0.253368 -0.3774632,1.025636 -0.3703053,1.44942 0.5140488,-0.177947 1.1019668,-0.841224 1.2935528,-1.064223 -0.05642,0.239005 -0.340145,0.96764 -0.333833,1.338451 0.521919,-0.180421 1.10323,-0.850813 1.29352,-1.077274 0.03879,0.01145 0.08165,0.02892 0.119957,0.03919 -0.04365,0.132461 -0.348624,0.706592 -0.385933,0.868361 0.822078,0.03392 1.555775,-0.59984 1.773369,-0.868361 2.485654,-1.609594 4.264118,-4.967046 4.642166,-6.8163388 C 18.039313,4.2671626 17.72573,3.6593603 17.00506,3.4088713 16.539485,3.247096 13.448656,3.2075309 10.443491,3.2585179 c -0.8499128,0 -2.1415955,-2.35063269 -3.0930276,-3.21231383 -0.012179,0 -0.021446,-0.0034931 -0.031301,0 z M 11.987708,5.8178633 C 15.202231,5.8123128 14.0732,12.75477 9.4162336,6.8951515 10.464743,6.1183907 11.320481,5.8191944 11.987708,5.8178633 Z" style="fill:#FF6C2C;fill-opacity:1;stroke:none;stroke-width:0.18674102" inkscape:export-filename="" inkscape:export-xdpi="90" inkscape:export-ydpi="90" /> </svg></span>
142 <span style="margin-top: 6px; font-size: 12px;">{{ lang.t("Generated By Hosting Provider") }}</span>
143 </div>
144
145 </div>
146 </div>
147 </div>
148 </div>