1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-09 20:52:56 +01:00

Proposals

This commit is contained in:
Hillel Coren 2018-02-04 23:03:26 +02:00
parent d3a891375c
commit 33c37842cc
12 changed files with 672 additions and 113 deletions

View File

@ -60,6 +60,8 @@ class ProposalSnippetController extends BaseController
'title' => trans('texts.new_proposal_snippet'), 'title' => trans('texts.new_proposal_snippet'),
'categories' => ProposalCategory::scope()->orderBy('name')->get(), 'categories' => ProposalCategory::scope()->orderBy('name')->get(),
'categoryPublicId' => 0, 'categoryPublicId' => 0,
'snippets' => ProposalSnippet::scope()->with('proposal_category')->orderBy('name')->get(),
'icons' => $this->getIcons(),
]; ];
return View::make('proposals/snippets/edit', $data); return View::make('proposals/snippets/edit', $data);
@ -84,6 +86,8 @@ class ProposalSnippetController extends BaseController
'title' => trans('texts.edit_proposal_snippet'), 'title' => trans('texts.edit_proposal_snippet'),
'categories' => ProposalCategory::scope()->orderBy('name')->get(), 'categories' => ProposalCategory::scope()->orderBy('name')->get(),
'categoryPublicId' => $proposalSnippet->proposal_category ? $proposalSnippet->proposal_category->public_id : null, 'categoryPublicId' => $proposalSnippet->proposal_category ? $proposalSnippet->proposal_category->public_id : null,
'snippets' => ProposalSnippet::scope()->with('proposal_category')->orderBy('name')->get(),
'icons' => $this->getIcons(),
]; ];
return View::make('proposals/snippets.edit', $data); return View::make('proposals/snippets.edit', $data);
@ -127,4 +131,603 @@ class ProposalSnippetController extends BaseController
return redirect()->to('/proposal_snippets'); return redirect()->to('/proposal_snippets');
} }
private function getIcons() {
$data = [];
$icons = [
['name'=>'glass','code'=>'f000'],
['name'=>'music','code'=>'f001'],
['name'=>'search','code'=>'f002'],
['name'=>'envelope-o','code'=>'f003'],
['name'=>'heart','code'=>'f004'],
['name'=>'star','code'=>'f005'],
['name'=>'star-o','code'=>'f006'],
['name'=>'user','code'=>'f007'],
['name'=>'film','code'=>'f008'],
['name'=>'th-large','code'=>'f009'],
['name'=>'th','code'=>'f00a'],
['name'=>'th-list','code'=>'f00b'],
['name'=>'check','code'=>'f00c'],
['name'=>'times','code'=>'f00d'],
['name'=>'search-plus','code'=>'f00e'],
['name'=>'search-minus','code'=>'f010'],
['name'=>'power-off','code'=>'f011'],
['name'=>'signal','code'=>'f012'],
['name'=>'cog','code'=>'f013'],
['name'=>'trash-o','code'=>'f014'],
['name'=>'home','code'=>'f015'],
['name'=>'file-o','code'=>'f016'],
['name'=>'clock-o','code'=>'f017'],
['name'=>'road','code'=>'f018'],
['name'=>'download','code'=>'f019'],
['name'=>'arrow-circle-o-down','code'=>'f01a'],
['name'=>'arrow-circle-o-up','code'=>'f01b'],
['name'=>'inbox','code'=>'f01c'],
['name'=>'play-circle-o','code'=>'f01d'],
['name'=>'repeat','code'=>'f01e'],
['name'=>'refresh','code'=>'f021'],
['name'=>'list-alt','code'=>'f022'],
['name'=>'lock','code'=>'f023'],
['name'=>'flag','code'=>'f024'],
['name'=>'headphones','code'=>'f025'],
['name'=>'volume-off','code'=>'f026'],
['name'=>'volume-down','code'=>'f027'],
['name'=>'volume-up','code'=>'f028'],
['name'=>'qrcode','code'=>'f029'],
['name'=>'barcode','code'=>'f02a'],
['name'=>'tag','code'=>'f02b'],
['name'=>'tags','code'=>'f02c'],
['name'=>'book','code'=>'f02d'],
['name'=>'bookmark','code'=>'f02e'],
['name'=>'print','code'=>'f02f'],
['name'=>'camera','code'=>'f030'],
['name'=>'font','code'=>'f031'],
['name'=>'bold','code'=>'f032'],
['name'=>'italic','code'=>'f033'],
['name'=>'text-height','code'=>'f034'],
['name'=>'text-width','code'=>'f035'],
['name'=>'align-left','code'=>'f036'],
['name'=>'align-center','code'=>'f037'],
['name'=>'align-right','code'=>'f038'],
['name'=>'align-justify','code'=>'f039'],
['name'=>'list','code'=>'f03a'],
['name'=>'outdent','code'=>'f03b'],
['name'=>'indent','code'=>'f03c'],
['name'=>'video-camera','code'=>'f03d'],
['name'=>'picture-o','code'=>'f03e'],
['name'=>'pencil','code'=>'f040'],
['name'=>'map-marker','code'=>'f041'],
['name'=>'adjust','code'=>'f042'],
['name'=>'tint','code'=>'f043'],
['name'=>'pencil-square-o','code'=>'f044'],
['name'=>'share-square-o','code'=>'f045'],
['name'=>'check-square-o','code'=>'f046'],
['name'=>'arrows','code'=>'f047'],
['name'=>'step-backward','code'=>'f048'],
['name'=>'fast-backward','code'=>'f049'],
['name'=>'backward','code'=>'f04a'],
['name'=>'play','code'=>'f04b'],
['name'=>'pause','code'=>'f04c'],
['name'=>'stop','code'=>'f04d'],
['name'=>'forward','code'=>'f04e'],
['name'=>'fast-forward','code'=>'f050'],
['name'=>'step-forward','code'=>'f051'],
['name'=>'eject','code'=>'f052'],
['name'=>'chevron-left','code'=>'f053'],
['name'=>'chevron-right','code'=>'f054'],
['name'=>'plus-circle','code'=>'f055'],
['name'=>'minus-circle','code'=>'f056'],
['name'=>'times-circle','code'=>'f057'],
['name'=>'check-circle','code'=>'f058'],
['name'=>'question-circle','code'=>'f059'],
['name'=>'info-circle','code'=>'f05a'],
['name'=>'crosshairs','code'=>'f05b'],
['name'=>'times-circle-o','code'=>'f05c'],
['name'=>'check-circle-o','code'=>'f05d'],
['name'=>'ban','code'=>'f05e'],
['name'=>'arrow-left','code'=>'f060'],
['name'=>'arrow-right','code'=>'f061'],
['name'=>'arrow-up','code'=>'f062'],
['name'=>'arrow-down','code'=>'f063'],
['name'=>'share','code'=>'f064'],
['name'=>'expand','code'=>'f065'],
['name'=>'compress','code'=>'f066'],
['name'=>'plus','code'=>'f067'],
['name'=>'minus','code'=>'f068'],
['name'=>'asterisk','code'=>'f069'],
['name'=>'exclamation-circle','code'=>'f06a'],
['name'=>'gift','code'=>'f06b'],
['name'=>'leaf','code'=>'f06c'],
['name'=>'fire','code'=>'f06d'],
['name'=>'eye','code'=>'f06e'],
['name'=>'eye-slash','code'=>'f070'],
['name'=>'exclamation-triangle','code'=>'f071'],
['name'=>'plane','code'=>'f072'],
['name'=>'calendar','code'=>'f073'],
['name'=>'random','code'=>'f074'],
['name'=>'comment','code'=>'f075'],
['name'=>'magnet','code'=>'f076'],
['name'=>'chevron-up','code'=>'f077'],
['name'=>'chevron-down','code'=>'f078'],
['name'=>'retweet','code'=>'f079'],
['name'=>'shopping-cart','code'=>'f07a'],
['name'=>'folder','code'=>'f07b'],
['name'=>'folder-open','code'=>'f07c'],
['name'=>'arrows-v','code'=>'f07d'],
['name'=>'arrows-h','code'=>'f07e'],
['name'=>'bar-chart','code'=>'f080'],
['name'=>'twitter-square','code'=>'f081'],
['name'=>'facebook-square','code'=>'f082'],
['name'=>'camera-retro','code'=>'f083'],
['name'=>'key','code'=>'f084'],
['name'=>'cogs','code'=>'f085'],
['name'=>'comments','code'=>'f086'],
['name'=>'thumbs-o-up','code'=>'f087'],
['name'=>'thumbs-o-down','code'=>'f088'],
['name'=>'star-half','code'=>'f089'],
['name'=>'heart-o','code'=>'f08a'],
['name'=>'sign-out','code'=>'f08b'],
['name'=>'linkedin-square','code'=>'f08c'],
['name'=>'thumb-tack','code'=>'f08d'],
['name'=>'external-link','code'=>'f08e'],
['name'=>'sign-in','code'=>'f090'],
['name'=>'trophy','code'=>'f091'],
['name'=>'github-square','code'=>'f092'],
['name'=>'upload','code'=>'f093'],
['name'=>'lemon-o','code'=>'f094'],
['name'=>'phone','code'=>'f095'],
['name'=>'square-o','code'=>'f096'],
['name'=>'bookmark-o','code'=>'f097'],
['name'=>'phone-square','code'=>'f098'],
['name'=>'twitter','code'=>'f099'],
['name'=>'facebook','code'=>'f09a'],
['name'=>'github','code'=>'f09b'],
['name'=>'unlock','code'=>'f09c'],
['name'=>'credit-card','code'=>'f09d'],
['name'=>'rss','code'=>'f09e'],
['name'=>'hdd-o','code'=>'f0a0'],
['name'=>'bullhorn','code'=>'f0a1'],
['name'=>'bell','code'=>'f0f3'],
['name'=>'certificate','code'=>'f0a3'],
['name'=>'hand-o-right','code'=>'f0a4'],
['name'=>'hand-o-left','code'=>'f0a5'],
['name'=>'hand-o-up','code'=>'f0a6'],
['name'=>'hand-o-down','code'=>'f0a7'],
['name'=>'arrow-circle-left','code'=>'f0a8'],
['name'=>'arrow-circle-right','code'=>'f0a9'],
['name'=>'arrow-circle-up','code'=>'f0aa'],
['name'=>'arrow-circle-down','code'=>'f0ab'],
['name'=>'globe','code'=>'f0ac'],
['name'=>'wrench','code'=>'f0ad'],
['name'=>'tasks','code'=>'f0ae'],
['name'=>'filter','code'=>'f0b0'],
['name'=>'briefcase','code'=>'f0b1'],
['name'=>'arrows-alt','code'=>'f0b2'],
['name'=>'users','code'=>'f0c0'],
['name'=>'link','code'=>'f0c1'],
['name'=>'cloud','code'=>'f0c2'],
['name'=>'flask','code'=>'f0c3'],
['name'=>'scissors','code'=>'f0c4'],
['name'=>'files-o','code'=>'f0c5'],
['name'=>'paperclip','code'=>'f0c6'],
['name'=>'floppy-o','code'=>'f0c7'],
['name'=>'square','code'=>'f0c8'],
['name'=>'bars','code'=>'f0c9'],
['name'=>'list-ul','code'=>'f0ca'],
['name'=>'list-ol','code'=>'f0cb'],
['name'=>'strikethrough','code'=>'f0cc'],
['name'=>'underline','code'=>'f0cd'],
['name'=>'table','code'=>'f0ce'],
['name'=>'magic','code'=>'f0d0'],
['name'=>'truck','code'=>'f0d1'],
['name'=>'pinterest','code'=>'f0d2'],
['name'=>'pinterest-square','code'=>'f0d3'],
['name'=>'google-plus-square','code'=>'f0d4'],
['name'=>'google-plus','code'=>'f0d5'],
['name'=>'money','code'=>'f0d6'],
['name'=>'caret-down','code'=>'f0d7'],
['name'=>'caret-up','code'=>'f0d8'],
['name'=>'caret-left','code'=>'f0d9'],
['name'=>'caret-right','code'=>'f0da'],
['name'=>'columns','code'=>'f0db'],
['name'=>'sort','code'=>'f0dc'],
['name'=>'sort-desc','code'=>'f0dd'],
['name'=>'sort-asc','code'=>'f0de'],
['name'=>'envelope','code'=>'f0e0'],
['name'=>'linkedin','code'=>'f0e1'],
['name'=>'undo','code'=>'f0e2'],
['name'=>'gavel','code'=>'f0e3'],
['name'=>'tachometer','code'=>'f0e4'],
['name'=>'comment-o','code'=>'f0e5'],
['name'=>'comments-o','code'=>'f0e6'],
['name'=>'bolt','code'=>'f0e7'],
['name'=>'sitemap','code'=>'f0e8'],
['name'=>'umbrella','code'=>'f0e9'],
['name'=>'clipboard','code'=>'f0ea'],
['name'=>'lightbulb-o','code'=>'f0eb'],
['name'=>'exchange','code'=>'f0ec'],
['name'=>'cloud-download','code'=>'f0ed'],
['name'=>'cloud-upload','code'=>'f0ee'],
['name'=>'user-md','code'=>'f0f0'],
['name'=>'stethoscope','code'=>'f0f1'],
['name'=>'suitcase','code'=>'f0f2'],
['name'=>'bell-o','code'=>'f0a2'],
['name'=>'coffee','code'=>'f0f4'],
['name'=>'cutlery','code'=>'f0f5'],
['name'=>'file-text-o','code'=>'f0f6'],
['name'=>'building-o','code'=>'f0f7'],
['name'=>'hospital-o','code'=>'f0f8'],
['name'=>'ambulance','code'=>'f0f9'],
['name'=>'medkit','code'=>'f0fa'],
['name'=>'fighter-jet','code'=>'f0fb'],
['name'=>'beer','code'=>'f0fc'],
['name'=>'h-square','code'=>'f0fd'],
['name'=>'plus-square','code'=>'f0fe'],
['name'=>'angle-double-left','code'=>'f100'],
['name'=>'angle-double-right','code'=>'f101'],
['name'=>'angle-double-up','code'=>'f102'],
['name'=>'angle-double-down','code'=>'f103'],
['name'=>'angle-left','code'=>'f104'],
['name'=>'angle-right','code'=>'f105'],
['name'=>'angle-up','code'=>'f106'],
['name'=>'angle-down','code'=>'f107'],
['name'=>'desktop','code'=>'f108'],
['name'=>'laptop','code'=>'f109'],
['name'=>'tablet','code'=>'f10a'],
['name'=>'mobile','code'=>'f10b'],
['name'=>'circle-o','code'=>'f10c'],
['name'=>'quote-left','code'=>'f10d'],
['name'=>'quote-right','code'=>'f10e'],
['name'=>'spinner','code'=>'f110'],
['name'=>'circle','code'=>'f111'],
['name'=>'reply','code'=>'f112'],
['name'=>'github-alt','code'=>'f113'],
['name'=>'folder-o','code'=>'f114'],
['name'=>'folder-open-o','code'=>'f115'],
['name'=>'smile-o','code'=>'f118'],
['name'=>'frown-o','code'=>'f119'],
['name'=>'meh-o','code'=>'f11a'],
['name'=>'gamepad','code'=>'f11b'],
['name'=>'keyboard-o','code'=>'f11c'],
['name'=>'flag-o','code'=>'f11d'],
['name'=>'flag-checkered','code'=>'f11e'],
['name'=>'terminal','code'=>'f120'],
['name'=>'code','code'=>'f121'],
['name'=>'reply-all','code'=>'f122'],
['name'=>'star-half-o','code'=>'f123'],
['name'=>'location-arrow','code'=>'f124'],
['name'=>'crop','code'=>'f125'],
['name'=>'code-fork','code'=>'f126'],
['name'=>'chain-broken','code'=>'f127'],
['name'=>'question','code'=>'f128'],
['name'=>'info','code'=>'f129'],
['name'=>'exclamation','code'=>'f12a'],
['name'=>'superscript','code'=>'f12b'],
['name'=>'subscript','code'=>'f12c'],
['name'=>'eraser','code'=>'f12d'],
['name'=>'puzzle-piece','code'=>'f12e'],
['name'=>'microphone','code'=>'f130'],
['name'=>'microphone-slash','code'=>'f131'],
['name'=>'shield','code'=>'f132'],
['name'=>'calendar-o','code'=>'f133'],
['name'=>'fire-extinguisher','code'=>'f134'],
['name'=>'rocket','code'=>'f135'],
['name'=>'maxcdn','code'=>'f136'],
['name'=>'chevron-circle-left','code'=>'f137'],
['name'=>'chevron-circle-right','code'=>'f138'],
['name'=>'chevron-circle-up','code'=>'f139'],
['name'=>'chevron-circle-down','code'=>'f13a'],
['name'=>'html5','code'=>'f13b'],
['name'=>'css3','code'=>'f13c'],
['name'=>'anchor','code'=>'f13d'],
['name'=>'unlock-alt','code'=>'f13e'],
['name'=>'bullseye','code'=>'f140'],
['name'=>'ellipsis-h','code'=>'f141'],
['name'=>'ellipsis-v','code'=>'f142'],
['name'=>'rss-square','code'=>'f143'],
['name'=>'play-circle','code'=>'f144'],
['name'=>'ticket','code'=>'f145'],
['name'=>'minus-square','code'=>'f146'],
['name'=>'minus-square-o','code'=>'f147'],
['name'=>'level-up','code'=>'f148'],
['name'=>'level-down','code'=>'f149'],
['name'=>'check-square','code'=>'f14a'],
['name'=>'pencil-square','code'=>'f14b'],
['name'=>'external-link-square','code'=>'f14c'],
['name'=>'share-square','code'=>'f14d'],
['name'=>'compass','code'=>'f14e'],
['name'=>'caret-square-o-down','code'=>'f150'],
['name'=>'caret-square-o-up','code'=>'f151'],
['name'=>'caret-square-o-right','code'=>'f152'],
['name'=>'eur','code'=>'f153'],
['name'=>'gbp','code'=>'f154'],
['name'=>'usd','code'=>'f155'],
['name'=>'inr','code'=>'f156'],
['name'=>'jpy','code'=>'f157'],
['name'=>'rub','code'=>'f158'],
['name'=>'krw','code'=>'f159'],
['name'=>'btc','code'=>'f15a'],
['name'=>'file','code'=>'f15b'],
['name'=>'file-text','code'=>'f15c'],
['name'=>'sort-alpha-asc','code'=>'f15d'],
['name'=>'sort-alpha-desc','code'=>'f15e'],
['name'=>'sort-amount-asc','code'=>'f160'],
['name'=>'sort-amount-desc','code'=>'f161'],
['name'=>'sort-numeric-asc','code'=>'f162'],
['name'=>'sort-numeric-desc','code'=>'f163'],
['name'=>'thumbs-up','code'=>'f164'],
['name'=>'thumbs-down','code'=>'f165'],
['name'=>'youtube-square','code'=>'f166'],
['name'=>'youtube','code'=>'f167'],
['name'=>'xing','code'=>'f168'],
['name'=>'xing-square','code'=>'f169'],
['name'=>'youtube-play','code'=>'f16a'],
['name'=>'dropbox','code'=>'f16b'],
['name'=>'stack-overflow','code'=>'f16c'],
['name'=>'instagram','code'=>'f16d'],
['name'=>'flickr','code'=>'f16e'],
['name'=>'adn','code'=>'f170'],
['name'=>'bitbucket','code'=>'f171'],
['name'=>'bitbucket-square','code'=>'f172'],
['name'=>'tumblr','code'=>'f173'],
['name'=>'tumblr-square','code'=>'f174'],
['name'=>'long-arrow-down','code'=>'f175'],
['name'=>'long-arrow-up','code'=>'f176'],
['name'=>'long-arrow-left','code'=>'f177'],
['name'=>'long-arrow-right','code'=>'f178'],
['name'=>'apple','code'=>'f179'],
['name'=>'windows','code'=>'f17a'],
['name'=>'android','code'=>'f17b'],
['name'=>'linux','code'=>'f17c'],
['name'=>'dribbble','code'=>'f17d'],
['name'=>'skype','code'=>'f17e'],
['name'=>'foursquare','code'=>'f180'],
['name'=>'trello','code'=>'f181'],
['name'=>'female','code'=>'f182'],
['name'=>'male','code'=>'f183'],
['name'=>'gratipay','code'=>'f184'],
['name'=>'sun-o','code'=>'f185'],
['name'=>'moon-o','code'=>'f186'],
['name'=>'archive','code'=>'f187'],
['name'=>'bug','code'=>'f188'],
['name'=>'vk','code'=>'f189'],
['name'=>'weibo','code'=>'f18a'],
['name'=>'renren','code'=>'f18b'],
['name'=>'pagelines','code'=>'f18c'],
['name'=>'stack-exchange','code'=>'f18d'],
['name'=>'arrow-circle-o-right','code'=>'f18e'],
['name'=>'arrow-circle-o-left','code'=>'f190'],
['name'=>'caret-square-o-left','code'=>'f191'],
['name'=>'dot-circle-o','code'=>'f192'],
['name'=>'wheelchair','code'=>'f193'],
['name'=>'vimeo-square','code'=>'f194'],
['name'=>'try','code'=>'f195'],
['name'=>'plus-square-o','code'=>'f196'],
['name'=>'space-shuttle','code'=>'f197'],
['name'=>'slack','code'=>'f198'],
['name'=>'envelope-square','code'=>'f199'],
['name'=>'wordpress','code'=>'f19a'],
['name'=>'openid','code'=>'f19b'],
['name'=>'university','code'=>'f19c'],
['name'=>'graduation-cap','code'=>'f19d'],
['name'=>'yahoo','code'=>'f19e'],
['name'=>'google','code'=>'f1a0'],
['name'=>'reddit','code'=>'f1a1'],
['name'=>'reddit-square','code'=>'f1a2'],
['name'=>'stumbleupon-circle','code'=>'f1a3'],
['name'=>'stumbleupon','code'=>'f1a4'],
['name'=>'delicious','code'=>'f1a5'],
['name'=>'digg','code'=>'f1a6'],
['name'=>'pied-piper','code'=>'f1a7'],
['name'=>'pied-piper-alt','code'=>'f1a8'],
['name'=>'drupal','code'=>'f1a9'],
['name'=>'joomla','code'=>'f1aa'],
['name'=>'language','code'=>'f1ab'],
['name'=>'fax','code'=>'f1ac'],
['name'=>'building','code'=>'f1ad'],
['name'=>'child','code'=>'f1ae'],
['name'=>'paw','code'=>'f1b0'],
['name'=>'spoon','code'=>'f1b1'],
['name'=>'cube','code'=>'f1b2'],
['name'=>'cubes','code'=>'f1b3'],
['name'=>'behance','code'=>'f1b4'],
['name'=>'behance-square','code'=>'f1b5'],
['name'=>'steam','code'=>'f1b6'],
['name'=>'steam-square','code'=>'f1b7'],
['name'=>'recycle','code'=>'f1b8'],
['name'=>'car','code'=>'f1b9'],
['name'=>'taxi','code'=>'f1ba'],
['name'=>'tree','code'=>'f1bb'],
['name'=>'spotify','code'=>'f1bc'],
['name'=>'deviantart','code'=>'f1bd'],
['name'=>'soundcloud','code'=>'f1be'],
['name'=>'database','code'=>'f1c0'],
['name'=>'file-pdf-o','code'=>'f1c1'],
['name'=>'file-word-o','code'=>'f1c2'],
['name'=>'file-excel-o','code'=>'f1c3'],
['name'=>'file-powerpoint-o','code'=>'f1c4'],
['name'=>'file-image-o','code'=>'f1c5'],
['name'=>'file-archive-o','code'=>'f1c6'],
['name'=>'file-audio-o','code'=>'f1c7'],
['name'=>'file-video-o','code'=>'f1c8'],
['name'=>'file-code-o','code'=>'f1c9'],
['name'=>'vine','code'=>'f1ca'],
['name'=>'codepen','code'=>'f1cb'],
['name'=>'jsfiddle','code'=>'f1cc'],
['name'=>'life-ring','code'=>'f1cd'],
['name'=>'circle-o-notch','code'=>'f1ce'],
['name'=>'rebel','code'=>'f1d0'],
['name'=>'empire','code'=>'f1d1'],
['name'=>'git-square','code'=>'f1d2'],
['name'=>'git','code'=>'f1d3'],
['name'=>'hacker-news','code'=>'f1d4'],
['name'=>'tencent-weibo','code'=>'f1d5'],
['name'=>'qq','code'=>'f1d6'],
['name'=>'weixin','code'=>'f1d7'],
['name'=>'paper-plane','code'=>'f1d8'],
['name'=>'paper-plane-o','code'=>'f1d9'],
['name'=>'history','code'=>'f1da'],
['name'=>'circle-thin','code'=>'f1db'],
['name'=>'header','code'=>'f1dc'],
['name'=>'paragraph','code'=>'f1dd'],
['name'=>'sliders','code'=>'f1de'],
['name'=>'share-alt','code'=>'f1e0'],
['name'=>'share-alt-square','code'=>'f1e1'],
['name'=>'bomb','code'=>'f1e2'],
['name'=>'futbol-o','code'=>'f1e3'],
['name'=>'tty','code'=>'f1e4'],
['name'=>'binoculars','code'=>'f1e5'],
['name'=>'plug','code'=>'f1e6'],
['name'=>'slideshare','code'=>'f1e7'],
['name'=>'twitch','code'=>'f1e8'],
['name'=>'yelp','code'=>'f1e9'],
['name'=>'newspaper-o','code'=>'f1ea'],
['name'=>'wifi','code'=>'f1eb'],
['name'=>'calculator','code'=>'f1ec'],
['name'=>'paypal','code'=>'f1ed'],
['name'=>'google-wallet','code'=>'f1ee'],
['name'=>'cc-visa','code'=>'f1f0'],
['name'=>'cc-mastercard','code'=>'f1f1'],
['name'=>'cc-discover','code'=>'f1f2'],
['name'=>'cc-amex','code'=>'f1f3'],
['name'=>'cc-paypal','code'=>'f1f4'],
['name'=>'cc-stripe','code'=>'f1f5'],
['name'=>'bell-slash','code'=>'f1f6'],
['name'=>'bell-slash-o','code'=>'f1f7'],
['name'=>'trash','code'=>'f1f8'],
['name'=>'copyright','code'=>'f1f9'],
['name'=>'at','code'=>'f1fa'],
['name'=>'eyedropper','code'=>'f1fb'],
['name'=>'paint-brush','code'=>'f1fc'],
['name'=>'birthday-cake','code'=>'f1fd'],
['name'=>'area-chart','code'=>'f1fe'],
['name'=>'pie-chart','code'=>'f200'],
['name'=>'line-chart','code'=>'f201'],
['name'=>'lastfm','code'=>'f202'],
['name'=>'lastfm-square','code'=>'f203'],
['name'=>'toggle-off','code'=>'f204'],
['name'=>'toggle-on','code'=>'f205'],
['name'=>'bicycle','code'=>'f206'],
['name'=>'bus','code'=>'f207'],
['name'=>'ioxhost','code'=>'f208'],
['name'=>'angellist','code'=>'f209'],
['name'=>'cc','code'=>'f20a'],
['name'=>'ils','code'=>'f20b'],
['name'=>'meanpath','code'=>'f20c'],
['name'=>'buysellads','code'=>'f20d'],
['name'=>'connectdevelop','code'=>'f20e'],
['name'=>'dashcube','code'=>'f210'],
['name'=>'forumbee','code'=>'f211'],
['name'=>'leanpub','code'=>'f212'],
['name'=>'sellsy','code'=>'f213'],
['name'=>'shirtsinbulk','code'=>'f214'],
['name'=>'simplybuilt','code'=>'f215'],
['name'=>'skyatlas','code'=>'f216'],
['name'=>'cart-plus','code'=>'f217'],
['name'=>'cart-arrow-down','code'=>'f218'],
['name'=>'diamond','code'=>'f219'],
['name'=>'ship','code'=>'f21a'],
['name'=>'user-secret','code'=>'f21b'],
['name'=>'motorcycle','code'=>'f21c'],
['name'=>'street-view','code'=>'f21d'],
['name'=>'heartbeat','code'=>'f21e'],
['name'=>'venus','code'=>'f221'],
['name'=>'mars','code'=>'f222'],
['name'=>'mercury','code'=>'f223'],
['name'=>'transgender','code'=>'f224'],
['name'=>'transgender-alt','code'=>'f225'],
['name'=>'venus-double','code'=>'f226'],
['name'=>'mars-double','code'=>'f227'],
['name'=>'venus-mars','code'=>'f228'],
['name'=>'mars-stroke','code'=>'f229'],
['name'=>'mars-stroke-v','code'=>'f22a'],
['name'=>'mars-stroke-h','code'=>'f22b'],
['name'=>'neuter','code'=>'f22c'],
['name'=>'genderless','code'=>'f22d'],
['name'=>'facebook-official','code'=>'f230'],
['name'=>'pinterest-p','code'=>'f231'],
['name'=>'whatsapp','code'=>'f232'],
['name'=>'server','code'=>'f233'],
['name'=>'user-plus','code'=>'f234'],
['name'=>'user-times','code'=>'f235'],
['name'=>'bed','code'=>'f236'],
['name'=>'viacoin','code'=>'f237'],
['name'=>'train','code'=>'f238'],
['name'=>'subway','code'=>'f239'],
['name'=>'medium','code'=>'f23a'],
['name'=>'y-combinator','code'=>'f23b'],
['name'=>'optin-monster','code'=>'f23c'],
['name'=>'opencart','code'=>'f23d'],
['name'=>'expeditedssl','code'=>'f23e'],
['name'=>'battery-full','code'=>'f240'],
['name'=>'battery-three-quarters','code'=>'f241'],
['name'=>'battery-half','code'=>'f242'],
['name'=>'battery-quarter','code'=>'f243'],
['name'=>'battery-empty','code'=>'f244'],
['name'=>'mouse-pointer','code'=>'f245'],
['name'=>'i-cursor','code'=>'f246'],
['name'=>'object-group','code'=>'f247'],
['name'=>'object-ungroup','code'=>'f248'],
['name'=>'sticky-note','code'=>'f249'],
['name'=>'sticky-note-o','code'=>'f24a'],
['name'=>'cc-jcb','code'=>'f24b'],
['name'=>'cc-diners-club','code'=>'f24c'],
['name'=>'clone','code'=>'f24d'],
['name'=>'balance-scale','code'=>'f24e'],
['name'=>'hourglass-o','code'=>'f250'],
['name'=>'hourglass-start','code'=>'f251'],
['name'=>'hourglass-half','code'=>'f252'],
['name'=>'hourglass-end','code'=>'f253'],
['name'=>'hourglass','code'=>'f254'],
['name'=>'hand-rock-o','code'=>'f255'],
['name'=>'hand-paper-o','code'=>'f256'],
['name'=>'hand-scissors-o','code'=>'f257'],
['name'=>'hand-lizard-o','code'=>'f258'],
['name'=>'hand-spock-o','code'=>'f259'],
['name'=>'hand-pointer-o','code'=>'f25a'],
['name'=>'hand-peace-o','code'=>'f25b'],
['name'=>'trademark','code'=>'f25c'],
['name'=>'registered','code'=>'f25d'],
['name'=>'creative-commons','code'=>'f25e'],
['name'=>'gg','code'=>'f260'],
['name'=>'gg-circle','code'=>'f261'],
['name'=>'tripadvisor','code'=>'f262'],
['name'=>'odnoklassniki','code'=>'f263'],
['name'=>'odnoklassniki-square','code'=>'f264'],
['name'=>'get-pocket','code'=>'f265'],
['name'=>'wikipedia-w','code'=>'f266'],
['name'=>'safari','code'=>'f267'],
['name'=>'chrome','code'=>'f268'],
['name'=>'firefox','code'=>'f269'],
['name'=>'opera','code'=>'f26a'],
['name'=>'internet-explorer','code'=>'f26b'],
['name'=>'television','code'=>'f26c'],
['name'=>'contao','code'=>'f26d'],
['name'=>'500px','code'=>'f26e'],
['name'=>'amazon','code'=>'f270'],
['name'=>'calendar-plus-o','code'=>'f271'],
['name'=>'calendar-minus-o','code'=>'f272'],
['name'=>'calendar-times-o','code'=>'f273'],
['name'=>'calendar-check-o','code'=>'f274'],
['name'=>'industry','code'=>'f275'],
['name'=>'map-pin','code'=>'f276'],
['name'=>'map-signs','code'=>'f277'],
['name'=>'map-o','code'=>'f278'],
['name'=>'map','code'=>'f279'],
['name'=>'commenting','code'=>'f27a'],
['name'=>'commenting-o','code'=>'f27b'],
['name'=>'houzz','code'=>'f27c'],
['name'=>'vimeo','code'=>'f27d'],
['name'=>'black-tie','code'=>'f27e'],
['name'=>'fonticons','code'=>'f280'],
];
foreach ($icons as $icon) {
$data[$icon['name']] = '&#x' . $icon['code'] . ' ' . ucwords(str_replace('-', ' ', $icon['name']));
}
ksort($data);
return $data;
}
} }

