Ajeitar os botoes de resolvido...

2 participantes

Ver o tópico anterior Ver o tópico seguinte Ir para baixo

Tópico resolvido Ajeitar os botoes de resolvido...

Mensagem por Kasthiel 02.12.17 6:58

Detalhes da questão


Endereço do fórum: http://peniel-ro.forumeiros.com/forum
Versão do fórum: ModernBB

Descrição


Gostaria de usar mais de 3 botoes na lista para poder escolher um marcar o topico, sem ter q editar o post, usando esse js, mas mesmo estando configurado tudo corretamente, ele so pega 3 icones, mas isso depois que eu removo o restante, pq senao nao funciona com os meus botoes...



Código:

/*globals jQuery, FA, _userdata*/
 
/**
 * Alterar o ícone do tópico com AJAX.
 *
 * @author lffg <https://github.com/lffg>
 * @version 1.2
 */
 
(function ($) {
  'use strict';
 
  var config = [
    { name: 'Resolvido', id: 1, img: 'https://i.imgur.com/ttvUM89.png' },
    { name: 'Em curso', id: 2, img: 'https://i.imgur.com/uerMgFY.png', onlyForMod: true },
    { name: 'Recusado', id: 3, img: 'https://i.imgur.com/jaVe8sF.png', onlyForMod: true }
    { name: 'Sem Resposta', id: 4, img: 'https://i.imgur.com/Y6EUpgX.png', onlyForMod: true },
    { name: 'Fechado', id: 5, img: 'https://i.imgur.com/nlQ6ScL.png', onlyForMod: true },
    { name: 'Em Análise', id: 6, img: 'https://i.imgur.com/mJClJod.png', onlyForMod: true }
    { name: 'Aprovado', id: 7, img: 'https://i.imgur.com/91D2JJM.png', onlyForMod: true },
    { name: 'Aguardando', id: 8, img: 'https://i.imgur.com/9SdXR6Z.png', onlyForMod: true },
    { name: 'Cancelado', id: 9, img: 'https://2img.net/i/itest/smilies/default/default110.gif', onlyForMod: true }
 
  ];
 
  window.FA = window.FA || {};
  FA.Topic = FA.Topic || {};
 
  var MarkIcon;
  FA.Topic.MarkIcon = MarkIcon = function (config) {
    var self = this;
 
    self.userConfig = config;
    self.defaults = {
      name: undefined,
      id: undefined,
      background: undefined,
      onlyForMod: false,
      onlyForAdmin: false
    };
   
    self.config = $.extend({}, self.defaults, self.userConfig);
 
    $.each(self.config, function (key, value) {
      if (key === undefined) {
        throw new Error ('Não foi especificado um: ' + key + ' para o script de botões.');
      }
 
      if (value === undefined) {
        throw new Error ('Não foi especificado um valor: ' + value + ' para o script de botões.');
      }
    });
  };
 
  MarkIcon.prototype.init = function () {
    var self = this;
 
    var $post = $('.post:first');
    var $link = $post.find('a[href$="mode=editpost"]');
 
    if (!$link.length) {
      return false;
    }
 
    if (this.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
      return false;
    }
 
    if (this.config.onlyForAdmin && _userdata.user_level !== 1) {
      return false;
    }
 
    self.messageLink = $link.attr('href');
 
    self.$button = $('<button>', {
      'class'  : 'fa-mark-icon-button',
      'data-id': self.config.id,
      'html'  : $('<img />', { 'src': self.config.img }).prop('outerHTML')
    });
 
    self.$button
      .on('click', function (event) {
        event.preventDefault();
 
        self.runAjax();
      })
      .insertBefore($post)
    ;
 
    self.appendStyles();
  };
 
  MarkIcon.prototype.runAjax = function () {
    var self = this;
 
    $.get(self.messageLink)
      .done(function (context) {
        var $form = $('form[action="/post"]', context);
 
        var encode  = document.charset.toLowerCase() === 'utf-8' ? window.encodeURIComponent : window.escape;
 
        var formData = $form.serializeArray();
 
        var data = {};
        $.each(formData, function () {
          var obj = this;
 
          data[obj.name] = obj.value;
        });
 
        data.post_icon = self.config.id;
        data.post = 1;
 
        var encoded = $.map(data, function (value, key) {
          return key + '=' + encode(value);
        }).join('&');
 
        $.post(self.messageLink, encoded)
          .fail(self.error)
        ;
      })
      .fail(self.error)
    ;
  };
 
  MarkIcon.prototype.error = function () {
    var self = this;
 
    alert([
      'Houve um erro ao marcar o tópico como "' + self.config.name + '".',
      'Por favor, contate o suporte técnico.'
    ].join('\n'));
  };
 
  MarkIcon.prototype.appendStyles = function () {
    $('<style>', {
      'text': [
        '.fa-mark-icon-button {',
        '  margin: 10px 0 10px 6px;',
        '  background-color: transparent;',
        '  border: none;',
        '}'
      ].join('\n')
    }).appendTo('head');
  };
 
  $(function () {
    $.each(config, function () {
      var self = this;
 
      (new FA.Topic.MarkIcon(self)).init();
    });
  });
}(jQuery));
Kasthiel

