<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://eltedata.elte-dh.hu/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-moveClaim.js</id>
	<title>MediaWiki:Gadget-moveClaim.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://eltedata.elte-dh.hu/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-moveClaim.js"/>
	<link rel="alternate" type="text/html" href="https://eltedata.elte-dh.hu/w/index.php?title=MediaWiki:Gadget-moveClaim.js&amp;action=history"/>
	<updated>2026-04-22T05:41:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>https://eltedata.elte-dh.hu/w/index.php?title=MediaWiki:Gadget-moveClaim.js&amp;diff=98903&amp;oldid=prev</id>
		<title>WikibaseAdmin: Created page with &quot;/**  * Enable a quick tool to move (or copy) a claim from one entity to another.  * @author Matěj Suchánek (original author)  * @author Melderick (property change gadget)  *...&quot;</title>
		<link rel="alternate" type="text/html" href="https://eltedata.elte-dh.hu/w/index.php?title=MediaWiki:Gadget-moveClaim.js&amp;diff=98903&amp;oldid=prev"/>
		<updated>2022-04-06T18:55:15Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;/**  * Enable a quick tool to move (or copy) a claim from one entity to another.  * @author Matěj Suchánek (original author)  * @author Melderick (property change gadget)  *...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * Enable a quick tool to move (or copy) a claim from one entity to another.&lt;br /&gt;
 * @author Matěj Suchánek (original author)&lt;br /&gt;
 * @author Melderick (property change gadget)&lt;br /&gt;
 * @todo MVC, OOUI/Vue&lt;br /&gt;
 */&lt;br /&gt;