View File

@ -7,6 +7,7 @@ use App\Http\Requests\ProposalTemplateRequest;
use App\Http\Requests\UpdateProposalTemplateRequest; use App\Http\Requests\UpdateProposalTemplateRequest;
use App\Models\Invoice; use App\Models\Invoice;
use App\Models\ProposalTemplate; use App\Models\ProposalTemplate;
use App\Models\ProposalSnippet;
use App\Ninja\Datatables\ProposalTemplateDatatable; use App\Ninja\Datatables\ProposalTemplateDatatable;
use App\Ninja\Repositories\ProposalTemplateRepository; use App\Ninja\Repositories\ProposalTemplateRepository;
use App\Services\ProposalTemplateService; use App\Services\ProposalTemplateService;
@ -58,6 +59,7 @@ class ProposalTemplateController extends BaseController
'url' => 'proposals/templates', 'url' => 'proposals/templates',
'title' => trans('texts.new_proposal_template'), 'title' => trans('texts.new_proposal_template'),
'templates' => ProposalTemplate::scope()->orderBy('name')->get(), 'templates' => ProposalTemplate::scope()->orderBy('name')->get(),
'snippets' => ProposalSnippet::scope()->with('proposal_category')->orderBy('name')->get(),
]; ];
return View::make('proposals/templates/edit', $data); return View::make('proposals/templates/edit', $data);
@ -81,6 +83,7 @@ class ProposalTemplateController extends BaseController
'url' => 'proposals/templates/' . $proposalTemplate->public_id, 'url' => 'proposals/templates/' . $proposalTemplate->public_id,
'title' => trans('texts.edit_proposal_template'), 'title' => trans('texts.edit_proposal_template'),
'templates' => ProposalTemplate::scope()->orderBy('name')->get(), 'templates' => ProposalTemplate::scope()->orderBy('name')->get(),
'snippets' => ProposalSnippet::scope()->with('proposal_category')->orderBy('name')->get(),
]; ];
return View::make('proposals/templates/edit', $data); return View::make('proposals/templates/edit', $data);