Kasthiel
***

Membro desde : 20/12/2012
Mensagens : 130
Pontos : 188

http://wydchronus.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajeitar os botoes de resolvido...

Mensagem por Ketholy 02.12.17 10:54

Olá Kasthiel,

Troque o código por esse:

Código:
(function ($) {
  'use strict';
 
  var config = [
    { name: 'Resolvido', id: 1, img: 'https://i.imgur.com/ttvUM89.png' },
    { name: 'Em curso', id: 2, img: 'https://i.imgur.com/uerMgFY.png' },
    { name: 'Recusado', id: 3, img: 'https://i.imgur.com/jaVe8sF.png' },
    { name: 'Sem Resposta', id: 4, img: 'https://i.imgur.com/Y6EUpgX.png' },
    { name: 'Fechado', id: 5, img: 'https://i.imgur.com/nlQ6ScL.png' },
    { name: 'Em Análise', id: 6, img: 'https://i.imgur.com/mJClJod.png' },
    { name: 'Aprovado', id: 7, img: 'https://i.imgur.com/91D2JJM.png' },
    { name: 'Aguardando', id: 8, img: 'https://i.imgur.com/9SdXR6Z.png' },
    { name: 'Cancelado', id: 9, img: 'https://2img.net/i/itest/smilies/default/default110.gif' },
 
  ];
 
  window.FA = window.FA || {};
  FA.Topic = FA.Topic || {};
 
  var MarkIcon;
  FA.Topic.MarkIcon = MarkIcon = function (config) {
    var self = this;
 
    self.userConfig = config;
    self.defaults = {
      name: undefined,
      id: undefined,
      background: undefined,
      onlyForMod: false,
      onlyForAdmin: false
    };
   
    self.config = $.extend({}, self.defaults, self.userConfig);
 
    $.each(self.config, function (key, value) {
      if (key === undefined) {
        throw new Error ('Não foi especificado um: ' + key + ' para o script de botões.');
      }
 
      if (value === undefined) {
        throw new Error ('Não foi especificado um valor: ' + value + ' para o script de botões.');
      }
    });
  };
 
  MarkIcon.prototype.init = function () {
    var self = this;
 
    var $post = $('.post:first');
    var $link = $post.find('a[href$="mode=editpost"]');
 
    if (!$link.length) {
      return false;
    }
 
    if (this.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
      return false;
    }
 
    if (this.config.onlyForAdmin && _userdata.user_level !== 1) {
      return false;
    }
 
    self.messageLink = $link.attr('href');
 
    self.$button = $('<button>', {
      'class'  : 'fa-mark-icon-button',
      'data-id': self.config.id,
      'html'  : $('<img />', { 'src': self.config.img }).prop('outerHTML')
    });
 
    self.$button
      .on('click', function (event) {
        event.preventDefault();
 
        self.runAjax();
      })
      .insertBefore($post)
    ;
 
    self.appendStyles();
  };
 
  MarkIcon.prototype.runAjax = function () {
    var self = this;
 
    $.get(self.messageLink)
      .done(function (context) {
        var $form = $('form[action="/post"]', context);
 
        var encode  = document.charset.toLowerCase() === 'utf-8' ? window.encodeURIComponent : window.escape;
 
        var formData = $form.serializeArray();
 
        var data = {};
        $.each(formData, function () {
          var obj = this;
 
          data[obj.name] = obj.value;
        });
 
        data.post_icon = self.config.id;
        data.post = 1;
 
        var encoded = $.map(data, function (value, key) {
          return key + '=' + encode(value);
        }).join('&');
 
        $.post(self.messageLink, encoded)
          .fail(self.error)
        ;
      })
      .fail(self.error)
    ;
  };
 
  MarkIcon.prototype.error = function () {
    var self = this;
 
    alert([
      'Houve um erro ao marcar o tópico como "' + self.config.name + '".',
      'Por favor, contate o suporte técnico.'
    ].join('\n'));
  };
 
  MarkIcon.prototype.appendStyles = function () {
    $('<style>', {
      'text': [
        '.fa-mark-icon-button {',
        '  margin: 10px 0 10px 6px;',
        '  background-color: transparent;',
        '  border: none;',
        '}'
      ].join('\n')
    }).appendTo('head');
  };
 
  $(function () {
    $.each(config, function () {
      var self = this;
 
      (new FA.Topic.MarkIcon(self)).init();
    });
  });
}(jQuery));

Até mais!
Ketholy

Ketholy
Super Membro

Membro desde : 20/01/2017
Mensagens : 1309
Pontos : 1577

http://jogosrpg-com-br.forumais.com/forum https://twitter.com/Ketholy Suan

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajeitar os botoes de resolvido...

Mensagem por Kasthiel 02.12.17 18:00

Ketholy escreveu:Olá Kasthiel,

