4 lines
No EOL
13 KiB
JavaScript
4 lines
No EOL
13 KiB
JavaScript
(()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.wp.element,a=window.wp.components,r=window.wp.i18n,l=window.wp.domReady;var n=e.n(l);const o=window.wp.htmlEntities,s=window.wp.url,c=({text:e})=>{const[l,n]=(0,t.useState)(!1),o=e.length>=200;return(0,t.createElement)("div",{className:"wpr-theme-description"},(0,t.createElement)("p",null,l||!o?e:`${e.substring(0,200)}...`,o&&(0,t.createElement)("span",{className:"wpr-expand-text",onClick:()=>{n(!l)}},l?(0,t.createElement)("span",null,(0,t.createElement)(a.Dashicon,{icon:"arrow-up"}),(0,r.__)("Read less","wp-rollback")):(0,t.createElement)("span",null,(0,t.createElement)(a.Dashicon,{icon:"arrow-down"}),(0,r.__)("Read more","wp-rollback")))))},i=function(){const[e,l]=(0,t.useState)(!1),n=()=>{l(!1)};return(0,t.createElement)("div",{className:"wpr-popover-wrap"},(0,t.createElement)(a.Dashicon,{icon:"info",onMouseEnter:()=>{l(!0)},onMouseLeave:n}),e&&(0,t.createElement)(a.Popover,{position:"top",className:"wpr-popover",variant:"unstyled",onClose:n,noArrow:!1},(0,r.__)("Trunk is where the most current revisions of the code should be stored, often representing the development version of the software. This is particularly relevant for developers and testers who are working with the very latest code changes that have not yet been released to the public.","wp-rollback")))},m=()=>{const[e,l]=(0,t.useState)(!0),[n,m]=(0,t.useState)(!1),[p,w]=(0,t.useState)(null),d=(0,s.getQueryArgs)(window.location.search),[u,h]=(0,t.useState)(!1),[g,E]=(0,t.useState)(!1),[_,v]=(0,t.useState)(d.current_version),{adminUrl:b,referrer:k}=wprData,f=()=>h(!1);function N(e){return new Promise(((t,a)=>{var r=new Image;r.onload=()=>t(!0),r.onerror=()=>t(!1),r.src=e}))}return(0,t.useEffect)((()=>{let e=(0,s.addQueryArgs)(wprData.restUrl+"wp-rollback/v1/fetch-info/",{type:d.type,slug:"theme"===d.type?d.theme_file:d.plugin_slug});const t=new Headers({"X-WP-Nonce":wprData.restApiNonce});fetch(e,{headers:t}).then((e=>e.json())).then((e=>{m(e),l(!1)})).catch((e=>{console.error("Error fetching data:",e)}))}),[wprData]),(0,t.useEffect)((()=>{(async()=>{if(n&&n.slug){const e=["icon-256x256","icon-128x128","icon"],t=["png","jpg","gif","svg"];for(let a of e)for(let e of t){const t=`https://ps.w.org/${n.slug}/assets/${a}.${e}`;if(await N(t))return void w(t)}w(wprData.avatarFallback)}})()}),[n]),e?(0,t.createElement)("div",{id:"wpr-wrap",className:"wpr-wrap"},(0,t.createElement)("div",{className:"wpr-loading-content"},(0,t.createElement)("div",{className:"wpr-loading-text"},(0,t.createElement)(a.Spinner,{style:{height:"calc(4px * 20)",width:"calc(4px * 20)"}}),(0,t.createElement)("p",null,(0,r.__)("Loading...","wp-rollback"))))):n.message?(0,t.createElement)("div",{id:"wpr-wrap",className:"wpr-wrap"},(0,t.createElement)("div",{className:"wpr-api-error"},(0,t.createElement)("h1",null,n.code),(0,t.createElement)("p",null,n.message))):(0,t.createElement)("div",{className:"wpr-wrapper"},(0,t.createElement)("div",{className:"wpr-logo-wrap"},(0,t.createElement)("div",{className:"wpr-logo"},(0,t.createElement)("h1",null,(0,r.__)("WP Rollback","wp-rollback")),(0,t.createElement)("a",{href:"https://wprollback.com/",target:"_blank"},(0,t.createElement)("img",{src:wprData.logo,width:250,height:"auto",alt:"WP Rollback"}))),(0,t.createElement)("p",{className:"wpr-intro-text"},(0,r.__)("Select which version you would like to rollback to from the releases listed below.","wp-rollback"))),(0,t.createElement)("div",{className:"wpr-content-wrap"},n.banners&&"plugin"===d.type&&(n.banners.high||n.banners.low)&&(0,t.createElement)("div",{className:"wpr-content-banner"},(0,t.createElement)("img",{src:!1!==n.banners.high?n.banners.high:n.banners.low,width:800,height:"auto",className:"wpr-plugin-banner",alt:n.name})),(0,t.createElement)("div",{className:"wpr-content-header"},n.screenshot_url&&"theme"===d.type&&(0,t.createElement)("div",{className:"wpr-content-banner wpr-content-banner__theme"},(0,t.createElement)("img",{src:n.screenshot_url,width:240,height:180,className:"wpr-theme-screenshot",alt:n.name})),p&&"plugin"===d.type&&(0,t.createElement)("div",{className:"wpr-plugin-avatar-wrap"},(0,t.createElement)("img",{src:p,width:96,height:96,className:"wpr-plugin-avatar",alt:n.name})),(0,t.createElement)("div",{className:"wpr-plugin-info"},(0,t.createElement)("h2",{className:"wpr-plugin-name"},"plugin"===d.type&&(0,t.createElement)("a",{href:`https://wordpress.org/plugins/${n.slug}/`,target:"_blank",className:"wpr-heading-link",alt:(0,r.sprintf)((0,r.__)("View %s on WordPress.org","wp-rollback"),n.name)},(0,o.decodeEntities)(n.name),(0,t.createElement)(a.Dashicon,{icon:"external"})),"theme"===d.type&&(0,t.createElement)("a",{href:n.homepage,target:"_blank",className:"wpr-heading-link",alt:(0,r.sprintf)((0,r.__)("View %s on WordPress.org","wp-rollback"),n.name)},(0,o.decodeEntities)(n.name),(0,t.createElement)(a.Dashicon,{icon:"external"}))),"theme"===d.type&&n.sections.description&&(0,t.createElement)("div",{className:"wpr-theme-description"},(0,t.createElement)(c,{text:n.sections.description})),(0,t.createElement)("div",{className:"wpr-pill-wrap"},(0,t.createElement)("div",{className:"wpr-pill wpr-pill__black"},(0,t.createElement)("span",{className:"wpr-pill-text"},(0,r.__)("Installed version:","wp-rollback")," ",(0,t.createElement)("strong",null,d.current_version))),"plugin"===d.type&&(0,t.createElement)("div",{className:"wpr-pill wpr-pill__author"},(0,t.createElement)("span",{className:"wpr-pill-text"},(0,r.__)("Plugin author:","wp-rollback")," ",(0,t.createElement)("span",{className:"wpr-pill__link",dangerouslySetInnerHTML:{__html:n.author}}))))),(0,t.createElement)("div",{className:"wpr-meta-wrap"},"theme"===d.type&&(0,t.createElement)("div",{className:"wpr-meta-item wpr-meta-item__author-wrap"},(0,t.createElement)("h3",null,(0,r.__)("Theme Author","wp-rollback")),(0,t.createElement)("div",{className:"wpr-theme-author-inner"},(0,t.createElement)("img",{src:n.author.avatar,width:64,height:64}),(0,t.createElement)("div",{className:"wpr-theme-author-info"},(0,t.createElement)("a",{href:n.author.author_url,target:"_blank"},n.author.display_name)))),"plugin"===d.type&&(0,t.createElement)("div",{className:"wpr-meta-wrap__plugins"},(0,t.createElement)("div",{className:"wpr-view-changelog"},(0,t.createElement)(a.Button,{isSecondary:!0,onClick:()=>E(!0),className:"wpr-version-changelog"},(0,r.__)("View Changelog","wp-rollback"))),(0,t.createElement)("h3",null,(0,r.__)("Last Updated","wp-rollback")),(0,t.createElement)("div",{className:"wpr-updater-info"},(0,t.createElement)(a.Dashicon,{icon:"clock"}),(0,t.createElement)("span",{className:"wpr-plugin-lastupdate"},function(e){let t=e.replace("am"," AM").replace("pm"," PM").replace(" GMT","");t=new Date(t).toLocaleString("en-US",{timeZone:"GMT"});const a=new Date(t);if(isNaN(a.getTime()))return console.error("Invalid date:",t),"Invalid date";const l=new Date,n=Math.floor((l-a)/1e3);return n<60?(0,r.sprintf)((0,r._n)("%s second ago","%s seconds ago",n,"wp-rollback"),n):n<3600?(0,r.sprintf)((0,r._n)("%s minute ago","%s minutes ago",Math.floor(n/60),"wp-rollback"),Math.floor(n/60)):n<86400?(0,r.sprintf)((0,r._n)("%s hour ago","%s hours ago",Math.floor(n/3600),"wp-rollback"),Math.floor(n/3600)):n<2592e3?(0,r.sprintf)((0,r._n)("%s day ago","%s days ago",Math.floor(n/86400),"wp-rollback"),Math.floor(n/86400)):n<31536e3?(0,r.sprintf)((0,r._n)("%s month ago","%s months ago",Math.floor(n/2592e3),"wp-rollback"),Math.floor(n/2592e3)):(0,r.sprintf)((0,r._n)("%s year ago","%s years ago",Math.floor(n/31536e3),"wp-rollback"),Math.floor(n/31536e3))}(n.last_updated)))))),(0,t.createElement)("div",{className:"wpr-versions-container"},Object.keys(n.versions).sort(((e,t)=>"trunk"===e?1:"trunk"===t?-1:t.localeCompare(e,void 0,{numeric:!0,sensitivity:"base"}))).map(((e,a)=>(0,t.createElement)("div",{key:a,className:"wpr-version-wrap "+(_===e?"wpr-active-row":"")},(0,t.createElement)("div",{className:"wpr-version-radio-wrap"},(0,t.createElement)("label",{htmlFor:"version-"+a},(0,t.createElement)("input",{id:"version-"+a,type:"radio",name:"version",value:e,checked:_===e,onChange:()=>v(e)}),(0,t.createElement)("span",{className:"wpr-version-lineitem"},e),d.current_version===e&&(0,t.createElement)("span",{className:"wpr-version-lineitem-current"},(0,r.__)("Currently Installed","wp-rollback")),"trunk"===e&&(0,t.createElement)(i,null))))))),(0,t.createElement)("div",{className:"wpr-button-wrap"},(0,t.createElement)(a.Button,{isPrimary:!0,onClick:()=>h(!0),className:"wpr-button-submit"},(0,r.__)("Rollback","wp-rollback")),(0,t.createElement)(a.Button,{isSecondary:!0,onClick:()=>window.location.href=k,className:"wpr-button-cancel"},(0,r.__)("Cancel","wp-rollback"))),g&&(0,t.createElement)(a.Modal,{title:(0,r.__)("Plugin Changelog","wp-rollback"),onRequestClose:()=>E(!1),disabled:!1===_,className:"wpr-modal wpr-modal__changelog",icon:(0,t.createElement)(a.Dashicon,{icon:"hammer"})},(0,t.createElement)("div",{className:"wpr-modal-intro",dangerouslySetInnerHTML:{__html:n.sections.changelog}})),u&&(0,t.createElement)(a.Modal,{title:(0,r.__)("Are you sure you want to proceed?","wp-rollback"),onRequestClose:f,disabled:!1===_,className:"wpr-modal",icon:(0,t.createElement)(a.Dashicon,{icon:"warning"})},(0,t.createElement)("p",{className:"wpr-modal-intro",dangerouslySetInnerHTML:{__html:(0,r.sprintf)(
|
|
// Translators: %1$s: Plugin name, %2$s: Rollback version
|
|
// Translators: %1$s: Plugin name, %2$s: Rollback version
|
|
(0,r.__)("You are about to rollback %1$s to version %2$s. Please confirm you would like to proceed.","wp-rollback"),`<strong>${n.name}</strong>`,`<strong>${_}</strong>`)}}),(0,t.createElement)("div",{className:"rollback-details"},(0,t.createElement)("table",{className:"widefat"},(0,t.createElement)("tbody",null,(0,t.createElement)("tr",null,(0,t.createElement)("td",{className:"row-title"},(0,t.createElement)("label",{htmlFor:"tablecell"},"plugin"===d.type?(0,r.__)("Plugin Name:","wp-rollback"):(0,r.__)("Theme Name:","wp-rollback"))),(0,t.createElement)("td",null,(0,t.createElement)("span",{className:"wpr-plugin-name",dangerouslySetInnerHTML:{__html:n.name}}))),(0,t.createElement)("tr",{className:"alternate"},(0,t.createElement)("td",{className:"row-title"},(0,t.createElement)("label",{htmlFor:"tablecell"},(0,r.__)("Installed Version:","wp-rollback"))),(0,t.createElement)("td",null,(0,t.createElement)("span",{className:"wpr-installed-version"},d.current_version))),(0,t.createElement)("tr",null,(0,t.createElement)("td",{className:"row-title"},(0,t.createElement)("label",{htmlFor:"tablecell"},(0,r.__)("New Version:","wp-rollback"))),(0,t.createElement)("td",null,(0,t.createElement)("span",{className:"wpr-new-version"},_)))))),(0,t.createElement)("div",{className:"wpr-modal-notice notice notice-warning",dangerouslySetInnerHTML:{__html:(0,r.__)("<p><strong>Notice:</strong> We strongly recommend you <strong>create a complete backup</strong> of your WordPress files and database prior to performing a rollback. We are not responsible for any misuse, deletions, white screens, fatal errors, or any other issue resulting from the use of this plugin.</p>","wp-rollback")}}),(0,t.createElement)("form",{name:"check_for_rollbacks",className:"rollback-form",action:b},(0,t.createElement)("input",{type:"hidden",name:"page",value:"wp-rollback"}),(0,t.createElement)("input",{type:"hidden",name:"wpr_rollback_nonce",value:wprData.rollback_nonce}),(0,t.createElement)("input",{type:"hidden",name:"_wpnonce",value:wprData.rollback_nonce}),"plugin"===d.type&&(0,t.createElement)("div",null,(0,t.createElement)("input",{type:"hidden",name:"plugin_file",value:d.plugin_file}),(0,t.createElement)("input",{type:"hidden",name:"plugin_version",value:_}),(0,t.createElement)("input",{type:"hidden",name:"plugin_slug",value:n.slug})),"theme"===d.type&&(0,t.createElement)("div",null,(0,t.createElement)("input",{type:"hidden",name:"theme_file",value:d.theme_file}),(0,t.createElement)("input",{type:"hidden",name:"theme_version",value:_})),(0,t.createElement)("input",{type:"hidden",name:"rollback_name",value:d.rollback_name}),(0,t.createElement)("input",{type:"hidden",name:"installed_version",value:d.current_version}),(0,t.createElement)("div",{className:"wpr-modal-button-wrap"},(0,t.createElement)(a.Button,{isPrimary:!0,type:"submit"},(0,r.__)("Rollback","wp-rollback")),(0,t.createElement)(a.Button,{isSecondary:!0,onClick:f,className:"wpr-button-cancel"},(0,r.__)("Cancel","wp-rollback")))))))};n()((function(){const e=document.getElementById("root-wp-rollback-admin");if(!e)return;const a=(0,t.createElement)(m,null);t.createRoot?(0,t.createRoot)(e).render(a):ReactDOM.render(a,e)}))})(); |