View File

@ -23,6 +23,7 @@ class ProposalSnippet extends EntityModel
*/ */
protected $fillable = [ protected $fillable = [
'name', 'name',
'icon',
'private_notes', 'private_notes',
'proposal_category_id', 'proposal_category_id',
'html', 'html',

View File

@ -48,6 +48,7 @@ class AddSubscriptionFormat extends Migration
$table->unsignedInteger('proposal_category_id')->nullable(); $table->unsignedInteger('proposal_category_id')->nullable();
$table->string('name'); $table->string('name');
$table->string('icon');
$table->text('private_notes'); $table->text('private_notes');
$table->mediumText('html'); $table->mediumText('html');

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -40,11 +40,7 @@ thead th {
} }
.sidebar-nav-dark { .sidebar-nav-dark {
background-color: #313131; background-color: #2f2f2f;
}
.sidebar-nav-dark li {
border-bottom:solid 1px #444444;
} }
.sidebar-nav-dark li > a { .sidebar-nav-dark li > a {

View File

@ -2723,6 +2723,7 @@ $LANG = array(
'restored_proposal_category' => 'Successfully restored category', 'restored_proposal_category' => 'Successfully restored category',
'delete_status' => 'Delete Status', 'delete_status' => 'Delete Status',
'standard' => 'Standard', 'standard' => 'Standard',
'icon' => 'Icon',
); );

View File

@ -114,46 +114,10 @@
var template = templateMap[templateId]; var template = templateMap[templateId];
setComboboxValue($('.template-select'), template.public_id, template.name); setComboboxValue($('.template-select'), template.public_id, template.name);
} }
window.grapesjsEditor = grapesjs.init({
container : '#gjs',
components: '{!! $proposal ? $proposal->html : '' !!}',
style: '{!! $proposal ? $proposal->css : '' !!}',
showDevices: false,
categoryLabel: 'tes',
plugins: ['gjs-preset-newsletter'],
pluginsOpts: {
'gjs-preset-newsletter': {
'categoryLabel': "{{ trans('texts.standard') }}"
}
},
storageManager: {type: 'none'},
});
var blockManager = grapesjsEditor.BlockManager;
@foreach ($snippets as $snippet)
blockManager.add('h1-block', {
label: '{{ $snippet->name }}',
category: '{{ $snippet->proposal_category ? $snippet->proposal_category->name : trans('texts.custom') }}',
content: '{!! $snippet->html !!}',
style: '{!! $snippet->css !!}',
attributes: {
title: '{!! $snippet->private_notes !!}',
class:'fa fa-smile-o'
}
});
@endforeach
@if (count($snippets))
var blockCategories = blockManager.getCategories();
for (var i=0; i<blockCategories.models.length; i++) {
var blockCategory = blockCategories.models[i];
blockCategory.set('open', false);
}
@endif
}) })
</script> </script>
@include('proposals.grapesjs', ['entity' => $proposal])
@stop @stop