Troque o código por esse:

Código:
(function ($) {
  'use strict';
 
  var config = [
    { name: 'Resolvido', id: 1, img: 'https://i.imgur.com/ttvUM89.png' },
    { name: 'Em curso', id: 2, img: 'https://i.imgur.com/uerMgFY.png' },
    { name: 'Recusado', id: 3, img: 'https://i.imgur.com/jaVe8sF.png' },
    { name: 'Sem Resposta', id: 4, img: 'https://i.imgur.com/Y6EUpgX.png' },
    { name: 'Fechado', id: 5, img: 'https://i.imgur.com/nlQ6ScL.png' },
    { name: 'Em Análise', id: 6, img: 'https://i.imgur.com/mJClJod.png' },
    { name: 'Aprovado', id: 7, img: 'https://i.imgur.com/91D2JJM.png' },
    { name: 'Aguardando', id: 8, img: 'https://i.imgur.com/9SdXR6Z.png' },
    { name: 'Cancelado', id: 9, img: 'https://2img.net/i/itest/smilies/default/default110.gif' },
 
  ];
 
  window.FA = window.FA || {};
  FA.Topic = FA.Topic || {};
 
  var MarkIcon;
  FA.Topic.MarkIcon = MarkIcon = function (config) {
    var self = this;
 
    self.userConfig = config;
    self.defaults = {
      name: undefined,
      id: undefined,
      background: undefined,
      onlyForMod: false,
      onlyForAdmin: false
    };
   
    self.config = $.extend({}, self.defaults, self.userConfig);
 
    $.each(self.config, function (key, value) {
      if (key === undefined) {
        throw new Error ('Não foi especificado um: ' + key + ' para o script de botões.');
      }
 
      if (value === undefined) {
        throw new Error ('Não foi especificado um valor: ' + value + ' para o script de botões.');
      }
    });
  };
 
  MarkIcon.prototype.init = function () {
    var self = this;
 
    var $post = $('.post:first');
    var $link = $post.find('a[href$="mode=editpost"]');
 
    if (!$link.length) {
      return false;
    }
 
    if (this.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
      return false;
    }
 
    if (this.config.onlyForAdmin && _userdata.user_level !== 1) {
      return false;
    }
 
    self.messageLink = $link.attr('href');
 
    self.$button = $('<button>', {
      'class'  : 'fa-mark-icon-button',
      'data-id': self.config.id,
      'html'  : $('<img />', { 'src': self.config.img }).prop('outerHTML')
    });
 
    self.$button
      .on('click', function (event) {
        event.preventDefault();
 
        self.runAjax();
      })
      .insertBefore($post)
    ;
 
    self.appendStyles();
  };
 
  MarkIcon.prototype.runAjax = function () {
    var self = this;
 
    $.get(self.messageLink)
      .done(function (context) {
        var $form = $('form[action="/post"]', context);
 
        var encode  = document.charset.toLowerCase() === 'utf-8' ? window.encodeURIComponent : window.escape;
 
        var formData = $form.serializeArray();
 
        var data = {};
        $.each(formData, function () {
          var obj = this;
 
          data[obj.name] = obj.value;
        });
 
        data.post_icon = self.config.id;
        data.post = 1;
 
        var encoded = $.map(data, function (value, key) {
          return key + '=' + encode(value);
        }).join('&');
 
        $.post(self.messageLink, encoded)
          .fail(self.error)
        ;
      })
      .fail(self.error)
    ;
  };
 
  MarkIcon.prototype.error = function () {
    var self = this;
 
    alert([
      'Houve um erro ao marcar o tópico como "' + self.config.name + '".',
      'Por favor, contate o suporte técnico.'
    ].join('\n'));
  };
 
  MarkIcon.prototype.appendStyles = function () {
    $('<style>', {
      'text': [
        '.fa-mark-icon-button {',
        '  margin: 10px 0 10px 6px;',
        '  background-color: transparent;',
        '  border: none;',
        '}'
      ].join('\n')
    }).appendTo('head');
  };
 
  $(function () {
    $.each(config, function () {
      var self = this;
 
      (new FA.Topic.MarkIcon(self)).init();
    });
  });
}(jQuery));

Até mais!
Top, obrigado!
Kasthiel

Kasthiel
***

Membro desde : 20/12/2012
Mensagens : 130
Pontos : 188

http://wydchronus.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajeitar os botoes de resolvido...

Mensagem por Ketholy 02.12.17 18:43

Disponha! Piscada

Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada.
Tópico marcado como Resolvido e movido para Questões resolvidas.
Ketholy

Ketholy
Super Membro

Membro desde : 20/01/2017
Mensagens : 1309
Pontos : 1577

http://jogosrpg-com-br.forumais.com/forum https://twitter.com/Ketholy Suan

Ir para o topo Ir para baixo

Ver o tópico anterior Ver o tópico seguinte Ir para o topo

- Tópicos semelhantes

Permissões neste sub-fórum
Não podes responder a tópicos