Michael Schmitt

  • Michael Schmitt
  • Michael Schmitt is professor of international law at the University of Reading, affiliate at Harvard Law School’s Program on International Law and Armed Conflict, and visiting research professor at the International Institute of Humanitarian Law. He formerly served as the G. Norman Lieber distinguished scholar at West Point, chair of the Stockton Center for International Law at the US Naval War College, where he is pofessor emeritus, dean of the George C. Marshall Center European Center for Security Studies, and professor of law at the University of Exeter, Durham University, and the United States Air Force Academy. Professor Schmitt is a retired US Air Force judge advocate, having specialized in international and operational law. He is the general editor of the Lieber Studies series (OUP) and sits on many international law advisory and editorial boards.

Articles by this author

"),t.type){case"pdf":if(a.default.isFirefox()||a.default.isEdge()||a.default.isIE())try{if(console.info("PrintJS currently doesn't support PDF printing in Firefox, Internet Explorer and Edge."),!0===t.onBrowserIncompatible())window.open(t.fallbackPrintable,"_blank").focus(),t.onPdfOpen&&t.onPdfOpen()}catch(e){t.onError(e)}finally{t.showModal&&l.default.close(),t.onLoadingEnd&&t.onLoadingEnd()}else d.default.print(t,o);break;case"image":f.default.print(t,o);break;case"html":u.default.print(t,o);break;case"raw-html":c.default.print(t,o);break;case"json":s.default.print(t,o)}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(0),i=(r=o)&&r.__esModule?r:{default:r},a=n(1);function l(e,t,n){var r=new window.Blob([n],{type:"application/pdf"});r=window.URL.createObjectURL(r),t.setAttribute("src",r),i.default.send(e,t)}t.default={print:function(e,t){if(e.base64){var n=Uint8Array.from(atob(e.printable),function(e){return e.charCodeAt(0)});l(e,t,n)}else{e.printable=/^(blob|http)/i.test(e.printable)?e.printable:window.location.origin+("/"!==e.printable.charAt(0)?"/"+e.printable:e.printable);var r=new window.XMLHttpRequest;r.responseType="arraybuffer",r.addEventListener("load",function(){if(-1===[200,201].indexOf(r.status))return(0,a.cleanUp)(e),void e.onError(r.statusText);l(e,t,r.response)}),r.open("GET",e.printable,!0),r.send()}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(1),i=n(0),a=(r=i)&&r.__esModule?r:{default:r};t.default={print:function(e,t){var n=document.getElementById(e.printable);n?(e.printableElement=function e(t,n){var r=t.cloneNode();var o=!0;var i=!1;var a=void 0;try{for(var l,d=t.childNodes[Symbol.iterator]();!(o=(l=d.next()).done);o=!0){var u=l.value;if(-1===n.ignoreElements.indexOf(u.id)){var c=e(u,n);r.appendChild(c)}}}catch(e){i=!0,a=e}finally{try{!o&&d.return&&d.return()}finally{if(i)throw a}}switch(t.tagName){case"SELECT":r.value=t.value;break;case"CANVAS":r.getContext("2d").drawImage(t,0,0)}return r}(n,e),e.header&&(0,o.addHeader)(e.printableElement,e),a.default.send(e,t)):window.console.error("Invalid HTML element id: "+e.printable)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(0),i=(r=o)&&r.__esModule?r:{default:r};t.default={print:function(e,t){e.printableElement=document.createElement("div"),e.printableElement.setAttribute("style","width:100%"),e.printableElement.innerHTML=e.printable,i.default.send(e,t)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(1),i=n(0),a=(r=i)&&r.__esModule?r:{default:r};t.default={print:function(r,e){r.printable.constructor!==Array&&(r.printable=[r.printable]),r.printableElement=document.createElement("div"),r.printable.forEach(function(e){var t=document.createElement("img");t.setAttribute("style",r.imageStyle),t.src=e;var n=document.createElement("div");n.appendChild(t),r.printableElement.appendChild(n)}),r.header&&(0,o.addHeader)(r.printableElement,r),a.default.send(r,e)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c=n(1),i=n(0),a=(r=i)&&r.__esModule?r:{default:r};t.default={print:function(t,e){if("object"!==o(t.printable))throw new Error("Invalid javascript data object (JSON).");if("boolean"!=typeof t.repeatTableHeader)throw new Error("Invalid value for repeatTableHeader attribute (JSON).");if(!t.properties||!Array.isArray(t.properties))throw new Error("Invalid properties array for your JSON data.");t.properties=t.properties.map(function(e){return{field:"object"===(void 0===e?"undefined":o(e))?e.field:e,displayName:"object"===(void 0===e?"undefined":o(e))?e.displayName:e,columnSize:"object"===(void 0===e?"undefined":o(e))&&e.columnSize?e.columnSize+";":100/t.properties.length+"%;"}}),t.printableElement=document.createElement("div"),t.header&&(0,c.addHeader)(t.printableElement,t),t.printableElement.innerHTML+=function(e){var t=e.printable,n=e.properties,r='';e.repeatTableHeader&&(r+="");r+="";for(var o=0;o'+(0,c.capitalizePrint)(n[o].displayName)+"";r+="",e.repeatTableHeader&&(r+="");r+="";for(var i=0;i";for(var a=0;a'+l+""}r+=""}return r+="
"}(t),a.default.send(t,e)}}}]).default}); document.querySelector('.all-content-wrapper').setAttribute('id','printable'); ChangeListener('.lead_post_body_main .share-pinterest, .mobile_social_links .share-pinterest', function(el) { el.outerHTML=''; }); ChangeListener('.lead_post_body_main .share-print, .mobile_social_links .share-print', function(el) { setTimeout(()=>{ // this set timeout is important to bypass the system imposed event listener el.addEventListener("click", function(){ if (navigator.userAgent.indexOf("Firefox") > 0) {window.print();}else{ printJS({printable: 'printable',type: 'html',targetStyles: ['*'],css: 'https://partners.rebelmouse.com/commondreams/print.css?s=0',style: ".custom-field-after-seconds,.custom-field-popup-bg-color,.custom-field-popup-text-color,.custom-field-location,.no-print { display: none !important; }"}); } }, 200) }); }); }); window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ if (getCookie("popupShown") || (getCookie("hide_newsletter") != null && getCookie("hide_newsletter"))) { console.log("nothing to do"); setCookie("hide_newsletter", "true", 365); return; } if(document.querySelector(".popup-modal .mb-2.popup--article #mc-embedded-subscribe") != null) { const popupform = document.querySelector(".popup-modal [name='mc-embedded-subscribe-form']"); popupform.addEventListener("submit", () => { setCookie("hide_newsletter", "true", 365); }); popupform.addEventListener("click", () => { setCookie("hide_newsletter", "true", 365); }); /*document.querySelector(".popup-modal .mb-2.popup--article #mc-embedded-subscribe").addEventListener("click", function(){ // Set the "hide_newsletter" cookie to "true" for 1 year (365 days) setCookie("hide_newsletter", "true", 365); });*/ } const popupBackdrop = document.querySelector(".popup--backdrop"); const closePopupButton = popupBackdrop.querySelector(".close-button"); const afterSecondsField = popupBackdrop.querySelector( ".custom-field-after-seconds" )?.textContent; const scrollingBeginsField = popupBackdrop.querySelector( ".custom-field-scrolling-begins" )?.textContent; const customFieldObj = document.querySelector(".popup--article .custom-field-visible-to-admin-only"); const customBGColor = popupBackdrop.querySelector('.custom-field-popup-bg-color')?.textContent const customTextColor = popupBackdrop.querySelector('.custom-field-popup-text-color')?.textContent popupBackdrop.style.setProperty('--background-color', `${customBGColor}`) popupBackdrop.style.setProperty('--text-color', `${customTextColor}`) const after_seconds = Number(afterSecondsField); const scrolling_begins = scrollingBeginsField === "True"; let lastScrollPosition = 0; let userHasInteracted = false; const scrollDeltaThreshold = 5; const showPopup = () => { console.log("---- showPopup ----") if (((customFieldObj != null && getCookie("userIsAdmin")) || customFieldObj == null) && !getCookie("popupShown") ){ popupBackdrop.classList.add("open"); setCookie("popupShown", true, 30); } }; const hidePopup = () => popupBackdrop.classList.remove("open"); if(closePopupButton != null) { closePopupButton.addEventListener("click", hidePopup); } const userEvents = ["mousemove", "mousedown", "keydown", "touchstart"]; let userEventListenersRemoved = false; const userInteraction = () => { userHasInteracted = true; if (userEventListenersRemoved) return; userEvents.forEach((event) => { document.removeEventListener(event, userInteraction); userEventListenersRemoved = true; }); }; userEvents.forEach((event) => document.addEventListener(event, userInteraction) ); if (!scrolling_begins && !isNaN(after_seconds)) { setTimeout(showPopup, after_seconds * 1000); } else if (scrolling_begins) { document.addEventListener("scroll", debounce(handleScroll, 50)); } function handleScroll() { console.log("----handle Scroll----") if (scrolling_begins && !userHasInteracted) return; if (scrolling_begins) { const currentScrollPosition = window.scrollY || document.documentElement.scrollTop; const scrollDelta = Math.abs(currentScrollPosition - lastScrollPosition); if (scrollDelta > scrollDeltaThreshold) { setTimeout(showPopup, 0); document.removeEventListener("scroll", debounce(handleScroll, 50)); } lastScrollPosition = currentScrollPosition; } } function debounce(func, wait, immediate = false) { let timeout; return function (...args) { const context = this; const later = function () { timeout = null; if (!immediate) func.apply(context, args); }; const shouldCallNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (shouldCallNow) func.apply(context, args); }; } // to be implemented: cookies function setCookie(name, value, days) { let date = new Date(); date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); let expires = "expires=" + date.toUTCString(); document.cookie = name + "=" + value + ";" + expires + ";path=/"; } function getCookie(cname) { let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(";"); for (let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) == " ") { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } }); window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ REBELMOUSE_STDLIB.createElementChangeListener(".newsletter-campaign .custom-field-source-text", function(button){ button.setAttribute('data-before', ''); button.innerHTML=''; }) }); window.REBELMOUSE_ACTIVE_TASKS_QUEUE.push(function(){ /* Checking the position set with a post custom field, if it is not a default one (above) - change the position to custom */ const blockPlacement = () => { const newsletterBlock = document.querySelector('.js-newsletter-wrapper'); const placementPosition = document.querySelector('.custom-field-newsletter-position') ? document.querySelector('.custom-field-newsletter-position').innerText : false; if (!placementPosition) { return newsletterBlock.classList.remove('visually-hidden'); } const targetBlock = document.querySelector('.tab_wrap'); placementPosition === 'above' || placementPosition === '' ? false : targetBlock.insertAdjacentElement('afterend', newsletterBlock); return newsletterBlock.classList.remove('visually-hidden'); } blockPlacement(); });