View File

@ -0,0 +1,45 @@
<script type="text/javascript">
$(function() {
window.grapesjsEditor = grapesjs.init({
container : '#gjs',
components: '{!! $entity ? $entity->html : '' !!}',
style: '{!! $entity ? $entity->css : '' !!}',
showDevices: false,
categoryLabel: 'tes',
plugins: ['gjs-preset-newsletter'],
pluginsOpts: {
'gjs-preset-newsletter': {
'categoryLabel': "{{ trans('texts.standard') }}"
}
},
storageManager: {type: 'none'},
});
var blockManager = grapesjsEditor.BlockManager;
@foreach ($snippets as $snippet)
blockManager.add('h1-block', {
label: '{{ $snippet->name }}',
category: '{{ $snippet->proposal_category ? $snippet->proposal_category->name : trans('texts.custom') }}',
content: '{!! $snippet->html !!}',
style: '{!! $snippet->css !!}',
attributes: {
title: '{!! $snippet->private_notes !!}',
class:'fa fa-{!! $snippet->icon ?: 'book' !!}'
}
});
@endforeach
@if (count($snippets))
var blockCategories = blockManager.getCategories();
for (var i=0; i<blockCategories.models.length; i++) {
var blockCategory = blockCategories.models[i];
blockCategory.set('open', false);
}
@endif
});
</script>

