using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Central.Control.Domain;
using Ant.Service.Common.Enums;
using Ant.Service.Common;
using MES.Production.Service.IService;
using System.Collections;
using System.Globalization;
using System.Text.RegularExpressions;
using ChangFa.Machinery.WebPage.Controllers;
namespace ChangFa.Machinery.WebPage.Areas.SysManage.Controllers
{
///
/// 模块管理
///
public class ModuleController : BaseController
{
#region 声明容器
///
/// 模块
///
IModuleManage ModuleManage { get; set; }
///
/// 权限
///
IPermissionManage PermissionManage { get; set; }
///
/// 系统
///
ISystemManage SystemManage { get; set; }
#endregion
///
/// 加载主页
///
[UserAuthorizeAttribute(ModuleAlias = "Module", OperaAction = "View")]
public ActionResult Index()
{
try
{
#region 处理查询参数
string systems = Request.QueryString["System"];
#endregion
#region 加载列表
var result = BindList(systems);
ViewBag.Search = base.keywords;
ViewData["System"] = systems;
ViewData["Systemlist"] = this.SystemManage.LoadSystemInfo();
#endregion
return View(result);
}
catch(Exception e)
{
WriteLog(enumOperator.Select, "模块管理加载主页:", e);
throw e.InnerException;
}
}
///
/// 绑定列表
///
private object BindList(string systems)
{
var query = this.ModuleManage.LoadAll(null);
if (!string.IsNullOrEmpty(systems))
{
query = query.Where(p => p.FK_BELONGSYSTEM == systems);
}
//递归排序
var entity = this.ModuleManage.RecursiveModule(query.ToList())
.Select(p => new
{
p.ID,
MODULENAME = GetModuleName(p.NAME, p.LEVELS),
p.ALIAS,
p.MODULEPATH,
p.SHOWORDER,
p.ICON,
MODULETYPE = ((enumModuleType)p.MODULETYPE).ToString(),
ISSHOW = p.ISSHOW == 1 ? "显示" : "隐藏",
p.NAME,
SYSNAME= p.SYS_SYSTEM.NAME,
p.FK_BELONGSYSTEM
});
if (!string.IsNullOrEmpty(base.keywords))
{
entity = entity.Where(p => p.NAME.Contains(keywords));
}
return JsonConverter.JsonClass(entity);
}
///
/// 加载详情
///
[HttpGet]
[UserAuthorizeAttribute(ModuleAlias = "Module", OperaAction = "Detail")]
public ActionResult Detail(int? id)
{
try
{
var _entity = new SYS_MODULE();
//父模块
string parentId = Request.QueryString["parentId"];
if (!string.IsNullOrEmpty(parentId))
{
_entity.PARENTID = int.Parse(parentId);
}
else
{
_entity.PARENTID = 0;
}
//所属系统
string sys = Request.QueryString["sys"];
if (!string.IsNullOrEmpty(sys))
{
_entity.FK_BELONGSYSTEM = sys;
}
//详情
if (id != null && id > 0)
{
_entity = ModuleManage.Get(p => p.ID == id);
}
ViewData["ModuleType"] = Enum.GetNames(typeof(enumModuleType));
ViewData["Systemlist"] = this.SystemManage.LoadSystemInfo();
return View(_entity);
}
catch(Exception e)
{
WriteLog(enumOperator.Select, "模块管理加载详情", e);
throw e.InnerException;
}
}
///
/// 保存模块
///
[UserAuthorizeAttribute(ModuleAlias = "Module", OperaAction = "Add,Edit")]
public ActionResult Save(SYS_MODULE entity)
{
bool isEdit = false;
var json = new JsonHelper() { Msg = "保存成功", Status = "n" };
try
{
if (entity != null)
{
//验证
if (!Regex.IsMatch(entity.ALIAS, @"^[A-Za-z0-9]{1,20}$"))
{
json.Msg = "模块别名只能以字母数字组成,长度不能超过20个字符";
return Json(json);
}
var _entity = new SYS_MODULE();
//级别加1,一级模块默认0
if (entity.PARENTID <= 0)
entity.LEVELS = 0;
else
entity.LEVELS = this.ModuleManage.Get(p => p.ID == entity.PARENTID).LEVELS + 1;
entity.ISSHOW = string.IsNullOrEmpty(Request.Form["isshow"]) ? 0 : 1;
entity.ICON = Request.Form["ICON"];
//添加
if (entity.ID <= 0)
{
_entity = entity;
_entity.CREATEDATE = DateTime.Now;
_entity.CREATEUSER = this.CurrentUser.Name;
_entity.UPDATEDATE = DateTime.Now;
_entity.UPDATEUSER = this.CurrentUser.Name;
}
else //修改
{
_entity = this.ModuleManage.Get(p => p.ID == entity.ID);
entity.CREATEDATE = _entity.CREATEDATE;
entity.CREATEUSER = _entity.CREATEUSER;
entity.UPDATEDATE = DateTime.Now;
entity.UPDATEUSER = this.CurrentUser.Name;
_entity = entity;
isEdit = true;
}
//模块别名同系统下不能重复
if (this.ModuleManage.IsExist(p => p.FK_BELONGSYSTEM == siteId && p.ALIAS == _entity.ALIAS && p.ID != _entity.ID))
{
json.Msg = "同系统下模块别名不能重复";
return Json(json);
}
//判断同一个父模块下,是否重名
if (!this.ModuleManage.IsExist(p => p.PARENTID == _entity.PARENTID && p.FK_BELONGSYSTEM == _entity.FK_BELONGSYSTEM && p.NAME == _entity.NAME && p.ID != _entity.ID))
{
if (this.ModuleManage.SaveOrUpdate(_entity, isEdit))
{
//变更下级模块的级别
if (isEdit)
{
this.ModuleManage.MoreModifyModule(_entity.ID, Convert.ToInt32(_entity.LEVELS));
}
json.Status = "y";
}
else
{
json.Msg = "保存失败";
}
}
else
{
json.Msg = "模块" + _entity.NAME + "已存在,不能重复添加";
}
}
else
{
json.Msg = "未找到需要保存的模块";
}
if (isEdit)
{
WriteLog(enumOperator.Edit, "修改模块,结果:" + json.Msg, enumLog4net.INFO);
}
else
{
WriteLog(enumOperator.Add, "添加模块,结果:" + json.Msg, enumLog4net.INFO);
}
}
catch (Exception e)
{
json.Msg = "保存模块发生内部错误!";
WriteLog(enumOperator.None, "保存模块:", e);
}
return Json(json);
}
///
/// 删除模块
///
[UserAuthorizeAttribute(ModuleAlias = "Module", OperaAction = "Remove")]
public ActionResult Delete(string idList)
{
JsonHelper json = new JsonHelper() { Msg = "删除模块成功", ReUrl = "", Status = "n" };
try
{
if (!string.IsNullOrEmpty(idList))
{
var idlist1 = idList.Trim(',').Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(p => int.Parse(p)).ToList();
//判断权限里面有没有
if (!this.PermissionManage.IsExist(p => idlist1.Any(e => e == p.MODULEID)))
{
//存在子模块与否
if (!this.ModuleManage.IsExist(p => idlist1.Any(e => e == p.PARENTID)))
{
this.ModuleManage.Delete(p => idlist1.Any(e => e == p.ID));
json.Status = "y";
}
else
{
json.Msg = "该模块下有子模块,不能删除";
}
}
else
{
json.Msg = "该模块下有权限节点,不能删除";
}
}
else
{
json.Msg = "未找到要删除的模块";
}
WriteLog(enumOperator.Remove, "删除模块,结果:" + json.Msg, enumLog4net.WARN);
}
catch (Exception e)
{
json.Msg = "删除模块发生内部错误!";
WriteLog(enumOperator.Remove, "删除模块:", e);
}
return Json(json);
}
///
/// 图标选择
///
public ActionResult ShowIcon()
{
ViewData["icon"] = GetIm();
return View();
}
#region 帮助方法及其他控制器调用
///
/// 显示错层方法
///
private object GetModuleName(string name, decimal? level)
{
if (level > 0)
{
string nbsp = " ";
for (int i = 0; i < level; i++)
{
nbsp += " ";
}
name = nbsp + " |--" + name;
}
return name;
}
///
/// 获取父级列表
///
public object GetModuleByDetail(string sysid)
{
var list = this.ModuleManage.RecursiveModule(this.ModuleManage.LoadAll(p => p.FK_BELONGSYSTEM == sysid).ToList())
.Select(p => new
{
ID = p.ID,
NAME = GetModuleName(p.NAME, p.LEVELS)
}).ToList();
return list;
}
///
/// 获取模块树形菜单
///
public string GetTree()
{
//系统ID
var sysId = Request.Form["sysId"];
if (string.IsNullOrEmpty(sysId))
{
//默认主系统
sysId = siteId;
}
JsonHelper json = new JsonHelper() { Msg = "Success", Status = "y" };
try
{
var query = this.ModuleManage.LoadAll(p => p.ISSHOW == 1 && p.FK_BELONGSYSTEM == sysId).OrderBy(p => p.SHOWORDER).ToList();
var result = query.Select(m => new
{
id = m.ID,
pId = m.PARENTID,
name = m.NAME,
open = true,
target = "DeployBase",
url = "/Sys/Permission/Index?moduleId=" + m.ID.ToString(CultureInfo.InvariantCulture)
}).ToList();
json.Data = result;
}
catch (Exception e)
{
json.Status = "Error";
json.Msg = e.Message.ToString();
}
return JsonConverter.Serialize(json, true);
}
///
/// 根据系统查找父级模块
///
public ActionResult FindParnetModule()
{
var sys = Request.Form["s"];
if (!string.IsNullOrEmpty(sys))
{
return Json(GetModuleByDetail(sys), JsonRequestBehavior.AllowGet);
}
return new EmptyResult();
}
public string[] GetIm()
{
string im = "im-home,im-home2,im-home3,im-home4,im-home5,im-home6,im-home7,im-home8,im-home9,im-home10,im-home11,im-office,im-newspaper,im-pencil,im-pencil2,im-pencil3,im-pencil4,im-pencil5,im-pencil6,im-quill,im-quill2,im-quill3,im-pen,im-pen2,im-pen3,im-pen4,im-pen5,im-marker,im-home12,im-marker2,im-blog,im-blog2,im-brush,im-palette,im-palette2,im-eyedropper,im-eyedropper2,im-droplet,im-droplet2,im-droplet3,im-droplet4,im-paint-format,im-paint-format2,im-image,im-image2,im-image3,im-images,im-image4,im-image5,im-image6,im-images2,im-image7,im-camera,im-camera2,im-camera3,im-camera4,im-music,im-music2,im-music3,im-music4,im-music5,im-music6,im-piano,im-guitar,im-headphones,im-headphones2,im-play,im-play2,im-movie,im-movie2,im-movie3,im-film,im-film2,im-film3,im-film4,im-camera5,im-camera6,im-camera7,im-camera8,im-camera9,im-dice,im-gamepad,im-gamepad2,im-gamepad3,im-pacman,im-spades,im-clubs,im-diamonds,im-king,im-queen,im-rock,im-bishop,im-knight,im-pawn,im-chess,im-bullhorn,im-megaphone,im-new,im-connection,im-connection2,im-podcast,im-radio,im-feed,im-connection3,im-radio2,im-podcast2,im-podcast3,im-mic,im-mic2,im-mic3,im-mic4,im-mic5,im-book,im-book2,im-books,im-reading,im-library,im-library2,im-graduation,im-file,im-profile,im-file2,im-file3,im-file4,im-file5,im-file6,im-files,im-file-plus,im-file-minus,im-file-download,im-file-upload,im-file-check,im-file-remove,im-file7,im-file8,im-file-plus2,im-file-minus2,im-file-download2,im-file-upload2,im-file-check2,im-file-remove2,im-file9,im-copy,im-copy2,im-copy3,im-copy4,im-paste,im-paste2,im-paste3,im-stack,im-stack2,im-stack3,im-folder,im-folder-download,im-folder-upload,im-folder-plus,im-folder-plus2,im-folder-minus,im-folder-minus2,im-folder8,im-folder-remove,im-folder2,im-folder-open,im-folder3,im-folder4,im-folder-plus3,im-folder-minus3,im-folder-plus4,im-folder-remove2,im-folder-download2,im-folder-upload2,im-folder-download3,im-folder-upload3,im-folder5,im-folder-open2,im-folder6,im-folder-open3,im-certificate,im-cc,im-tag,im-tag2,im-tag3,im-tag4,im-tag5,im-tag6,im-tag7,im-tags,im-tags2,im-tag8,im-barcode,im-barcode2,im-qrcode,im-ticket,im-cart,im-cart2,im-cart3,im-cart4,im-cart5,im-cart6,im-cart7,im-cart-plus,im-cart-minus,im-cart-add,im-cart-remove,im-cart-checkout,im-cart-remove2,im-basket,im-basket2,im-bag,im-bag2,im-bag3,im-coin,im-coins,im-credit,im-credit2,im-calculate,im-calculate2,im-support,im-phone,im-phone2,im-phone3,im-phone4,im-contact-add,im-contact-remove,im-contact-add2,im-contact-remove2,im-call-incoming,im-call-outgoing,im-phone5,im-phone6,im-phone-hang-up,im-phone-hang-up2,im-address-book,im-address-book2,im-notebook,im-envelop,im-envelop2,im-mail-send,im-envelop-opened,im-envelop3,im-pushpin,im-location,im-location2,im-location3,im-location4,im-location5,im-location6,im-location7,im-compass,im-compass2,im-map,im-map2,im-map3,im-map4,im-direction,im-history,im-history2,im-clock,im-clock2,im-clock3,im-clock4,im-watch,im-clock5,im-clock6,im-clock7,im-alarm,im-alarm2,im-bell,im-bell2,im-alarm-plus,im-alarm-minus,im-alarm-check,im-alarm-cancel,im-stopwatch,im-calendar,im-calendar2,im-calendar3,im-calendar4,im-calendar5,im-print,im-print2,im-print3,im-mouse,im-mouse2,im-mouse3,im-mouse4,im-keyboard,im-keyboard2,im-screen,im-screen2,im-screen3,im-screen4,im-laptop,im-mobile,im-mobile2,im-tablet,im-mobile3,im-tv,im-cabinet,im-archive,im-drawer,im-drawer2,im-drawer3,im-box,im-box-add,im-box-remove,im-download,im-upload,im-disk,im-cd,im-storage,im-storage2,im-database,im-database2,im-database3,im-undo,im-redo,im-rotate,im-rotate2,im-flip,im-flip2,im-unite,im-subtract,im-interset,im-exclude,im-align-left,im-align-center-horizontal,im-align-right,im-align-top,im-align-center-vertical,im-align-bottom,im-undo2,im-redo2,im-forward,im-reply,im-reply2,im-bubble,im-bubbles,im-bubbles2,im-bubble2,im-bubbles3,im-bubbles4,im-bubble-notification,im-bubbles5,im-bubbles6,im-bubble3,im-bubble-dots,im-bubble4,im-bubble5,im-bubble-dots2,im-bubble6,im-bubble7,im-bubble8,im-bubbles7,im-bubble9,im-bubbles8,im-bubble10,im-bubble-dots3,im-bubble11,im-bubble12,im-bubble-dots4,im-bubble13,im-bubbles9,im-bubbles10,im-bubble-blocked,im-bubble-quote,im-bubble-user,im-bubble-check,im-bubble-video-chat,im-bubble-link,im-bubble-locked,im-bubble-star,im-bubble-heart,im-bubble-paperclip,im-bubble-cancel,im-bubble-plus,im-bubble-minus,im-bubble-notification2,im-bubble-trash,im-bubble-left,im-bubble-right,im-bubble-up,im-bubble-down,im-bubble-first,im-bubble-last,im-bubble-replu,im-bubble-forward,im-bubble-reply,im-bubble-forward2,im-user,im-users,im-user-plus,im-user-plus2,im-user-minus,im-user-minus2,im-user-cancel,im-user-block,im-users2,im-user2,im-users3,im-user-plus3,im-user-minus3,im-user-cancel2,im-user-block2,im-user3,im-user4,im-user5,im-user6,im-users4,im-user7,im-user8,im-users5,im-vcard,im-tshirt,im-hanger,im-quotes-left,im-quotes-right,im-quotes-right2,im-quotes-right3,im-busy,im-busy2,im-busy3,im-busy4,im-spinner,im-spinner2,im-spinner3,im-spinner4,im-spinner5,im-spinner6,im-spinner7,im-spinner8,im-spinner9,im-spinner10,im-spinner11,im-spinner12,im-microscope,im-binoculars,im-binoculars2,im-search,im-search2,im-zoomin,im-zoomout,im-search3,im-search4,im-zoomin2,im-zoomout2,im-search5,im-expand,im-contract,im-scale-up,im-scale-down,im-expand2,im-contract2,im-scale-up2,im-scale-down2,im-fullscreen,im-expand3,im-contract3,im-key,im-key2,im-key3,im-key4,im-key5,im-keyhole,im-lock,im-lock2,im-lock3,im-lock4,im-unlocked,im-lock5,im-unlocked2,im-wrench,im-wrench2,im-wrench3,im-wrench4,im-settings,im-equalizer,im-equalizer2,im-equalizer3,im-cog,im-cogs,im-cog2,im-cog3,im-cog4,im-cog5,im-cog6,im-cog7,im-factory,im-hammer,im-tools,im-screwdriver,im-screwdriver2,im-wand,im-wand2,im-health,im-aid,im-patch,im-bug,im-bug2,im-inject,im-inject2,im-construction,im-cone,im-pie,im-pie2,im-pie3,im-pie4,im-pie5,im-pie6,im-pie7,im-stats,im-stats2,im-stats3,im-bars,im-bars2,im-bars3,im-bars4,im-bars5,im-bars6,im-stats-up,im-stats-down,im-stairs-down,im-stairs-down2,im-chart,im-stairs,im-stairs2,im-ladder,im-cake,im-gift,im-gift2,im-balloon,im-rating,im-rating2,im-rating3,im-podium,im-medal,im-medal2,im-medal3,im-medal4,im-medal5,im-crown,im-trophy,im-trophy2,im-trophy-star,im-diamond,im-diamond2,im-glass,im-glass2,im-bottle,im-bottle2,im-mug,im-food,im-food2,im-hamburger,im-cup,im-cup2,im-leaf,im-leaf2,im-apple-fruit,im-tree,im-tree2,im-paw,im-steps,im-flower,im-rocket,im-meter,im-meter2,im-meter-slow,im-meter-medium,im-meter-fast,im-dashboard,im-hammer2,im-balance,im-bomb,im-fire,im-fire2,im-lab,im-atom,im-atom2,im-magnet,im-magnet2,im-magnet3,im-magnet4,im-dumbbell,im-skull,im-skull2,im-skull3,im-lamp,im-lamp2,im-lamp3,im-lamp4,im-remove,im-remove2,im-remove3,im-remove4,im-remove5,im-remove6,im-remove7,im-remove8,im-briefcase,im-briefcase2,im-briefcase3,im-airplane,im-airplane2,im-paperplane,im-car,im-gas-pump,im-bus,im-truck,im-bike,im-road,im-train,im-ship,im-boat,im-cube,im-cube2,im-cube3,im-cube4,im-pyramid,im-pyramid2,im-cylinder,im-package,im-puzzle,im-puzzle2,im-puzzle3,im-puzzle4,im-glasses,im-glasses2,im-glasses3,im-sunglasses,im-accessibility,im-accessibility2,im-brain,im-target,im-target2,im-target3,im-gun,im-gun-ban,im-shield,im-shield2,im-shield3,im-shield4,im-soccer,im-football,im-baseball,im-basketball,im-golf,im-hockey,im-racing,im-eightball,im-bowlingball,im-bowling,im-bowling2,im-lightning,im-power,im-power2,im-switch,im-powercord,im-cord,im-socket,im-clipboard,im-clipboard2,im-signup,im-clipboard3,im-clipboard4,im-list,im-list2,im-list3,im-numbered-list,im-list4,im-list5,im-playlist,im-grid,im-grid2,im-grid3,im-grid4,im-grid5,im-grid6,im-tree3,im-tree4,im-tree5,im-menu,im-menu2,im-circle-small,im-menu3,im-menu4,im-menu5,im-menu6,im-menu7,im-menu8,im-menu9,im-cloud,im-cloud2,im-cloud3,im-cloud-download,im-cloud-upload,im-download2,im-upload2,im-download3,im-upload3,im-download4,im-upload4,im-download5,im-upload5,im-download6,im-upload6,im-download7,im-upload7,im-globe,im-globe2,im-globe3,im-earth,im-network,im-link,im-link2,im-link3,im-link22,im-link4,im-link5,im-link6,im-anchor,im-flag,im-flag2,im-flag3,im-flag4,im-flag5,im-flag6,im-attachment,im-attachment2,im-eye,im-eye-blocked,im-eye2,im-eye3,im-eye-blocked2,im-eye4,im-eye5,im-eye6,im-eye7,im-eye8,im-bookmark,im-bookmark2,im-bookmarks,im-bookmark3,im-spotlight,im-starburst,im-snowflake,im-temperature,im-temperature2,im-weather-lightning,im-weather-rain,im-weather-snow,im-windy,im-fan,im-umbrella,im-sun,im-sun2,im-brightness-high,im-brightness-medium,im-brightness-low,im-brightness-contrast,im-contrast,im-moon,im-bed,im-bed2,im-star,im-star2,im-star3,im-star4,im-star5,im-star6,im-heart,im-heart2,im-heart3,im-heart4,im-heart-broken,im-heart5,im-heart6,im-heart-broken2,im-heart7,im-heart8,im-heart-broken3,im-lips,im-lips2,im-thumbs-up,im-thumbs-up2,im-thumbs-down,im-thumbs-down2,im-thumbs-up3,im-thumbs-up4,im-thumbs-up5,im-thumbs-up6,im-people,im-man,im-male,im-woman,im-female,im-peace,im-yin-yang,im-happy,im-happy2,im-smiley,im-smiley2,im-tongue,im-tongue2,im-sad,im-sad2,im-wink,im-wink2,im-grin,im-grin2,im-cool,im-cool2,im-angry,im-angry2,im-evil,im-evil2,im-shocked,im-shocked2,im-confused,im-confused2,im-neutral,im-neutral2,im-wondering,im-wondering2,im-cursor,im-cursor2,im-point-up,im-point-right,im-point-down,im-point-left,im-pointer,im-hand,im-stack-empty,im-stack-plus,im-stack-minus,im-stack-star,im-stack-picture,im-stack-down,im-stack-up,im-stack-cancel,im-stack-checkmark,im-stack-list,im-stack-clubs,im-stack-spades,im-stack-hearts,im-stack-diamonds,im-stack-user,im-stack4,im-stack-music,im-stack-play,im-move,im-resize,im-resize2,im-warning,im-warning2,im-notification,im-notification2,im-question,im-question2,im-question3,im-question4,im-question5,im-plus-circle,im-plus-circle2,im-minus-circle,im-minus-circle2,im-info,im-info2,im-blocked,im-cancel-circle,im-cancel-circle2,im-checkmark-circle,im-checkmark-circle2,im-cancel,im-spam,im-close,im-close2,im-close3,im-close4,im-close5,im-checkmark,im-checkmark2,im-checkmark3,im-checkmark4,im-spell-check,im-minus,im-plus,im-minus2,im-plus2,im-enter,im-exit,im-enter2,im-exit2,im-enter3,im-exit3,im-exit4,im-play3,im-pause,im-stop,im-backward,im-forward2,im-play4,im-pause2,im-stop2,im-backward2,im-forward3,im-first,im-last,im-previous,im-next,im-eject,im-volume-high,im-volume-medium,im-volume-low,im-volume-mute,im-volume-mute2,im-volume-increase,im-volume-decrease,im-volume-high2,im-volume-medium2,im-volume-low2,im-volume-mute3,im-volume-mute4,im-volume-increase2,im-volume-decrease2,im-volume5,im-volume4,im-volume3,im-volume2,im-volume1,im-volume0,im-volume-mute5,im-volume-mute6,im-loop,im-loop2,im-loop3,im-loop4,im-loop5,im-shuffle,im-shuffle2,im-wave,im-wave2,im-arrow-first,im-arrow-right,im-arrow-up,im-arrow-right2,im-arrow-down,im-arrow-left,im-arrow-up2,im-arrow-right3,im-arrow-down2,im-arrow-left2,im-arrow-up-left,im-arrow-up3,im-arrow-up-right,im-arrow-right4,im-arrow-down-right,im-arrow-down3,im-arrow-down-left,im-arrow-left3,im-arrow-up-left2,im-arrow-up4,im-arrow-up-right2,im-arrow-right5,im-arrow-down-right2,im-arrow-down4,im-arrow-down-left2,im-arrow-left4,im-arrow-up-left3,im-arrow-up5,im-arrow-up-right3,im-arrow-right6,im-arrow-down-right3,im-arrow-down5,im-arrow-down-left3,im-arrow-left5,im-arrow-up-left4,im-arrow-up6,im-arrow-up-right4,im-arrow-right7,im-arrow-down-right4,im-arrow-down6,im-arrow-down-left4,im-arrow-left6,im-arrow,im-arrow2,im-arrow3,im-arrow4,im-arrow5,im-arrow6,im-arrow7,im-arrow8,im-arrow-up-left5,im-arrowsquare,im-arrow-up-right5,im-arrow-right8,im-arrow-down-right5,im-arrow-down7,im-arrow-down-left5,im-arrow-left7,im-arrow-up7,im-arrow-right9,im-arrow-down8,im-arrow-left8,im-arrow-up8,im-arrow-right10,im-arrow-bottom,im-arrow-left9,im-arrow-up-left6,im-arrow-up9,im-arrow-up-right6,im-arrow-right11,im-arrow-down-right6,im-arrow-down9,im-arrow-down-left6,im-arrow-left10,im-arrow-up-left7,im-arrow-up10,im-arrow-up-right7,im-arrow-right12,im-arrow-down-right7,im-arrow-down10,im-arrow-down-left7,im-arrow-left11,im-arrow-up11,im-arrow-right13,im-arrow-down11,im-arrow-left12,im-arrow-up12,im-arrow-right14,im-arrow-down12,im-arrow-left13,im-arrow-up13,im-arrow-right15,im-arrow-down13,im-arrow-left14,im-arrow-up14,im-arrow-right16,im-arrow-down14,im-arrow-left15,im-arrow-up15,im-arrow-right17,im-arrow-down15,im-arrow-left16,im-arrow-up16,im-arrow-right18,im-arrow-down16,im-arrow-left17,im-menu10,im-menu11,im-menu-close,im-menu-close2,im-enter4,im-enter5,im-esc,im-backspace,im-backspace2,im-backspace3,im-tab,im-transmission,im-transmission2,im-sort,im-sort2,im-key-keyboard,im-key-A,im-key-up,im-key-right,im-key-down,im-key-left,im-command,im-checkbox-checked,im-checkbox-unchecked,im-square,im-checkbox-partial,im-checkbox,im-checkbox-unchecked2,im-checkbox-partial2,im-checkbox-checked2,im-checkbox-unchecked3,im-checkbox-partial3,im-radio-checked,im-radio-unchecked,im-circle,im-circle2,im-crop,im-crop2,im-vector,im-rulers,im-scissors,im-scissors2,im-scissors3,im-filter,im-filter2,im-filter3,im-filter4,im-font,im-font-size,im-type,im-text-height,im-text-width,im-height,im-width,im-bold,im-underline,im-italic,im-strikethrough,im-strikethrough2,im-font-size2,im-bold2,im-underline2,im-italic2,im-strikethrough3,im-omega,im-sigma,im-nbsp,im-page-break,im-page-break2,im-superscript,im-subscript,im-superscript2,im-subscript2,im-text-color,im-highlight,im-pagebreak,im-clear-formatting,im-table,im-table2,im-insert-template,im-pilcrow,im-lefttoright,im-righttoleft,im-paragraph-left,im-paragraph-center,im-paragraph-right,im-paragraph-justify,im-paragraph-left2,im-paragraph-center2,im-paragraph-right2,im-paragraph-justify2,im-indent-increase,im-indent-decrease,im-paragraph-left3,im-paragraph-center3,im-paragraph-right3,im-paragraph-justify3,im-indent-increase2,im-indent-decrease2,im-share,im-newtab,im-newtab2,im-popout,im-embed,im-code,im-console,im-sevensegment0,im-sevensegment1,im-sevensegment2,im-sevensegment3,im-sevensegment4,im-sevensegment5,im-sevensegment6,im-sevensegment7,im-sevensegment8,im-sevensegment9,im-share2,im-share3,im-mail,im-mail2,im-mail3,im-mail4,im-google,im-googleplus,im-googleplus2,im-googleplus3,im-googleplus4,im-google-drive,im-facebook,im-facebook2,im-facebook3,im-facebook4,im-instagram,im-twitter,im-twitter2,im-twitter3,im-feed2,im-feed3,im-feed4,im-youtube,im-youtube2,im-vimeo,im-vimeo2,im-vimeo3,im-lanyrd,im-flickr,im-flickr2,im-flickr3,im-flickr4,im-picassa,im-picassa2,im-dribbble,im-dribbble2,im-dribbble3,im-forrst,im-forrst2,im-deviantart,im-deviantart2,im-steam,im-steam2,im-github,im-github2,im-github3,im-github4,im-github5,im-wordpress,im-wordpress2,im-joomla,im-blogger,im-blogger2,im-tumblr,im-tumblr2,im-yahoo,im-tux,im-apple,im-finder,im-android,im-windows,im-windows8,im-soundcloud,im-soundcloud2,im-skype,im-reddit,im-linkedin,im-lastfm,im-lastfm2,im-delicious,im-stumbleupon,im-stumbleupon2,im-stackoverflow,im-pinterest,im-pinterest2,im-xing,im-xing2,im-flattr,im-foursquare,im-foursquare2,im-paypal,im-paypal2,im-paypal3,im-yelp,im-libreoffice,im-file-pdf,im-file-openoffice,im-file-word,im-file-excel,im-file-zip,im-file-powerpoint,im-file-xml,im-file-css,im-html5,im-html52,im-css3,im-chrome,im-firefox,im-IE,im-opera,im-safari,im-IcoMoon";
return im.Split(',');
}
#endregion
}
}