ish_manager 0.1.8.450 → 0.1.8.451

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/ish_manager/iro.js +54 -39
  3. data/app/assets/javascripts/ish_manager/iro0.js +68 -0
  4. data/app/assets/stylesheets/ish_manager/application.scss +1 -0
  5. data/app/assets/stylesheets/ish_manager/iro.scss +39 -9
  6. data/app/assets/stylesheets/ish_manager/iro1.scss +117 -0
  7. data/app/controllers/ish_manager/iro_option_gets_controller.rb +127 -0
  8. data/app/controllers/ish_manager/iro_positions_controller.rb +0 -9
  9. data/app/controllers/ish_manager/iro_purses_controller.rb +46 -4
  10. data/app/controllers/ish_manager/iro_watches_controller.rb +1 -0
  11. data/app/views/ish_manager/application/_main_header_admin.haml +2 -2
  12. data/app/views/ish_manager/email_templates/_acknowledgement_of_document_receipt.html.erb +23 -0
  13. data/app/views/ish_manager/email_templates/_marketing_ror_3.html.erb +25 -0
  14. data/app/views/ish_manager/email_templates/_marketing_ror_4.html.erb +25 -0
  15. data/app/views/ish_manager/email_templates/_marketing_ror_5.html.erb +17 -0
  16. data/app/views/ish_manager/email_templates/_rec_resume_shared_with_you.html.erb +39 -0
  17. data/app/views/ish_manager/email_templates/_support_ticket_created.html.erb +26 -0
  18. data/app/views/ish_manager/iro_option_gets/_form.haml +10 -0
  19. data/app/views/ish_manager/iro_positions/_form.haml +73 -37
  20. data/app/views/ish_manager/iro_purses/_form.haml +3 -0
  21. data/app/views/ish_manager/iro_purses/_header.haml +37 -0
  22. data/app/views/ish_manager/iro_purses/_show.haml +99 -0
  23. data/app/views/ish_manager/iro_purses/_show_gameui_0.haml +62 -0
  24. data/app/views/ish_manager/iro_purses/_show_gameui_1.haml +78 -0
  25. data/app/views/ish_manager/iro_purses/show.haml +3 -114
  26. data/app/views/ish_manager/iro_purses/show_gameui.haml +4 -163
  27. data/app/views/ish_manager/iro_watches/index.haml +10 -1
  28. data/app/views/ish_manager/iro_watches/max_pain.haml +21 -0
  29. data/config/routes.rb +8 -3
  30. metadata +17 -2