(function (mw, $) {&lt;br /&gt;
  var wikibaseHost = &amp;quot;eltedata.elte-dh.hu&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  var itemNamespace = 120;&lt;br /&gt;
  var propertyNamespace = 122;&lt;br /&gt;
&lt;br /&gt;
  if (&lt;br /&gt;
    [itemNamespace, propertyNamespace].indexOf(&lt;br /&gt;
      mw.config.get(&amp;quot;wgNamespaceNumber&amp;quot;)&lt;br /&gt;
    ) === -1 ||&lt;br /&gt;
    !mw.config.exists(&amp;quot;wbEntityId&amp;quot;) ||&lt;br /&gt;
    !mw.config.get(&amp;quot;wbIsEditView&amp;quot;)&lt;br /&gt;
  ) {&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  mw.messages.set({&lt;br /&gt;
    &amp;quot;another-entity&amp;quot;: &amp;quot;To another entity&amp;quot;,&lt;br /&gt;
    &amp;quot;same-entity&amp;quot;: &amp;quot;To the same entity&amp;quot;,&lt;br /&gt;
    close: &amp;quot;Close&amp;quot;,&lt;br /&gt;
    &amp;quot;copy-claim&amp;quot;: &amp;quot;Copy claim&amp;quot;,&lt;br /&gt;
    &amp;quot;move-claim&amp;quot;: &amp;quot;Move claim&amp;quot;,&lt;br /&gt;
    newentity: &amp;quot;The id of the new entity:&amp;quot;,&lt;br /&gt;
    newproperty: &amp;quot;The id of the new property:&amp;quot;,&lt;br /&gt;
    &amp;quot;force-label&amp;quot;: &amp;quot;Allow type mismatch:&amp;quot;,&lt;br /&gt;
    &amp;quot;move-claim-new&amp;quot;: &amp;quot;NEW&amp;quot;,&lt;br /&gt;
    &amp;quot;move-claim-intro&amp;quot;:&lt;br /&gt;
      &amp;quot;You can move a claim to another entity. Please give a valid entity id.&amp;quot;,&lt;br /&gt;
    &amp;quot;move-claim-intro-hint&amp;quot;:&lt;br /&gt;
      'If you write &amp;quot;$1&amp;quot;, you will copy/move the claim to a new item.',&lt;br /&gt;
    &amp;quot;move-claim-intro-same-entity&amp;quot;:&lt;br /&gt;
      &amp;quot;You can move a claim to another property of the current entity.&amp;quot;,&lt;br /&gt;
    &amp;quot;move-claim-intro-hint-same-entity&amp;quot;:&lt;br /&gt;
      &amp;quot;Please give a valid property id and of the same type as the current property.&amp;quot;,&lt;br /&gt;
    &amp;quot;move-claim-copied&amp;quot;: &amp;quot;The claim $1 was copied to [[$2|$3]].&amp;quot;,&lt;br /&gt;
    &amp;quot;move-claim-moved&amp;quot;: &amp;quot;The claim $1 was moved to [[$2|$3]].&amp;quot;,&lt;br /&gt;
    &amp;quot;error-sameid&amp;quot;:&lt;br /&gt;
      &amp;quot;The new entity's id has to be different to the current one's.&amp;quot;,&lt;br /&gt;
    &amp;quot;error-sameproperty&amp;quot;:&lt;br /&gt;
      &amp;quot;The new property's id has to be different to the current one's.&amp;quot;,&lt;br /&gt;
    &amp;quot;error-differenttype&amp;quot;:&lt;br /&gt;
      &amp;quot;The current entity $1 and the new entity [[$2|$3]] has to be of the same type. Use the above checkbox to override this control.&amp;quot;,&lt;br /&gt;
    &amp;quot;error-invalidid&amp;quot;: &amp;quot;The given id is not a valid entity identifier.&amp;quot;,&lt;br /&gt;
    &amp;quot;error-invalidproperty&amp;quot;: &amp;quot;The given id is not a valid property identifier.&amp;quot;,&lt;br /&gt;
    &amp;quot;error-invaliddatatype&amp;quot;:&lt;br /&gt;
      &amp;quot;The new property is incompatible with the current property datatype.&amp;quot;,&lt;br /&gt;
    &amp;quot;error-notexisting&amp;quot;: &amp;quot;The entity with the id [[$1|$2]] does not exist.&amp;quot;,&lt;br /&gt;
    &amp;quot;error-api&amp;quot;: &amp;quot;There was an error editing the entity: $1&amp;quot;,&lt;br /&gt;
  });&lt;br /&gt;
  switch (mw.config.get(&amp;quot;wgUserLanguage&amp;quot;)) {&lt;br /&gt;
    case &amp;quot;be-tarask&amp;quot;:&lt;br /&gt;
      mw.messages.set({&lt;br /&gt;
        close: &amp;quot;Зачыніць&amp;quot;,&lt;br /&gt;
        &amp;quot;copy-claim&amp;quot;: &amp;quot;Скапіяваць сьцьверджаньне&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim&amp;quot;: &amp;quot;Перанесьці сьцьверджаньне&amp;quot;,&lt;br /&gt;
        newentity: &amp;quot;Ідэнтыфікатар новай існасьці:&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-new&amp;quot;: &amp;quot;НОВЫ&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro&amp;quot;:&lt;br /&gt;
          &amp;quot;Сьцьверджаньне можна перанесьці ў іншую існасьць. Калі ласка, пазначце правільны ідэнтыфікатар існасьці.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro-hint&amp;quot;:&lt;br /&gt;
          &amp;quot;Увёўшы «$1», вы скапіюеце/перанесяцё сьцьверджаньне ў новы элемэнт.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-copied&amp;quot;:&lt;br /&gt;
          &amp;quot;Сьцьверджаньне $1 пасьпяхова скапіяванае ў [[$2|$3]].&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-moved&amp;quot;:&lt;br /&gt;
          &amp;quot;Сьцьверджаньне $1 пасьпяхова перанесенае ў [[$2|$3]].&amp;quot;,&lt;br /&gt;
        &amp;quot;error-sameid&amp;quot;:&lt;br /&gt;
          &amp;quot;Ідэнтыфікатар новай існасьці мусіць адрозьнівацца ад цяперашняга.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invalidid&amp;quot;:&lt;br /&gt;
          &amp;quot;Уведзены ідэнтыфікатар — няслушны ідэнтыфікатар існасьці.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-notexisting&amp;quot;: &amp;quot;Існасьці з ідэнтыфікатарам $1 не існуе.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-api&amp;quot;: &amp;quot;Пры рэдагаваньні існасьці адбылася памылка: $1&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
      break;&lt;br /&gt;
    case &amp;quot;el&amp;quot;:&lt;br /&gt;
      mw.messages.set({&lt;br /&gt;
        &amp;quot;another-entity&amp;quot;: &amp;quot;Σε μια άλλη οντότητα&amp;quot;,&lt;br /&gt;
        &amp;quot;same-entity&amp;quot;: &amp;quot;Στην ίδια οντότητα&amp;quot;,&lt;br /&gt;
        close: &amp;quot;Κλείσιμο&amp;quot;,&lt;br /&gt;
        &amp;quot;copy-claim&amp;quot;: &amp;quot;Αντιγραφή ισχυρισμού&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim&amp;quot;: &amp;quot;Μετακίνηση ισχυρισμού&amp;quot;,&lt;br /&gt;
        newentity: &amp;quot;Το αναγνωριστικό (id) της νέας οντότητας:&amp;quot;,&lt;br /&gt;
        newproperty: &amp;quot;Το αναγνωριστικό (id) της νέας οντότητας:&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-new&amp;quot;: &amp;quot;ΝΕΟ&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro&amp;quot;:&lt;br /&gt;
          &amp;quot;Μπορείτε να μετακινήσετε ένα ισχυρισμό σε μια άλλη οντότητα. Παρακαλώ δώστε έγκυρο αναγνωριστικό (id) οντότητας.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro-hint&amp;quot;:&lt;br /&gt;
          'Αν γράψετε &amp;quot;$1&amp;quot;, θα αντιγράψει/μετακινήσει τον ισχυρισμό σε ένα νέο αντικείμενο.',&lt;br /&gt;
        &amp;quot;move-claim-intro-same-entity&amp;quot;:&lt;br /&gt;
          &amp;quot;Μπορείτε να μετακινήσετε ένα ισχυρισμό σε μια άλλη ιδιότητα της παρούσας οντότητας.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro-hint-same-entity&amp;quot;:&lt;br /&gt;
          &amp;quot;Παρακαλώ δώστε ένα έγκυρο αναγνωριστικό (id) οντότητας και του ίδιου τύπου της παρούσας ιδιότητας.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-copied&amp;quot;:&lt;br /&gt;
          &amp;quot;Ο ισχυρισμός $1 αντιγράφτηκε στο αντικείμενο [[$2|$3]].&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-moved&amp;quot;:&lt;br /&gt;
          &amp;quot;Ο ισχυρισμός $1 μετακινήθηκε στο αντικείμενο [[$2|$3]].&amp;quot;,&lt;br /&gt;
        &amp;quot;error-sameid&amp;quot;:&lt;br /&gt;
          &amp;quot;Το/τα αναγνωριστικό/ά (id) της νέας οντότητα/των νέων οντοτήτων πρέπει να είναι διαφορετικό/ά από το/τα τρέχον/τρέχοντα.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-sameproperty&amp;quot;:&lt;br /&gt;
          &amp;quot;Η νέα ιδιότητα/οι νέες ιδιότητες πρέπει να είναι διαφορετική/διαφορετικές από την παρούσα/τις παρούσες.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invalidid&amp;quot;:&lt;br /&gt;
          &amp;quot;Το δοθέν αναγνωριστικό (id) δεν είναι ένα έγκυρο αναγνωριστικό οντότητας.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invalidproperty&amp;quot;:&lt;br /&gt;
          &amp;quot;Το δοθέν αναγνωριστικό (id) δεν είναι ένα έγκυρο αναγνωριστικό ιδιότητας.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invaliddatatype&amp;quot;:&lt;br /&gt;
          &amp;quot;Η νέα ιδιότητα είναι ασύμβατη με το είδος των δεδομένων της παρούσας ιδιότητας.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-notexisting&amp;quot;:&lt;br /&gt;
          &amp;quot;Η οντότητα με αναγνωριστικό (id) [[$1|$2]] δεν υπάρχει.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-api&amp;quot;:&lt;br /&gt;
          &amp;quot;Παρουσιάστηκε ένα σφάλμα στην επεξεργασία της οντότητας: $1&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
      break;&lt;br /&gt;
    case &amp;quot;fr&amp;quot;:&lt;br /&gt;
      mw.messages.set({&lt;br /&gt;
        &amp;quot;another-entity&amp;quot;: &amp;quot;Vers un autre élément&amp;quot;,&lt;br /&gt;
        &amp;quot;same-entity&amp;quot;: &amp;quot;Vers le même élément&amp;quot;,&lt;br /&gt;
        close: &amp;quot;Fermer&amp;quot;,&lt;br /&gt;
        &amp;quot;copy-claim&amp;quot;: &amp;quot;Copier l’affirmation&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim&amp;quot;: &amp;quot;Déplacer l’affirmation&amp;quot;,&lt;br /&gt;
        newentity: &amp;quot;Identifiant du nouvel élément :&amp;quot;,&lt;br /&gt;
        newproperty: &amp;quot;Identifiant de la nouvelle propriété :&amp;quot;,&lt;br /&gt;
        &amp;quot;force-label&amp;quot;: &amp;quot;Autoriser un différent type d’élément:&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-new&amp;quot;: &amp;quot;NOUVEAU&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro&amp;quot;:&lt;br /&gt;
          &amp;quot;Vous pouvez déplacer cette affirmation vers un autre élément. Veuillez donner un identifiant d’élément valide.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro-hint&amp;quot;:&lt;br /&gt;
          'Si vous rentrez &amp;quot;$1&amp;quot;, vous copierez/déplacerez l’affirmation vers un nouvel élément.',&lt;br /&gt;
        &amp;quot;move-claim-intro-same-entity&amp;quot;:&lt;br /&gt;
          &amp;quot;Vous pouvez déplacer cette affirmation vers une autre propriété de l’élément courant.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro-hint-same-entity&amp;quot;:&lt;br /&gt;
          &amp;quot;Veuillez donner un identifiant de propriété valide et de même type que la propriété courante.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-copied&amp;quot;:&lt;br /&gt;
          &amp;quot;L’affirmation $1 a été copiée vers [[$2|$3]] avec succès.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-moved&amp;quot;:&lt;br /&gt;
          &amp;quot;L’affirmation $1 a été déplacée vers [[$2|$3]] avec succès.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-sameid&amp;quot;:&lt;br /&gt;
          &amp;quot;L’identifiant du nouvel élément doit être différent de celui de l’élément actuel.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-sameproperty&amp;quot;:&lt;br /&gt;
          &amp;quot;L’identifiant de la nouvelle propriété doit être différent de celui de la propriété actuelle.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-differenttype&amp;quot;:&lt;br /&gt;
          &amp;quot;L’élément courant $1 et le nouvel élément [[$2|$3]] doivent être du même type. Cocher la case ci-dessous pour passer outre ce contrôle.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invalidid&amp;quot;:&lt;br /&gt;
          &amp;quot;L’identifiant donné n’est pas un identifiant d’élément valide.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invalidproperty&amp;quot;:&lt;br /&gt;
          &amp;quot;L’identifiant donné n’est pas un identifiant de propriété valide.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invaliddatatype&amp;quot;:&lt;br /&gt;
          &amp;quot;La nouvelle propriété est incompatible avec le datatype de la propriété actuelle.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-notexisting&amp;quot;:&lt;br /&gt;
          &amp;quot;L’élément avec l’identifiant [[$1|$2]] n’existe pas.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-api&amp;quot;:&lt;br /&gt;
          &amp;quot;Une erreur est survenue lors de l’édition de l’élément : $1&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
      break;&lt;br /&gt;
    case &amp;quot;it&amp;quot;:&lt;br /&gt;
      mw.messages.set({&lt;br /&gt;
        close: &amp;quot;Chiudi&amp;quot;,&lt;br /&gt;
        &amp;quot;copy-claim&amp;quot;: &amp;quot;Copia dichiarazione&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim&amp;quot;: &amp;quot;Sposta dichiarazione&amp;quot;,&lt;br /&gt;
        newentity: &amp;quot;L'ID della nuova entità:&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-new&amp;quot;: &amp;quot;NUOVO&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro&amp;quot;:&lt;br /&gt;
          &amp;quot;Puoi spostare una dichiarazione in un'altra entità. Inserisci un valido ID dell'entità.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro-hint&amp;quot;:&lt;br /&gt;
          'Se scrivi &amp;quot;$1&amp;quot;, copierai/sposterai la dichiarazione in un nuovo elemento.',&lt;br /&gt;
        &amp;quot;move-claim-copied&amp;quot;:&lt;br /&gt;
          &amp;quot;La dichiarazione $1 è stata copiata con successo in [[$2|$3]].&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-moved&amp;quot;:&lt;br /&gt;
          &amp;quot;La dichiarazione $1 è stata spostata con successo in [[$2|$3]].&amp;quot;,&lt;br /&gt;
        &amp;quot;error-sameid&amp;quot;:&lt;br /&gt;
          &amp;quot;L'ID della nuova entità deve essere differente da quello attuale.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invalidid&amp;quot;: &amp;quot;L'ID inserito non è quello di una valida entità.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-notexisting&amp;quot;: &amp;quot;L'entità con ID $1 non esiste.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-api&amp;quot;: &amp;quot;C'è stato un errore nella modifica dell'entità: $1&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
      break;&lt;br /&gt;
    case &amp;quot;sv&amp;quot;:&lt;br /&gt;
      mw.messages.set({&lt;br /&gt;
        &amp;quot;another-entity&amp;quot;: &amp;quot;Till en annan entitet&amp;quot;,&lt;br /&gt;
        &amp;quot;same-entity&amp;quot;: &amp;quot;Till samma entitet&amp;quot;,&lt;br /&gt;
        close: &amp;quot;Stäng&amp;quot;,&lt;br /&gt;
        &amp;quot;copy-claim&amp;quot;: &amp;quot;Kopiera påstående&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim&amp;quot;: &amp;quot;Flytta påstående&amp;quot;,&lt;br /&gt;
        newentity: &amp;quot;Den nya entitetens ID:&amp;quot;,&lt;br /&gt;
        newproperty: &amp;quot;Den nya egenskapens ID:&amp;quot;,&lt;br /&gt;
        &amp;quot;force-label&amp;quot;: &amp;quot;Tillåt typmatchningsfel:&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-new&amp;quot;: &amp;quot;NY&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro&amp;quot;:&lt;br /&gt;
          &amp;quot;Du kan flytta ett påstående till en annan entitet. Ange ett giltigt entitets-ID.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro-hint&amp;quot;:&lt;br /&gt;
          'Om du skriver &amp;quot;$1&amp;quot; kommer du flytta/kopiera påståendet till ett nytt objekt.',&lt;br /&gt;
        &amp;quot;move-claim-intro-same-entity&amp;quot;:&lt;br /&gt;
          &amp;quot;Du kan flytta ett påstående till en annan egenskap hos den nuvarande entiteten.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-intro-hint-same-entity&amp;quot;:&lt;br /&gt;
          &amp;quot;Ange ett giltigt egenskaps-ID som är av samma typ som den nuvarande egenskapen.&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-copied&amp;quot;: &amp;quot;Påståendet $1 kopierades till [[$2|$3]].&amp;quot;,&lt;br /&gt;
        &amp;quot;move-claim-moved&amp;quot;: &amp;quot;Påståendet $1 flyttades till [[$2|$3]].&amp;quot;,&lt;br /&gt;
        &amp;quot;error-sameid&amp;quot;:&lt;br /&gt;
          &amp;quot;Den nya entitetens ID måste skilja sig från den aktuella.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-sameproperty&amp;quot;:&lt;br /&gt;
          &amp;quot;Den nya egenskapens ID måste skilja sig från den aktuella.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-differenttype&amp;quot;:&lt;br /&gt;
          &amp;quot;Den aktuella entiteten $1 och den nya entiteten [[$2|$3]] måste vara av samma typ. Använd kryssrutan ovan för att åsidosätta denna kontroll.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invalidid&amp;quot;:&lt;br /&gt;
          &amp;quot;Det angivna ID:t är inte en giltig entitetsidentifierare.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invalidproperty&amp;quot;:&lt;br /&gt;
          &amp;quot;Det angivna ID:t är inte en giltig egenskapsidentifierare.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-invaliddatatype&amp;quot;:&lt;br /&gt;
          &amp;quot;Den nya egenskapen är inte kompatibel med den aktuella egenskapens datatyp.&amp;quot;,&lt;br /&gt;
        &amp;quot;error-notexisting&amp;quot;: &amp;quot;Det finns ingen entitet med ID:t [[$1|$2]].&amp;quot;,&lt;br /&gt;
        &amp;quot;error-api&amp;quot;: &amp;quot;Det uppstod ett fel när entiteten redigerades: $1&amp;quot;,&lt;br /&gt;
      });&lt;br /&gt;
      break;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var canEditThis = mw.config.get(&amp;quot;wgIsProbablyEditable&amp;quot;),&lt;br /&gt;
    TO_ANOTHER_ENTITY = 0,&lt;br /&gt;
    TO_THE_SAME_ENTITY = 1,&lt;br /&gt;
    COPY_CLAIM = false,&lt;br /&gt;
    MOVE_CLAIM = true;&lt;br /&gt;
&lt;br /&gt;
  var api,&lt;br /&gt;
    repoApi,&lt;br /&gt;
    claimid,&lt;br /&gt;
    oldentity,&lt;br /&gt;
    oldproperty,&lt;br /&gt;
    oldtitle,&lt;br /&gt;
    olddata = null,&lt;br /&gt;
    newentity,&lt;br /&gt;
    newproperty,&lt;br /&gt;
    newtitle,&lt;br /&gt;
    newdata,&lt;br /&gt;
    newdatatype,&lt;br /&gt;
    lastMode = canEditThis ? MOVE_CLAIM : COPY_CLAIM,&lt;br /&gt;
    lastTab = TO_ANOTHER_ENTITY,&lt;br /&gt;
    credit = &amp;quot;using [[MediaWiki:Gadget-moveClaim.js|moveClaim.js]]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  function createSpinner() {&lt;br /&gt;
    $(&amp;quot;#move-claim-result&amp;quot;).html(&lt;br /&gt;
      $.createSpinner({&lt;br /&gt;
        size: &amp;quot;large&amp;quot;,&lt;br /&gt;
        type: &amp;quot;block&amp;quot;,&lt;br /&gt;
      })&lt;br /&gt;
    );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function showError(error) {&lt;br /&gt;
    var parameters = Array.prototype.slice.call(arguments, 1);&lt;br /&gt;
    $(&amp;quot;#move-claim-result&amp;quot;).html(&lt;br /&gt;
      $(&amp;quot;&amp;lt;p&amp;gt;&amp;quot;)&lt;br /&gt;
        .attr(&amp;quot;class&amp;quot;, &amp;quot;error&amp;quot;)&lt;br /&gt;
        .html(&lt;br /&gt;
          mw&lt;br /&gt;
            .message(&amp;quot;error-&amp;quot; + error)&lt;br /&gt;
            .params(parameters)&lt;br /&gt;
            .parse()&lt;br /&gt;
        )&lt;br /&gt;
    );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function onError(error, result) {&lt;br /&gt;
    showError(&amp;quot;api&amp;quot;, (result &amp;amp;&amp;amp; result.error &amp;amp;&amp;amp; result.error.info) || error);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function getFragmentedTitle(title, entity) {&lt;br /&gt;
    if (entity.indexOf(&amp;quot;-&amp;quot;) !== -1) {&lt;br /&gt;
      title = title.replace(/:.+$/, &amp;quot;:&amp;quot; + entity.replace(&amp;quot;-&amp;quot;, &amp;quot;#&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
    return title;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function successProperty(removed) {&lt;br /&gt;
    var $statement = $(&amp;quot;.wikibase-statement-&amp;quot; + $.escapeSelector(claimid)),&lt;br /&gt;
      message = mw.message(&lt;br /&gt;
        removed ? &amp;quot;move-claim-moved&amp;quot; : &amp;quot;move-claim-copied&amp;quot;,&lt;br /&gt;
        oldproperty,&lt;br /&gt;
        &amp;quot;Property:&amp;quot; + newproperty,&lt;br /&gt;
        newproperty&lt;br /&gt;
      );&lt;br /&gt;
&lt;br /&gt;
    $(&amp;quot;#move-claim&amp;quot;).dialog(&amp;quot;close&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    // Todo: Hide moved claim&lt;br /&gt;
    if (removed) {&lt;br /&gt;
      $statement.find(&amp;quot;.move-button-container&amp;quot;).remove();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    mw.notify(message, {&lt;br /&gt;
      autoHide: false,&lt;br /&gt;
      title: removed ? mw.msg(&amp;quot;move-claim&amp;quot;) : mw.msg(&amp;quot;copy-claim&amp;quot;),&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function success(removed) {&lt;br /&gt;
    var $statement = $(&amp;quot;.wikibase-statement-&amp;quot; + $.escapeSelector(claimid)),&lt;br /&gt;
      message = mw.message(&lt;br /&gt;
        removed ? &amp;quot;move-claim-moved&amp;quot; : &amp;quot;move-claim-copied&amp;quot;,&lt;br /&gt;
        oldproperty,&lt;br /&gt;
        newtitle,&lt;br /&gt;
        newentity&lt;br /&gt;
      );&lt;br /&gt;
&lt;br /&gt;
    $(&amp;quot;#move-claim&amp;quot;).dialog(&amp;quot;close&amp;quot;);&lt;br /&gt;
    $(&amp;quot;#move-newentity&amp;quot;).val(newentity); // update for new items&lt;br /&gt;
&lt;br /&gt;
    // Todo: Hide moved claim&lt;br /&gt;
    if (removed) {&lt;br /&gt;
      $statement.find(&amp;quot;.move-button-container&amp;quot;).remove();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    mw.notify(message, {&lt;br /&gt;
      autoHide: false,&lt;br /&gt;
      title: removed ? mw.msg(&amp;quot;move-claim&amp;quot;) : mw.msg(&amp;quot;copy-claim&amp;quot;),&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function loadEntity() {&lt;br /&gt;
    if (olddata !== null) {&lt;br /&gt;
      return $.Deferred().resolve().promise();&lt;br /&gt;
    }&lt;br /&gt;
    return repoApi&lt;br /&gt;
      .getEntities(oldentity, [&amp;quot;info&amp;quot;, &amp;quot;claims&amp;quot;])&lt;br /&gt;
      .then(function (data) {&lt;br /&gt;
        olddata = data.entities[oldentity];&lt;br /&gt;
        oldtitle = getFragmentedTitle(olddata.title, oldentity);&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function clone(data) {&lt;br /&gt;
    return JSON.parse(JSON.stringify(data));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function getQualifiersHash(claim) {&lt;br /&gt;
    var hashes = [];&lt;br /&gt;
    Object.values(claim.qualifiers || {}).forEach(function (qualifiers) {&lt;br /&gt;
      Array.prototype.push.apply(&lt;br /&gt;
        hashes,&lt;br /&gt;
        qualifiers.map(function (q) {&lt;br /&gt;
          return q.hash;&lt;br /&gt;
        })&lt;br /&gt;
      );&lt;br /&gt;
    });&lt;br /&gt;
    return hashes.sort().join(&amp;quot;|&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function getHash(claim) {&lt;br /&gt;
    return claim.mainsnak.hash + &amp;quot;$&amp;quot; + getQualifiersHash(claim);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function getMainsnakForCmp(claim) {&lt;br /&gt;
    var mainsnak = clone(claim.mainsnak);&lt;br /&gt;
    delete mainsnak.hash;&lt;br /&gt;
    delete mainsnak.property;&lt;br /&gt;
    return JSON.stringify(mainsnak);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function mergePropertyClaim(claim, removing) {&lt;br /&gt;
    var data = {},&lt;br /&gt;
      mainsnak = getMainsnakForCmp(claim),&lt;br /&gt;
      hash = getQualifiersHash(claim),&lt;br /&gt;
      same = false;&lt;br /&gt;
&lt;br /&gt;
    $.each(olddata.claims[newproperty] || [], function (i, _claim) {&lt;br /&gt;
      if (&lt;br /&gt;
        mainsnak === getMainsnakForCmp(_claim) &amp;amp;&amp;amp;&lt;br /&gt;
        hash === getQualifiersHash(_claim)&lt;br /&gt;
      ) {&lt;br /&gt;
        same = _claim;&lt;br /&gt;
        return false;&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    if (same !== false) {&lt;br /&gt;
      if (!claim.references) {&lt;br /&gt;
        return $.Deferred().resolve().promise();&lt;br /&gt;
      }&lt;br /&gt;
      data = clone(same);&lt;br /&gt;
      var hashes = (same.references || []).map(function (ref) {&lt;br /&gt;
        return ref.hash;&lt;br /&gt;
      });&lt;br /&gt;
      claim.references.forEach(function (ref) {&lt;br /&gt;
        if (hashes.indexOf(ref.hash) === -1) {&lt;br /&gt;
          if (data.references === undefined) {&lt;br /&gt;
            data.references = [];&lt;br /&gt;
          }&lt;br /&gt;
          data.references.push(ref);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
    } else {&lt;br /&gt;
      data = clone(claim);&lt;br /&gt;
      data.mainsnak.property = newproperty;&lt;br /&gt;
      delete data.mainsnak.hash;&lt;br /&gt;
      delete data.id;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var post = { claims: [data] };&lt;br /&gt;
    if (removing) {&lt;br /&gt;
      post.claims.push({ id: claimid, remove: 1 });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return api.postWithEditToken({&lt;br /&gt;
      formatversion: 2,&lt;br /&gt;
      action: &amp;quot;wbeditentity&amp;quot;,&lt;br /&gt;
      id: oldentity,&lt;br /&gt;
      data: JSON.stringify(post),&lt;br /&gt;
      baserevid: olddata.lastrevid,&lt;br /&gt;
      summary: removing&lt;br /&gt;
        ? &amp;quot;Moving [[Property:&amp;quot; +&lt;br /&gt;
          oldproperty +&lt;br /&gt;
          &amp;quot;]] to [[Property:&amp;quot; +&lt;br /&gt;
          newproperty +&lt;br /&gt;
          &amp;quot;]], &amp;quot; +&lt;br /&gt;
          credit&lt;br /&gt;
        : &amp;quot;Copying [[Property:&amp;quot; +&lt;br /&gt;
          oldproperty +&lt;br /&gt;
          &amp;quot;]] to [[Property:&amp;quot; +&lt;br /&gt;
          newproperty +&lt;br /&gt;
          &amp;quot;]], &amp;quot; +&lt;br /&gt;
          credit,&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function mergeClaim(claim, removing) {&lt;br /&gt;
    var property = claim.mainsnak.property;&lt;br /&gt;
    var data = {},&lt;br /&gt;
      hash = getHash(claim),&lt;br /&gt;
      same = false;&lt;br /&gt;
    $.each(newdata.claims[property] || [], function (_, _claim) {&lt;br /&gt;
      if (hash === getHash(_claim)) {&lt;br /&gt;
        same = _claim;&lt;br /&gt;
        return false;&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    if (same !== false) {&lt;br /&gt;
      if (!claim.references) {&lt;br /&gt;
        return $.Deferred().resolve().promise();&lt;br /&gt;
      }&lt;br /&gt;
      data = clone(same);&lt;br /&gt;
      var hashes = (same.references || []).map(function (ref) {&lt;br /&gt;
        return ref.hash;&lt;br /&gt;
      });&lt;br /&gt;
      claim.references.forEach(function (ref) {&lt;br /&gt;
        if (hashes.indexOf(ref.hash) === -1) {&lt;br /&gt;
          if (data.references === undefined) {&lt;br /&gt;
            data.references = [];&lt;br /&gt;
          }&lt;br /&gt;
          data.references.push(ref);&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
    } else {&lt;br /&gt;
      data = clone(claim);&lt;br /&gt;
      delete data.id;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return api.postWithEditToken({&lt;br /&gt;
      formatversion: 2,&lt;br /&gt;
      action: &amp;quot;wbeditentity&amp;quot;,&lt;br /&gt;
      id: newentity,&lt;br /&gt;
      data: JSON.stringify({ claims: [data] }),&lt;br /&gt;
      baserevid: newdata.lastrevid,&lt;br /&gt;
      summary: removing&lt;br /&gt;
        ? &amp;quot;Moving [[Property:&amp;quot; +&lt;br /&gt;
          property +&lt;br /&gt;
          &amp;quot;]] from [[&amp;quot; +&lt;br /&gt;
          oldtitle +&lt;br /&gt;
          &amp;quot;]], &amp;quot; +&lt;br /&gt;
          credit&lt;br /&gt;
        : &amp;quot;Copying [[Property:&amp;quot; +&lt;br /&gt;
          property +&lt;br /&gt;
          &amp;quot;]] from [[&amp;quot; +&lt;br /&gt;
          oldtitle +&lt;br /&gt;
          &amp;quot;]], &amp;quot; +&lt;br /&gt;
          credit,&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function getAllClaims() {&lt;br /&gt;
    var claims = [];&lt;br /&gt;
    Object.values(olddata.claims || {}).forEach(function (p_claims) {&lt;br /&gt;
      Array.prototype.push.apply(claims, p_claims);&lt;br /&gt;
    });&lt;br /&gt;
    return claims;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function moveProperty(remove) {&lt;br /&gt;
    var claim = false;&lt;br /&gt;
    $.each(getAllClaims(), function (_, _claim) {&lt;br /&gt;
      if (_claim.id === claimid) {&lt;br /&gt;
        claim = _claim;&lt;br /&gt;
        return false;&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    if (!claim) {&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (newdatatype !== claim.mainsnak.datatype) {&lt;br /&gt;
      showError(&amp;quot;invaliddatatype&amp;quot;);&lt;br /&gt;
      return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return mergePropertyClaim(claim, remove);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function move(remove) {&lt;br /&gt;
    var claim = false;&lt;br /&gt;
    $.each(getAllClaims(), function (_, _claim) {&lt;br /&gt;
      if (_claim.id === claimid) {&lt;br /&gt;
        claim = _claim;&lt;br /&gt;
        return false;&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    if (!claim) return false;&lt;br /&gt;
&lt;br /&gt;
    return mergeClaim(claim, remove).then(function () {&lt;br /&gt;
      if (!remove) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      return api.postWithEditToken({&lt;br /&gt;
        action: &amp;quot;wbremoveclaims&amp;quot;,&lt;br /&gt;
        baserevid: olddata.lastrevid,&lt;br /&gt;
        claim: claimid,&lt;br /&gt;
        formatversion: 2,&lt;br /&gt;
        summary: &amp;quot;Moving claim to [[&amp;quot; + newtitle + &amp;quot;]], &amp;quot; + credit,&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function performPropertyChange(remove) {&lt;br /&gt;
    createSpinner();&lt;br /&gt;
    newproperty = $(&amp;quot;#move-newproperty&amp;quot;).val().toUpperCase();&lt;br /&gt;
&lt;br /&gt;
    if (oldproperty === newproperty) {&lt;br /&gt;
      showError(&amp;quot;sameproperty&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (newproperty.match(/^P[1-9]\d*$/) === null) {&lt;br /&gt;
      showError(&amp;quot;invalidproperty&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    repoApi&lt;br /&gt;
      .getEntities([oldentity, newproperty], [&amp;quot;info&amp;quot;, &amp;quot;claims&amp;quot;])&lt;br /&gt;
      .then(function (data) {&lt;br /&gt;
        var entity = data.entities[newproperty];&lt;br /&gt;
        if (entity.hasOwnProperty(&amp;quot;missing&amp;quot;)) {&lt;br /&gt;
          showError(&amp;quot;notexisting&amp;quot;, &amp;quot;Property:&amp;quot; + newproperty, newproperty);&lt;br /&gt;
          return false;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        olddata = data.entities[oldentity];&lt;br /&gt;
        newdatatype = entity.datatype;&lt;br /&gt;
&lt;br /&gt;
        return moveProperty(remove);&lt;br /&gt;
      })&lt;br /&gt;
      .then(function (ok) {&lt;br /&gt;
        if (ok === false) {&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        successProperty(remove);&lt;br /&gt;
      }, onError);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function performMove(remove) {&lt;br /&gt;
    lastMode = remove;&lt;br /&gt;
    lastTab = $(&amp;quot;#move-claim&amp;quot;).tabs(&amp;quot;option&amp;quot;, &amp;quot;active&amp;quot;);&lt;br /&gt;
    if (lastTab === TO_THE_SAME_ENTITY) {&lt;br /&gt;
      performPropertyChange(remove);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    createSpinner();&lt;br /&gt;
    newentity = $(&amp;quot;#move-newentity&amp;quot;).val().toUpperCase();&lt;br /&gt;
    if (oldentity === newentity) {&lt;br /&gt;
      showError(&amp;quot;sameid&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var promise;&lt;br /&gt;
    if ([&amp;quot;NEW&amp;quot;, mw.msg(&amp;quot;move-claim-new&amp;quot;)].indexOf(newentity) !== -1) {&lt;br /&gt;
      promise = $.when(&lt;br /&gt;
        repoApi&lt;br /&gt;
          .createEntity(&amp;quot;item&amp;quot;) // todo: lexemes (upstream)&lt;br /&gt;
          .then(function (data) {&lt;br /&gt;
            newdata = data.entity;&lt;br /&gt;
            newentity = newdata.id;&lt;br /&gt;
            newtitle = newentity; // todo: getFragmentedTitle( newdata.title, newentity );&lt;br /&gt;
&lt;br /&gt;
            return true;&lt;br /&gt;
          }),&lt;br /&gt;
        loadEntity()&lt;br /&gt;
      );&lt;br /&gt;
    } else {&lt;br /&gt;
      if (&lt;br /&gt;
        newentity.match(/^([PQ][1-9]\d*|L[1-9]\d*(-[FS][1-9]\d*)?)$/) === null&lt;br /&gt;
      ) {&lt;br /&gt;
        if (oldentity.charAt(0) === &amp;quot;L&amp;quot; &amp;amp;&amp;amp; newentity.match(/^[FS][1-9]\d*$/)) {&lt;br /&gt;
          newentity = oldentity + &amp;quot;-&amp;quot; + newentity;&lt;br /&gt;
        } else {&lt;br /&gt;
          showError(&amp;quot;invalidid&amp;quot;);&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      if (&lt;br /&gt;
        $(&amp;quot;#force-checkbox&amp;quot;).is(&amp;quot;:checked&amp;quot;) === false &amp;amp;&amp;amp;&lt;br /&gt;
        newentity.charAt(0) === &amp;quot;P&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
        oldentity.charAt(0) !== &amp;quot;P&amp;quot;&lt;br /&gt;
      ) {&lt;br /&gt;
        $(&amp;quot;#force-group&amp;quot;).show();&lt;br /&gt;
        showError(&lt;br /&gt;
          &amp;quot;differenttype&amp;quot;,&lt;br /&gt;
          oldentity,&lt;br /&gt;
          &amp;quot;Property:&amp;quot; + newentity,&lt;br /&gt;
          newentity&lt;br /&gt;
        );&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      promise = repoApi&lt;br /&gt;
        .getEntities([oldentity, newentity], [&amp;quot;info&amp;quot;, &amp;quot;claims&amp;quot;])&lt;br /&gt;
        .then(function (data) {&lt;br /&gt;
          var entity = data.entities[newentity];&lt;br /&gt;
          if (entity.hasOwnProperty(&amp;quot;missing&amp;quot;)) {&lt;br /&gt;
            showError(&amp;quot;notexisting&amp;quot;, newentity, newentity);&lt;br /&gt;
            return false;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          if (entity.hasOwnProperty(&amp;quot;redirects&amp;quot;)) {&lt;br /&gt;
            newentity = entity.redirects.to;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          olddata = data.entities[oldentity];&lt;br /&gt;
          newdata = entity;&lt;br /&gt;
&lt;br /&gt;
          oldtitle = getFragmentedTitle(olddata.title, oldentity);&lt;br /&gt;
          newtitle = getFragmentedTitle(newdata.title, newentity);&lt;br /&gt;
&lt;br /&gt;
          return true;&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    promise.then(function (ok) {&lt;br /&gt;
      if (ok === false) return;&lt;br /&gt;
      ok = move(remove);&lt;br /&gt;
      if (ok === false) return;&lt;br /&gt;
      return ok.then(function () {&lt;br /&gt;
        success(remove);&lt;br /&gt;
      });&lt;br /&gt;
    }, onError);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function openDialog() {&lt;br /&gt;
    $(&amp;quot;#move-claim-result&amp;quot;).empty();&lt;br /&gt;
    $(&amp;quot;#force-group&amp;quot;).hide();&lt;br /&gt;
    $(&amp;quot;#force-checkbox&amp;quot;).prop(&amp;quot;checked&amp;quot;, false);&lt;br /&gt;
    $(&amp;quot;#move-claim&amp;quot;).dialog(&amp;quot;open&amp;quot;);&lt;br /&gt;
    $(&amp;quot;#move-claim&amp;quot;).tabs(&amp;quot;option&amp;quot;, &amp;quot;active&amp;quot;, lastTab);&lt;br /&gt;
    if (&lt;br /&gt;
      (lastTab === TO_ANOTHER_ENTITY &amp;amp;&amp;amp; $(&amp;quot;#move-newentity&amp;quot;).val() !== &amp;quot;&amp;quot;) ||&lt;br /&gt;
      (lastTab === TO_THE_SAME_ENTITY &amp;amp;&amp;amp; $(&amp;quot;#move-newproperty&amp;quot;).val() !== &amp;quot;&amp;quot;)&lt;br /&gt;
    ) {&lt;br /&gt;
      if (lastMode === MOVE_CLAIM) {&lt;br /&gt;
        $(&amp;quot;#move-claim-button-move&amp;quot;).focus();&lt;br /&gt;
      } else {&lt;br /&gt;
        $(&amp;quot;#move-claim-button-copy&amp;quot;).focus();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function addButton($statement) {&lt;br /&gt;
    $statement.prepend(&lt;br /&gt;
      $(&amp;quot;&amp;lt;div&amp;gt;&amp;quot;)&lt;br /&gt;
        .attr(&amp;quot;class&amp;quot;, &amp;quot;move-button-container&amp;quot;)&lt;br /&gt;
        .css({&lt;br /&gt;
          float: &amp;quot;right&amp;quot;,&lt;br /&gt;
          position: &amp;quot;relative&amp;quot;,&lt;br /&gt;
          &amp;quot;z-index&amp;quot;: 1,&lt;br /&gt;
        })&lt;br /&gt;
        .append(&lt;br /&gt;
          $(&amp;quot;&amp;lt;a&amp;gt;&amp;quot;)&lt;br /&gt;
            .attr({&lt;br /&gt;
              href: &amp;quot;#&amp;quot;,&lt;br /&gt;
              class: &amp;quot;move-button&amp;quot;,&lt;br /&gt;
            })&lt;br /&gt;
            .on(&amp;quot;click&amp;quot;, function (event) {&lt;br /&gt;
              event.preventDefault();&lt;br /&gt;
              claimid = $statement.attr(&amp;quot;id&amp;quot;);&lt;br /&gt;
              oldentity = claimid.split(&amp;quot;$&amp;quot;)[0].toUpperCase();&lt;br /&gt;
              oldproperty = $statement&lt;br /&gt;
                .closest(&amp;quot;.wikibase-statementgroupview&amp;quot;)&lt;br /&gt;
                .attr(&amp;quot;id&amp;quot;);&lt;br /&gt;
              openDialog();&lt;br /&gt;
            })&lt;br /&gt;
        )&lt;br /&gt;
    );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function removeIf(buttons, idx, remove) {&lt;br /&gt;
    if (remove) {&lt;br /&gt;
      buttons.shift(idx);&lt;br /&gt;
    }&lt;br /&gt;
    return buttons;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function init() {&lt;br /&gt;
    // Add click listener&lt;br /&gt;
    $(&amp;quot;.wikibase-statementview&amp;quot;).each(function () {&lt;br /&gt;
      addButton($(this));&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Create dialog&lt;br /&gt;
    $(&amp;quot;&amp;lt;div&amp;gt;&amp;quot;)&lt;br /&gt;
      .attr(&amp;quot;id&amp;quot;, &amp;quot;move-claim&amp;quot;)&lt;br /&gt;
      .append(&lt;br /&gt;
        $(&amp;quot;&amp;lt;ul&amp;gt;&amp;quot;).append(&lt;br /&gt;
          $(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;).append(&lt;br /&gt;
            $(&amp;quot;&amp;lt;a&amp;gt;&amp;quot;)&lt;br /&gt;
              .attr(&amp;quot;href&amp;quot;, canEditThis ? &amp;quot;#another-entity&amp;quot; : &amp;quot;#&amp;quot;)&lt;br /&gt;
              .append($(&amp;quot;&amp;lt;span&amp;gt;&amp;quot;).text(mw.msg(&amp;quot;another-entity&amp;quot;)))&lt;br /&gt;
          ),&lt;br /&gt;
          $(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;).append(&lt;br /&gt;
            $(&amp;quot;&amp;lt;a&amp;gt;&amp;quot;)&lt;br /&gt;
              .attr(&amp;quot;href&amp;quot;, &amp;quot;#same-entity&amp;quot;)&lt;br /&gt;
              .append($(&amp;quot;&amp;lt;span&amp;gt;&amp;quot;).text(mw.msg(&amp;quot;same-entity&amp;quot;)))&lt;br /&gt;
          )&lt;br /&gt;
        ),&lt;br /&gt;
        $(&amp;quot;&amp;lt;div&amp;gt;&amp;quot;)&lt;br /&gt;
          .attr(&amp;quot;id&amp;quot;, &amp;quot;another-entity&amp;quot;)&lt;br /&gt;
          .append(&lt;br /&gt;
            $(&amp;quot;&amp;lt;form&amp;gt;&amp;quot;)&lt;br /&gt;
              .submit(function (event) {&lt;br /&gt;
                event.preventDefault();&lt;br /&gt;
                performMove(lastMode);&lt;br /&gt;
              })&lt;br /&gt;
              .append(&lt;br /&gt;
                $(&amp;quot;&amp;lt;fieldset&amp;gt;&amp;quot;).append(&lt;br /&gt;
                  $(&amp;quot;&amp;lt;legend&amp;gt;&amp;quot;).text(mw.msg(&amp;quot;move-claim&amp;quot;)),&lt;br /&gt;
                  // &amp;lt;/legend&amp;gt;&lt;br /&gt;
                  $(&amp;quot;&amp;lt;p&amp;gt;&amp;quot;)&lt;br /&gt;
                    .attr(&amp;quot;id&amp;quot;, &amp;quot;claim-intro&amp;quot;)&lt;br /&gt;
                    .text(mw.msg(&amp;quot;move-claim-intro&amp;quot;)),&lt;br /&gt;
                  // &amp;lt;/p&amp;gt;&lt;br /&gt;
                  $(&amp;quot;&amp;lt;p&amp;gt;&amp;quot;)&lt;br /&gt;
                    .attr(&amp;quot;id&amp;quot;, &amp;quot;claim-intro-hint&amp;quot;)&lt;br /&gt;
                    .text(&lt;br /&gt;
                      mw&lt;br /&gt;
                        .msg(&amp;quot;move-claim-intro-hint&amp;quot;)&lt;br /&gt;
                        .replace(&amp;quot;$1&amp;quot;, mw.msg(&amp;quot;move-claim-new&amp;quot;))&lt;br /&gt;
                    ),&lt;br /&gt;
                  // &amp;lt;/p&amp;gt;&lt;br /&gt;
                  $(&amp;quot;&amp;lt;p&amp;gt;&amp;quot;).append(&lt;br /&gt;
                    $(&amp;quot;&amp;lt;label&amp;gt;&amp;quot;)&lt;br /&gt;
                      .attr({&lt;br /&gt;
                        for: &amp;quot;move-newentity&amp;quot;,&lt;br /&gt;
                        class: &amp;quot;move-label&amp;quot;,&lt;br /&gt;
                      })&lt;br /&gt;
                      .text(mw.msg(&amp;quot;newentity&amp;quot;)),&lt;br /&gt;
                    // &amp;lt;/label&amp;gt;&lt;br /&gt;
                    &amp;quot; &amp;quot;,&lt;br /&gt;
                    $(&amp;quot;&amp;lt;input&amp;gt;&amp;quot;)&lt;br /&gt;
                      .attr({&lt;br /&gt;
                        type: &amp;quot;text&amp;quot;,&lt;br /&gt;
                        id: &amp;quot;move-newentity&amp;quot;,&lt;br /&gt;
                        class: &amp;quot;move-input&amp;quot;,&lt;br /&gt;
                      })&lt;br /&gt;
                      .on(&amp;quot;keyup&amp;quot;, function () {&lt;br /&gt;
                        this.value = this.value.replace(&lt;br /&gt;
                          /.*([PQ][1-9]\d*).*/,&lt;br /&gt;
                          &amp;quot;$1&amp;quot;&lt;br /&gt;
                        ); // TODO: lexemes etc.&lt;br /&gt;
                      })&lt;br /&gt;
                    // &amp;lt;/label&amp;gt;&lt;br /&gt;
                  ),&lt;br /&gt;
                  // &amp;lt;/p&amp;gt;&lt;br /&gt;
                  $(&amp;quot;&amp;lt;p&amp;gt;&amp;quot;)&lt;br /&gt;
                    .attr({&lt;br /&gt;
                      id: &amp;quot;force-group&amp;quot;,&lt;br /&gt;
                    })&lt;br /&gt;
                    .append(&lt;br /&gt;
                      $(&amp;quot;&amp;lt;label&amp;gt;&amp;quot;)&lt;br /&gt;
                        .attr({&lt;br /&gt;
                          for: &amp;quot;move-newentity&amp;quot;,&lt;br /&gt;
                          class: &amp;quot;move-label&amp;quot;,&lt;br /&gt;
                        })&lt;br /&gt;
                        .text(mw.msg(&amp;quot;force-label&amp;quot;)),&lt;br /&gt;
                      &amp;quot; &amp;quot;,&lt;br /&gt;
                      // &amp;lt;/label&amp;gt;&lt;br /&gt;
                      $(&amp;quot;&amp;lt;input&amp;gt;&amp;quot;).attr({&lt;br /&gt;
                        type: &amp;quot;checkbox&amp;quot;,&lt;br /&gt;
                        id: &amp;quot;force-checkbox&amp;quot;,&lt;br /&gt;
                      })&lt;br /&gt;
                    )&lt;br /&gt;
                ) // &amp;lt;/p&amp;gt;&lt;br /&gt;
              ) // &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
            // &amp;lt;/form&amp;gt;&lt;br /&gt;
          ),&lt;br /&gt;
        $(&amp;quot;&amp;lt;div&amp;gt;&amp;quot;)&lt;br /&gt;
          .attr(&amp;quot;id&amp;quot;, &amp;quot;same-entity&amp;quot;)&lt;br /&gt;
          .append(&lt;br /&gt;
            $(&amp;quot;&amp;lt;form&amp;gt;&amp;quot;)&lt;br /&gt;
              .submit(function (event) {&lt;br /&gt;
                event.preventDefault();&lt;br /&gt;
                performMove(lastMode);&lt;br /&gt;
              })&lt;br /&gt;
              .append(&lt;br /&gt;
                $(&amp;quot;&amp;lt;fieldset&amp;gt;&amp;quot;).append(&lt;br /&gt;
                  $(&amp;quot;&amp;lt;legend&amp;gt;&amp;quot;).text(mw.msg(&amp;quot;move-claim&amp;quot;)),&lt;br /&gt;
                  // &amp;lt;/legend&amp;gt;&lt;br /&gt;
                  $(&amp;quot;&amp;lt;p&amp;gt;&amp;quot;)&lt;br /&gt;
                    .attr(&amp;quot;id&amp;quot;, &amp;quot;claim-intro-same-entity&amp;quot;)&lt;br /&gt;
                    .text(mw.msg(&amp;quot;move-claim-intro-same-entity&amp;quot;)),&lt;br /&gt;
                  // &amp;lt;/p&amp;gt;&lt;br /&gt;
                  $(&amp;quot;&amp;lt;p&amp;gt;&amp;quot;)&lt;br /&gt;
                    .attr(&amp;quot;id&amp;quot;, &amp;quot;claim-intro-hint-same-entity&amp;quot;)&lt;br /&gt;
                    .text(mw.msg(&amp;quot;move-claim-intro-hint-same-entity&amp;quot;)),&lt;br /&gt;
                  // &amp;lt;/p&amp;gt;&lt;br /&gt;
                  $(&amp;quot;&amp;lt;p&amp;gt;&amp;quot;).append(&lt;br /&gt;
                    $(&amp;quot;&amp;lt;label&amp;gt;&amp;quot;)&lt;br /&gt;
                      .attr({&lt;br /&gt;
                        for: &amp;quot;move-newproperty&amp;quot;,&lt;br /&gt;
                        class: &amp;quot;move-label&amp;quot;,&lt;br /&gt;
                      })&lt;br /&gt;
                      .text(mw.msg(&amp;quot;newproperty&amp;quot;)),&lt;br /&gt;
                    &amp;quot; &amp;quot;,&lt;br /&gt;
                    // &amp;lt;/label&amp;gt;&lt;br /&gt;
                    $(&amp;quot;&amp;lt;input&amp;gt;&amp;quot;)&lt;br /&gt;
                      .attr({&lt;br /&gt;
                        type: &amp;quot;text&amp;quot;,&lt;br /&gt;
                        id: &amp;quot;move-newproperty&amp;quot;,&lt;br /&gt;
                        class: &amp;quot;move-input&amp;quot;,&lt;br /&gt;
                      })&lt;br /&gt;
                      .on(&amp;quot;keyup&amp;quot;, function () {&lt;br /&gt;
                        this.value = this.value.replace(&lt;br /&gt;
                          /.*(P[1-9]\d*).*/,&lt;br /&gt;
                          &amp;quot;$1&amp;quot;&lt;br /&gt;
                        );&lt;br /&gt;
                      })&lt;br /&gt;
                  )&lt;br /&gt;
                ) // &amp;lt;/p&amp;gt;&lt;br /&gt;
              ) // &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
            // &amp;lt;/form&amp;gt;&lt;br /&gt;
          ),&lt;br /&gt;
        $(&amp;quot;&amp;lt;p&amp;gt;&amp;quot;).attr(&amp;quot;id&amp;quot;, &amp;quot;move-claim-result&amp;quot;)&lt;br /&gt;
      )&lt;br /&gt;
      .dialog({&lt;br /&gt;
        dialogClass: &amp;quot;move-dialog&amp;quot;,&lt;br /&gt;
        title: mw.message(&amp;quot;move-claim&amp;quot;).escaped(),&lt;br /&gt;
        autoOpen: false,&lt;br /&gt;
        modal: true,&lt;br /&gt;
        width: 500,&lt;br /&gt;
        buttons: removeIf(&lt;br /&gt;
          [&lt;br /&gt;
            {&lt;br /&gt;
              id: &amp;quot;move-claim-button-move&amp;quot;,&lt;br /&gt;
              text: mw.msg(&amp;quot;move-claim&amp;quot;),&lt;br /&gt;
              click: function (event) {&lt;br /&gt;
                event.preventDefault();&lt;br /&gt;
                performMove(MOVE_CLAIM);&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              id: &amp;quot;move-claim-button-copy&amp;quot;,&lt;br /&gt;
              text: mw.msg(&amp;quot;copy-claim&amp;quot;),&lt;br /&gt;
              click: function (event) {&lt;br /&gt;
                event.preventDefault();&lt;br /&gt;
                performMove(COPY_CLAIM);&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
              id: &amp;quot;move-claim-button-close&amp;quot;,&lt;br /&gt;
              text: mw.msg(&amp;quot;close&amp;quot;),&lt;br /&gt;
              click: function (event) {&lt;br /&gt;
                event.preventDefault();&lt;br /&gt;
                $(&amp;quot;#move-claim&amp;quot;).dialog(&amp;quot;close&amp;quot;);&lt;br /&gt;
              },&lt;br /&gt;
            },&lt;br /&gt;
          ],&lt;br /&gt;
          0,&lt;br /&gt;
          !canEditThis&lt;br /&gt;
        ),&lt;br /&gt;
      });&lt;br /&gt;
    $(&amp;quot;#move-claim&amp;quot;).tabs();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (mw.loader.getState(&amp;quot;ext.gadget.Move&amp;quot;) !== &amp;quot;ready&amp;quot;) {&lt;br /&gt;
    // don't load CSS twice&lt;br /&gt;
    mw.loader.load(&lt;br /&gt;
      &amp;quot;//&amp;quot; +&lt;br /&gt;
        wikibaseHost +&lt;br /&gt;
        &amp;quot;/w/index.php?title=MediaWiki:Gadget-Move.css&amp;amp;action=raw&amp;amp;ctype=text/css&amp;quot;,&lt;br /&gt;
      &amp;quot;text/css&amp;quot;&lt;br /&gt;
    );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  $.when(&lt;br /&gt;
    mw.loader&lt;br /&gt;
      .using([&lt;br /&gt;
        &amp;quot;jquery.spinner&amp;quot;,&lt;br /&gt;
        &amp;quot;jquery.ui&amp;quot;,&lt;br /&gt;
        &amp;quot;mediawiki.api&amp;quot;,&lt;br /&gt;
        &amp;quot;mediawiki.util&amp;quot;,&lt;br /&gt;
        &amp;quot;wikibase.api.RepoApi&amp;quot;,&lt;br /&gt;
        &amp;quot;wikibase.Site&amp;quot;,&lt;br /&gt;
      ])&lt;br /&gt;
      .then(function () {&lt;br /&gt;
        api = new mw.Api();&lt;br /&gt;
        repoApi = new wikibase.api.RepoApi(api);&lt;br /&gt;
      }),&lt;br /&gt;
    $.ready&lt;br /&gt;
  ).then(init);&lt;br /&gt;
&lt;br /&gt;
  mw.hook(&amp;quot;wikibase.statement.saved&amp;quot;).add(function (_, guid) {&lt;br /&gt;
    olddata = null;&lt;br /&gt;
    //var $block = $( '#' + $.escapeSelector( guid ) );&lt;br /&gt;
    var $block = $(&amp;quot;.wikibase-statement-&amp;quot; + $.escapeSelector(guid));&lt;br /&gt;
    if ($block.find(&amp;quot;.move-button-container&amp;quot;).length === 0) {&lt;br /&gt;
      addButton($block);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
})(mediaWiki, jQuery);&lt;/div&gt;</summary>
		<author><name>WikibaseAdmin</name></author>
	</entry>
</feed>