View File

@ -13,6 +13,9 @@
.gjs-block.fa { .gjs-block.fa {
font-size: 4em !important; font-size: 4em !important;
} }
.icon-select {
font-family: sans-serif, 'FontAwesome';
}
</style> </style>
@stop @stop
@ -24,7 +27,6 @@
->id('mainForm') ->id('mainForm')
->rules([ ->rules([
'name' => 'required', 'name' => 'required',
'proposal_category_id' => 'required',
]) !!} ]) !!}
@if ($snippet) @if ($snippet)
@ -48,6 +50,9 @@
{!! Former::select('proposal_category_id')->addOption('', '') {!! Former::select('proposal_category_id')->addOption('', '')
->label(trans('texts.category')) ->label(trans('texts.category'))
->addGroupClass('category-select') !!} ->addGroupClass('category-select') !!}
{!! Former::select('icon')
->addGroupClass('icon-select')
->options($icons) !!}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{!! Former::textarea('private_notes') {!! Former::textarea('private_notes')
@ -98,40 +103,11 @@
setComboboxValue($('.category-select'), category.public_id, category.name); setComboboxValue($('.category-select'), category.public_id, category.name);
} }
window.grapesjsEditor = grapesjs.init({ $('#icon').combobox();
container : '#gjs', })
components: '{!! $snippet ? $snippet->html : '' !!}',
style: '{!! $snippet ? $snippet->css : '' !!}',
showDevices: false,
plugins: ['gjs-preset-newsletter'],
//plugins: ['gjs-blocks-basic'],
storageManager: {type: 'none'},
panels: {
Xdefaults : [{
id : 'commands',
buttons : [{
id : 'smile',
className : 'fa fa-smile-o',
attributes : { title: 'Smile' }
}],
}],
}
});
/*
var blockManager = editor.BlockManager;
blockManager.add('h1-block', {
label: 'Heading',
category: 'Basic',
content: '<h1>Put your title here</h1>',
attributes: {
title: 'Insert h1 block',
class:'fa fa-smile-o'
}
});
*/
})
</script> </script>
@include('proposals.grapesjs', ['entity' => $snippet])
@stop @stop

View File

@ -94,41 +94,10 @@
} }
@include('partials/entity_combobox', ['entityType' => ENTITY_PROPOSAL_TEMPLATE]) @include('partials/entity_combobox', ['entityType' => ENTITY_PROPOSAL_TEMPLATE])
*/ */
})
window.grapesjsEditor = grapesjs.init({
container : '#gjs',
components: '{!! $template ? $template->html : '' !!}',
style: '{!! $template ? $template->css : '' !!}',
showDevices: false,
plugins: ['gjs-preset-newsletter'],
//plugins: ['gjs-blocks-basic'],
storageManager: {type: 'none'},
panels: {
Xdefaults : [{
id : 'commands',
buttons : [{
id : 'smile',
className : 'fa fa-smile-o',
attributes : { title: 'Smile' }
}],
}],
}
});
/*
var blockManager = editor.BlockManager;
blockManager.add('h1-block', {
label: 'Heading',
category: 'Basic',
content: '<h1>Put your title here</h1>',
attributes: {
title: 'Insert h1 block',
class:'fa fa-smile-o'
}
});
*/
})
</script> </script>
@include('proposals.grapesjs', ['entity' => $template])
@stop @stop