@@ -0,0 +1,25 @@
1
+ Subject: Unleash the Power of Ruby on Rails for Your Web Development [Email 1 of 3]
2
+
3
+ Dear [Recipient's Name],
4
+
5
+ Are you ready to revolutionize your web development? Look no further than our Ruby on Rails expertise! With its unmatched speed, scalability, and security, Ruby on Rails is the ultimate framework for building high-performance web applications.
6
+
7
+ Why choose Ruby on Rails?
8
+
9
+ Speedy Development: Time is money, and Ruby on Rails helps you save both! Its streamlined development process allows us to deliver projects at lightning speed without compromising quality. Get your application up and running in record time.
10
+
11
+ Scalability on Demand: Whether you're a startup with big ambitions or an established enterprise aiming to expand, Ruby on Rails has your back. Its scalable architecture ensures your application grows seamlessly as your business flourishes.
12
+
13
+ Robust Security: Protecting your data and users is paramount. Ruby on Rails comes with built-in security features, and our expert team implements best practices to safeguard your application against potential threats. Rest easy knowing your application is safe.
14
+
15
+ Take a peek at some of our successful Ruby on Rails projects:
16
+
17
+ [Include a visually appealing picture showcasing a previous Ruby on Rails project]
18
+
19
+ Ready to experience the power of Ruby on Rails? Stay tuned for our next email, where we'll delve deeper into its user-friendly interface and unrivaled performance.
20
+
21
+ Best regards,
22
+
23
+ [Your Name]
24
+ [Your Company Name]
25
+ [Your Contact Information]
@@ -0,0 +1,25 @@
1
+ Subject: Ruby on Rails: A User-Friendly Interface [Email 2 of 3]
2
+
3
+ Dear [Recipient's Name],
4
+
5
+ Welcome back to our Ruby on Rails campaign! Today, we're excited to share how Ruby on Rails can provide your users with a seamless and delightful web experience.
6
+
7
+ With Ruby on Rails, we create stunning and intuitive user interfaces that captivate your audience from the moment they land on your site. We understand that a visually appealing and user-friendly interface is essential for engagement and retention. That's why we ensure every aspect of your application is optimized for an exceptional user experience.
8
+
9
+ Why choose Ruby on Rails for a user-friendly interface?
10
+
11
+ Engaging Design: Our team of skilled designers combines aesthetics and functionality to craft captivating interfaces. From eye-catching visuals to smooth navigation, we create an interface that captivates your users and keeps them coming back for more.
12
+
13
+ Intuitive Interaction: We believe in simplicity. With Ruby on Rails, we develop applications that are intuitive and easy to use. Users will love the seamless interaction and effortless navigation, resulting in increased engagement and customer satisfaction.
14
+
15
+ Experience the power of Ruby on Rails for yourself:
16
+
17
+ [Include a visually appealing picture showcasing another previous Ruby on Rails project]
18
+
19
+ Stay tuned for our final email, where we'll reveal how Ruby on Rails ensures scalability and security for your web application.
20
+
21
+ Best regards,
22
+
23
+ [Your Name]
24
+ [Your Company Name]
25
+ [Your Contact Information]
@@ -0,0 +1,17 @@
1
+ Subject: Ruby on Rails: Scalability and Security [Email 3 of 3]
2
+
3
+ Dear [Recipient's Name],
4
+
5
+ Congratulations on reaching the final email of our Ruby on Rails campaign! In this email, we'll showcase how Ruby on Rails ensures scalability and security for your web application.
6
+
7
+ Scalability:
8
+
9
+ As your business grows, your web application needs to keep up. Ruby on Rails excels in scalability, allowing your application to evolve effortlessly. We build a solid foundation that accommodates your future growth plans, ensuring your application scales with ease.
10
+
11
+ Security:
12
+
13
+ Protecting your data and maintaining a secure web application is of utmost importance. Ruby on Rails comes equipped with built-in security features and a robust ecosystem that follows best practices. Our team implements stringent security measures to safeguard your application from potential threats, giving you peace of mind.
14
+
15
+ Here's a glimpse of the scalability and security Ruby on Rails offers:
16
+
17
+ [Include a visually appealing picture showcasing a
@@ -0,0 +1,39 @@
1
+
2
+ <table width="100%" style="width: 100%;" border="0" cellspacing="0" cellpadding="0"
3
+ >
4
+ <tr>
5
+ <td align="center" >
6
+
7
+ <center><table border="0" cellspacing="0" cellpadding="0"
8
+ width="560" style="width: 560px; max-width: 560px; border: 0;"><tr><td>
9
+
10
+ <p>Hi <%= @lead&.name %>,</p>
11
+
12
+ <p>The resume of a software development professional is shared with you. This outstanding software engineer possesses a combination of technical expertise, problem-solving abilities, and a strong commitment to quality. Here is a description of their profile:</p>
13
+
14
+ <p>They possess a combination of technical expertise, problem-solving abilities, and a strong commitment to quality. </p>
15
+
16
+ <ul>
17
+ <li>Technical Skills: they have a deep understanding of various programming languages, frameworks, and tools. They are proficient in multiple languages such as Java, C++, Python, or JavaScript, and have expertise in software development methodologies, database management, data structures, algorithms, and system architecture.</li>
18
+
19
+ <li>Problem Solving: Outstanding software engineers excel in problem-solving. They can analyze complex issues, break them down into smaller manageable parts, and devise effective solutions. They possess a logical and analytical mindset, allowing them to identify patterns, anticipate potential problems, and come up with innovative approaches to tackle challenges efficiently.</li>
20
+
21
+ <li>Continuous Learning: The field of software engineering is constantly evolving, and exceptional engineers are committed to continuous learning. They stay updated with the latest industry trends, emerging technologies, and best practices. They actively seek out opportunities to enhance their skills and expand their knowledge base to remain at the forefront of their field.</li>
22
+
23
+ <li>Collaboration and Communication: this software engineer is an effective team player. They collaborate well with cross-functional teams, including product managers, designers, and fellow developers. They actively participate in discussions, share their ideas, and listen to others' perspectives. They can communicate complex technical concepts in a clear and concise manner, both verbally and in written form.</li>
24
+
25
+ </ul>
26
+
27
+ <p>To access the candidate's resume, <a href="https://wasya.co/pudeyev-resume?#{@utm_tracking_str}" target="_blank" >follow this link!</a></p>
28
+
29
+ <p>You may also respond to this email if you have any questions.</p>
30
+
31
+ <p>Sincerely,<br />
32
+ --<br />
33
+ WasyaCo RRT<br />
34
+ <br /><br /><br />
35
+ </p>
36
+
37
+ </td></tr></table></center>
38
+
39
+ </td></tr></table>
@@ -0,0 +1,26 @@
1
+ Subject: Acknowledgement of Support Ticket Receipt
2
+
3
+ Dear [Customer's Name],
4
+
5
+ Thank you for reaching out to our software consultancy regarding your support request. This email serves as an acknowledgment that we have received your support ticket, and we appreciate the opportunity to assist you.
6
+
7
+ At [Company Name], we understand the importance of timely and efficient support, and we are committed to resolving your issue as quickly as possible. Our team of experts is currently reviewing your request and will begin investigating the matter shortly.
8
+
9
+ Please rest assured that your support ticket has been assigned a unique reference number [#TicketNumber], which will help us track and monitor the progress of your case. You can use this reference number for any future communication regarding this issue.
10
+
11
+ Our goal is to provide you with the best possible solution, and we will keep you informed throughout the entire process. We aim to respond to your request within [Service Level Agreement (SLA) timeframe], depending on the priority level assigned to your ticket.
12
+
13
+ In the meantime, if you have any additional information, screenshots, or details that may assist us in understanding and resolving your issue more effectively, please feel free to provide them. You can reply directly to this email, and our support team will be notified immediately.
14
+
15
+ We understand that technical issues can be disruptive, and we appreciate your patience as we work towards a resolution. Rest assured that we are committed to delivering high-quality support and ensuring your satisfaction.
16
+
17
+ If you have any urgent concerns or need immediate assistance, please do not hesitate to contact our support hotline at [Phone Number]. Our support agents are available [Working Hours] and will be happy to assist you.
18
+
19
+ Thank you once again for choosing [Company Name]. We value your business and will do our best to address your support request promptly. We will reach out to you soon with an update or resolution.
20
+
21
+ Best regards,
22
+
23
+ [Your Name]
24
+ [Your Position]
25
+ [Company Name]
26
+ [Contact Information]
@@ -0,0 +1,10 @@
1
+
2
+ - url = item.new_record? ? iro_option_gets_path : iro_option_get_path( item )
3
+ .iro-option-gets--form
4
+ = form_for item, url: url, as: :iro_option_get do |f|
5
+ .flex-row
6
+ .form-group
7
+ = f.text_field :ticker
8
+
9
+ .form-group
10
+ = f.submit ">", :class => %w(btn blue)
@@ -5,40 +5,76 @@
5
5
  = form_for position, as: :iro_position, url: url do |f|
6
6
  - if params[:iro_purse_id]
7
7
  = hidden_field_tag 'iro_position[iro_purse_id]', params[:iro_purse_id]
8
- .a
9
- .field Position ##{position.id}
10
- .field
11
- = f.label :strategy
12
- = f.select :iro_strategy_id, options_for_select( Iro::CoveredCallStrategy.list, selected: position.iro_strategy_id ), {}, class: 'select2'
13
- .field
14
- = f.label :ticker
15
- = f.text_field :ticker
16
-
17
- .field
18
- = f.label :strike
19
- = f.number_field :strike, step: 0.01
20
-
21
- .field
22
- = f.label :expires_on
23
- = f.text_field :expires_on
24
-
25
- .field
26
- = f.label :quantity
27
- = f.number_field :quantity
28
-
29
- .field
30
- = f.label :status
31
- = f.select :status, options_for_select( Iro::Position.states_list, selected: position.status ), {}, class: 'select2'
32
-
33
- .field
34
- = f.label :opened_price
35
- = f.text_field :opened_price
36
- .field
37
- = f.label :opened_on
38
- = f.text_field :opened_on
39
- .field
40
- = f.label :opened_delta
41
- = f.number_field :opened_delta, step: 0.01
42
-
43
- .actions
44
- = f.submit 'Submit'
8
+
9
+ .actions
10
+ = f.submit 'Submit'
11
+
12
+ .field Position ##{position.id}
13
+ %hr
14
+
15
+ .field
16
+ = f.label :strategy
17
+ = f.select :iro_strategy_id, options_for_select( Iro::CoveredCallStrategy.list, selected: position.iro_strategy_id ), {}, class: 'select2'
18
+ .field
19
+ = f.label :ticker
20
+ = f.text_field :ticker
21
+
22
+ .field
23
+ = f.label :strike
24
+ = f.number_field :strike, step: 0.01
25
+
26
+ .field
27
+ = f.label :expires_on
28
+ = f.text_field :expires_on
29
+
30
+ .field
31
+ = f.label :quantity
32
+ = f.number_field :quantity
33
+
34
+ .field
35
+ = f.label :status
36
+ = f.select :status, options_for_select( Iro::Position.statuses_list, selected: position.status ), {}, class: 'select2'
37
+
38
+ .field
39
+ = f.label :opened_price
40
+ = f.text_field :opened_price
41
+ .field
42
+ = f.label :opened_on
43
+ = f.text_field :opened_on
44
+ .field
45
+ = f.label :opened_delta
46
+ = f.number_field :opened_delta, step: 0.01
47
+
48
+ %hr
49
+ .field
50
+ = f.label :reckless_defense_quantity
51
+ = f.number_field :reckless_defense_quantity
52
+ .field
53
+ = f.label :reckless_defense_long_strike
54
+ = f.number_field :reckless_defense_long_strike, step: 0.5
55
+ .field
56
+ = f.label :reckless_defense_long_opened_price
57
+ = f.number_field :reckless_defense_long_opened_price, step: 0.001
58
+ .field
59
+ = f.label :reckless_defense_long_current_price
60
+ = f.number_field :reckless_defense_long_current_price, step: 0.001
61
+ .field
62
+ = f.label :reckless_defense_long_opened_delta
63
+ = f.number_field :reckless_defense_long_opened_delta, step: 0.001
64
+
65
+ .field
66
+ = f.label :reckless_defense_short_strike
67
+ = f.number_field :reckless_defense_short_strike, step: 0.5
68
+ .field
69
+ = f.label :reckless_defense_short_opened_price
70
+ = f.number_field :reckless_defense_short_opened_price, step: 0.001
71
+ .field
72
+ = f.label :reckless_defense_short_current_price
73
+ = f.number_field :reckless_defense_short_current_price, step: 0.001
74
+ .field
75
+ = f.label :reckless_defense_short_opened_delta
76
+ = f.number_field :reckless_defense_short_opened_delta, step: 0.001
77
+
78
+
79
+ .actions
80
+ = f.submit 'Submit'
@@ -3,6 +3,9 @@
3
3
 
4
4
  .iro-purses--form
5
5
  = form_for iro_purse, as: :iro_purse, url: url do |f|
6
+ .legend
7
+ kind: show | show_gameui
8
+
6
9
  .field
7
10
  -# = f.label :config
8
11
  = f.text_area :config
@@ -0,0 +1,37 @@
1
+
2
+ .iro-purses--title
3
+ .max-width
4
+ .header
5
+ %h4.title
6
+ Purse ##{@purse.id}.
7
+ #{link_to '[~]', edit_iro_purse_path(@purse)}
8
+ #{link_to '[show]', iro_purse_path(@purse)}
9
+ #{link_to '[show_gameui]', iro_purse_path({ id: @purse.id, kind: 'show_gameui' }) }
10
+ Value: $#{@purse.current_value}
11
+
12
+
13
+ %h5.collapse-expand#iroPurseConfig
14
+ Config
15
+ .config
16
+ = render 'form', iro_purse: @purse
17
+ .c
18
+
19
+ .padded
20
+ %h5.collapse-expand#iroStrategies
21
+ Strategies (#{@strategies.length})
22
+ = link_to '[+]', new_iro_strategy_path({ iro_purse_id: @purse.id })
23
+ .iro-strategies.items
24
+ - @strategies.each do |strat|
25
+ .iro-strategy.item= render 'ish_manager/iro_strategies/form', strategy: strat
26
+ .c
27
+
28
+ .iro-position-statuses-selector
29
+ = form_tag( {}, { method: :get } ) do
30
+ - if !params[:statuses]
31
+ - params[:statuses] = ::Iro::Position::STATUSES
32
+ - ::Iro::Position::STATUSES.each do |status|
33
+ .field
34
+ %label= status
35
+ = check_box_tag "statuses[]", status, params[:statuses].include?( status )
36
+ = submit_tag 'Submit'
37
+
@@ -0,0 +1,99 @@
1
+
2
+ .iro-purses--show
3
+
4
+ %h5.collapse-expand#positions
5
+ Positions (#{@positions.length})
6
+ = link_to '[+]', new_iro_position_path({ iro_purse_id: @purse.id })
7
+ .positions
8
+ %table.bordered
9
+ %thead
10
+ %tr
11
+ %td
12
+ .id id
13
+ %td
14
+ .strategy Strategy
15
+ %td
16
+ .ticker Ticker
17
+ %td
18
+ .type Kind/Type
19
+ %td
20
+ .strike Strike
21
+ %td
22
+ .expires_on ExpiresOn
23
+ %td
24
+ .days-left Days Left
25
+ %td
26
+ .q Q
27
+ %td
28
+ .begin-on Begin On
29
+ %td
30
+ .price Price
31
+ %td
32
+ .to-open To Open
33
+ %td
34
+ .begin-delta #{"\u0394"}
35
+ %td
36
+ .to-close Current $ <br />(To Close)
37
+ %td
38
+ .net Net
39
+ %td
40
+ .netp % Net
41
+ %td
42
+ .delta #{"\u0394"}
43
+ %td
44
+ .days-at-open Days@Open
45
+ %td
46
+ .must-roll Must roll?
47
+ %td
48
+ .should-roll Should roll?
49
+ %td
50
+ .next-symbol Next Symbol
51
+ %td
52
+ .next-delta Next Delta
53
+ %td
54
+ .next-outcome Next Outcome
55
+ %td
56
+ .status Status
57
+ %tbody
58
+ - @positions.each_with_index do |p, idx|
59
+ - if idx > 0 && @positions[idx-1][:expires_on] != p[:expires_on]
60
+ %tr
61
+ %td
62
+ %hr
63
+ %tr
64
+ %td.id
65
+ = p.id
66
+ = link_to '[~]', edit_iro_position_path(p)
67
+ %td.strategy= link_to "##{p.strategy.id} #{p.strategy.slug}", edit_iro_strategy_path(p.strategy)
68
+ %td= p.ticker
69
+ %td= p.type == "Iro::CoveredCall" ? "CALL" : "other"
70
+ %td= p.strike
71
+ %td= p.expires_on.strftime('%b %d')
72
+ %td.days-left= (p.expires_on.to_date - Time.now.to_date).to_i
73
+ %td.q= p.quantity
74
+ %td.begin-on= pp_date p.opened_on
75
+ %td.price= p.opened_price
76
+ %td.to-open
77
+ - this_to_open = p.opened_price * 100 * p.quantity - 0.66 * p.quantity
78
+ = pp_amount( this_to_open )
79
+ %td.begin-delta= sprintf('%.2f', p.opened_delta ) rescue nil
80
+ %td.to-close
81
+ = p.current_price
82
+ %td.net
83
+ - this_net = ( p.opened_price - p.current_price ) * 100 * p.quantity - 0.65 * 2 * p.quantity
84
+ = pp_money( this_net )
85
+ %td.netp
86
+ = pp_percent( this_net / this_to_open )
87
+ %td= sprintf('%.2f', p.current_delta ) rescue nil
88
+ %td= (p.expires_on.to_date - p.opened_on).to_i
89
+ %td.must-roll= pp_bool p.must_roll?
90
+ %td.should-roll
91
+ .aC
92
+ .a= p.should_rollp ? p.should_rollp : '-'
93
+ .a= pp_bool p.should_roll?
94
+ %td.next-symbol= p.next_symbol
95
+ %td.next-delta= p.next_position[:delta]
96
+ %td.next-outcome= pp_money p.next_outcome
97
+ %td.status= p.status
98
+
99
+
@@ -0,0 +1,62 @@
1
+
2
+ .iro-purses-show-gameui.padded
3
+ = render 'header'
4
+
5
+
6
+ %h5.collapse-expand#gameuiPositions
7
+ Gameui Positions (#{@positions.length})
8
+ = link_to '[+]', new_iro_position_path({ iro_purse_id: @purse.id })
9
+ .gameui-positions
10
+ - @positions.each_with_index do |p, idx|
11
+ - if idx > 0 && p[:expires_on] != @positions[idx-1][:expires_on]
12
+ %hr
13
+
14
+ -# something like, $23 Apr-14
15
+ .gameuiW.show-amounts{ data: { cc: { strike: p.strike, startPrice: p.opened_price, currentPrice: p.current_price, cus: p.strategy.current_underlying_strike } } }
16
+ .gameui
17
+ .gameuiC
18
+ = link_to '[roll]', roll_iro_position_path(p)
19
+
20
+ .elephantW
21
+ .elephant
22
+ .elephantC
23
+
24
+ .amount
25
+
26
+ .q= p.quantity
27
+
28
+ .riderW
29
+ .rider
30
+ .riderC
31
+
32
+ .riderStart
33
+ .amount
34
+ .riderCurrent
35
+ .amount
36
+
37
+ .riderStart2
38
+ .amount
39
+ .riderCurrent2
40
+ .amount
41
+
42
+
43
+ .sunflowerW
44
+ .sunflower
45
+ .sunflowerC
46
+
47
+ .days-left= (p.expires_on.to_date - Time.now.to_date).to_i
48
+
49
+ .windW
50
+ .wind
51
+ .c-u-s= pp_currency p.strategy.current_underlying_strike
52
+ .windC
53
+
54
+
55
+ .spearW
56
+ .spear
57
+ .spearC
58
+ .spearStart
59
+ .spearCurrent
60
+ .c
61
+
62
+ = render 'show'
@@ -0,0 +1,78 @@
1
+
2
+ .show-gameui-1
3
+ %h5.collapse-expand#gameuiPositions
4
+ Gameui Positions (#{@positions.length})
5
+ = link_to '[+]', new_iro_position_path({ iro_purse_id: @purse.id })
6
+
7
+ .gameui-positions{ data: { cc: { |
8
+ dollarWidth: 100, |
9
+ origin: @positions[0].strike, |
10
+ cus: @current_underlying_strike, |
11
+ } } }
12
+ .gameuiCUSW
13
+ .gameuiCUS= pp_currency @positions[0].strategy.current_underlying_strike
14
+
15
+ - @positions.each_with_index do |p, idx|
16
+ - if idx > 0 && p[:expires_on] != @positions[idx-1][:expires_on]
17
+ .step
18
+
19
+ -# aka "lane"
20
+ .gameuiW.show-amounts
21
+ .gameui
22
+ .gameuiC
23
+
24
+ .windW
25
+ .wind
26
+ .windC
27
+
28
+
29
+ .elephantW{ data: { cc: { |
30
+ strike: p.strike, |
31
+ startPrice: p.opened_price, |
32
+ currentPrice: p.current_price, |
33
+ } } }
34
+ = link_to '[roll]', iro_roll_prep_path(p)
35
+ .amount
36
+ .strike= p.strike
37
+ .elephant
38
+ .elephantC
39
+ .q= p.quantity
40
+
41
+ - if p.reckless_defense_quantity.present?
42
+ .recklessDefenseW{ data: { cc: { |
43
+ longStrike: p.reckless_defense_long_strike, |
44
+ shortStrike: p.reckless_defense_short_strike, |
45
+ longOpenedPrice: p.reckless_defense_long_opened_price, |
46
+ longCurrentPrice: p.reckless_defense_long_current_price, |
47
+ shortOpenedPrice: p.reckless_defense_short_opened_price, |
48
+ shortCurrentPrice: p.reckless_defense_short_current_price, |
49
+ } } }
50
+ .recklessDefense
51
+ .recklessDefenseC
52
+
53
+ - if @next_positions.present?
54
+ .step
55
+ - @next_positions.each do |p|
56
+ -# aka "lane"
57
+ .gameuiW.show-amounts
58
+ .gameui
59
+ .gameuiC
60
+
61
+ .windW
62
+ .wind
63
+ .windC
64
+
65
+ .elephantW{ data: { cc: { |
66
+ strike: p.strike, |
67
+ startPrice: p.opened_price, |
68
+ currentPrice: p.current_price |
69
+ } } }
70
+ .amount= p.opened_price
71
+ .current_price= p.current_price
72
+ .strike= p.strike
73
+ .elephant
74
+ .elephantC
75
+
76
+
77
+ .c
78
+
@@ -1,116 +1,5 @@
1
1
 
2
- .iro-purses-show.padded
3
- .max-width
4
- .header
5
- %h4.title
6
- Purse ##{@purse.id}.
7
- #{link_to '[~]', edit_iro_purse_path(@purse)}
8
- Value: $#{@purse.current_value}
9
-
10
- %h5.collapse-expand#iroPurseConfig
11
- Config
12
- -# #{link_to '[~]', edit_iro_purse_path(@purse)}
13
- .config
14
- -# %pre= @purse.config
15
- = render 'form', iro_purse: @purse
16
-
17
- %h5.collapse-expand#strategies
18
- Strategies (#{@strategies.length})
19
- = link_to '[+]', new_iro_strategy_path({ iro_purse_id: @purse.id })
20
- .strategies.items
21
- - @strategies.each do |strat|
22
- .strategy.item= render 'ish_manager/iro_strategies/form', strategy: strat
23
-
24
-
25
- %h5.collapse-expand#positions
26
- Positions (#{@positions.length})
27
- = link_to '[+]', new_iro_position_path({ iro_purse_id: @purse.id })
28
- .positions
29
- %table.bordered
30
- %thead
31
- %tr
32
- %td
33
- .id id
34
- %td
35
- .strategy Strategy
36
- %td
37
- .ticker Ticker
38
- %td
39
- .type Kind/Type
40
- %td
41
- .strike Strike
42
- %td
43
- .expires_on ExpiresOn
44
- %td
45
- .days-left Days Left
46
- %td
47
- .q Q
48
- %td
49
- .begin-on Begin On
50
- %td
51
- .price Price
52
- %td
53
- .to-open To Open
54
- %td
55
- .begin-delta #{"\u0394"}
56
- %td
57
- .to-close Current $ <br />(To Close)
58
- %td
59
- .net Net
60
- %td
61
- .netp % Net
62
- %td
63
- .delta #{"\u0394"}
64
- %td
65
- .days-at-open Days@Open
66
- %td
67
- .must-roll Must roll?
68
- %td
69
- .should-roll Should roll?
70
- %td
71
- .next-symbol Next Symbol
72
- %td
73
- .next-delta Next Delta
74
- %td
75
- .next-outcome Next Outcome
76
- %td
77
- .state State
78
- %tbody
79
- - @positions.each do |p|
80
- %tr
81
- %td.id
82
- = p.id
83
- = link_to '[~]', edit_iro_position_path(p)
84
- %td.strategy= link_to p.strategy, edit_iro_strategy_path(p.strategy)
85
- %td= p.ticker
86
- %td= p.type == "Iro::CoveredCall" ? "CALL" : "other"
87
- %td= p.strike
88
- %td= p.expires_on.strftime('%b %d')
89
- %td.days-left= (p.expires_on.to_date - Time.now.to_date).to_i
90
- %td.q= p.quantity
91
- %td.begin-on= pp_date p.opened_on
92
- %td.price= p.opened_price
93
- %td.to-open
94
- - this_to_open = p.opened_price * 100 * p.quantity - 0.66 * p.quantity
95
- = pp_amount( this_to_open )
96
- %td.begin-delta= sprintf('%.2f', p.opened_delta ) rescue nil
97
- %td.to-close
98
- = p.current_price
99
- %td.net
100
- - this_net = ( p.opened_price - p.current_price ) * 100 * p.quantity - 0.65 * 2 * p.quantity
101
- = pp_money( this_net )
102
- %td.netp
103
- = pp_percent( this_net / this_to_open )
104
- %td= sprintf('%.2f', p.current_delta ) rescue nil
105
- %td= (p.expires_on.to_date - p.opened_on).to_i
106
- %td.must-roll= pp_bool p.must_roll?
107
- %td.should-roll
108
- .aC
109
- .a= p.should_rollp ? p.should_rollp : '-'
110
- .a= pp_bool p.should_roll?
111
- %td.next-symbol= p.next_symbol
112
- %td.next-delta= p.next_position[:delta]
113
- %td.next-outcome= pp_money p.next_outcome
114
- %td.state= p.status
115
-
2
+ .iro-purses-show
3
+ = render 'header'
116
4
 
5
+ = render 'show'