Add two new icon classes
Add new icon classes based on Font Awesome that support layering, masking and combining glyphs. Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
@@ -28,6 +28,34 @@ class FontAwesomeDriver(IconDriver):
|
||||
)
|
||||
|
||||
|
||||
class FontAwesomeDualDriver(IconDriver):
|
||||
name = 'fontawesome-dual'
|
||||
template_name = 'appearance/icons/font_awesome_layers.html'
|
||||
|
||||
def __init__(self, primary_symbol, secondary_symbol):
|
||||
self.primary_symbol = primary_symbol
|
||||
self.secondary_symbol = secondary_symbol
|
||||
|
||||
def render(self):
|
||||
return get_template(self.template_name).render(
|
||||
context={
|
||||
'data': (
|
||||
{
|
||||
'class': 'fas fa-circle',
|
||||
'transform': 'down-3 right-10',
|
||||
'mask': 'fas fa-{}'.format(self.primary_symbol)
|
||||
},
|
||||
{'class': 'far fa-circle', 'transform': 'down-3 right-10'},
|
||||
{
|
||||
'class': 'fas fa-{}'.format(self.secondary_symbol),
|
||||
'transform': 'shrink-4 down-3 right-10'
|
||||
},
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
|
||||
class FontAwesomeCSSDriver(IconDriver):
|
||||
name = 'fontawesomecss'
|
||||
template_name = 'appearance/icons/font_awesome_css.html'
|
||||
@@ -41,6 +69,32 @@ class FontAwesomeCSSDriver(IconDriver):
|
||||
)
|
||||
|
||||
|
||||
class FontAwesomeMasksDriver(IconDriver):
|
||||
name = 'fontawesome-masks'
|
||||
template_name = 'appearance/icons/font_awesome_masks.html'
|
||||
|
||||
def __init__(self, data):
|
||||
self.data = data
|
||||
|
||||
def render(self):
|
||||
return get_template(self.template_name).render(
|
||||
context={'data': self.data}
|
||||
)
|
||||
|
||||
|
||||
class FontAwesomeLayersDriver(IconDriver):
|
||||
name = 'fontawesome-layers'
|
||||
template_name = 'appearance/icons/font_awesome_layers.html'
|
||||
|
||||
def __init__(self, data):
|
||||
self.data = data
|
||||
|
||||
def render(self):
|
||||
return get_template(self.template_name).render(
|
||||
context={'data': self.data}
|
||||
)
|
||||
|
||||
|
||||
class Icon(object):
|
||||
def __init__(self, driver_name, **kwargs):
|
||||
self.driver = IconDriver.get(name=driver_name)(**kwargs)
|
||||
@@ -49,5 +103,8 @@ class Icon(object):
|
||||
return self.driver.render(**kwargs)
|
||||
|
||||
|
||||
IconDriver.register(driver_class=FontAwesomeDriver)
|
||||
IconDriver.register(driver_class=FontAwesomeCSSDriver)
|
||||
IconDriver.register(driver_class=FontAwesomeDriver)
|
||||
IconDriver.register(driver_class=FontAwesomeDualDriver)
|
||||
IconDriver.register(driver_class=FontAwesomeLayersDriver)
|
||||
IconDriver.register(driver_class=FontAwesomeMasksDriver)
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<span class="fa-layers fa-fw" style="margin-right: 7px;">
|
||||
{% for entry in data %}
|
||||
<i class="{{ entry.class }}" data-fa-transform="{{ entry.transform }}" data-fa-mask="{{ entry.mask }}"></i>
|
||||
{% endfor %}
|
||||
</span>
|
||||
@@ -0,0 +1 @@
|
||||
<i class="{{ data.class }}" data-fa-transform="{{ data.transform }}" data-fa-mask="{{ data.mask }}"></i>
|
||||
Reference in New Issue
Block a user